From 9199ab8c562c7628df3a8eca6c20eb5ffffb10f7 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 18 Feb 2020 20:07:08 -0600 Subject: [PATCH] Add option to disable saving projectiles to disk --- .../net/minecraft/server/ChunkRegionLoader.java | 1 + .../java/net/pl3x/purpur/PurpurWorldConfig.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java index 4349d22cc8..a7fe7722af 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -437,6 +437,7 @@ public class ChunkRegionLoader { while (iterator1.hasNext()) { Entity entity = (Entity) iterator1.next(); + if (!worldserver.purpurConfig.saveProjectilesToDisk && entity instanceof EntityProjectile) continue; // Purpur NBTTagCompound nbttagcompound4 = new NBTTagCompound(); // Paper start if ((int) Math.floor(entity.locX()) >> 4 != chunk.getPos().x || (int) Math.floor(entity.locZ()) >> 4 != chunk.getPos().z) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 60407b2a02..be85d454b2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -173,6 +173,7 @@ public class PurpurWorldConfig { public boolean playerSleepOnlyWithCondition = false; public String playerSleepCondition = "time >= 12541 && time <= 23458"; public boolean useBetterMending = false; + public boolean saveProjectilesToDisk = true; private void gameplayMechanicsSettings() { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); @@ -201,6 +202,21 @@ public class PurpurWorldConfig { playerSleepOnlyWithCondition = getBoolean("gameplay-mechanics.player.sleep.only-with-condition", playerSleepOnlyWithCondition); playerSleepCondition = getString("gameplay-mechanics.player.sleep.condition", playerSleepCondition); useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); + if (PurpurConfig.version < 4) { + Object oldVal = PurpurConfig.config.get("world-settings.default.gameplay-mechanics.saveProjectilesToDisk"); + if (oldVal instanceof Boolean) { + PurpurConfig.config.addDefault("world-settings.default.gameplay-mechanics.save-projectiles-to-disk", oldVal); + PurpurConfig.config.set("world-settings.default.gameplay-mechanics.save-projectiles-to-disk", oldVal); + saveProjectilesToDisk = (boolean) oldVal; + } + oldVal = PurpurConfig.config.get("world-settings." + worldName + ".gameplay-mechanics.saveProjectilesToDisk"); + if (oldVal instanceof Boolean) { + PurpurConfig.config.set("world-settings." + worldName + ".gameplay-mechanics.save-projectiles-to-disk", oldVal); + saveProjectilesToDisk = (boolean) oldVal; + } + set("gameplay-mechanics.saveProjectilesToDisk", null); + } + saveProjectilesToDisk = getBoolean("gameplay-mechanics.save-projectiles-to-disk", saveProjectilesToDisk); } public int elytraDamagePerSecond = 1; -- 2.24.0