aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBjarne Koll <[email protected]>2023-10-06 22:34:00 +0200
committerGitHub <[email protected]>2023-10-06 21:34:00 +0100
commit29a02095754a8bc76f996f53e1da1cc04b5fd167 (patch)
tree36bbf3b78cbdff19cd27a69037459e24fcb68c21
parent08c0b488b9f1e56a4465cfabe6212d0351b69e59 (diff)
downloadPaper-29a02095754a8bc76f996f53e1da1cc04b5fd167.tar.gz
Paper-29a02095754a8bc76f996f53e1da1cc04b5fd167.zip
Properly check water block when random ticking ice (#9804)
Readds a lost update to the shared mutable state in the random block ticking optimisation.
-rw-r--r--patches/server/0691-Optimise-random-block-ticking.patch7
-rw-r--r--patches/server/0694-Detail-more-information-in-watchdog-dumps.patch6
-rw-r--r--patches/server/0698-Fix-merchant-inventory-not-closing-on-entity-removal.patch4
-rw-r--r--patches/server/0809-Don-t-tick-markers.patch4
-rw-r--r--patches/server/0818-Add-Alternate-Current-redstone-implementation.patch4
-rw-r--r--patches/server/0825-Prevent-empty-items-from-being-added-to-world.patch4
-rw-r--r--patches/server/0859-Fix-a-bunch-of-vanilla-bugs.patch4
-rw-r--r--patches/server/0860-Remove-unnecessary-onTrackingStart-during-navigation.patch6
-rw-r--r--patches/server/0885-check-global-player-list-where-appropriate.patch4
-rw-r--r--patches/server/0933-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch4
-rw-r--r--patches/server/1034-Fix-missing-map-initialize-event-call.patch4
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<LivingEntity> 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) {