diff --git a/patches/server/0096-Add-option-to-disable-saving-projectiles-to-disk.patch b/patches/server/0096-Add-option-to-disable-saving-projectiles-to-disk.patch new file mode 100644 index 000000000..e1c2507b0 --- /dev/null +++ b/patches/server/0096-Add-option-to-disable-saving-projectiles-to-disk.patch @@ -0,0 +1,45 @@ +From 09c13787d431930dd2983afec9465d85cb15e00b 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 + +--- + src/main/java/net/minecraft/server/ChunkRegionLoader.java | 1 + + src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java +index 4349d22cc..a7fe7722a 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 f5feb73cd..02741e56f 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -172,6 +172,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); +@@ -200,6 +201,7 @@ 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); ++ saveProjectilesToDisk = getBoolean("gameplay-mechanics.saveProjectilesToDisk", saveProjectilesToDisk); + } + + public int elytraDamagePerSecond = 1; +-- +2.24.0 +