diff --git a/paper-server/patches/features/0016-Moonrise-optimisation-patches.patch b/paper-server/patches/features/0016-Moonrise-optimisation-patches.patch index 41c2668e9..501821d30 100644 --- a/paper-server/patches/features/0016-Moonrise-optimisation-patches.patch +++ b/paper-server/patches/features/0016-Moonrise-optimisation-patches.patch @@ -28333,10 +28333,10 @@ index b30f56fbc1fd17259a1d05dc9155fffcab292ca1..11fed81a4696ba18440e755c3b8a5ca3 this.generatingStep = generatingStep; this.cache = cache; diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 12988d4c0b72d0648ba51c7fb07f446a713c559b..4460b0fd4770e93874332fabc63df952f482aed6 100644 +index 774b597b34198d55bdec861e3ebabb36bac8e33e..d099b76082e59baf42de8e265eb2bc593c6e6f86 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -1312,7 +1312,7 @@ public abstract class PlayerList { +@@ -1310,7 +1310,7 @@ public abstract class PlayerList { public void setViewDistance(int viewDistance) { this.viewDistance = viewDistance; @@ -28345,7 +28345,7 @@ index 12988d4c0b72d0648ba51c7fb07f446a713c559b..4460b0fd4770e93874332fabc63df952 for (ServerLevel serverLevel : this.server.getAllLevels()) { if (serverLevel != null) { -@@ -1323,7 +1323,7 @@ public abstract class PlayerList { +@@ -1321,7 +1321,7 @@ public abstract class PlayerList { public void setSimulationDistance(int simulationDistance) { this.simulationDistance = simulationDistance; diff --git a/paper-server/patches/features/0024-Incremental-chunk-and-player-saving.patch b/paper-server/patches/features/0024-Incremental-chunk-and-player-saving.patch index 048f96f69..b8531070f 100644 --- a/paper-server/patches/features/0024-Incremental-chunk-and-player-saving.patch +++ b/paper-server/patches/features/0024-Incremental-chunk-and-player-saving.patch @@ -83,7 +83,7 @@ index 34b7769663e235b93c6388ab0c92c00f0297e42f..dda8d38ef61672cc714d9e5a475f9b04 // Paper start - add close param this.save(progress, flush, skipSave, false); diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index 18439057b996a55833e1bfc60dc293de432d2902..18c0a3de3fd04879f84306e09f5a30502a3d5077 100644 +index 514ff8543dbbe1c6ae47c7fd6c1545b87d3b2927..4726c980ad52c1300de16b7607006ea4a13325eb 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java @@ -195,6 +195,7 @@ import org.slf4j.Logger; @@ -95,7 +95,7 @@ index 18439057b996a55833e1bfc60dc293de432d2902..18c0a3de3fd04879f84306e09f5a3050 private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10; private static final int FLY_STAT_RECORDING_SPEED = 25; diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 5a60527c9feb3606d85488b3cf215c451ca033de..dea72819f2933e5a806bb3a0603e4ebdf7f99456 100644 +index d099b76082e59baf42de8e265eb2bc593c6e6f86..802357d8b582539e08a8d48024ebe9c38493a2b3 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -489,6 +489,7 @@ public abstract class PlayerList { @@ -106,7 +106,7 @@ index 5a60527c9feb3606d85488b3cf215c451ca033de..dea72819f2933e5a806bb3a0603e4ebd this.playerIo.save(player); ServerStatsCounter serverStatsCounter = player.getStats(); // CraftBukkit if (serverStatsCounter != null) { -@@ -1059,9 +1060,23 @@ public abstract class PlayerList { +@@ -1057,9 +1058,23 @@ public abstract class PlayerList { } public void saveAll() { diff --git a/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch b/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch index 4b59be15b..040c0f3e1 100644 --- a/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch +++ b/paper-server/patches/sources/net/minecraft/server/players/PlayerList.java.patch @@ -339,7 +339,7 @@ } @Override -@@ -319,56 +_,138 @@ +@@ -319,56 +_,136 @@ } protected void save(ServerPlayer player) { @@ -420,14 +420,11 @@ player.unRide(); -- for (ThrownEnderpearl thrownEnderpearl : player.getEnderPearls()) { + for (ThrownEnderpearl thrownEnderpearl : player.getEnderPearls()) { - thrownEnderpearl.setRemoved(Entity.RemovalReason.UNLOADED_WITH_PLAYER); -+ for (ThrownEnderpearl thrownEnderpearl : new java.util.ArrayList<>(player.getEnderPearls())) { // Paper - copy, setOwner will remove from list; + // Paper start - Allow using old ender pearl behavior + if (!thrownEnderpearl.level().paperConfig().misc.legacyEnderPearlBehavior) { + thrownEnderpearl.setRemoved(Entity.RemovalReason.UNLOADED_WITH_PLAYER, org.bukkit.event.entity.EntityRemoveEvent.Cause.PLAYER_QUIT); // CraftBukkit - add Bukkit remove cause -+ } else { -+ thrownEnderpearl.setOwner(null); + } + // Paper end - Allow using old ender pearl behavior }