From 29a02095754a8bc76f996f53e1da1cc04b5fd167 Mon Sep 17 00:00:00 2001 From: Bjarne Koll Date: Fri, 6 Oct 2023 22:34:00 +0200 Subject: Properly check water block when random ticking ice (#9804) Readds a lost update to the shared mutable state in the random block ticking optimisation. --- patches/server/0691-Optimise-random-block-ticking.patch | 7 ++++--- .../server/0694-Detail-more-information-in-watchdog-dumps.patch | 6 +++--- ...0698-Fix-merchant-inventory-not-closing-on-entity-removal.patch | 4 ++-- patches/server/0809-Don-t-tick-markers.patch | 4 ++-- .../0818-Add-Alternate-Current-redstone-implementation.patch | 4 ++-- .../0825-Prevent-empty-items-from-being-added-to-world.patch | 4 ++-- patches/server/0859-Fix-a-bunch-of-vanilla-bugs.patch | 4 ++-- ...0860-Remove-unnecessary-onTrackingStart-during-navigation.patch | 6 +++--- .../server/0885-check-global-player-list-where-appropriate.patch | 4 ++-- .../0933-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch | 4 ++-- patches/server/1034-Fix-missing-map-initialize-event-call.patch | 4 ++-- 11 files changed, 26 insertions(+), 25 deletions(-) diff --git a/patches/server/0691-Optimise-random-block-ticking.patch b/patches/server/0691-Optimise-random-block-ticking.patch index 9e99f20005..981e905456 100644 --- a/patches/server/0691-Optimise-random-block-ticking.patch +++ b/patches/server/0691-Optimise-random-block-ticking.patch @@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5c39bf8a3975e632a4f41938306d9b2eb77f335d..5478b17a00c34c927455dddf804c4d4fbba7e7a9 100644 +index 5c39bf8a3975e632a4f41938306d9b2eb77f335d..ab2ba79aa6ef36a86173e47abdac71a115693d02 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -839,6 +839,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -116,7 +116,7 @@ index 5c39bf8a3975e632a4f41938306d9b2eb77f335d..5478b17a00c34c927455dddf804c4d4f if (this.isRainingAt(blockposition)) { DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); -@@ -881,61 +887,67 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -881,61 +887,68 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!this.paperConfig().environment.disableIceAndSnow) { // Paper for (int l = 0; l < randomTickSpeed; ++l) { if (this.random.nextInt(48) == 0) { @@ -202,6 +202,7 @@ index 5c39bf8a3975e632a4f41938306d9b2eb77f335d..5478b17a00c34c927455dddf804c4d4f - if (biomebase.shouldFreeze(this, blockposition2)) { - org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(this, blockposition2, Blocks.ICE.defaultBlockState(), null); // CraftBukkit ++ blockposition1.setY(downY); + if (biomebase.shouldFreeze(this, blockposition1)) { + org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(this, blockposition1, Blocks.ICE.defaultBlockState(), null); // CraftBukkit } @@ -214,7 +215,7 @@ index 5c39bf8a3975e632a4f41938306d9b2eb77f335d..5478b17a00c34c927455dddf804c4d4f if (i > 0 && biomebase.shouldSnow(this, blockposition1)) { BlockState iblockdata = this.getBlockState(blockposition1); -@@ -953,12 +965,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -953,12 +966,13 @@ public class ServerLevel extends Level implements WorldGenLevel { } } diff --git a/patches/server/0694-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0694-Detail-more-information-in-watchdog-dumps.patch index 05527ef60a..da5cdf4ab8 100644 --- a/patches/server/0694-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0694-Detail-more-information-in-watchdog-dumps.patch @@ -76,10 +76,10 @@ index 047fc7206131e0f36ab45d04e98b7a235431e342..6ac03dee902051a26493dba468d6a2f5 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5478b17a00c34c927455dddf804c4d4fbba7e7a9..bf0a263ca5cde88479b475fc3e8377a72b1834d9 100644 +index ab2ba79aa6ef36a86173e47abdac71a115693d02..08027ef81e46a6346b2acedd82f66ffc2297559d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1215,7 +1215,26 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1216,7 +1216,26 @@ public class ServerLevel extends Level implements WorldGenLevel { } @@ -106,7 +106,7 @@ index 5478b17a00c34c927455dddf804c4d4fbba7e7a9..bf0a263ca5cde88479b475fc3e8377a7 ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper -@@ -1255,7 +1274,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1256,7 +1275,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } // } finally { timer.stopTiming(); } // Paper - timings - move up diff --git a/patches/server/0698-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0698-Fix-merchant-inventory-not-closing-on-entity-removal.patch index 4859ad5e48..26b94b2d8b 100644 --- a/patches/server/0698-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0698-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bf0a263ca5cde88479b475fc3e8377a72b1834d9..0b069e495d9f0523ee2ce5f2124d9f9ffd436625 100644 +index 08027ef81e46a6346b2acedd82f66ffc2297559d..b0d8d28aa4a5cd95671a90e3f9981c532726b8ca 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2641,6 +2641,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2642,6 +2642,11 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message diff --git a/patches/server/0809-Don-t-tick-markers.patch b/patches/server/0809-Don-t-tick-markers.patch index 5a9d38f4e4..bb63d01361 100644 --- a/patches/server/0809-Don-t-tick-markers.patch +++ b/patches/server/0809-Don-t-tick-markers.patch @@ -23,10 +23,10 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5f43aedc6596e2b1ac7af97115157147 } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0b069e495d9f0523ee2ce5f2124d9f9ffd436625..da003497b56a729cfed1ff58c0d00987ce0ebd16 100644 +index b0d8d28aa4a5cd95671a90e3f9981c532726b8ca..b59ecc3571234a6168f9ba235e5acbfa733c0512 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2551,6 +2551,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2552,6 +2552,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void onTickingStart(Entity entity) { diff --git a/patches/server/0818-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0818-Add-Alternate-Current-redstone-implementation.patch index 98229a3814..2615719296 100644 --- a/patches/server/0818-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/0818-Add-Alternate-Current-redstone-implementation.patch @@ -2008,7 +2008,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index da003497b56a729cfed1ff58c0d00987ce0ebd16..e70d6a446f33c266e6117467c69bc404fd23304b 100644 +index b59ecc3571234a6168f9ba235e5acbfa733c0512..64a3b789a46438dcd01a5429dcab641467cf5f00 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -222,6 +222,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2019,7 +2019,7 @@ index da003497b56a729cfed1ff58c0d00987ce0ebd16..e70d6a446f33c266e6117467c69bc404 public static Throwable getAddToWorldStackTrace(Entity entity) { final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); -@@ -2540,6 +2541,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2541,6 +2542,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return this.randomSequences; } diff --git a/patches/server/0825-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0825-Prevent-empty-items-from-being-added-to-world.patch index f76e2fbf12..a286185139 100644 --- a/patches/server/0825-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0825-Prevent-empty-items-from-being-added-to-world.patch @@ -7,10 +7,10 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e70d6a446f33c266e6117467c69bc404fd23304b..ca28be4a2f11a04cbc6555dc7e2eb8ef7aeb8f4e 100644 +index 64a3b789a46438dcd01a5429dcab641467cf5f00..d79b354e6723450223e106d19f20aa096ec7a02a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1558,6 +1558,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1559,6 +1559,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { diff --git a/patches/server/0859-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0859-Fix-a-bunch-of-vanilla-bugs.patch index 49a728f77e..3119ba20b8 100644 --- a/patches/server/0859-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0859-Fix-a-bunch-of-vanilla-bugs.patch @@ -124,10 +124,10 @@ index c16e84ee54bf2a65d8bd41f8156b7a4edee5e941..d7dcffde09e099ee2554ec201f553ee0 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ca28be4a2f11a04cbc6555dc7e2eb8ef7aeb8f4e..4686600b3fea6c7800c7746fa47acab6c90540a2 100644 +index d79b354e6723450223e106d19f20aa096ec7a02a..67b4bba742cfd1eacc1ac3f230e78874efbb10cc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1004,7 +1004,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1005,7 +1005,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } else { AABB axisalignedbb = (new AABB(blockposition1, new BlockPos(blockposition1.getX(), this.getMaxBuildHeight(), blockposition1.getZ()))).inflate(3.0D); List list = this.getEntitiesOfClass(LivingEntity.class, axisalignedbb, (entityliving) -> { diff --git a/patches/server/0860-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0860-Remove-unnecessary-onTrackingStart-during-navigation.patch index 5e8db8e7b7..2b050eec64 100644 --- a/patches/server/0860-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0860-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4686600b3fea6c7800c7746fa47acab6c90540a2..26888d5bdfe16a8c69d757b134d9e4e1978cc7ba 100644 +index 67b4bba742cfd1eacc1ac3f230e78874efbb10cc..5803f7b286cd262a8f79d0adb159d897361275a2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2587,7 +2587,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2588,7 +2588,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; @@ -17,7 +17,7 @@ index 4686600b3fea6c7800c7746fa47acab6c90540a2..26888d5bdfe16a8c69d757b134d9e4e1 String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); -@@ -2672,7 +2672,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2673,7 +2673,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; diff --git a/patches/server/0885-check-global-player-list-where-appropriate.patch b/patches/server/0885-check-global-player-list-where-appropriate.patch index 08c814cfb5..dc5efff478 100644 --- a/patches/server/0885-check-global-player-list-where-appropriate.patch +++ b/patches/server/0885-check-global-player-list-where-appropriate.patch @@ -7,10 +7,10 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 26888d5bdfe16a8c69d757b134d9e4e1978cc7ba..eae08569a3e338641740bf1ca8e92bc8e8455cdd 100644 +index 5803f7b286cd262a8f79d0adb159d897361275a2..42f0ea87dd0bb3be3fbe9e0f7d87582cd3cd7c97 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2709,4 +2709,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2710,4 +2710,12 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::move); } } diff --git a/patches/server/0933-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0933-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index a895254923..960d48879a 100644 --- a/patches/server/0933-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0933-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index eae08569a3e338641740bf1ca8e92bc8e8455cdd..a35b98e92a8afaa1d61e86a614466e64ef6e948f 100644 +index 42f0ea87dd0bb3be3fbe9e0f7d87582cd3cd7c97..2858fe182e617429f7dcbd7b5d2d2f5df722d5bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1695,6 +1695,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1696,6 +1696,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void gameEvent(GameEvent event, Vec3 emitterPos, GameEvent.Context emitter) { diff --git a/patches/server/1034-Fix-missing-map-initialize-event-call.patch b/patches/server/1034-Fix-missing-map-initialize-event-call.patch index 5f84bbfe02..e9765c3029 100644 --- a/patches/server/1034-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1034-Fix-missing-map-initialize-event-call.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix missing map initialize event call diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f502b01b564bd33c449cbe621966ef4076a38cca..51d282b524b5249438f7744f7f0b1cc27b76470e 100644 +index 2f2ca1c6d0b329521c4545015a878418870216f0..17610196db7a1c6feb2cf74a02479a8691aa323f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2099,7 +2099,23 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2100,7 +2100,23 @@ public class ServerLevel extends Level implements WorldGenLevel { @Nullable @Override public MapItemSavedData getMapData(String id) { -- cgit v1.2.3