From de54530c93353462042e18e37f791298257ce2f7 Mon Sep 17 00:00:00 2001 From: granny Date: Fri, 12 Jan 2024 16:15:39 -0800 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@a0ffb57 [ci skip] Small cleanup to mc utils patch PaperMC/Paper@8c8862f Also check for the actual character length in ResourceLocation validation --- gradle.properties | 2 +- .../0001-Pufferfish-Server-Changes.patch | 14 +++---- .../server/0003-Fix-pufferfish-issues.patch | 8 ++-- patches/server/0008-Ridables.patch | 6 +-- .../0025-Zombie-horse-naturally-spawn.patch | 4 +- ...ggling-special-MobSpawners-per-world.patch | 6 +-- .../0096-Configurable-daylight-cycle.patch | 12 +++--- .../0144-Config-for-skipping-night.patch | 6 +-- ...ake-lightning-rod-range-configurable.patch | 4 +- ...omizable-sleeping-actionbar-messages.patch | 4 +- ...ain-and-thunder-should-stop-on-sleep.patch | 8 ++-- patches/server/0237-Allow-void-trading.patch | 4 +- patches/server/0264-Remove-Timings.patch | 42 +++++++++---------- .../server/0265-Remove-Mojang-Profiler.patch | 38 ++++++++--------- 14 files changed, 79 insertions(+), 79 deletions(-) diff --git a/gradle.properties b/gradle.properties index 7d30cdce9..6a4a9eb05 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 = f28caff92752681593137edea91b8fa908995d8e +paperCommit = 8c8862f3a85a9f02facae64872e4646f27d1a429 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 efd708fc3..a5cebc385 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 7c31f619a6e8e3539c547fc43d821d2cce7df7e7..1b98a2b6a787d3d2490f84b083c162ceef8e6d0d 100644 +index 891ebb5a03adaa5d184b7363bbfa94e8a17c2773..bef69b86d245f421babfd1343a5c76b452e26a72 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -900,6 +900,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -899,6 +899,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 7c31f619a6e8e3539c547fc43d821d2cce7df7e7..1b98a2b6a787d3d2490f84b083c162ce if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); -@@ -919,7 +920,20 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -918,7 +919,20 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.push("tick"); @@ -1751,7 +1751,7 @@ index 7c31f619a6e8e3539c547fc43d821d2cce7df7e7..1b98a2b6a787d3d2490f84b083c162ce gameprofilerfiller.pop(); } } -@@ -984,9 +998,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -983,9 +997,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 7c31f619a6e8e3539c547fc43d821d2cce7df7e7..1b98a2b6a787d3d2490f84b083c162ce public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); -@@ -997,7 +1013,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -996,7 +1012,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 @@ -2044,7 +2044,7 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..5cbe6cb0676ac23e184e7586e2dacbbc if (vec3d.length() > 0.0D) { if (k1 > 0) { diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 00389d7ec3e8b059d5591a2019ba240fda2901fe..81e1854bdce8136f7fee9a25ca76ed356dea18e6 100644 +index 6cfce9755dd464a7afb01f9032e567ce3bcd5bc5..cf90ecefea3586d0ce236288ab515bfa67239814 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -305,6 +305,8 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -2980,7 +2980,7 @@ index 64875525df244db838560f5fefb7b1b07b0f1f51..1436fdbe31c8cdf05ac56f20224fe91d } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index fa170cc1ce7011d201295b89718292d696c7fc24..7fd68d4aba72b15b2e21e5c88b44e677b794fe57 100644 +index 27e8ee4507460b1cc72de692b41562b9f4f13929..1afac69b5bc7055d2adb07aea4755b87b246275c 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -86,6 +86,18 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0003-Fix-pufferfish-issues.patch b/patches/server/0003-Fix-pufferfish-issues.patch index 8cc19733e..7112697a4 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 2f89625c216e9751423c623b6e88b98c87d9a00b..51631a4d93daaa8e9ce3408836ee743fd35e16ff 100644 +index bef69b86d245f421babfd1343a5c76b452e26a72..b0e38dbe7f7680c8045cfab2d4503921848e2fb0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -998,7 +998,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -997,7 +997,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 2f89625c216e9751423c623b6e88b98c87d9a00b..51631a4d93daaa8e9ce3408836ee743f 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 2e14e03d01c97b9da97e8e15c663262d22b1b3fc..d0bc64a5970e06dcbec5e2b833977da24f1c0af3 100644 +index ff5880cd1aef52b9df435c8c5935295b116580d2..43b7de2ef617eb249a9fbd731efa6b65e53f7cf1 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 { @@ -66,7 +66,7 @@ index 2e14e03d01c97b9da97e8e15c663262d22b1b3fc..d0bc64a5970e06dcbec5e2b833977da2 protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 7fd68d4aba72b15b2e21e5c88b44e677b794fe57..b9aca339851cdaa6325c04e5cea847904752c63c 100644 +index 1afac69b5bc7055d2adb07aea4755b87b246275c..76a4708464d35dd7782b1032288b52d61ee8fffc 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index 2280e4ffd..7d9fecd92 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ridables diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 83cab746d1d6fe25c043c8aee28c39412b90c127..ec6b58dae525c81bbb1c0e2d96fbded6f00a45b5 100644 +index c47aa87db42dea74a2e07ffe6015257fa337da23..fb672028548fbc3c026c3823024249e4e804be01 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -48,6 +48,12 @@ public class BlockPos extends Vec3i { @@ -34,10 +34,10 @@ index 6e8d7a22e9301704fd8d3e08e806b186f2578038..2dd32f61efa12689b08a54f30deac397 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3ff4c4835029ff6010ac28f933952b56bb823452..6ae230859458b3bf7171577e34c3b6351fa842df 100644 +index b0e38dbe7f7680c8045cfab2d4503921848e2fb0..e2f722b2c5f27a3dca5e8745a9b51d2abc748c22 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -225,6 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -224,6 +224,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/0025-Zombie-horse-naturally-spawn.patch b/patches/server/0025-Zombie-horse-naturally-spawn.patch index a875725e8..d5ca64cce 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 9dbedb8ab967f5f8989b121b712d505f3ebc16a5..514bccb60ad65770507d26d270d2e5488fe8f329 100644 +index e2f722b2c5f27a3dca5e8745a9b51d2abc748c22..7beac121beb299deb412419a0c329152bb4286e2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1022,10 +1022,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1021,10 +1021,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 596b15ca8..067c982f5 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 514bccb60ad65770507d26d270d2e5488fe8f329..73c1115cebb7d12874ae5de379bf9ac7481ac808 100644 +index 7beac121beb299deb412419a0c329152bb4286e2..45de633b7547646193f6cd34b9557cd54df013f5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -714,7 +714,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -713,7 +713,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.dragonParts = new Int2ObjectOpenHashMap(); this.tickTime = flag1; this.server = minecraftserver; @@ -59,7 +59,7 @@ index 8385eb1d60f377da94e3178ab506feefb43563fd..a5443f92786427c42092aec8350e7ab3 if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, world, blockposition2, EntityType.WANDERING_TRADER)) { blockposition1 = blockposition2; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7eb0e5512a2aa78e7dca727384656781760d57c0..320c04ee1423b5964f8ee023fc1bf76913c745e4 100644 +index 6b7602954de34a114893e49e8f93665ba30ed494..283c14b3a3a7e9ec200718d6f2df7c9b1f3764a0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -69,6 +69,12 @@ public class PurpurWorldConfig { diff --git a/patches/server/0096-Configurable-daylight-cycle.patch b/patches/server/0096-Configurable-daylight-cycle.patch index 290721663..c5052b283 100644 --- a/patches/server/0096-Configurable-daylight-cycle.patch +++ b/patches/server/0096-Configurable-daylight-cycle.patch @@ -31,10 +31,10 @@ 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 73c1115cebb7d12874ae5de379bf9ac7481ac808..a19cf61172822ce199a280d1b7dc8cdb036a49ac 100644 +index 45de633b7547646193f6cd34b9557cd54df013f5..586a46dc9f9e65e1f88bcfefc2f4e59d9cda55e9 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 { +@@ -215,6 +215,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 73c1115cebb7d12874ae5de379bf9ac7481ac808..a19cf61172822ce199a280d1b7dc8cdb private final RandomSequences randomSequences; public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick -@@ -793,6 +795,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -792,6 +794,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 73c1115cebb7d12874ae5de379bf9ac7481ac808..a19cf61172822ce199a280d1b7dc8cdb } // Paper start -@@ -983,6 +986,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -982,6 +985,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 73c1115cebb7d12874ae5de379bf9ac7481ac808..a19cf61172822ce199a280d1b7dc8cdb this.setDayTime(this.levelData.getDayTime() + 1L); } -@@ -991,7 +1001,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -990,7 +1000,21 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDayTime(long timeOfDay) { this.serverLevelData.setDayTime(timeOfDay); @@ -88,7 +88,7 @@ index 73c1115cebb7d12874ae5de379bf9ac7481ac808..a19cf61172822ce199a280d1b7dc8cdb public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) { Iterator iterator = this.customSpawners.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2122658e5f5b6d0d9019f79f6c53717f7094abc0..efc2accce3eada889e919c19724206eab52dd627 100644 +index 6ec5d3ea5e034066ec0e18c85c4ae59c6a1ddedd..a468de219bfc2c6304d57368c36851b39363b5bb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -122,6 +122,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0144-Config-for-skipping-night.patch b/patches/server/0144-Config-for-skipping-night.patch index f12ad4f37..fbce19347 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 a19cf61172822ce199a280d1b7dc8cdb036a49ac..ceba48b52c9e01c073b89b04282fc1f8bfb9f700 100644 +index 586a46dc9f9e65e1f88bcfefc2f4e59d9cda55e9..3bce997b0fe372fd4bf172a879bce80996246278 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -846,7 +846,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -845,7 +845,7 @@ public class ServerLevel extends Level implements WorldGenLevel { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; @@ -18,7 +18,7 @@ index a19cf61172822ce199a280d1b7dc8cdb036a49ac..ceba48b52c9e01c073b89b04282fc1f8 j = this.levelData.getDayTime() + 24000L; TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 71d472912a2c8dda6102357f6ed619e543e3b534..bed3d00422b914c99c3e598a392543e84f58df61 100644 +index 419ddcb1197fe839d8fd5ab2fd65a22b0ff1bae5..e51a38ca916e91255c46b864e45428a364e59539 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -356,6 +356,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0178-Make-lightning-rod-range-configurable.patch b/patches/server/0178-Make-lightning-rod-range-configurable.patch index d577be91c..54f479a80 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 ceba48b52c9e01c073b89b04282fc1f8bfb9f700..de2b3b931901ea4155e9313d5edc5ba9b95b2e75 100644 +index 3bce997b0fe372fd4bf172a879bce80996246278..eea2d34a8a0a66ce90e347cd0fb271853098431c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1198,7 +1198,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1197,7 +1197,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 fa04160e8..e62103b5d 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 de2b3b931901ea4155e9313d5edc5ba9b95b2e75..a655e163d6c0c340c2ef2abf00eca611eaad6660 100644 +index eea2d34a8a0a66ce90e347cd0fb271853098431c..cb1e59ed73f91a448346820cf47e083ebf81259d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1247,11 +1247,27 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1246,11 +1246,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 31b7b2788..3fb229aba 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 a655e163d6c0c340c2ef2abf00eca611eaad6660..9751b8b052cd47bc460207224aaf547b5d271411 100644 +index cb1e59ed73f91a448346820cf47e083ebf81259d..6ccbf43edf0177b4d32c080c34d3df3ca35fe957 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1407,6 +1407,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1406,6 +1406,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start @@ -16,7 +16,7 @@ index a655e163d6c0c340c2ef2abf00eca611eaad6660..9751b8b052cd47bc460207224aaf547b 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.... -@@ -1414,6 +1415,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1413,6 +1414,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setRainTime(0); } // CraftBukkit end @@ -25,7 +25,7 @@ index a655e163d6c0c340c2ef2abf00eca611eaad6660..9751b8b052cd47bc460207224aaf547b // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f9b529da8e9367c3a7c9d89eb16760bc691ea59d..f75b12f80e02c2b85c55c41096b4ee4759ce63b0 100644 +index 15410deb58a80ff8050d8f1b94004eb64e86f262..8644472c44f32c10a46749aab58a3be5444dcc33 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -139,6 +139,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0237-Allow-void-trading.patch b/patches/server/0237-Allow-void-trading.patch index 106e50c41..7ea0f44d7 100644 --- a/patches/server/0237-Allow-void-trading.patch +++ b/patches/server/0237-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 603a13a1720123fd987b686d8d881d955d1bab08..fea3f6366606a15ed57c5b23bb4db274b3e26fd8 100644 +index 6ccbf43edf0177b4d32c080c34d3df3ca35fe957..71650729b19db7641bf0d5a99c5bd62857a5f679 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2930,7 +2930,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/0264-Remove-Timings.patch b/patches/server/0264-Remove-Timings.patch index 2d92ebb0c..268eb9ddb 100644 --- a/patches/server/0264-Remove-Timings.patch +++ b/patches/server/0264-Remove-Timings.patch @@ -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 fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e8642264262f7d 100644 +index 71650729b19db7641bf0d5a99c5bd62857a5f679..5920e365db42a4a7bebe44cd407c6f83828a71f6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -872,7 +872,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -871,7 +871,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.popPush("tickPending"); @@ -459,7 +459,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 if (!this.isDebug() && flag) { j = this.getGameTime(); gameprofilerfiller.push("blockTicks"); -@@ -881,24 +881,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -880,24 +880,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.fluidTicks.tick(j, 65536, this::tickFluid); gameprofilerfiller.pop(); } @@ -491,7 +491,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 } this.handlingTick = false; -@@ -911,7 +911,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -910,7 +910,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (flag1 || this.emptyTime++ < 300) { gameprofilerfiller.push("entities"); @@ -500,7 +500,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 if (this.dragonFight != null && flag) { gameprofilerfiller.push("dragonFight"); this.dragonFight.tick(); -@@ -919,7 +919,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -918,7 +918,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } org.spigotmc.ActivationRange.activateEntities(this); // Spigot @@ -509,7 +509,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 this.entityTickList.forEach((entity) -> { entity.activatedPriorityReset = false; // Pufferfish - DAB if (!entity.isRemoved()) { -@@ -960,8 +960,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -959,8 +959,8 @@ public class ServerLevel extends Level implements WorldGenLevel { } } }); @@ -520,7 +520,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 gameprofilerfiller.pop(); this.tickBlockEntities(); } -@@ -1105,7 +1105,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1104,7 +1104,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper gameprofilerfiller.popPush("tickBlocks"); @@ -529,7 +529,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 if (randomTickSpeed > 0) { // Paper start - optimize random block ticking LevelChunkSection[] sections = chunk.getSections(); -@@ -1139,7 +1139,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1138,7 +1138,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper end - optimise random block ticking @@ -538,7 +538,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 gameprofilerfiller.pop(); } -@@ -1483,8 +1483,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1482,8 +1482,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 fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 // Paper end - timings entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1500,7 +1500,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1499,7 +1499,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 fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1523,8 +1523,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1522,8 +1522,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 fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; -@@ -1554,7 +1554,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1553,7 +1553,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -578,7 +578,7 @@ index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 } } else { passenger.stopRiding(); -@@ -1574,14 +1574,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1573,14 +1573,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 fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 // Copied from save() // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1593,7 +1593,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1592,7 +1592,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 fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 } // Paper end -@@ -1607,7 +1607,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1606,7 +1606,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 fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e86422 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1617,11 +1617,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1616,11 +1616,11 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStage(Component.translatable("menu.savingChunks")); } @@ -786,10 +786,10 @@ index 9c2d62feff1816f5729060c6192269a5b2d34153..1e3349690d00c7889a381f7c65a3b5bf } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index b9aca339851cdaa6325c04e5cea847904752c63c..88b7f814a1454841b1f1b27e9c7d66d64717a422 100644 +index 76a4708464d35dd7782b1032288b52d61ee8fffc..757dc4292d371e697f336c4665427b3b4a3aa73b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -800,7 +800,7 @@ public class LevelChunk extends ChunkAccess { +@@ -799,7 +799,7 @@ public class LevelChunk extends ChunkAccess { this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system if (this.needsDecoration) { @@ -798,7 +798,7 @@ index b9aca339851cdaa6325c04e5cea847904752c63c..88b7f814a1454841b1f1b27e9c7d66d6 this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(this.level.getSeed()); -@@ -820,7 +820,7 @@ public class LevelChunk extends ChunkAccess { +@@ -819,7 +819,7 @@ public class LevelChunk extends ChunkAccess { } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); @@ -807,7 +807,7 @@ index b9aca339851cdaa6325c04e5cea847904752c63c..88b7f814a1454841b1f1b27e9c7d66d6 } } } -@@ -1178,7 +1178,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1177,7 +1177,7 @@ public class LevelChunk extends ChunkAccess { ProfilerFiller gameprofilerfiller = LevelChunk.this.level.getProfiler(); gameprofilerfiller.push(this::getType); @@ -816,7 +816,7 @@ index b9aca339851cdaa6325c04e5cea847904752c63c..88b7f814a1454841b1f1b27e9c7d66d6 BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); if (this.blockEntity.getType().isValid(iblockdata)) { -@@ -1200,7 +1200,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1199,7 +1199,7 @@ public class LevelChunk extends ChunkAccess { // Paper end // Spigot start } finally { diff --git a/patches/server/0265-Remove-Mojang-Profiler.patch b/patches/server/0265-Remove-Mojang-Profiler.patch index 8b7a40ba0..e0eeb381e 100644 --- a/patches/server/0265-Remove-Mojang-Profiler.patch +++ b/patches/server/0265-Remove-Mojang-Profiler.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove Mojang Profiler diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index eb8de6edea600be63934c4024142c97e7c669c99..2fd8940727e4f361c67114794233d4ddc6548dbb 100644 +index ea4cba92f90f2787f1b22364c38e0d1ee4d72874..7d9696403406ef2878b3ce9566cbce3d19e4cb1c 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -165,7 +165,7 @@ public class Commands { @@ -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 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e929c515fb 100644 +index 5920e365db42a4a7bebe44cd407c6f83828a71f6..90000d74cfb009e2cbd7336ae11077d67ef67f7b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -830,16 +830,16 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -829,16 +829,16 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void tick(BooleanSupplier shouldKeepTicking) { @@ -649,7 +649,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 this.advanceWeatherCycle(); } -@@ -871,30 +871,30 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -870,30 +870,30 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickTime(); } @@ -687,7 +687,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 if (flag) { // this.timings.doSounds.startTiming(); // Spigot // Purpur this.runBlockEvents(); -@@ -902,7 +902,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -901,7 +901,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } this.handlingTick = false; @@ -696,7 +696,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players if (flag1) { -@@ -910,12 +910,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -909,12 +909,12 @@ public class ServerLevel extends Level implements WorldGenLevel { } if (flag1 || this.emptyTime++ < 300) { @@ -712,7 +712,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -@@ -926,9 +926,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -925,9 +925,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 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list Entity entity1 = entity.getVehicle(); -@@ -940,7 +940,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -939,7 +939,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.stopRiding(); } @@ -733,7 +733,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 // Pufferfish start - copied from this.guardEntityTick try { this.tickNonPassenger(entity); // Pufferfish - changed -@@ -955,20 +955,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -954,20 +954,19 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end } // Pufferfish end @@ -757,7 +757,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 } @Override -@@ -1050,9 +1049,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1049,9 +1048,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 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 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 -@@ -1091,7 +1090,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1090,7 +1089,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -778,7 +778,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 if (!this.paperConfig().environment.disableIceAndSnow) { // Paper for (int l = 0; l < randomTickSpeed; ++l) { -@@ -1104,7 +1103,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1103,7 +1102,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper @@ -787,7 +787,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur if (randomTickSpeed > 0) { // Paper start - optimize random block ticking -@@ -1140,7 +1139,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1139,7 +1138,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end - optimise random block ticking //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur @@ -796,7 +796,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 } @VisibleForTesting -@@ -1487,19 +1486,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1486,19 +1485,19 @@ public class ServerLevel extends Level implements WorldGenLevel { //try { // Purpur // Paper end - timings entity.setOldPosAndRot(); @@ -821,7 +821,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 //} finally { timer.stopTiming(); } // Paper - timings // Purpur Iterator iterator = entity.getPassengers().iterator(); -@@ -1528,12 +1527,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1527,12 +1526,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -838,7 +838,7 @@ index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e9 // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1545,7 +1544,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1544,7 +1543,7 @@ public class ServerLevel extends Level implements WorldGenLevel { vehicle.positionRider(passenger); } // Paper end - EAR 2 @@ -1907,7 +1907,7 @@ index 1e3349690d00c7889a381f7c65a3b5bf3de2ac5b..524301e2438ee2938b59eb2b2e9fc4e0 // Paper start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 88b7f814a1454841b1f1b27e9c7d66d64717a422..66656c4cf157228c9f52b33b358713ef0172f9ff 100644 +index 757dc4292d371e697f336c4665427b3b4a3aa73b..c37aa33134b8602caae5ecff00439ad5e0005d18 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -457,11 +457,11 @@ public class LevelChunk extends ChunkAccess { @@ -1925,7 +1925,7 @@ index 88b7f814a1454841b1f1b27e9c7d66d64717a422..66656c4cf157228c9f52b33b358713ef } boolean flag3 = iblockdata1.hasBlockEntity(); -@@ -1175,9 +1175,9 @@ public class LevelChunk extends ChunkAccess { +@@ -1174,9 +1174,9 @@ public class LevelChunk extends ChunkAccess { if (LevelChunk.this.isTicking(blockposition)) { try { @@ -1937,7 +1937,7 @@ index 88b7f814a1454841b1f1b27e9c7d66d64717a422..66656c4cf157228c9f52b33b358713ef //this.blockEntity.tickTimer.startTiming(); // Spigot // Purpur BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); -@@ -1189,7 +1189,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1188,7 +1188,7 @@ public class LevelChunk extends ChunkAccess { LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), iblockdata}); }