From eefac632ee853efe653420b7827cd63342c8c61d Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Mon, 24 Oct 2022 15:09:03 -0400 Subject: [PATCH] Updated Upstream (Purpur) --- gradle.properties | 2 +- .../server/0004-Lithium-optimizations.patch | 6 +-- patches/server/0006-Suki-Patches.patch | 12 ++--- .../0026-Revert-purpur-Remove-Timings.patch | 54 +++++++++---------- .../server/0028-Multithreaded-tracker.patch | 12 ++--- ...educe-work-done-by-game-event-system.patch | 6 +-- 6 files changed, 46 insertions(+), 46 deletions(-) diff --git a/gradle.properties b/gradle.properties index 8de4511..45b504e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = cc.keyimc.keyi version = 1.19.2-R0.1-SNAPSHOT -purpurCommit = e40b49855c3e2c9859929e5cabfb418909010871 +purpurCommit = 74b72a5f42f2e579c268b8c0411d0f78b9e38c4f org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0004-Lithium-optimizations.patch b/patches/server/0004-Lithium-optimizations.patch index 92992fd..8d6ff4e 100644 --- a/patches/server/0004-Lithium-optimizations.patch +++ b/patches/server/0004-Lithium-optimizations.patch @@ -1083,11 +1083,11 @@ index 6c27b22dd1d497687c0f4d3835e34149bcf952c1..445f21c3764d148de937f558e3f087ae public static Direction getNearest(double x, double y, double z) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 571a1cbee376032b6b9f36c9fe3f9199a3ad3197..df014d5b1b2d3b1d0e7a0b9eedb3c19ee693b836 100644 +index d418144bc7471b2c00ad272652b035d79974ef75..7672e7b8f162dfc173f2c6b94a0e339751969a0c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -227,6 +227,13 @@ public class ServerLevel extends Level implements WorldGenLevel { - return new Throwable(entity + " Added to world at " + new java.util.Date()); +@@ -229,6 +229,13 @@ public class ServerLevel extends Level implements WorldGenLevel { + return thr; } + // Mirai start diff --git a/patches/server/0006-Suki-Patches.patch b/patches/server/0006-Suki-Patches.patch index 7494549..542d51d 100644 --- a/patches/server/0006-Suki-Patches.patch +++ b/patches/server/0006-Suki-Patches.patch @@ -278,7 +278,7 @@ index b759f82b265542f42821e35ead56a5c073625d36..f93cbf0812801bb503db26e623d988e4 @Override diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index e1563410e0711de5cf9363978125e637929392da..948e988cdcf3edb0ceb0bd397d0579a1784d9ae1 100644 +index 40fd77b18425f093ddc69d21856f4e9548f8f9ca..3ed75fe9f712c0e777b0ec9152705390a17f2bd0 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -355,7 +355,11 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -312,7 +312,7 @@ index e1563410e0711de5cf9363978125e637929392da..948e988cdcf3edb0ceb0bd397d0579a1 ConnectionProtocol enumprotocol = ConnectionProtocol.getProtocolForPacket(packet); ConnectionProtocol enumprotocol1 = this.getCurrentProtocol(); diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index 07b0b0993c01763b39d1c9a387447ec76b5de190..72e700a775403eec2d1a32859279401351b836b1 100644 +index 0d995a13114e718016518f41d7fcff3042674847..bd7c4f5056470dead6aece51777ebc0e5bbdd06b 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -55,8 +55,8 @@ import java.util.function.Supplier; @@ -327,10 +327,10 @@ index 07b0b0993c01763b39d1c9a387447ec76b5de190..72e700a775403eec2d1a328592794013 .setNameFormat("Paper Async Task Handler Thread - %1$d") .setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(MinecraftServer.LOGGER)) diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 5962f7a2b185d7d54a0f9e341a4fdf6e6f1c1ec5..8c80520396bc7e34bac25354c1fcdb38b71000c7 100644 +index 88ef769abfa163f923258d1f83d47b28c491eaca..9ae43d359deee3172f8f059adc94dffee1ec303f 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -318,7 +318,7 @@ public class Main { +@@ -327,7 +327,7 @@ public class Main { // Paper start - fix and optimise world upgrading public static void convertWorldButItWorks(net.minecraft.resources.ResourceKey dimensionType, net.minecraft.world.level.storage.LevelStorageSource.LevelStorageAccess worldSession, DataFixer dataFixer, Optional>> generatorKey, boolean removeCaches) { @@ -444,10 +444,10 @@ index 01ca7156d86243a80cd343a2a66be9ebedcc3b7c..852ec490e2a53803ca72a3ec0d994cbe private WorldGenSettings worldGenSettings; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index df014d5b1b2d3b1d0e7a0b9eedb3c19ee693b836..2461aadffa36e1e193fa32ddb5955c9946ad1450 100644 +index 7672e7b8f162dfc173f2c6b94a0e339751969a0c..e2e04925016a7c1ddcc39adf235b31e67ed6be97 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -533,7 +533,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -535,7 +535,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { // Holder holder = worlddimension.typeHolder(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error diff --git a/patches/server/0026-Revert-purpur-Remove-Timings.patch b/patches/server/0026-Revert-purpur-Remove-Timings.patch index ebb138e..eae3f46 100644 --- a/patches/server/0026-Revert-purpur-Remove-Timings.patch +++ b/patches/server/0026-Revert-purpur-Remove-Timings.patch @@ -22,7 +22,7 @@ index 54ec7955ba394e82663b08972dd89f69a23593ac..8dc1d2d15d571d1603a41dee13681a87 private static final ThreadLocal> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>(); diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java -index e3fcbdbbf1972c382cbfe69a86eddff3dee4fba2..f20faaec3f1fe311b3ac989be5a9148e2e3c59ad 100644 +index cfc355829df3e5b51c2ff524bb3730360fee15a2..4ce6df7082d4f7ed3651e3d57e379f95dd05715e 100644 --- a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java +++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java @@ -1748,7 +1748,7 @@ public final class NewChunkHolder { @@ -44,7 +44,7 @@ index e3fcbdbbf1972c382cbfe69a86eddff3dee4fba2..f20faaec3f1fe311b3ac989be5a9148e return executedUnloadTask | canSaveChunk | canSaveEntities | canSavePOI; } diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index a7f4b791894c5d8b7af4b0c067cf167b29272a27..54bca103347e89f116fb7fbf37449a32ac094286 100644 +index 04ca6d27a13706fbddc708df0fcca42b4098bcba..d03551e81e3ef37935cb1d963aba3df316f48ef5 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -67,14 +67,14 @@ public class GlobalConfiguration extends ConfigurationPart { @@ -510,7 +510,7 @@ index 3e7dd41555263e8361db08d1380c767fe0ba8886..d6c3db7234fa9b52e945cb004d8ae843 @Override diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 3203b953709ca7cb9172f5912a922131ad7ec9eb..a2a4965aec45f3ff83703b636e46f5c545cfb48e 100644 +index 5258688cf1c980b95308b6d105dbf104b0276932..9976630fad886392057f642e84f919f0b95cc040 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -606,20 +606,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -542,7 +542,7 @@ index 3203b953709ca7cb9172f5912a922131ad7ec9eb..a2a4965aec45f3ff83703b636e46f5c5 } public boolean hasWork() { -@@ -1239,24 +1239,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1238,24 +1238,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper start - optimised tracker private final void processTrackQueue() { @@ -571,7 +571,7 @@ index 3203b953709ca7cb9172f5912a922131ad7ec9eb..a2a4965aec45f3ff83703b636e46f5c5 } } // Paper end - optimised tracker -@@ -1271,7 +1271,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1270,7 +1270,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -580,7 +580,7 @@ index 3203b953709ca7cb9172f5912a922131ad7ec9eb..a2a4965aec45f3ff83703b636e46f5c5 ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -1296,17 +1296,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1295,17 +1295,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } @@ -797,11 +797,11 @@ index cd5533c3c53215c9cc4be0b9097d76efbf5bd0c1..7266e6703d5cd0fea90ec88c74a7d456 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506e5a2128b 100644 +index e2e04925016a7c1ddcc39adf235b31e67ed6be97..26316eae266a0e19b3cacc39ed1c9263f1cd58ea 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -227,13 +227,6 @@ public class ServerLevel extends Level implements WorldGenLevel { - return new Throwable(entity + " Added to world at " + new java.util.Date()); +@@ -229,13 +229,6 @@ public class ServerLevel extends Level implements WorldGenLevel { + return thr; } - // Mirai start @@ -814,7 +814,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper } -@@ -658,12 +651,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -660,12 +653,12 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper end - optimise checkDespawn @@ -830,7 +830,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 this.advanceWeatherCycle(); int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; -@@ -690,32 +683,32 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -692,32 +685,32 @@ public class ServerLevel extends Level implements WorldGenLevel { this.updateSkyBrightness(); this.tickTime(); @@ -879,7 +879,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players if (flag) { -@@ -723,24 +716,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -725,24 +718,24 @@ public class ServerLevel extends Level implements WorldGenLevel { } if (flag || this.emptyTime++ < 300) { @@ -911,7 +911,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list Entity entity1 = entity.getVehicle(); -@@ -752,7 +745,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -754,7 +747,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.stopRiding(); } @@ -920,7 +920,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 // Pufferfish start - copied from this.guardEntityTick try { this.tickNonPassenger(entity); // Pufferfish - changed -@@ -767,22 +760,22 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -769,22 +762,22 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end } // Pufferfish end @@ -950,7 +950,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 } @Override -@@ -864,9 +857,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -866,9 +859,9 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag = this.isRaining(); int j = chunkcoordintpair.getMinBlockX(); int k = chunkcoordintpair.getMinBlockZ(); @@ -962,7 +962,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 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 -@@ -898,7 +891,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -900,7 +893,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -971,7 +971,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 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); -@@ -934,8 +927,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -936,8 +929,8 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking @@ -982,7 +982,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 if (randomTickSpeed > 0) { LevelChunkSection[] sections = chunk.getSections(); int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this); -@@ -969,8 +962,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -971,8 +964,8 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper end - optimise random block ticking @@ -993,7 +993,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 } public Optional findLightningRod(BlockPos pos) { -@@ -1262,24 +1255,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1264,24 +1257,24 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Paper start- timings final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); @@ -1026,7 +1026,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1302,17 +1295,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1304,17 +1297,17 @@ 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); @@ -1050,7 +1050,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1324,7 +1317,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1326,7 +1319,7 @@ public class ServerLevel extends Level implements WorldGenLevel { vehicle.positionRider(passenger); } // Paper end - EAR 2 @@ -1059,7 +1059,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 Iterator iterator = passenger.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1333,7 +1326,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1335,7 +1328,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -1068,7 +1068,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 } } else { passenger.stopRiding(); -@@ -1353,14 +1346,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1355,14 +1348,14 @@ public class ServerLevel extends Level implements WorldGenLevel { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); } @@ -1086,7 +1086,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 // Copied from save() // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1372,7 +1365,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1374,7 +1367,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.convertable.saveDataTag(this.server.registryHolder, this.serverLevelData, this.server.getPlayerList().getSingleplayerData()); } // CraftBukkit end @@ -1095,7 +1095,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 } // Paper end -@@ -1386,7 +1379,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1388,7 +1381,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit @@ -1104,7 +1104,7 @@ index 2461aadffa36e1e193fa32ddb5955c9946ad1450..3ffa7b3440b65ba3a4af4488f6ca9506 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1396,11 +1389,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1398,11 +1391,11 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStage(Component.translatable("menu.savingChunks")); } @@ -1349,7 +1349,7 @@ index bca69d595ef0f18a5910cbd6f7e6f742830a0800..386ed2c102aaa3ec68e828e20fff6bfe if (entityhuman != null) { double d2 = entityhuman.distanceToSqr(d0, (double) i, d1); 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 1ef5f03a332e832817be132bbbf3ac1021f085d1..636c98d04eb4e14eab1fa208d9cb097e2ab7eef7 100644 +index d3d2b554f0313b73442f25cc2bd6ab21fa34e2bf..b89dad36bf09fdab340efc83d09992b707cd321a 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -53,10 +53,6 @@ import net.minecraft.world.level.material.Fluids; diff --git a/patches/server/0028-Multithreaded-tracker.patch b/patches/server/0028-Multithreaded-tracker.patch index 78c0d1b..dfc1bcc 100644 --- a/patches/server/0028-Multithreaded-tracker.patch +++ b/patches/server/0028-Multithreaded-tracker.patch @@ -205,10 +205,10 @@ index f597d65d56964297eeeed6c7e77703764178fee0..665c377e2d0d342f4dcc89c4cbdfcc9e public ChunkHolder.FullChunkStatus status; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a2a4965aec45f3ff83703b636e46f5c545cfb48e..a693c4cbcaf9720ac9549edab32f02063607820a 100644 +index 9976630fad886392057f642e84f919f0b95cc040..c4284894258df0b0bcc2d86c5a6da0047b994191 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1237,9 +1237,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1236,9 +1236,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -247,7 +247,7 @@ index a2a4965aec45f3ff83703b636e46f5c545cfb48e..a693c4cbcaf9720ac9549edab32f0206 try { for (TrackedEntity tracker : this.entityMap.values()) { // update tracker entry -@@ -1462,11 +1491,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1461,11 +1490,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public class TrackedEntity { @@ -262,7 +262,7 @@ index a2a4965aec45f3ff83703b636e46f5c545cfb48e..a693c4cbcaf9720ac9549edab32f0206 public TrackedEntity(Entity entity, int i, int j, boolean flag) { this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit -@@ -1478,7 +1507,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1477,7 +1506,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper start - use distance map to optimise tracker com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet lastTrackerCandidates; @@ -271,7 +271,7 @@ index a2a4965aec45f3ff83703b636e46f5c545cfb48e..a693c4cbcaf9720ac9549edab32f0206 com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet oldTrackerCandidates = this.lastTrackerCandidates; this.lastTrackerCandidates = newTrackerCandidates; -@@ -1550,7 +1579,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1549,7 +1578,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void removePlayer(ServerPlayer player) { @@ -280,7 +280,7 @@ index a2a4965aec45f3ff83703b636e46f5c545cfb48e..a693c4cbcaf9720ac9549edab32f0206 if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); } -@@ -1558,7 +1587,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1557,7 +1586,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void updatePlayer(ServerPlayer player) { diff --git a/patches/server/0029-Reduce-work-done-by-game-event-system.patch b/patches/server/0029-Reduce-work-done-by-game-event-system.patch index 98656ba..c6e6c11 100644 --- a/patches/server/0029-Reduce-work-done-by-game-event-system.patch +++ b/patches/server/0029-Reduce-work-done-by-game-event-system.patch @@ -11,10 +11,10 @@ You can find the original code on https://github.com/Bloom-host/Petal 2. euclideangameeventdispatcher is not used concurrently so we ban that usage for improved performance with allays diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3ffa7b3440b65ba3a4af4488f6ca9506e5a2128b..eb5f39b572c2a53c78aa0324ed194428e75a30a7 100644 +index 26316eae266a0e19b3cacc39ed1c9263f1cd58ea..446a08355cfcb380280b102ae0b367ffa7334005 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1703,6 +1703,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1705,6 +1705,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (chunk != null) { for (int j2 = k; j2 <= j1; ++j2) { flag |= chunk.getEventDispatcher(j2).walkListeners(event, emitterPos, emitter, (gameeventlistener, vec3d1) -> { @@ -41,7 +41,7 @@ index 22c309343299e60ed8028229b7f134109001ff35..d5947d29295ddc93ba8ac1c0fc61f7ba org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = blockEntity.getBlockPos(); // CraftBukkit - SPIGOT-7068: Add source block override, not the most elegant way but better than passing down a BlockPosition up to five methods deep. blockEntity.sculkSpreader.updateCursors(world, pos, world.getRandom(), true); 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 636c98d04eb4e14eab1fa208d9cb097e2ab7eef7..2ea38464a92d626127aecc41c3fc58d1cfb37e29 100644 +index b89dad36bf09fdab340efc83d09992b707cd321a..71e84572fff4d78e3872b3ccc4767d973bfb9a6e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -84,7 +84,18 @@ public class LevelChunk extends ChunkAccess {