diff --git a/leaves-server/minecraft-patches/features/0038-Catch-update-suppression-crash.patch b/leaves-server/minecraft-patches/features/0038-Catch-update-suppression-crash.patch index e78ed030..92e1d48a 100644 --- a/leaves-server/minecraft-patches/features/0038-Catch-update-suppression-crash.patch +++ b/leaves-server/minecraft-patches/features/0038-Catch-update-suppression-crash.patch @@ -34,6 +34,20 @@ index 7e339cb26a132487ac0ab91d3db7e4885bacd545..44079b08d2abd53c12cea3441a38b0b6 } catch (Throwable var7) { CrashReport crashReport = CrashReport.forThrowable(var7, "Exception ticking world"); serverLevel.fillReportDetails(crashReport); +diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java +index ed05aaa76e1e34ca82fcc7cfb73f371a11600eee..31fb5ea1e33672ae71210776a0302f0ef87c6814 100644 +--- a/net/minecraft/server/level/ServerLevel.java ++++ b/net/minecraft/server/level/ServerLevel.java +@@ -814,6 +814,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe + if (org.leavesmc.leaves.LeavesConfig.performance.remove.tickGuardLambda) { + try { + this.tickNonPassenger(entity); // Leaves - changed ++ } catch (org.leavesmc.leaves.util.UpdateSuppressionException exception) { // Leaves start - dragon suppression fix ++ org.leavesmc.leaves.LeavesLogger.LOGGER.info(exception.getMessage()); ++ // Leaves end - dragon suppression fix + } catch (Throwable throwable) { + if (throwable instanceof ThreadDeath) throw throwable; // Paper + // Paper start - Prevent block entity and entity crashes diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java index fe478f90e3ada46548692962a2d2a1e5e63bb4b6..5e74fdf09d5063b955d9c5ed63775b38f562687e 100644 --- a/net/minecraft/server/level/ServerPlayer.java @@ -50,7 +64,7 @@ index fe478f90e3ada46548692962a2d2a1e5e63bb4b6..5e74fdf09d5063b955d9c5ed63775b38 CrashReport crashReport = CrashReport.forThrowable(var4, "Ticking player"); CrashReportCategory crashReportCategory = crashReport.addCategory("Player being ticked"); diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index b922ac57ca5bbe9e126be9b24a79718bf62888f6..2a87494c2dcfc9e3d4641bc2dd9ee97ed15bdd20 100644 +index e98271f6b9c4d1f2866b83b52154a1f8645bd5da..a3bb7ce9abd78ef3c999eeeb7fee39b3a5a6aad4 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -1351,9 +1351,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -64,7 +78,7 @@ index b922ac57ca5bbe9e126be9b24a79718bf62888f6..2a87494c2dcfc9e3d4641bc2dd9ee97e + } catch (org.leavesmc.leaves.util.UpdateSuppressionException exception) { + org.leavesmc.leaves.LeavesLogger.LOGGER.info(exception.getMessage()); } -+ // Leaves start - update suppression crash fix ++ // Leaves end - update suppression crash fix return true; } else { diff --git a/leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch b/leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch index 6217d466..676d2391 100644 --- a/leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch +++ b/leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch @@ -27,10 +27,10 @@ index 019886669966c69936ae6591598c97a8afbfd3db..b6fb1f2ba8622d9d319210ea7cf0a984 SectionPos lastSectionPos = player.getLastSectionPos(); diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index ed05aaa76e1e34ca82fcc7cfb73f371a11600eee..4a34e43d5471bb12ef2535a1a9246376310c56f1 100644 +index 31fb5ea1e33672ae71210776a0302f0ef87c6814..e6de7ef46d197c14495d4b55d094af34816fc063 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java -@@ -834,6 +834,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -837,6 +837,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe } } ); @@ -62,7 +62,7 @@ index 2c8f0194c0a4d8a235371f5ffaead8bbf35738ea..767944fdfe19f0bcfeff92029958c455 if (!allowMovement) { io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK, diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 6ee9d69b31bd677df1b54995d0b952168fa1ccd7..5e134b1b755904023d32f89e97525b613f3dc503 100644 +index a3bb7ce9abd78ef3c999eeeb7fee39b3a5a6aad4..2e4f85a96a9822268ca19de801fefd45cea6c4e4 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -1118,7 +1118,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess diff --git a/leaves-server/minecraft-patches/features/0074-Replay-Mod-API.patch b/leaves-server/minecraft-patches/features/0074-Replay-Mod-API.patch index ce38c3bb..d5dd8ca1 100644 --- a/leaves-server/minecraft-patches/features/0074-Replay-Mod-API.patch +++ b/leaves-server/minecraft-patches/features/0074-Replay-Mod-API.patch @@ -120,10 +120,10 @@ index f2286b96b8f40b4588f817913c42ae7b4a92340f..dbe6c37642d35ac6ee8b428cf1e45878 .filter(serverPlayer -> !playerList.isOp(serverPlayer.getGameProfile())) .map(serverPlayer -> serverPlayer.getGameProfile().getName()), diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 4a34e43d5471bb12ef2535a1a9246376310c56f1..d50d0874aa34578af3ff8a6bb7c889ba6ab885d6 100644 +index e6de7ef46d197c14495d4b55d094af34816fc063..5072dc7ac71e1640b2aad35c3c3560e0860ece94 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java -@@ -2690,7 +2690,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2693,7 +2693,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe if (entity instanceof ServerPlayer serverPlayer) { ServerLevel.this.players.add(serverPlayer); // Leaves start - skip @@ -132,7 +132,7 @@ index 4a34e43d5471bb12ef2535a1a9246376310c56f1..d50d0874aa34578af3ff8a6bb7c889ba ServerLevel.this.realPlayers.add(serverPlayer); } // Leaves end - skip -@@ -2773,7 +2773,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2776,7 +2776,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe if (entity instanceof ServerPlayer serverPlayer) { ServerLevel.this.players.remove(serverPlayer); // Leaves start - skip diff --git a/leaves-server/minecraft-patches/features/0090-Servux-Protocol.patch b/leaves-server/minecraft-patches/features/0090-Servux-Protocol.patch index e509426b..272a3a53 100644 --- a/leaves-server/minecraft-patches/features/0090-Servux-Protocol.patch +++ b/leaves-server/minecraft-patches/features/0090-Servux-Protocol.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Servux Protocol diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index d50d0874aa34578af3ff8a6bb7c889ba6ab885d6..a1372102dc860a2136bf0840ee7105df737ab266 100644 +index 5072dc7ac71e1640b2aad35c3c3560e0860ece94..f78c4f3f2047564730050f16693c00aa2c29a4e0 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java -@@ -2228,6 +2228,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2231,6 +2231,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe } this.lastSpawnChunkRadius = i;