9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-29 11:59:17 +00:00

fix: fix dragon suppression(#571)

This commit is contained in:
MC_XiaoHei
2025-07-05 15:43:36 +08:00
parent 82008750c3
commit ff0841bd7e
4 changed files with 24 additions and 10 deletions

View File

@@ -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 {

View File

@@ -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

View File

@@ -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

View File

@@ -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;