diff --git a/gradle.properties b/gradle.properties index 45d7be40..6433caeb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,5 +4,5 @@ version=1.20.2-R0.1-SNAPSHOT mcVersion=1.20.2 packageVersion=1_20_R2 org.gradle.jvmargs=-Xmx2G -paperRef=90fe0d58a5945c31f2c1b138799f64f2fe3475d8 +paperRef=5bb30ce95b14293f5bfebf10be2fdf929eabcc01 preVersion=false diff --git a/patches/server/0002-Delete-Timings.patch b/patches/server/0002-Delete-Timings.patch index 6abdcf32..568b8d7d 100644 --- a/patches/server/0002-Delete-Timings.patch +++ b/patches/server/0002-Delete-Timings.patch @@ -878,7 +878,7 @@ index 9a49f5271ec1d9de17632bfffe8309cb1ba0d8b1..8055ebf912ea595b6c70c6e6fcda14f3 } catch (Exception exception) { if (exception instanceof ReportedException) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2a473825144f69968635d8894f1499af1c39481a..d75338a60cc830dde5f505b83e9f43856e0204be 100644 +index 8ac996335015e5d494886f29921c4c3362659daa..1a375701b6ba43825af59f1dcc966633459adf29 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,9 +3,6 @@ package net.minecraft.server; @@ -1109,7 +1109,7 @@ index d10abd28c522612934aada8124e5bb67a9b4e9da..4a87d5d7f0bfa777ba311ac021d88784 i = this.context.runTopCommand(customfunction1, source); } finally { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 81e3d3dbc74e238c76ead4a0b6efaa2ada3cc49d..6e42c5b72598aaff4a4d3c4ebb9c7bd20bc2639a 100644 +index aeab76b091221d3ed5df221faada70739a7d25a4..10d92f7a5bc8582df7322744bb42adcf1ecdc371 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -58,7 +58,6 @@ import org.apache.logging.log4j.Level; @@ -1136,8 +1136,8 @@ index 81e3d3dbc74e238c76ead4a0b6efaa2ada3cc49d..6e42c5b72598aaff4a4d3c4ebb9c7bd2 } @Override -@@ -773,21 +770,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - +@@ -772,21 +769,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + } // Paper start command.set(event.getCommand()); - if (event.getCommand().toLowerCase().startsWith("timings") && event.getCommand().toLowerCase().matches("timings (report|paste|get|merged|seperate)")) { @@ -1152,16 +1152,14 @@ index 81e3d3dbc74e238c76ead4a0b6efaa2ada3cc49d..6e42c5b72598aaff4a4d3c4ebb9c7bd2 - co.aikar.timings.Timings.generateReport(new co.aikar.timings.TimingsReportListener(sender, waitable)); - } else { // Paper end -- ConsoleInput serverCommand = new ConsoleInput(event.getCommand(), wrapper); -- server.dispatchServerCommand(event.getSender(), serverCommand); + ConsoleInput serverCommand = new ConsoleInput(event.getCommand(), wrapper); + this.server.dispatchServerCommand(event.getSender(), serverCommand); - } // Paper -+ ConsoleInput serverCommand = new ConsoleInput(event.getCommand(), wrapper); -+ server.dispatchServerCommand(event.getSender(), serverCommand); }); // Paper start if (waitableArray[0] != null) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 28c6ec04750daca3d77a0cee2b9f17f2508662cc..8486ed5cfb6268cfb9f0b7ce544aef10e459bbc7 100644 +index 6a49a36f64521f0bddcf21585ee507040119fd6d..ae168e17b01fd814793dda2e4ac9b38a3505adad 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1,13 +1,10 @@ @@ -1294,7 +1292,7 @@ index 28c6ec04750daca3d77a0cee2b9f17f2508662cc..8486ed5cfb6268cfb9f0b7ce544aef10 } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 17b6925b46f8386dcfc561483693de516465ec12..950b9d4ef4a9cb0e3f2ff083d84f1ebb2c642ebd 100644 +index 8c33a12ca879c46893150d6adfb8aa4d397c6b4c..a8df45f925546dc584e32a4038eebc42e9caf07e 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -295,10 +295,8 @@ public class ServerChunkCache extends ChunkSource { @@ -1351,7 +1349,7 @@ index 17b6925b46f8386dcfc561483693de516465ec12..950b9d4ef4a9cb0e3f2ff083d84f1ebb this.clearCache(); } @@ -525,7 +513,6 @@ public class ServerChunkCache extends ChunkSource { - boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit gameprofilerfiller.push("naturalSpawnCount"); - this.level.timings.countNaturalMobs.startTiming(); // Paper - timings @@ -1400,7 +1398,7 @@ index 17b6925b46f8386dcfc561483693de516465ec12..950b9d4ef4a9cb0e3f2ff083d84f1ebb gameprofilerfiller.pop(); this.chunkMap.tick(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86dde5fab01 100644 +index 584a768f2ce1c98a1de7749060c47f21721f9055..2f6f2a5504d51cc9277233ce5d1ca0e2265ccb89 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1,7 +1,6 @@ @@ -1441,7 +1439,7 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d this.updateSkyBrightness(); this.tickTime(); gameprofilerfiller.popPush("tickPending"); -- timings.scheduledBlocks.startTiming(); // Paper +- this.timings.scheduledBlocks.startTiming(); // Paper if (!this.isDebug()) { j = this.getGameTime(); gameprofilerfiller.push("blockTicks"); @@ -1449,7 +1447,7 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d this.fluidTicks.tick(j, 65536, this::tickFluid); gameprofilerfiller.pop(); } -- timings.scheduledBlocks.stopTiming(); // Paper +- this.timings.scheduledBlocks.stopTiming(); // Paper gameprofilerfiller.popPush("raid"); - this.timings.raids.startTiming(); // Paper - timings @@ -1460,9 +1458,9 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d this.getChunkSource().tick(shouldKeepTicking, true); - this.timings.chunkProviderTick.stopTiming(); // Paper - timings gameprofilerfiller.popPush("blockEvents"); -- timings.doSounds.startTiming(); // Spigot +- this.timings.doSounds.startTiming(); // Spigot this.runBlockEvents(); -- timings.doSounds.stopTiming(); // Spigot +- this.timings.doSounds.stopTiming(); // Spigot this.handlingTick = false; gameprofilerfiller.pop(); boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players @@ -1470,7 +1468,7 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d if (flag || this.emptyTime++ < 300) { gameprofilerfiller.push("entities"); -- timings.tickEntities.startTiming(); // Spigot +- this.timings.tickEntities.startTiming(); // Spigot if (this.dragonFight != null) { gameprofilerfiller.push("dragonFight"); this.dragonFight.tick(); @@ -1478,7 +1476,7 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -- timings.entityTick.startTiming(); // Spigot +- this.timings.entityTick.startTiming(); // Spigot this.entityTickList.forEach((entity) -> { if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed @@ -1486,8 +1484,8 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d } } }); -- timings.entityTick.stopTiming(); // Spigot -- timings.tickEntities.stopTiming(); // Spigot +- this.timings.entityTick.stopTiming(); // Spigot +- this.timings.tickEntities.stopTiming(); // Spigot gameprofilerfiller.pop(); this.tickBlockEntities(); } @@ -1602,7 +1600,7 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d @@ -1494,7 +1459,6 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!savingDisabled) { - org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit + org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit - try (co.aikar.timings.Timing ignored = timings.worldSave.startTiming()) { // Paper if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); @@ -1620,7 +1618,7 @@ index 17610196db7a1c6feb2cf74a02479a8691aa323f..47bf04c95163149063d1828a02d0d86d } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 34fcdeb0f4039f1fc6c4c8c593cc615560af1ba2..d52aae55bde8f3c831481580d43c73aa781a22b9 100644 +index 8bca5ba75977c0a61197eb47c94f0456d66b29a4..b6529d2898b4aceee90ebd768f1b07f699798de7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2388,7 +2388,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1654,7 +1652,7 @@ index 34fcdeb0f4039f1fc6c4c8c593cc615560af1ba2..d52aae55bde8f3c831481580d43c73aa } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 48d1444fbad1c57738807d0128b94160a5a17a4d..699ad5ac3c0428c9f41626e43c16c211aec5d409 100644 +index 03d2dc7f68d6918065f852057321fbaaf22fb413..798f24bd82a899a0d78b06064e182139fd29687c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1,6 +1,5 @@ @@ -1709,7 +1707,7 @@ index 73871f456a85bda1e51f54986d0e61fb629822e8..7dbb55953ce9fb489c8a6706bc8a64fd return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b95f88d5e5b4785ee063695fd81935636a0588d1..d54b91c8227c2e89e56d56ea3260d27ff93ff3e7 100644 +index 675d695989cef5d8fc2e85673efbb57ec1bb38bd..afdea957ec8d893cea15a92fe40b19f0410da76a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -1796,7 +1794,7 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..b68c69a7ab71926ecf478d8daa5ec5ac } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ea8a0961190e9aafda4fed6fecd85097c141040a..0cd2163fcca1908f4b0a1dea952afc968cf16a3b 100644 +index 2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782..b197d4c4a031c020e3994190f0c298809aef35a0 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1,10 +1,7 @@ @@ -1865,23 +1863,23 @@ index ea8a0961190e9aafda4fed6fecd85097c141040a..0cd2163fcca1908f4b0a1dea952afc96 public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {} }); // CraftBukkit end -- timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings +- this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper - this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime); - this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); + this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); + this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); @@ -1256,15 +1244,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("blockEntities"); -- timings.tileEntityPending.startTiming(); // Spigot +- this.timings.tileEntityPending.startTiming(); // Spigot this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { this.blockEntityTickers.addAll(this.pendingBlockEntityTickers); this.pendingBlockEntityTickers.clear(); } -- timings.tileEntityPending.stopTiming(); // Spigot +- this.timings.tileEntityPending.stopTiming(); // Spigot -- timings.tileEntityTick.startTiming(); // Spigot +- this.timings.tileEntityTick.startTiming(); // Spigot // Spigot start // Iterator iterator = this.blockEntityTickers.iterator(); int tilesThisCycle = 0; @@ -1889,11 +1887,11 @@ index ea8a0961190e9aafda4fed6fecd85097c141040a..0cd2163fcca1908f4b0a1dea952afc96 } this.blockEntityTickers.removeAll(toRemove); -- timings.tileEntityTick.stopTiming(); // Spigot +- this.timings.tileEntityTick.stopTiming(); // Spigot this.tickingBlockEntities = false; - co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper gameprofilerfiller.pop(); - spigotConfig.currentPrimedTnt = 0; // Spigot + this.spigotConfig.currentPrimedTnt = 0; // Spigot } diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java index 3cdddda9c0618e95288b81b975d499c8dd30c05f..aec5396b7dea8ba45f82f487719d42a1ab0794ec 100644 @@ -1953,7 +1951,7 @@ index 370a25d2deb54f10a35ee24d9e7e92fbfde60edf..ca8a5ae1df1761588233068f9c8288d0 private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); public CraftPersistentDataContainer persistentDataContainer; 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 3e9758fa40bf93fe3d315cc66389193bd57bc393..61db2201e88a0db06a9d4c332178a55953c5a851 100644 +index fa170cc1ce7011d201295b89718292d696c7fc24..6b47cd3dfd0b7a9fc670522d8591e2f44fcde54c 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -786,7 +786,6 @@ public class LevelChunk extends ChunkAccess { @@ -1991,7 +1989,7 @@ index 3e9758fa40bf93fe3d315cc66389193bd57bc393..61db2201e88a0db06a9d4c332178a559 } } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 328cb5980b0d3a15b4fc2b50be10d9b501f7ec27..a6e72d29f3168cbc252f7013b15b3678e65ae38d 100644 +index 2e7738ed88832c23033ca0396e80efad36a1a127..9662af4ce6f76d1faeaa149acb6627fb63f22231 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -342,8 +342,8 @@ public class Main { @@ -2015,7 +2013,7 @@ index 328cb5980b0d3a15b4fc2b50be10d9b501f7ec27..a6e72d29f3168cbc252f7013b15b3678 tryPreloadClass("org.slf4j.helpers.FormattingTuple"); tryPreloadClass("org.slf4j.helpers.BasicMarker"); diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index d7ce4971d9271dbeff4adb9d852e4e7bdf60bf03..c993fde1c026a270f370c437edba9e679aefb44f 100644 +index 3ceb5d83be20183da907915f70ba9e64369373a9..8c9d7c0b1fe87d24e9f6cfb922454a7312f3ef91 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -1,6 +1,5 @@ @@ -2071,7 +2069,7 @@ index d7ce4971d9271dbeff4adb9d852e4e7bdf60bf03..c993fde1c026a270f370c437edba9e67 private boolean isReady(final int currentTick) { diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java -index 3f45bab0e9f7b3697e6d9d1092a1e6e579f7066f..df837f9c33cf6be0f2d8a4e00138ba336e13a50b 100644 +index ea26d9464644b5217879b8c21b4da28e57708dcb..e4868e83cd7883408c598f2dcc3f9f4ea9e967d1 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java @@ -2,14 +2,10 @@ package org.bukkit.craftbukkit.scheduler; @@ -2128,7 +2126,7 @@ index 3f45bab0e9f7b3697e6d9d1092a1e6e579f7066f..df837f9c33cf6be0f2d8a4e00138ba33 long getCreatedAt() { diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java -index 7a2f46579352870cfbb32c343d7c68919758ffe3..c583ad62d70ab073a1dd95b11b5bd2bfe4115c27 100644 +index 891f850ea99dac1433f3e395e26be14c8abf2bfb..b1a3b4d7577a8abb5582a0123c972e0a60ee7840 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java @@ -115,16 +115,9 @@ public final class CraftScoreboardManager implements ScoreboardManager { @@ -2149,7 +2147,7 @@ index 7a2f46579352870cfbb32c343d7c68919758ffe3..c583ad62d70ab073a1dd95b11b5bd2bf } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 6b31f88803041c75023a2c99bdc1efd902f0205c..3ec205299955d088c05f5f9f7625ba8a8ebdad90 100644 +index 548c77592a3520e8053483644eba805079a14f1a..02341fc8d2877a1f057567b3ea287938139e4a91 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -214,7 +214,6 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -2161,7 +2159,7 @@ index 6b31f88803041c75023a2c99bdc1efd902f0205c..3ec205299955d088c05f5f9f7625ba8a // Paper end diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 2f9e5a1adf9d67ffe18d95f2822ca3d2288fb27a..b45343102be8fba8f3b07e387e72e018c3c23f54 100644 +index 59103744ac6beeb12719fdefcda54eeff498229e..7ff5a150802124f57bf605062cdf0a751a51270b 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; diff --git a/patches/server/0005-Leaves-Server-Config-And-Command.patch b/patches/server/0005-Leaves-Server-Config-And-Command.patch index 963ca8ce..66deef20 100644 --- a/patches/server/0005-Leaves-Server-Config-And-Command.patch +++ b/patches/server/0005-Leaves-Server-Config-And-Command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Leaves Server Config And Command diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d75338a60cc830dde5f505b83e9f43856e0204be..c798fbe078e14b0473b2d8bcdccc11238d28025e 100644 +index 1a375701b6ba43825af59f1dcc966633459adf29..d6f913b7bc79d2ffaa994b60d4a8252a296d852c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1095,6 +1095,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21)); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 57696b8fe6eec4c0431ef873c980d37f31ff805b..c2909d4c275714e0751210847798da70dfd9ab70 100644 +index 74fecfb582cbc42dafa1ee9590e98478cd61a01f..96122de9875889efb1b14f2d1d23ef19d54b5453 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -262,6 +262,7 @@ import org.yaml.snakeyaml.constructor.SafeConstructor; @@ -383,7 +383,7 @@ index 57696b8fe6eec4c0431ef873c980d37f31ff805b..c2909d4c275714e0751210847798da70 // Paper start - Folia region threading API private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); -@@ -3145,4 +3147,11 @@ public final class CraftServer implements Server { +@@ -3146,4 +3148,11 @@ public final class CraftServer implements Server { } // Paper end @@ -396,7 +396,7 @@ index 57696b8fe6eec4c0431ef873c980d37f31ff805b..c2909d4c275714e0751210847798da70 + // Leaves end - Bot API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index f7ebddd35ff5a60a81034fd7de035ebba83e9517..80afcba1a1918ee8f108976a4b82302370bee9c0 100644 +index 90b04377088fcaf128cb35843702d2f5ead4b7f6..3a9430ab1661ee36985a4cee4289e84c1b254cdc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -194,6 +194,8 @@ import org.bukkit.plugin.Plugin; @@ -423,7 +423,7 @@ index f7ebddd35ff5a60a81034fd7de035ebba83e9517..80afcba1a1918ee8f108976a4b823023 } // Water Animals diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index c993fde1c026a270f370c437edba9e679aefb44f..342fd19005b8cfd8e9ca0d5bbbf2b07048703c86 100644 +index 8c9d7c0b1fe87d24e9f6cfb922454a7312f3ef91..29fade509473d5a154aac9074d96bceef0b799f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -44,7 +44,7 @@ import org.bukkit.scheduler.BukkitWorker; diff --git a/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch b/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch index 1aeedb80..79034ff2 100644 --- a/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch +++ b/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add isShrink to EntityResurrectEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d54b91c8227c2e89e56d56ea3260d27ff93ff3e7..a7ba416e6f5ad58b29e51066036eeaaeea016d11 100644 +index afdea957ec8d893cea15a92fe40b19f0410da76a..441f52648143498a5122e5ca10dc48a17964b443 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1608,12 +1608,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1605,12 +1605,12 @@ public abstract class LivingEntity extends Entity implements Attackable { } org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null; @@ -23,7 +23,7 @@ index d54b91c8227c2e89e56d56ea3260d27ff93ff3e7..a7ba416e6f5ad58b29e51066036eeaae itemstack1.shrink(1); } if (itemstack != null && this instanceof ServerPlayer) { -@@ -4534,3 +4534,4 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4531,3 +4531,4 @@ public abstract class LivingEntity extends Entity implements Attackable { } } diff --git a/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch b/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch index 53712af5..33a93959 100644 --- a/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch +++ b/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimize random calls in chunk ticking This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 950b9d4ef4a9cb0e3f2ff083d84f1ebb2c642ebd..45cac95d44509ec8fcc46177a47c307398d756b4 100644 +index a8df45f925546dc584e32a4038eebc42e9caf07e..19aec4b735a25592ae173dcb63110d6dce0381e7 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -509,6 +509,11 @@ public class ServerChunkCache extends ChunkSource { @@ -19,10 +19,10 @@ index 950b9d4ef4a9cb0e3f2ff083d84f1ebb2c642ebd..45cac95d44509ec8fcc46177a47c3073 + } + // Leaves end - reset ice & snow tick random int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); - boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index aac170cb0b3b83acc425875b14301a37811a6d1d..7e201e056d3d3d7370776f7e1f3f8146998945e0 100644 +index 9cd0a6e5080a73264ec5f379e3bce7679647bba9..dd7d27ab88b35ac4203bf48bc987dfe3205fa529 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -948,6 +948,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -49,7 +49,7 @@ index aac170cb0b3b83acc425875b14301a37811a6d1d..7e201e056d3d3d7370776f7e1f3f8146 if (this.isRainingAt(blockposition)) { 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 61db2201e88a0db06a9d4c332178a55953c5a851..17696dfdb3ad1d8c63ff1d1fa0c5eb6bf2e2ae42 100644 +index 6b47cd3dfd0b7a9fc670522d8591e2f44fcde54c..9438e62577aa02423b1dd0fc95696dab097b8429 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/0037-Cache-climbing-check-for-activation.patch b/patches/server/0037-Cache-climbing-check-for-activation.patch index 30f58a88..f4c768da 100644 --- a/patches/server/0037-Cache-climbing-check-for-activation.patch +++ b/patches/server/0037-Cache-climbing-check-for-activation.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Cache climbing check for activation This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cbf0b393a996487cedb8eab5610647e795138f21..532c51848fcd65d5f26c51dddd61875e35558b80 100644 +index e4123eecdee2bf6092355b0a019165d28d77ee5d..9e018eea8725a3d922d94a66510fceb71014c9ad 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2007,6 +2007,22 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2004,6 +2004,22 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } @@ -33,7 +33,7 @@ index cbf0b393a996487cedb8eab5610647e795138f21..532c51848fcd65d5f26c51dddd61875e if (this.isSpectator()) { return false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index b45343102be8fba8f3b07e387e72e018c3c23f54..45909e08c8e4d0476b08b07a1da7aaf82c05bed2 100644 +index 7ff5a150802124f57bf605062cdf0a751a51270b..139972f506dd619012a77fb4f8d18f96579acd67 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -294,7 +294,7 @@ public class ActivationRange diff --git a/patches/server/0047-Player-operation-limiter.patch b/patches/server/0047-Player-operation-limiter.patch index 9b1c2ee5..a3c2190d 100644 --- a/patches/server/0047-Player-operation-limiter.patch +++ b/patches/server/0047-Player-operation-limiter.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Player operation limiter This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index fd785af7ede0afa0214899ba43ae155fe6db6c6a..7395ceda71f1123577b99ab48d13b7fd07ae17f8 100644 +index 8bd801e15408bf5284acec33bdf3c798c7cf54f6..97332f315bf0a4bca0d6526f8953bf34757b6321 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -274,6 +274,10 @@ public class ServerPlayer extends Player { @@ -28,7 +28,7 @@ index fd785af7ede0afa0214899ba43ae155fe6db6c6a..7395ceda71f1123577b99ab48d13b7fd this.gameMode.tick(); this.wardenSpawnTracker.tick(); --this.spawnInvulnerableTime; -@@ -2663,5 +2668,32 @@ public class ServerPlayer extends Player { +@@ -2666,5 +2671,32 @@ public class ServerPlayer extends Player { public CraftPlayer getBukkitEntity() { return (CraftPlayer) super.getBukkitEntity(); } @@ -62,7 +62,7 @@ index fd785af7ede0afa0214899ba43ae155fe6db6c6a..7395ceda71f1123577b99ab48d13b7fd // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index b2c2bd5ec0afd479973f7237a5c610f21231c505..63f89a7fb6309c2d5b7a3f75fdb21d85ddbfa80a 100644 +index 106a312aba249d1e83e4b535fc6e741e04ccfd14..b065f2de65d5389bc4d202d8c0b1aecb565340a6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -44,6 +44,7 @@ import org.bukkit.event.Event; diff --git a/patches/server/0052-Return-nether-portal-fix.patch b/patches/server/0052-Return-nether-portal-fix.patch index f8417487..bb02c050 100644 --- a/patches/server/0052-Return-nether-portal-fix.patch +++ b/patches/server/0052-Return-nether-portal-fix.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Return nether portal fix This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 08ea2ca7586bb4fb7f8257b900035b0a4e1b261f..26584359959f3d809760be4b0a8983f48a197882 100644 +index 97332f315bf0a4bca0d6526f8953bf34757b6321..fe5ef64df18c38cfb7912c7415ece9cc94cbc222 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -180,6 +180,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -74,7 +74,7 @@ index 08ea2ca7586bb4fb7f8257b900035b0a4e1b261f..26584359959f3d809760be4b0a8983f4 return optional; } else { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 7f835ccc97daa0d5ebfebc0a5781233ac389a7ef..9cf607051794f673102dbb4dc887aafabb6e291f 100644 +index 9897936868861b69f1120ab697ef81ffa625b83e..7269e9b7fff511903fe652e6579ec0ff4740a125 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -24,6 +24,8 @@ import java.util.UUID; @@ -98,7 +98,7 @@ index 7f835ccc97daa0d5ebfebc0a5781233ac389a7ef..9cf607051794f673102dbb4dc887aafa @@ -982,6 +986,24 @@ public abstract class PlayerList { if (fromWorld != location.getWorld()) { PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld); - server.server.getPluginManager().callEvent(event); + this.server.server.getPluginManager().callEvent(event); + // Leaves start - nether portal fix + if (top.leavesmc.leaves.LeavesConfig.netherPortalFix) { + final ResourceKey fromDim = entityplayer.level().dimension(); @@ -121,7 +121,7 @@ index 7f835ccc97daa0d5ebfebc0a5781233ac389a7ef..9cf607051794f673102dbb4dc887aafa // Save player file again if they were disconnected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 532c51848fcd65d5f26c51dddd61875e35558b80..257ad724f02a2b5e6ec84cde6339f18fb95d7a6d 100644 +index 9e018eea8725a3d922d94a66510fceb71014c9ad..9032a4c498c5081dba216077e502fe1798c71dfc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -241,7 +241,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0074-Fix-Paper-9372.patch b/patches/server/0074-Fix-Paper-9372.patch index de8f9b16..9f7a4f7e 100644 --- a/patches/server/0074-Fix-Paper-9372.patch +++ b/patches/server/0074-Fix-Paper-9372.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix Paper#9372 This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b460bff1bc67c50f3f369bb93081b292384a193c..409c3aee7a48df3ac3fbe61e0648c7610f20b73d 100644 +index fe5ef64df18c38cfb7912c7415ece9cc94cbc222..af8d99c2f7393bcbd10d045b72f6d8c17c0b7929 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1260,6 +1260,7 @@ public class ServerPlayer extends Player { @@ -25,15 +25,15 @@ index b460bff1bc67c50f3f369bb93081b292384a193c..409c3aee7a48df3ac3fbe61e0648c761 } @Override -@@ -2220,6 +2222,7 @@ public class ServerPlayer extends Player { +@@ -2222,6 +2224,7 @@ public class ServerPlayer extends Player { this.connection.send(new ClientboundSetCameraPacket(this.camera)); this.connection.resetPosition(); + if (top.leavesmc.leaves.LeavesConfig.fixPaper9372) this.mainSupportingBlockPos = Optional.empty(); // Leaves - fix paper 9372 } - } -@@ -2658,6 +2661,7 @@ public class ServerPlayer extends Player { + } +@@ -2661,6 +2664,7 @@ public class ServerPlayer extends Player { public void forceSetPositionRotation(double x, double y, double z, float yaw, float pitch) { this.moveTo(x, y, z, yaw, pitch); this.connection.resetPosition(); diff --git a/patches/server/0077-No-block-update-command.patch b/patches/server/0077-No-block-update-command.patch index 648a38d3..4539349b 100644 --- a/patches/server/0077-No-block-update-command.patch +++ b/patches/server/0077-No-block-update-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] No block update command diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8117083ccf90e00a183b8cef84069e3bb208dfec..c0ebba04b41628f691ab55853498df258549e939 100644 +index 790ffade00fa3a994490e652751faa6fa03a5ed2..aa6bf9361144679821adf1b090abcef34115d1fc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2482,6 +2482,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -15,7 +15,7 @@ index 8117083ccf90e00a183b8cef84069e3bb208dfec..c0ebba04b41628f691ab55853498df25 + if (top.leavesmc.leaves.command.NoBlockUpdateCommand.isNoBlockUpdate()) return; // Leaves - no block update if (!this.isDebug()) { // CraftBukkit start - if (populating) { + if (this.populating) { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java index 4697df75fdee2023c41260bed211e3e3d90d2b9b..8c9bc54a7007b0c5ae1c8576aeca5d05a55613d1 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java @@ -30,7 +30,7 @@ index 4697df75fdee2023c41260bed211e3e3d90d2b9b..8c9bc54a7007b0c5ae1c8576aeca5d05 world.notifyAndUpdatePhysics(newblockposition, null, oldBlock, block, world.getBlockState(newblockposition), updateFlag, 512); // send null chunk as chunk.k() returns false by this point 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 bb47170917ed8918a9781b71ae60fd74e2d1c586..7add47837626b7cbc170b1e0b1d0e445e7b51fa5 100644 +index 685c619a48e9787d927d812642f4c51cef1664e4..ed288e84029d5ef7e9b7eb2827458c258f0ce10e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -481,7 +481,7 @@ public class LevelChunk extends ChunkAccess { @@ -92,7 +92,7 @@ index 2708251ebc1995e71fb0e5dca9e158a3005f8a8a..e28351b379677fec356b6efec2d882ee } } diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -index 79e3e4ae09d29134219485800d8d9efc91d9ce6b..f378005cafe92f57e8264757b17eeb9d43b177aa 100644 +index dbb780dcb7e803a34a7638a8f0c40a5a615a3148..a9d1d2a304bc96ae7993f7a8302cc6602474c6aa 100644 --- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java @@ -11,6 +11,7 @@ import org.bukkit.configuration.file.YamlConfiguration; diff --git a/patches/server/0093-Reduce-array-allocations.patch b/patches/server/0093-Reduce-array-allocations.patch index fef53d9d..0bb99f3e 100644 --- a/patches/server/0093-Reduce-array-allocations.patch +++ b/patches/server/0093-Reduce-array-allocations.patch @@ -227,7 +227,7 @@ index b0517b9483a8cfd74997f89efdc0d8559b80ae4a..e7cfc98aa6dc19c5adad4c797ae7292a for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c0ebba04b41628f691ab55853498df258549e939..8ce9c990d9db973ea2bb80a58fa9002a6f1793b0 100644 +index aa6bf9361144679821adf1b090abcef34115d1fc..f836228eb76b53944c127d2e5b759d9e89b02699 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -172,6 +172,7 @@ import org.bukkit.event.weather.LightningStrikeEvent; @@ -257,7 +257,7 @@ index c0ebba04b41628f691ab55853498df258549e939..8ce9c990d9db973ea2bb80a58fa9002a return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d697624df09cc485b5e8c680153f78f03195dbe7..49296a14d6b1471fa0b92c7bfbb715a434af33b8 100644 +index 9c290bb9698ba29f04e82edf892d3a189312b2f4..ebfe7088ee04e9bc45b57a29d3767d6997fbfe38 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -239,6 +239,7 @@ import org.bukkit.inventory.EquipmentSlot; @@ -294,7 +294,7 @@ index d697624df09cc485b5e8c680153f78f03195dbe7..49296a14d6b1471fa0b92c7bfbb715a4 } } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index ff2dd53e9e943aa929188fd9d4c35498b78c497a..3ccd8d80344a436bf4db6e119453adac40fdc2b9 100644 +index 1c4f272219e68373eaae93fc5ea9af7d8f3fd6f9..e6834c3388cba6d014871efb3ab2b9538ca18c3f 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -43,6 +43,7 @@ import org.bukkit.craftbukkit.util.Waitable; @@ -328,7 +328,7 @@ index ff2dd53e9e943aa929188fd9d4c35498b78c497a..3ccd8d80344a436bf4db6e119453adac final String s; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 16ce16049f6ee6d989606495d022af6ff893a695..234abc2192339c3e28a53561b05578fb0847d5d9 100644 +index 10892eb3b1b0ce8ea197e2232f44bc29b73c8902..9af2f9ad9bdf483b4763c8b2d4573b04532d95d1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -123,6 +123,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; @@ -398,10 +398,10 @@ index 2e324276ea4cd9e528c6a3f9a9ba394b378fe075..8d949983a30f27a60982f6b406151408 private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) { this.type = type; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 77efccddeb270de69083a1dd5fc1c8abbece7f0d..109861edf227f88b2dfc1baa8ff494fc1fb5a8d6 100644 +index 9032a4c498c5081dba216077e502fe1798c71dfc..edc782045b002de631fdc432f68848b1f85dd363 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3141,7 +3141,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3138,7 +3138,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @Nullable private Map collectEquipmentChanges() { Map map = null; @@ -451,7 +451,7 @@ index 48889d29c94dc09030d5c9825d3b0a637e660b0e..c7475a368efd82d0b1e407c9addc0aee for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 807cff3fb51269b97d9aecbcc4706f0a139dfeaa..459cfde5cf1fc619b186e2adfbd252bd12720990 100644 +index 94396ad1a3c280787d36c6c18256d10340ace488..ae0de0d0cb970a10a8a612cf34810a3613ac6c73 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -237,7 +237,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -515,7 +515,7 @@ index 2bfbdaeb2b0d99dfd956cd5936403fe8b0eeae64..7ad1545631604aa55f6d4fbdcbaefe6d public Enchantments() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cb62c2b8b6cdd628037b67a58b3fbf7e5f1d0284..1f59cf27dc482a62592dd39e3ac755c29ed175ef 100644 +index cdfeb7f87efdfe689a43b3d13656c8f682b5400e..cabd335e0a52e992bb2e1fbd3215ee10715c993b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -94,6 +94,7 @@ import org.bukkit.craftbukkit.util.CraftSpawnCategory; @@ -655,7 +655,7 @@ index 6827979a5b270ced53b46ecb9eff548727dadb81..1b84078152d0585ec51288e585754be1 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java -index bbacf58740f3faea0d555e4012fe2b15fb46ed50..97afd508898096e5c2e6401cf02b0be587f365d9 100644 +index b25dc23b81687dd4d4e70b3615ffb91f8c03c68b..9435ea991a429c1d81d4cba63231e846e3bd2b7e 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java +++ b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java @@ -6,6 +6,7 @@ import java.util.ArrayList; diff --git a/patches/server/0109-Force-peaceful-mode-switch.patch b/patches/server/0109-Force-peaceful-mode-switch.patch index 0759683d..8bfb9654 100644 --- a/patches/server/0109-Force-peaceful-mode-switch.patch +++ b/patches/server/0109-Force-peaceful-mode-switch.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Force peaceful mode switch diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 45cac95d44509ec8fcc46177a47c307398d756b4..337caea07f43388ec1fb16fcc8a527c40e7fb0bb 100644 +index 19aec4b735a25592ae173dcb63110d6dce0381e7..6df41418bc02f65c6d5ec84507b6ed799270b90c 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -76,6 +76,12 @@ public class ServerChunkCache extends ChunkSource { @@ -42,7 +42,7 @@ index 45cac95d44509ec8fcc46177a47c307398d756b4..337caea07f43388ec1fb16fcc8a527c4 + // Leaves end - peaceful mode switch + int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); - boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit @@ -603,6 +625,16 @@ public class ServerChunkCache extends ChunkSource { Collections.shuffle(shuffled); @@ -100,10 +100,10 @@ index 7eec9dc8237ff04c53b573c3cc87e6cdbfdda7ed..2aafb872578d266f2826e5bddebc9b4a boolean spawnThisTick = true; int limit = enumcreaturetype.getMaxInstancesPerChunk(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 4879b585df9a6488922511a8e6603964bd13abcf..9dcb7677b995f4a11e674a46958a43a7abe6559f 100644 +index 5e350fa39f47d54f6048ea89c1317759f122b8ae..79ae01e4b3f93e577896cae83d0f0cedfc531747 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2308,6 +2308,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2311,6 +2311,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { return CraftFeatureFlag.getFromNMS(this.getHandle().enabledFeatures()).stream().map(FeatureFlag.class::cast).collect(Collectors.toUnmodifiableSet()); } diff --git a/patches/server/0111-Replay-Mod-API.patch b/patches/server/0111-Replay-Mod-API.patch index 514db654..fdb4c599 100644 --- a/patches/server/0111-Replay-Mod-API.patch +++ b/patches/server/0111-Replay-Mod-API.patch @@ -107,7 +107,7 @@ index fbd602b5219c0eeefea36dbaca7aae10d483a152..e05620a5fa75e22001511fff205b718b } // Leaves end - bot can't get advancement diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 18e1845f3919d988d51ab7ba0a6eec6cd3a38df8..2072faea136e67ae34f52cb8dd9d00293097aaaa 100644 +index ebfe7088ee04e9bc45b57a29d3767d6997fbfe38..010f7c8ee2ea275b8dd9e7cf6573df1a8c9aa39a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -300,7 +300,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -120,7 +120,7 @@ index 18e1845f3919d988d51ab7ba0a6eec6cd3a38df8..2072faea136e67ae34f52cb8dd9d0029 } else { connection.setListener(this); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 234abc2192339c3e28a53561b05578fb0847d5d9..ca079dcd63d076e30a20c9bf09d53df39a478305 100644 +index 9af2f9ad9bdf483b4763c8b2d4573b04532d95d1..94fce1ed0343d004609c11f7aea5649adb19546d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -125,6 +125,7 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason; @@ -334,7 +334,7 @@ index 234abc2192339c3e28a53561b05578fb0847d5d9..ca079dcd63d076e30a20c9bf09d53df3 this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer); UUID uuid = entityplayer.getUUID(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c2909d4c275714e0751210847798da70dfd9ab70..2046f43b1a4108cee1d7cd59a0d20426c25b03cb 100644 +index 96122de9875889efb1b14f2d1d23ef19d54b5453..4517f70979e87040d89081befe243e57de88786f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -263,6 +263,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; @@ -362,7 +362,7 @@ index c2909d4c275714e0751210847798da70dfd9ab70..2046f43b1a4108cee1d7cd59a0d20426 @Override public CraftPlayer apply(ServerPlayer player) { return player.getBukkitEntity(); -@@ -3154,4 +3156,11 @@ public final class CraftServer implements Server { +@@ -3155,4 +3157,11 @@ public final class CraftServer implements Server { return botManager; } // Leaves end - Bot API @@ -375,7 +375,7 @@ index c2909d4c275714e0751210847798da70dfd9ab70..2046f43b1a4108cee1d7cd59a0d20426 + // Leaves end - replay mod api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index e7b7e1f670ec90b130f6388a5c9ded271b18fb01..1056b7dc2462248877cbe47e130c2d9c86766126 100644 +index 3a9430ab1661ee36985a4cee4289e84c1b254cdc..f55d0c376396c53e29748b8066bcf3a8dd3b42db 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -198,6 +198,8 @@ import top.leavesmc.leaves.bot.ServerBot; diff --git a/patches/server/0112-Leaves-tick-command.patch b/patches/server/0112-Leaves-tick-command.patch index 1423ab4a..5ad0359b 100644 --- a/patches/server/0112-Leaves-tick-command.patch +++ b/patches/server/0112-Leaves-tick-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Leaves tick command diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fccb76a8dfa6a0c5d704a0a8f7392beedea320c9..781a0fc1988f950ca85c05614fec0a8ecabaeaf7 100644 +index a890c2afd91c250e9b06e826a0eaa4d1eadf5a00..863abf6a15cc35bceb18e20a4e2798d3f4d62655 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -184,6 +184,8 @@ import org.bukkit.craftbukkit.Main; @@ -109,10 +109,10 @@ index fccb76a8dfa6a0c5d704a0a8f7392beedea320c9..781a0fc1988f950ca85c05614fec0a8e ReportedException reportedexception = null; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 409c3aee7a48df3ac3fbe61e0648c7610f20b73d..b7e5b744e955396b2c8ba3aed14ecd886e88a9b6 100644 +index af8d99c2f7393bcbd10d045b72f6d8c17c0b7929..466c581d5c076f1eff56178c0bf85973fc6da91c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2739,7 +2739,7 @@ public class ServerPlayer extends Player { +@@ -2742,7 +2742,7 @@ public class ServerPlayer extends Player { } public boolean allowOperation() {