CavePVP-Stuff/cSpigot-master/spigot-server-Patches/0213-Disable-saving-pearl-f...

269 lines
12 KiB
Diff

From c8220155959e3e4403759cf2b520481697499eca Mon Sep 17 00:00:00 2001
From: Alfie Cleveland <alfeh@me.com>
Date: Sun, 17 Sep 2017 23:55:51 +0100
Subject: [PATCH] Disable saving, pearl fix
diff --git a/src/main/java/net/minecraft/server/EntityEnderPearl.java b/src/main/java/net/minecraft/server/EntityEnderPearl.java
index 2b89bf8dd..e88b70c89 100644
--- a/src/main/java/net/minecraft/server/EntityEnderPearl.java
+++ b/src/main/java/net/minecraft/server/EntityEnderPearl.java
@@ -2,12 +2,15 @@ package net.minecraft.server;
// CraftBukkit start
import org.bukkit.Bukkit;
+import org.bukkit.Location;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.player.PlayerTeleportEvent;
// CraftBukkit end
public class EntityEnderPearl extends EntityProjectile {
+ private Location lastValidTeleport = null;
+
public EntityEnderPearl(World world) {
super(world);
this.loadChunks = world.paperSpigotConfig.loadUnloadedEnderPearls; // PaperSpigot
@@ -18,6 +21,16 @@ public class EntityEnderPearl extends EntityProjectile {
this.loadChunks = world.paperSpigotConfig.loadUnloadedEnderPearls; // PaperSpigot
}
+ // MineHQ start
+ public void h() {
+ if (this.world.getCubes(this, this.boundingBox.grow(0.25D, 0.25D, 0.25D)).isEmpty()) {
+ this.lastValidTeleport = getBukkitEntity().getLocation();
+ }
+
+ super.h();
+ }
+ // MineHQ start
+
protected void a(MovingObjectPosition movingobjectposition) {
if (movingobjectposition.entity != null) {
movingobjectposition.entity.damageEntity(DamageSource.projectile(this, this.getShooter()), 0.0F);
@@ -70,10 +83,10 @@ public class EntityEnderPearl extends EntityProjectile {
if (this.getShooter() != null && this.getShooter() instanceof EntityPlayer) {
EntityPlayer entityplayer = (EntityPlayer) this.getShooter();
- if (entityplayer.playerConnection.b().isConnected() && entityplayer.world == this.world) {
+ if (entityplayer.playerConnection.b().isConnected() && entityplayer.world == this.world && this.lastValidTeleport != null) { // MineHQ
// CraftBukkit start - Fire PlayerTeleportEvent
org.bukkit.craftbukkit.entity.CraftPlayer player = entityplayer.getBukkitEntity();
- org.bukkit.Location location = getBukkitEntity().getLocation();
+ org.bukkit.Location location = this.lastValidTeleport.clone(); // MineHQ
location.setPitch(player.getLocation().getPitch());
location.setYaw(player.getLocation().getYaw());
diff --git a/src/main/java/net/minecraft/server/JsonList.java b/src/main/java/net/minecraft/server/JsonList.java
index 71ae29e90..dce0d1d3d 100644
--- a/src/main/java/net/minecraft/server/JsonList.java
+++ b/src/main/java/net/minecraft/server/JsonList.java
@@ -20,6 +20,7 @@ import net.minecraft.util.com.google.gson.JsonObject;
import net.minecraft.util.org.apache.commons.io.IOUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.spigotmc.SpigotConfig;
public class JsonList {
@@ -127,6 +128,7 @@ public class JsonList {
}
public void save() throws IOException { // CraftBukkit - Added throws
+ if (SpigotConfig.disableSaving) return; // MineHQ
Collection collection = this.d.values();
String s = this.b.toJson(collection);
BufferedWriter bufferedwriter = null;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 24157a37a..9abe8a94b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -42,6 +42,7 @@ import org.bukkit.craftbukkit.util.Waitable;
import org.bukkit.event.server.RemoteServerCommandEvent;
import org.bukkit.event.world.WorldSaveEvent;
// CraftBukkit end
+import org.spigotmc.SpigotConfig;
// Poweruser start
import net.frozenorb.ThreadingManager;
@@ -381,6 +382,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo
}
protected void saveChunks(boolean flag) throws ExceptionWorldConflict { // CraftBukkit - added throws
+ if (SpigotConfig.disableSaving) return; // MineHQ
if (!this.M) {
// CraftBukkit start - fire WorldSaveEvent
// WorldServer[] aworldserver = this.worldServer;
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index e77faabc8..fee969618 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -30,6 +30,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.util.Vector;
+import org.spigotmc.SpigotConfig;
import org.spigotmc.event.player.PlayerSpawnLocationEvent;
// CraftBukkit end
@@ -302,6 +303,7 @@ public abstract class PlayerList {
}
protected void b(EntityPlayer entityplayer) {
+ if (SpigotConfig.disableSaving) return; // MineHQ
if (org.spigotmc.SpigotConfig.disablePlayerFileSaving) { return; } // Poweruser
this.playerFileData.save(entityplayer);
ServerStatisticManager serverstatisticmanager = (ServerStatisticManager) this.n.get(entityplayer.getUniqueID());
@@ -1184,6 +1186,7 @@ public abstract class PlayerList {
}
public void savePlayers() {
+ if (SpigotConfig.disableSaving) return; // MineHQ
if (org.spigotmc.SpigotConfig.disablePlayerFileSaving) { return; } // Poweruser
for (int i = 0; i < this.players.size(); ++i) {
this.b((EntityPlayer) this.players.get(i));
@@ -1330,14 +1333,6 @@ public abstract class PlayerList {
File file1 = new File(this.server.getWorldServer(0).getDataManager().getDirectory(), "stats");
File file2 = new File(file1, uuid.toString() + ".json");
- if (!file2.exists()) {
- File file3 = new File(file1, entityhuman.getName() + ".json");
-
- if (file3.exists() && file3.isFile()) {
- file3.renameTo(file2);
- }
- }
-
serverstatisticmanager = new ServerStatisticManager(this.server, file2);
serverstatisticmanager.a();
this.n.put(uuid, serverstatisticmanager);
diff --git a/src/main/java/net/minecraft/server/PropertyManager.java b/src/main/java/net/minecraft/server/PropertyManager.java
index fefa221cb..21cae775f 100644
--- a/src/main/java/net/minecraft/server/PropertyManager.java
+++ b/src/main/java/net/minecraft/server/PropertyManager.java
@@ -7,6 +7,7 @@ import java.io.IOException;
import java.util.Properties;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.spigotmc.SpigotConfig;
import joptsimple.OptionSet; // CraftBukkit
@@ -66,6 +67,7 @@ public class PropertyManager {
}
public void savePropertiesFile() {
+ if (SpigotConfig.disableSaving) return; // MineHQ
FileOutputStream fileoutputstream = null;
try {
diff --git a/src/main/java/net/minecraft/server/ServerStatisticManager.java b/src/main/java/net/minecraft/server/ServerStatisticManager.java
index cea31ae98..d14bb5182 100644
--- a/src/main/java/net/minecraft/server/ServerStatisticManager.java
+++ b/src/main/java/net/minecraft/server/ServerStatisticManager.java
@@ -19,6 +19,7 @@ import net.minecraft.util.com.google.gson.JsonParser;
import net.minecraft.util.org.apache.commons.io.FileUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.spigotmc.SpigotConfig;
public class ServerStatisticManager extends StatisticManager {
@@ -43,6 +44,7 @@ public class ServerStatisticManager extends StatisticManager {
}
public void a() {
+ if (SpigotConfig.disableSaving) return;
if (this.d.isFile()) {
try {
this.a.clear();
@@ -56,6 +58,7 @@ public class ServerStatisticManager extends StatisticManager {
}
public void b() {
+ if (SpigotConfig.disableSaving) return; // MineHQ
if ( org.spigotmc.SpigotConfig.disableStatSaving ) return; // Spigot
try {
FileUtils.writeStringToFile(this.d, a(this.a));
@@ -65,6 +68,7 @@ public class ServerStatisticManager extends StatisticManager {
}
public void setStatistic(EntityHuman entityhuman, Statistic statistic, int i) {
+ if (SpigotConfig.disableSaving) return; // MineHQ
if ( org.spigotmc.SpigotConfig.disableStatSaving ) return; // Spigot
int j = statistic.d() ? this.getStatisticValue(statistic) : 0;
diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java
index 1ce89c48d..f3b35484b 100644
--- a/src/main/java/net/minecraft/server/UserCache.java
+++ b/src/main/java/net/minecraft/server/UserCache.java
@@ -17,6 +17,8 @@ import java.util.Locale;
import java.util.Map;
import java.util.UUID;
+import org.spigotmc.SpigotConfig;
+
import net.minecraft.util.com.google.common.base.Charsets;
import net.minecraft.util.com.google.common.collect.Iterators;
import net.minecraft.util.com.google.common.collect.Lists;
@@ -211,6 +213,7 @@ public class UserCache {
}
public void c() {
+ if (SpigotConfig.disableSaving) return; // MineHQ
String s = this.b.toJson(this.a(org.spigotmc.SpigotConfig.userCacheCap));
BufferedWriter bufferedwriter = null;
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index b79e4ba78..ef249eebd 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -819,6 +819,7 @@ public class WorldServer extends World {
// Poweruser start
public void saveOnlyLevel(boolean flag, IProgressUpdate iprogressupdate) throws ExceptionWorldConflict {
+ if (SpigotConfig.disableSaving) return; // MineHQ
if (this.chunkProvider.canSave()) {
if (iprogressupdate != null) {
iprogressupdate.a("Saving level");
@@ -829,6 +830,7 @@ public class WorldServer extends World {
}
public boolean saveOnlyChunks(boolean flag, IProgressUpdate iprogressupdate) {
+ if (SpigotConfig.disableSaving) return true; // MineHQ
if (this.chunkProvider.canSave()) {
if (iprogressupdate != null) {
iprogressupdate.c("Saving chunks");
@@ -867,12 +869,14 @@ public class WorldServer extends World {
}
public void flushSave() {
+ if (SpigotConfig.disableSaving) return; // MineHQ
if (this.chunkProvider.canSave()) {
this.chunkProvider.c();
}
}
protected void a() throws ExceptionWorldConflict { // CraftBukkit - added throws
+ if (SpigotConfig.disableSaving) return; // MineHQ
this.G();
this.dataManager.saveWorldData(this.worldData, this.server.getPlayerList().t());
// CraftBukkit start - save worldMaps once, rather than once per shared world
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index 931c4b25b..15f7bbb2c 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java
+++ b/src/main/java/org/spigotmc/SpigotConfig.java
@@ -531,4 +531,9 @@ public class SpigotConfig
private static void reduceArmorDamage() {
reduceArmorDamage = getBoolean("settings.reduce-armor-damage", false);
}
+
+ public static boolean disableSaving;
+ private static void disableSaving() {
+ disableSaving = getBoolean("settings.disableSaving", false);
+ }
}
--
2.13.5 (Apple Git-94)