diff --git a/gradle.properties b/gradle.properties index 8a8cb335a..ee348479e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20.4-R0.1-SNAPSHOT mcVersion = 1.20.4 -paperCommit = 0ae58c09a15ee1ad307a2b8ef7e8ad735d336651 +paperCommit = 1281f4f5526c0b8bdc32915c41dc6af6b4f9fea2 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 82c19092e..32f917772 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -1718,10 +1718,10 @@ index 35674f92a67f93382103c2766df4b678ba5c862f..d46e61640b241d32df05240dedd2c23f this.wasOnGround = this.entity.onGround(); this.teleportDelay = 0; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6041f1f5151f26d389f946d70f16e1de76db496b..4a802588f58bdea30b58521cbc4f0d76743f732e 100644 +index 676087c3addd712939c865b39ddb5d9f0bc7ce25..2f89625c216e9751423c623b6e88b98c87d9a00b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -895,6 +895,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -900,6 +900,7 @@ public class ServerLevel extends Level implements WorldGenLevel { org.spigotmc.ActivationRange.activateEntities(this); // Spigot this.timings.entityTick.startTiming(); // Spigot this.entityTickList.forEach((entity) -> { @@ -1729,7 +1729,7 @@ index 6041f1f5151f26d389f946d70f16e1de76db496b..4a802588f58bdea30b58521cbc4f0d76 if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); -@@ -914,7 +915,20 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -919,7 +920,20 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.push("tick"); @@ -1751,7 +1751,7 @@ index 6041f1f5151f26d389f946d70f16e1de76db496b..4a802588f58bdea30b58521cbc4f0d76 gameprofilerfiller.pop(); } } -@@ -979,9 +993,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -984,9 +998,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); @@ -1764,7 +1764,7 @@ index 6041f1f5151f26d389f946d70f16e1de76db496b..4a802588f58bdea30b58521cbc4f0d76 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); -@@ -992,7 +1008,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -997,7 +1013,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 diff --git a/patches/server/0003-Fix-pufferfish-issues.patch b/patches/server/0003-Fix-pufferfish-issues.patch index 330f063d9..8cc19733e 100644 --- a/patches/server/0003-Fix-pufferfish-issues.patch +++ b/patches/server/0003-Fix-pufferfish-issues.patch @@ -40,10 +40,10 @@ index 0dd3374468e05f7a312ba5856b9cf8a4787dfa59..960c0555a001fe63de78d77d5ea47d08 "This can improve performance by a few percent, but has minor gameplay implications."); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 66cbea2fd146bdabf1241dae72bd76dc256afe45..5493e7e8ec1de5bb52ee7bd145e436fdb03e59b6 100644 +index 2f89625c216e9751423c623b6e88b98c87d9a00b..51631a4d93daaa8e9ce3408836ee743fd35e16ff 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -993,7 +993,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -998,7 +998,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); @@ -53,7 +53,7 @@ index 66cbea2fd146bdabf1241dae72bd76dc256afe45..5493e7e8ec1de5bb52ee7bd145e436fd private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3fb317e5df780abb7fa8c3d78717306cad2bc650..879f9ba2395b2856e8cd0c78a2b25782e29a7234 100644 +index 2e14e03d01c97b9da97e8e15c663262d22b1b3fc..d0bc64a5970e06dcbec5e2b833977da24f1c0af3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -213,7 +213,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0025-Zombie-horse-naturally-spawn.patch b/patches/server/0025-Zombie-horse-naturally-spawn.patch index 7bad0655a..a875725e8 100644 --- a/patches/server/0025-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0025-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 53131fc1fc02df8f60f0a44dd8c3a5a53e24fddb..7126dacffb7302927a6ca88ce3bfdec975ee342f 100644 +index 9dbedb8ab967f5f8989b121b712d505f3ebc16a5..514bccb60ad65770507d26d270d2e5488fe8f329 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1017,10 +1017,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1022,10 +1022,18 @@ 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/0089-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch index 44352f049..596b15ca8 100644 --- a/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0089-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 7126dacffb7302927a6ca88ce3bfdec975ee342f..dfec321501523e1d953811961d1b5495cb41d815 100644 +index 514bccb60ad65770507d26d270d2e5488fe8f329..73c1115cebb7d12874ae5de379bf9ac7481ac808 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -709,7 +709,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -714,7 +714,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.dragonParts = new Int2ObjectOpenHashMap(); this.tickTime = flag1; this.server = minecraftserver; diff --git a/patches/server/0096-Configurable-daylight-cycle.patch b/patches/server/0096-Configurable-daylight-cycle.patch index c586f6a85..290721663 100644 --- a/patches/server/0096-Configurable-daylight-cycle.patch +++ b/patches/server/0096-Configurable-daylight-cycle.patch @@ -31,7 +31,7 @@ index 2bc4073bb331e4b3beae9cccb06d3ca46f9d3b24..9de37c25f7a970326dc96a3dd4b2fddf } 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 dfec321501523e1d953811961d1b5495cb41d815..3f95ede3602c3dea611ba9a6b4f6891419638283 100644 +index 73c1115cebb7d12874ae5de379bf9ac7481ac808..a19cf61172822ce199a280d1b7dc8cdb036a49ac 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -216,6 +216,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -43,7 +43,7 @@ index dfec321501523e1d953811961d1b5495cb41d815..3f95ede3602c3dea611ba9a6b4f68914 private final RandomSequences randomSequences; public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick -@@ -788,6 +790,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -793,6 +795,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.chunkTaskScheduler = new io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler(this, io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.workerThreads); // Paper - rewrite chunk system this.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system @@ -51,7 +51,7 @@ index dfec321501523e1d953811961d1b5495cb41d815..3f95ede3602c3dea611ba9a6b4f68914 } // Paper start -@@ -978,6 +981,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -983,6 +986,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 dfec321501523e1d953811961d1b5495cb41d815..3f95ede3602c3dea611ba9a6b4f68914 this.setDayTime(this.levelData.getDayTime() + 1L); } -@@ -986,7 +996,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -991,7 +1001,21 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDayTime(long timeOfDay) { this.serverLevelData.setDayTime(timeOfDay); diff --git a/patches/server/0144-Config-for-skipping-night.patch b/patches/server/0144-Config-for-skipping-night.patch index 6f68736c2..f12ad4f37 100644 --- a/patches/server/0144-Config-for-skipping-night.patch +++ b/patches/server/0144-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 3f95ede3602c3dea611ba9a6b4f6891419638283..b8bb7281208a03202bd0575e8dc998190751d46e 100644 +index a19cf61172822ce199a280d1b7dc8cdb036a49ac..ceba48b52c9e01c073b89b04282fc1f8bfb9f700 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -841,7 +841,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -846,7 +846,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/0178-Make-lightning-rod-range-configurable.patch b/patches/server/0178-Make-lightning-rod-range-configurable.patch index 8ef7dfdaf..d577be91c 100644 --- a/patches/server/0178-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0178-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 b8bb7281208a03202bd0575e8dc998190751d46e..735be788e584152bd2c33eaf9c08ebb21769a1db 100644 +index ceba48b52c9e01c073b89b04282fc1f8bfb9f700..de2b3b931901ea4155e9313d5edc5ba9b95b2e75 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1193,7 +1193,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1198,7 +1198,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-Customizable-sleeping-actionbar-messages.patch b/patches/server/0191-Customizable-sleeping-actionbar-messages.patch index bbf9ad68a..fa04160e8 100644 --- a/patches/server/0191-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0191-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 5b6511f2394adce6785f5d8d6914c37b4e5fdedc..77b80dfd5409a6de848430e14cbc8d457ebccf83 100644 +index de2b3b931901ea4155e9313d5edc5ba9b95b2e75..a655e163d6c0c340c2ef2abf00eca611eaad6660 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1242,11 +1242,27 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1247,11 +1247,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/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index cf21eda12..31b7b2788 100644 --- a/patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0210-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 64a56285c32fa70454371db366982f2530df0df5..59d6729e5e96ff34fd9cd31b2938a1da3826fa57 100644 +index a655e163d6c0c340c2ef2abf00eca611eaad6660..9751b8b052cd47bc460207224aaf547b5d271411 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1402,6 +1402,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1407,6 +1407,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start @@ -16,7 +16,7 @@ index 64a56285c32fa70454371db366982f2530df0df5..59d6729e5e96ff34fd9cd31b2938a1da 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.... -@@ -1409,6 +1410,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1414,6 +1415,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setRainTime(0); } // CraftBukkit end diff --git a/patches/server/0238-Allow-void-trading.patch b/patches/server/0238-Allow-void-trading.patch index 8c578f3a8..d8887eb59 100644 --- a/patches/server/0238-Allow-void-trading.patch +++ b/patches/server/0238-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 59d6729e5e96ff34fd9cd31b2938a1da3826fa57..9121c5371b083d07d6b488e1a49d24a91ecccba0 100644 +index 9751b8b052cd47bc460207224aaf547b5d271411..2e457d9c2a65875419fcc8cfcda33cfe9b528640 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2924,7 +2924,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2929,7 +2929,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/0265-Remove-Timings.patch b/patches/server/0265-Remove-Timings.patch index a40dd5ca2..fe835ca0b 100644 --- a/patches/server/0265-Remove-Timings.patch +++ b/patches/server/0265-Remove-Timings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove Timings diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -index abd0217cf0bff183c8e262edc173a53403797c1a..2519ad2884b6c09b312432b933c31476b369e599 100644 +index 6bc7c6f16a1649fc9e24e7cf90fca401e5bd4875..e1ffd62f4ebceecb9bc5471df3da406cffea0483 100644 --- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java +++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -@@ -1315,9 +1315,9 @@ public final class ChunkHolderManager { +@@ -1316,9 +1316,9 @@ public final class ChunkHolderManager { } public boolean processTicketUpdates() { @@ -447,10 +447,10 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380 gameprofilerfiller.pop(); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab5382437dc0 100644 +index 2e457d9c2a65875419fcc8cfcda33cfe9b528640..1ccdea0e7c64de5bcb7a6a6f14105cf62a211fd6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -867,7 +867,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -872,7 +872,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.popPush("tickPending"); @@ -459,7 +459,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 if (!this.isDebug() && flag) { j = this.getGameTime(); gameprofilerfiller.push("blockTicks"); -@@ -876,24 +876,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -881,24 +881,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.fluidTicks.tick(j, 65536, this::tickFluid); gameprofilerfiller.pop(); } @@ -491,7 +491,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 } this.handlingTick = false; -@@ -906,7 +906,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -911,7 +911,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (flag1 || this.emptyTime++ < 300) { gameprofilerfiller.push("entities"); @@ -500,7 +500,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 if (this.dragonFight != null && flag) { gameprofilerfiller.push("dragonFight"); this.dragonFight.tick(); -@@ -914,7 +914,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -919,7 +919,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } org.spigotmc.ActivationRange.activateEntities(this); // Spigot @@ -509,7 +509,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 this.entityTickList.forEach((entity) -> { entity.activatedPriorityReset = false; // Pufferfish - DAB if (!entity.isRemoved()) { -@@ -955,8 +955,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -960,8 +960,8 @@ public class ServerLevel extends Level implements WorldGenLevel { } } }); @@ -520,7 +520,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 gameprofilerfiller.pop(); this.tickBlockEntities(); } -@@ -1100,7 +1100,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1105,7 +1105,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper gameprofilerfiller.popPush("tickBlocks"); @@ -529,7 +529,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 if (randomTickSpeed > 0) { // Paper start - optimize random block ticking LevelChunkSection[] sections = chunk.getSections(); -@@ -1134,7 +1134,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1139,7 +1139,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper end - optimise random block ticking @@ -538,7 +538,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 gameprofilerfiller.pop(); } -@@ -1478,8 +1478,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1483,8 +1483,8 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Paper start- timings final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); @@ -549,7 +549,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 // Paper end - timings entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1495,7 +1495,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1500,7 +1500,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.postTick(); // CraftBukkit } else { entity.inactiveTick(); } // Paper - EAR 2 this.getProfiler().pop(); @@ -558,7 +558,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1518,8 +1518,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1523,8 +1523,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); @@ -569,7 +569,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; -@@ -1549,7 +1549,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1554,7 +1554,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -578,7 +578,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 } } else { passenger.stopRiding(); -@@ -1569,14 +1569,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1574,14 +1574,14 @@ public class ServerLevel extends Level implements WorldGenLevel { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); } @@ -596,7 +596,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 // Copied from save() // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1588,7 +1588,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1593,7 +1593,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData()); } // CraftBukkit end @@ -605,7 +605,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 } // Paper end -@@ -1602,7 +1602,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1607,7 +1607,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit @@ -614,7 +614,7 @@ index ed627a719656456844267309f5d9e5cd97ea5ead..3e00aec02b36ed62424f7271c4d1ab53 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1612,11 +1612,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1617,11 +1617,11 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStage(Component.translatable("menu.savingChunks")); } diff --git a/patches/server/0266-Remove-Mojang-Profiler.patch b/patches/server/0266-Remove-Mojang-Profiler.patch index f1a288f3c..1336479fa 100644 --- a/patches/server/0266-Remove-Mojang-Profiler.patch +++ b/patches/server/0266-Remove-Mojang-Profiler.patch @@ -626,10 +626,10 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc822296e5 100644 +index 1ccdea0e7c64de5bcb7a6a6f14105cf62a211fd6..7912c26d27e9f143c34d63410155052cd00e0b8d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -825,16 +825,16 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -830,16 +830,16 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void tick(BooleanSupplier shouldKeepTicking) { @@ -649,7 +649,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc this.advanceWeatherCycle(); } -@@ -866,30 +866,30 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -871,30 +871,30 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickTime(); } @@ -687,7 +687,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc if (flag) { // this.timings.doSounds.startTiming(); // Spigot // Purpur this.runBlockEvents(); -@@ -897,7 +897,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -902,7 +902,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } this.handlingTick = false; @@ -696,7 +696,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players if (flag1) { -@@ -905,12 +905,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -910,12 +910,12 @@ public class ServerLevel extends Level implements WorldGenLevel { } if (flag1 || this.emptyTime++ < 300) { @@ -712,7 +712,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -@@ -921,9 +921,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -926,9 +926,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 if (!tickratemanager.isEntityFrozen(entity)) { @@ -724,7 +724,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list Entity entity1 = entity.getVehicle(); -@@ -935,7 +935,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -940,7 +940,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.stopRiding(); } @@ -733,7 +733,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc // Pufferfish start - copied from this.guardEntityTick try { this.tickNonPassenger(entity); // Pufferfish - changed -@@ -950,20 +950,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -955,20 +955,19 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end } // Pufferfish end @@ -757,7 +757,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc } @Override -@@ -1045,9 +1044,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1050,9 +1049,9 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag = this.isRaining(); int j = chunkcoordintpair.getMinBlockX(); int k = chunkcoordintpair.getMinBlockZ(); @@ -769,7 +769,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc 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 -@@ -1086,7 +1085,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1091,7 +1090,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -778,7 +778,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc if (!this.paperConfig().environment.disableIceAndSnow) { // Paper for (int l = 0; l < randomTickSpeed; ++l) { -@@ -1099,7 +1098,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1104,7 +1103,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper @@ -787,7 +787,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur if (randomTickSpeed > 0) { // Paper start - optimize random block ticking -@@ -1135,7 +1134,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1140,7 +1139,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end - optimise random block ticking //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur @@ -796,7 +796,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc } @VisibleForTesting -@@ -1482,19 +1481,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1487,19 +1486,19 @@ public class ServerLevel extends Level implements WorldGenLevel { //try { // Purpur // Paper end - timings entity.setOldPosAndRot(); @@ -821,7 +821,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc //} finally { timer.stopTiming(); } // Paper - timings // Purpur Iterator iterator = entity.getPassengers().iterator(); -@@ -1523,12 +1522,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1528,12 +1527,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -838,7 +838,7 @@ index 3e00aec02b36ed62424f7271c4d1ab5382437dc0..76fd80b1d5674b89f9b13df5b5d70fbc // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1540,7 +1539,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1545,7 +1544,7 @@ public class ServerLevel extends Level implements WorldGenLevel { vehicle.positionRider(passenger); } // Paper end - EAR 2