diff --git a/gradle.properties b/gradle.properties index b77035782..abd3e57e9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.purpurmc.purpur version = 1.19.2-R0.1-SNAPSHOT -paperCommit = 0bf8790c9ccd7e7e694bb61839e70948359ee53c +paperCommit = aabf67672174c4b3bf5a7de65fdeb5315ade37dc org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 21ab95011..9f79f81b1 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -3145,10 +3145,10 @@ index 3b144c820531122eb37d41be06c182b5f5dc0724..88152988425b7b02ec5ce229ba4c24b4 set.clear(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a030762ea9888b5fab04c5c80acdacccb76f0e46..e3ba1f8f90b5cb8c8bf315f43dae63cd5ba0d77e 100644 +index 3d986805c89d22330d6ad1e09760940b2f399214..0c71d72fb04eb00e159ddd456df82376fc912b4e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -690,7 +690,20 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -693,7 +693,20 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.push("tick"); @@ -3170,7 +3170,7 @@ index a030762ea9888b5fab04c5c80acdacccb76f0e46..e3ba1f8f90b5cb8c8bf315f43dae63cd gameprofilerfiller.pop(); } } -@@ -757,9 +770,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -760,9 +773,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); @@ -3183,7 +3183,7 @@ index a030762ea9888b5fab04c5c80acdacccb76f0e46..e3ba1f8f90b5cb8c8bf315f43dae63cd public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); -@@ -770,7 +785,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -773,7 +788,7 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.push("thunder"); final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change @@ -3192,7 +3192,7 @@ index a030762ea9888b5fab04c5c80acdacccb76f0e46..e3ba1f8f90b5cb8c8bf315f43dae63cd blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper if (this.isRainingAt(blockposition)) { DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); -@@ -794,7 +809,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -797,7 +812,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.popPush("iceandsnow"); @@ -5664,7 +5664,7 @@ index b1992ed5136cc7dcf04219868b94b3c37ae36b4b..5b5339cba819368f4d6b7eaf404fa59b @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b777c1294370bdc68bc6265b039e2a405d89f2f5..a464d0a771875d3574fe4e461abe7212a933baf5 100644 +index b443aba38258f501f8f00be6b055f07b709277c4..660d3f6e8a59751aa1d5b71f5bab72254b6065b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -248,7 +248,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0002-Fix-pufferfish-issues.patch b/patches/server/0002-Fix-pufferfish-issues.patch index d87b1f101..207967dc9 100644 --- a/patches/server/0002-Fix-pufferfish-issues.patch +++ b/patches/server/0002-Fix-pufferfish-issues.patch @@ -38,10 +38,10 @@ index 519883c5549744e047a8a96afee142746fcb49cd..7cf328cf8d31f1041cb964a5a6289c27 io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e3ba1f8f90b5cb8c8bf315f43dae63cd5ba0d77e..d5b17e284c7305b51f21f908bc2b12b3927d7790 100644 +index 0c71d72fb04eb00e159ddd456df82376fc912b4e..da146b6e30a97ed27732165e3defa747bef7c14b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -770,7 +770,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -773,7 +773,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0007-Component-related-conveniences.patch b/patches/server/0007-Component-related-conveniences.patch index 7c15b5fd8..036363c8b 100644 --- a/patches/server/0007-Component-related-conveniences.patch +++ b/patches/server/0007-Component-related-conveniences.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 94d87f6bd2c27b0d6cc4547e8bc6e87b95f1ad32..db23ce6f9253697592d80e44c192e9a97d06b83b 100644 +index 266a26d73dd5aec427b64a638693decf70ea36cb..2049fa1008be5208d9bb168dd65483613a7296f1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1704,6 +1704,26 @@ public class ServerPlayer extends Player { @@ -36,10 +36,10 @@ index 94d87f6bd2c27b0d6cc4547e8bc6e87b95f1ad32..db23ce6f9253697592d80e44c192e9a9 public void displayClientMessage(Component message, boolean overlay) { this.sendSystemMessage(message, overlay); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 37d8a797bb590c30bf42ab04128489a9390684d3..3ef2c88ddec0f7088d1d88d1d98286bed382e1c1 100644 +index 8326775a4005b03468fba1ec556f951dc740c302..26400f0efc7e0f97d2010532d42d0caaff99e071 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1068,6 +1068,20 @@ public abstract class PlayerList { +@@ -1070,6 +1070,20 @@ public abstract class PlayerList { } // CraftBukkit end diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index d38582de8..d9e35ad1d 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -34,10 +34,10 @@ index 98a166edfda01f5e07a144a34fd57f0e83b8893c..50d077470a3a606b97ea4ae499837de6 this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d5b17e284c7305b51f21f908bc2b12b3927d7790..9fe1f5aea08be6395e16de18e5abfe72a150280f 100644 +index da146b6e30a97ed27732165e3defa747bef7c14b..e79963efa8781ec8189255a44e8789ec279b0a61 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -219,6 +219,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -220,6 +220,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public boolean hasPhysicsEvent = true; // Paper public boolean hasEntityMoveEvent = false; // Paper private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) diff --git a/patches/server/0010-Barrels-and-enderchests-6-rows.patch b/patches/server/0010-Barrels-and-enderchests-6-rows.patch index 549d927df..d7fab0de0 100644 --- a/patches/server/0010-Barrels-and-enderchests-6-rows.patch +++ b/patches/server/0010-Barrels-and-enderchests-6-rows.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 2fbe18c4a3ad86a319122aecdb7735cd7f8a238a..989562f870c359cf4655af2b2013b2b1b5f1f229 100644 +index 26400f0efc7e0f97d2010532d42d0caaff99e071..482e6e00639f80497c61d6cb42502a05559d3ff9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1193,6 +1193,27 @@ public abstract class PlayerList { +@@ -1195,6 +1195,27 @@ public abstract class PlayerList { player.getBukkitEntity().recalculatePermissions(); // CraftBukkit this.server.getCommands().sendCommands(player); } // Paper diff --git a/patches/server/0019-Player-invulnerabilities.patch b/patches/server/0019-Player-invulnerabilities.patch index 97ccb429c..765cb71f1 100644 --- a/patches/server/0019-Player-invulnerabilities.patch +++ b/patches/server/0019-Player-invulnerabilities.patch @@ -108,10 +108,10 @@ index b10a5f39145cf62b981fad6595e42ac09602d510..9873e559675203df5fc0b44c820fdd26 this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0751456e9431359afa41d224c5438ac6e71644a1..27db72513532ef69c49d4c805f1bf76718a37908 100644 +index 482e6e00639f80497c61d6cb42502a05559d3ff9..c00f332e466b6d57877d80f0038d2f65c25fd751 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1008,6 +1008,8 @@ public abstract class PlayerList { +@@ -1010,6 +1010,8 @@ public abstract class PlayerList { } // Paper end diff --git a/patches/server/0029-Zombie-horse-naturally-spawn.patch b/patches/server/0029-Zombie-horse-naturally-spawn.patch index 256464414..4eada6891 100644 --- a/patches/server/0029-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0029-Zombie-horse-naturally-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a12238ee1dc58232f04586f60fb7f662eac22a10..6720ee545d93aa773c470ab8cbb0df0e9fd46010 100644 +index e79963efa8781ec8189255a44e8789ec279b0a61..2230bd2eae69b850c3f6dafd56edb8835a158a4c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -793,9 +793,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -796,9 +796,15 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper if (flag1) { diff --git a/patches/server/0051-Add-permission-for-F3-N-debug.patch b/patches/server/0051-Add-permission-for-F3-N-debug.patch index 048914616..9677b9733 100644 --- a/patches/server/0051-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0051-Add-permission-for-F3-N-debug.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index fc27bdf91b946ac4c2a6e4adec3693fd0ea5324a..94d097941ae9fc720e22a1c9d5d2ce62c07fe078 100644 +index c00f332e466b6d57877d80f0038d2f65c25fd751..26ebd7726783abd97c968c5183545a6e74082956 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1187,6 +1187,7 @@ public abstract class PlayerList { +@@ -1189,6 +1189,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + permissionLevel); } diff --git a/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch index c9fb91be9..59e8a269e 100644 --- a/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6720ee545d93aa773c470ab8cbb0df0e9fd46010..28fd992a8ddc2089f7a7e87e14ef271d453ac4bb 100644 +index 2230bd2eae69b850c3f6dafd56edb8835a158a4c..67bc56e2abbaeed93591eb3ec6242fe1e09cdfae 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -506,7 +506,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -509,7 +509,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.dragonParts = new Int2ObjectOpenHashMap(); this.tickTime = flag1; this.server = minecraftserver; diff --git a/patches/server/0103-Configurable-daylight-cycle.patch b/patches/server/0103-Configurable-daylight-cycle.patch index f3edf0890..6f62efd7e 100644 --- a/patches/server/0103-Configurable-daylight-cycle.patch +++ b/patches/server/0103-Configurable-daylight-cycle.patch @@ -31,10 +31,10 @@ index b1098555ea7c96815dc85ab440544d9db7fee978..eb12fed7ee6d7d3a5f5b9e99d8f11b38 } ServerPlayer entityplayer = (ServerPlayer) entityhuman; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5b6e2fcf0f8fc854c08dcdf40bdae91fd8d405f5..64edb1e92e9203f4e0a691adc69bdbbe8ec36607 100644 +index 67bc56e2abbaeed93591eb3ec6242fe1e09cdfae..cc486f43325bc8910e5366cc8a473891e2176461 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -211,6 +211,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -212,6 +212,8 @@ public class ServerLevel extends Level implements WorldGenLevel { private final StructureManager structureManager; private final StructureCheck structureCheck; private final boolean tickTime; @@ -43,7 +43,7 @@ index 5b6e2fcf0f8fc854c08dcdf40bdae91fd8d405f5..64edb1e92e9203f4e0a691adc69bdbbe public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick // CraftBukkit start -@@ -585,6 +587,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -588,6 +590,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper @@ -51,7 +51,7 @@ index 5b6e2fcf0f8fc854c08dcdf40bdae91fd8d405f5..64edb1e92e9203f4e0a691adc69bdbbe } public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) { -@@ -755,6 +758,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -758,6 +761,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setGameTime(i); this.serverLevelData.getScheduledEvents().tick(this.server, i); if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) { @@ -65,7 +65,7 @@ index 5b6e2fcf0f8fc854c08dcdf40bdae91fd8d405f5..64edb1e92e9203f4e0a691adc69bdbbe this.setDayTime(this.levelData.getDayTime() + 1L); } -@@ -763,7 +773,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -766,7 +776,21 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDayTime(long timeOfDay) { this.serverLevelData.setDayTime(timeOfDay); diff --git a/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch b/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch index 80e6d133c..4246ae42f 100644 --- a/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch +++ b/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Spread out and optimise player list ticksSpread out and diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 94d097941ae9fc720e22a1c9d5d2ce62c07fe078..4b1c9e75bb4148335a106083dd8199fa1f7d808d 100644 +index 26ebd7726783abd97c968c5183545a6e74082956..22fde2975bc5d66bd60ce0325945ee7c5afac55e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1022,22 +1022,22 @@ public abstract class PlayerList { +@@ -1024,22 +1024,22 @@ public abstract class PlayerList { } public void tick() { @@ -46,7 +46,7 @@ index 94d097941ae9fc720e22a1c9d5d2ce62c07fe078..4b1c9e75bb4148335a106083dd8199fa public void broadcastAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0655abd90e7fc34518153b320f5674bd4ebe8f5d..6cb6f091d83f02a8e19261ffd4986336d996ba84 100644 +index 28ee76ac0df38787274a0c2e84738ece7537f5be..711f47c3d897027613ed1010011a0be1efcc073b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1848,7 +1848,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0125-Implement-TPSBar.patch b/patches/server/0125-Implement-TPSBar.patch index f753ca329..b73a7c896 100644 --- a/patches/server/0125-Implement-TPSBar.patch +++ b/patches/server/0125-Implement-TPSBar.patch @@ -83,10 +83,10 @@ index 725358518b73b908c8150bdbabed68909c91f4d4..b858ce2ad443f6690dd71e56fb9eea14 // Purpur end } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0056694109587822601620df5062d933325ec2ae..37255fb6bff06d2aabf2acd2d435269b1a9dbb15 100644 +index 22fde2975bc5d66bd60ce0325945ee7c5afac55e..d1acb410384899866458fbb8b63284a0148c92f2 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -497,6 +497,7 @@ public abstract class PlayerList { +@@ -499,6 +499,7 @@ public abstract class PlayerList { scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); } // Paper end @@ -94,7 +94,7 @@ index 0056694109587822601620df5062d933325ec2ae..37255fb6bff06d2aabf2acd2d435269b // CraftBukkit - Moved from above, added world PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); } -@@ -607,6 +608,8 @@ public abstract class PlayerList { +@@ -609,6 +610,8 @@ public abstract class PlayerList { } public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { // Paper end diff --git a/patches/server/0152-Config-for-skipping-night.patch b/patches/server/0152-Config-for-skipping-night.patch index 23d45f4f7..155efe551 100644 --- a/patches/server/0152-Config-for-skipping-night.patch +++ b/patches/server/0152-Config-for-skipping-night.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 38fe99c7b8db25933081d741553ded03722c177f..95a7843b8a95e8a00202f81566d967e1a0f2cbae 100644 +index cc486f43325bc8910e5366cc8a473891e2176461..d96880201101e4024c0926d9aef22ed453c386b6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -626,7 +626,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -629,7 +629,7 @@ public class ServerLevel extends Level implements WorldGenLevel { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; diff --git a/patches/server/0189-Make-lightning-rod-range-configurable.patch b/patches/server/0189-Make-lightning-rod-range-configurable.patch index 74077fcf6..b529e54c0 100644 --- a/patches/server/0189-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0189-Make-lightning-rod-range-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 95a7843b8a95e8a00202f81566d967e1a0f2cbae..6bc18cccb6714e03d8745785b7c93e278f0f0add 100644 +index d96880201101e4024c0926d9aef22ed453c386b6..4ba8fe5b4f9fdaa11a66611ec91c789071a77fe8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -936,7 +936,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -939,7 +939,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return holder.is(PoiTypes.LIGHTNING_ROD); }, (blockposition1) -> { return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1; diff --git a/patches/server/0191-Allow-player-join-full-server-by-permission.patch b/patches/server/0191-Allow-player-join-full-server-by-permission.patch index 55347ee52..0c7cd5dbf 100644 --- a/patches/server/0191-Allow-player-join-full-server-by-permission.patch +++ b/patches/server/0191-Allow-player-join-full-server-by-permission.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow player join full server by permission diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0e690d78c295ca13262230e105a3a26b89c26496..11711b048755cafcefe0e944b35531da15e1eda0 100644 +index d1acb410384899866458fbb8b63284a0148c92f2..a6fe2e75b3c21a420432f33c9f5666fc558a06d1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -777,7 +777,7 @@ public abstract class PlayerList { +@@ -779,7 +779,7 @@ public abstract class PlayerList { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure } else { // return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null; diff --git a/patches/server/0204-Customizable-sleeping-actionbar-messages.patch b/patches/server/0204-Customizable-sleeping-actionbar-messages.patch index 1418c5d2f..f5681150d 100644 --- a/patches/server/0204-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0204-Customizable-sleeping-actionbar-messages.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Customizable sleeping actionbar messages diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6bc18cccb6714e03d8745785b7c93e278f0f0add..1b389bde910a9c31913bd05e0863039e9810fa09 100644 +index 4ba8fe5b4f9fdaa11a66611ec91c789071a77fe8..ca73ce8aa96c581c50dcc1f0d870e78b0c69ee05 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -985,11 +985,27 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -988,11 +988,27 @@ public class ServerLevel extends Level implements WorldGenLevel { if (this.canSleepThroughNights()) { if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); diff --git a/patches/server/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 40cd8b062..ebb816bd6 100644 --- a/patches/server/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1b389bde910a9c31913bd05e0863039e9810fa09..650fec0af19d1d23b680858a1880a92dfb0b8531 100644 +index ca73ce8aa96c581c50dcc1f0d870e78b0c69ee05..e9f4e6aa5a1ad464eaf3e0beebd21fd577d2fe3c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1144,6 +1144,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1147,6 +1147,7 @@ public class ServerLevel extends Level implements WorldGenLevel { private void resetWeatherCycle() { // CraftBukkit start @@ -16,7 +16,7 @@ index 1b389bde910a9c31913bd05e0863039e9810fa09..650fec0af19d1d23b680858a1880a92d this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - when passing the night // If we stop due to everyone sleeping we should reset the weather duration to some other random value. // Not that everyone ever manages to get the whole server to sleep at the same time.... -@@ -1151,6 +1152,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1154,6 +1155,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setRainTime(0); } // CraftBukkit end diff --git a/patches/server/0254-Allow-void-trading.patch b/patches/server/0254-Allow-void-trading.patch index e127d21b1..79c69924d 100644 --- a/patches/server/0254-Allow-void-trading.patch +++ b/patches/server/0254-Allow-void-trading.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow void trading diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 650fec0af19d1d23b680858a1880a92dfb0b8531..c685e0acb2559e7415c94790d8392f0ee997ecc6 100644 +index e9f4e6aa5a1ad464eaf3e0beebd21fd577d2fe3c..fdc9de253ae6d20b4df71fd6e6c1bb98ec753abf 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2674,7 +2674,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2677,7 +2677,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message // Paper start diff --git a/patches/server/0288-Remove-Timings.patch b/patches/server/0288-Remove-Timings.patch index bcc6141d8..0a4116614 100644 --- a/patches/server/0288-Remove-Timings.patch +++ b/patches/server/0288-Remove-Timings.patch @@ -286,7 +286,7 @@ index 7875606264dc7bc2c4a0e8dfacecf07427c1d5a1..5a5c5a366e1156e1233efc04d0c0a605 @Override diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index b9d4878dd629886c4ef3e29ff1b729571d81d785..dbc32731718eed3aa749b811feebe2664bf142ed 100644 +index 9acfb1a0b15a304401ad3e5e8dfb869b15bf787a..01a6751f096eec3e7b2f854550fd812dabb52a90 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1002,15 +1002,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -591,10 +591,10 @@ index 378cc1f9e19eb9b18037ab8af92f65897e15a405..de4b8001ff0ddb1603fcca2b6829bb55 // Paper end - use set of chunks requiring updates, rather than iterating every single one loaded // Paper start - controlled flush for entity tracker packets diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8c70b3bbd 100644 +index fdc9de253ae6d20b4df71fd6e6c1bb98ec753abf..5a800731927ca20e95fbcd0e8b94999e52642a8e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -649,7 +649,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -652,7 +652,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.updateSkyBrightness(); this.tickTime(); gameprofilerfiller.popPush("tickPending"); @@ -603,7 +603,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 if (!this.isDebug()) { j = this.getGameTime(); gameprofilerfiller.push("blockTicks"); -@@ -658,20 +658,20 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -661,20 +661,20 @@ public class ServerLevel extends Level implements WorldGenLevel { this.fluidTicks.tick(j, 65536, this::tickFluid); gameprofilerfiller.pop(); } @@ -631,7 +631,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 this.handlingTick = false; gameprofilerfiller.pop(); boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players -@@ -682,7 +682,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -685,7 +685,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (flag || this.emptyTime++ < 300) { gameprofilerfiller.push("entities"); @@ -640,7 +640,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 if (this.dragonFight != null) { gameprofilerfiller.push("dragonFight"); this.dragonFight.tick(); -@@ -690,7 +690,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -693,7 +693,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } org.spigotmc.ActivationRange.activateEntities(this); // Spigot @@ -649,7 +649,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 this.entityTickList.forEach((entity) -> { if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed -@@ -730,8 +730,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -733,8 +733,8 @@ public class ServerLevel extends Level implements WorldGenLevel { } } }); @@ -660,7 +660,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 gameprofilerfiller.pop(); this.tickBlockEntities(); } -@@ -893,7 +893,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -896,7 +896,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper start - optimise random block ticking gameprofilerfiller.popPush("randomTick"); @@ -669,7 +669,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 if (randomTickSpeed > 0) { LevelChunkSection[] sections = chunk.getSections(); int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this); -@@ -927,7 +927,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -930,7 +930,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper end - optimise random block ticking @@ -678,7 +678,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 gameprofilerfiller.pop(); } -@@ -1221,8 +1221,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1224,8 +1224,8 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Paper start- timings final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); @@ -689,7 +689,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 // Paper end - timings entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1238,7 +1238,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1241,7 +1241,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.postTick(); // CraftBukkit } else { entity.inactiveTick(); } // Paper - EAR 2 this.getProfiler().pop(); @@ -698,7 +698,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1261,8 +1261,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1264,8 +1264,8 @@ public class ServerLevel extends Level implements WorldGenLevel { if (passenger instanceof Player || this.entityTickList.contains(passenger)) { // Paper - EAR 2 final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger); @@ -709,7 +709,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; -@@ -1292,7 +1292,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1295,7 +1295,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -718,7 +718,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 } } else { passenger.stopRiding(); -@@ -1312,14 +1312,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1315,14 +1315,14 @@ public class ServerLevel extends Level implements WorldGenLevel { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); } @@ -736,7 +736,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 // Copied from save() // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1331,7 +1331,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1334,7 +1334,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.convertable.saveDataTag(this.server.registryHolder, this.serverLevelData, this.server.getPlayerList().getSingleplayerData()); } // CraftBukkit end @@ -745,7 +745,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 } // Paper end -@@ -1340,7 +1340,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1343,7 +1343,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit @@ -754,7 +754,7 @@ index 014862d564726b64989df37957ba2b6b7ae81973..625a3af718ab3b256c43547bd91621f8 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1350,10 +1350,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1353,10 +1353,10 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStage(Component.translatable("menu.savingChunks")); } @@ -800,10 +800,10 @@ index cf24035eb1d145c2118d3ee57527f7cf9d2246fc..9dbd5c2e7d0c9bb26556ce32ced4c43a } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ee47c75137352c326a07c6e2b7eb3a35aee5f309..126afed7461d43906dbc84c798df180380288bc6 100644 +index a6fe2e75b3c21a420432f33c9f5666fc558a06d1..cc09274fb3c3068ecd56e4c3c280b4fc876e628f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1281,7 +1281,7 @@ public abstract class PlayerList { +@@ -1283,7 +1283,7 @@ public abstract class PlayerList { public void saveAll(int interval) { net.minecraft.server.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main @@ -812,7 +812,7 @@ index ee47c75137352c326a07c6e2b7eb3a35aee5f309..126afed7461d43906dbc84c798df1803 int numSaved = 0; long now = MinecraftServer.currentTick; for (int i = 0; i < this.players.size(); ++i) { -@@ -1292,7 +1292,7 @@ public abstract class PlayerList { +@@ -1294,7 +1294,7 @@ public abstract class PlayerList { } // Paper end } diff --git a/patches/server/0289-Remove-Mojang-Profiler.patch b/patches/server/0289-Remove-Mojang-Profiler.patch index dbb654a83..8bc835ee3 100644 --- a/patches/server/0289-Remove-Mojang-Profiler.patch +++ b/patches/server/0289-Remove-Mojang-Profiler.patch @@ -371,7 +371,7 @@ index 30093cd8bd35f0bbc8f26eca370622ee12a046b6..2986f110348b376bcdc64fa39b688855 ++j; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index dbc32731718eed3aa749b811feebe2664bf142ed..5ac4f0b3dc441b3388f87ac0fa3fa89e8d355bea 100644 +index 01a6751f096eec3e7b2f854550fd812dabb52a90..4dac83e54c82272f0f73663e9367bdaf7a49355b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1000,20 +1000,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -586,10 +586,10 @@ index de4b8001ff0ddb1603fcca2b6829bb55289d651e..1c49aec79581c6bbeaeb87e42f98ed22 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b802137d198 100644 +index 5a800731927ca20e95fbcd0e8b94999e52642a8e..f561fa1acfcfc78fc2a3a5fe1c12d43a9e708146 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -616,12 +616,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -619,12 +619,12 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper end - optimise checkDespawn @@ -605,7 +605,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 this.advanceWeatherCycle(); int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; -@@ -648,32 +648,32 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -651,32 +651,32 @@ public class ServerLevel extends Level implements WorldGenLevel { this.updateSkyBrightness(); this.tickTime(); @@ -646,7 +646,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players if (flag) { -@@ -681,12 +681,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -684,12 +684,12 @@ public class ServerLevel extends Level implements WorldGenLevel { } if (flag || this.emptyTime++ < 300) { @@ -662,7 +662,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -@@ -696,9 +696,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -699,9 +699,9 @@ public class ServerLevel extends Level implements WorldGenLevel { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); } else { @@ -674,7 +674,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list Entity entity1 = entity.getVehicle(); -@@ -710,7 +710,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -713,7 +713,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.stopRiding(); } @@ -683,7 +683,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 // Pufferfish start - copied from this.guardEntityTick try { this.tickNonPassenger(entity); // Pufferfish - changed -@@ -725,22 +725,22 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -728,22 +728,22 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end } // Pufferfish end @@ -711,7 +711,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 } @Override -@@ -822,9 +822,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -825,9 +825,9 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag = this.isRaining(); int j = chunkcoordintpair.getMinBlockX(); int k = chunkcoordintpair.getMinBlockZ(); @@ -723,7 +723,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning -@@ -856,7 +856,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -859,7 +859,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -732,7 +732,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 if (!this.paperConfig().environment.disableIceAndSnow && (this.currentIceAndSnowTick++ & 15) == 0) { // Paper - Disable ice and snow // Paper - optimise random ticking // Pufferfish - optimize further random ticking // Paper start - optimise chunk ticking this.getRandomBlockPosition(j, 0, k, 15, blockposition); -@@ -892,7 +892,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -895,7 +895,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking @@ -741,7 +741,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur if (randomTickSpeed > 0) { LevelChunkSection[] sections = chunk.getSections(); -@@ -928,7 +928,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -931,7 +931,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper end - optimise random block ticking //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur @@ -750,7 +750,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 } public Optional findLightningRod(BlockPos pos) { -@@ -1225,19 +1225,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1228,19 +1228,19 @@ public class ServerLevel extends Level implements WorldGenLevel { //try { // Purpur // Paper end - timings entity.setOldPosAndRot(); @@ -775,7 +775,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 //} finally { timer.stopTiming(); } // Paper - timings // Purpur Iterator iterator = entity.getPassengers().iterator(); -@@ -1266,12 +1266,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1269,12 +1269,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -792,7 +792,7 @@ index 625a3af718ab3b256c43547bd91621f8c70b3bbd..d1bc23c939e12f040843c1105df87b80 // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1283,7 +1283,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1286,7 +1286,7 @@ public class ServerLevel extends Level implements WorldGenLevel { vehicle.positionRider(passenger); } // Paper end - EAR 2