From 0bd557933cb015dfb3f0ac91974019631101f1d6 Mon Sep 17 00:00:00 2001 From: granny Date: Tue, 30 Jul 2024 15:53:18 -0700 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@dcbd99d Fix Owen's typos (#11179) PaperMC/Paper@f82bea6 Add argument for FinePosition to brig API (#11094) PaperMC/Paper@694b120 Remove Entity tracker field PaperMC/Paper@f774787 Copy missed changes to chunk system from Folia PaperMC/Paper@50bdfc3 Null check tracker in Entity#resendPossiblyDesyncedEntityData PaperMC/Paper@3234b20 Do not allow chunk unloading outside of the regular tick loop PaperMC/Paper@0246a9d Add mob bucket items to item id to entity map in DataConverter PaperMC/Paper@438863c Shutdown L4J cordially if the server stops before it's even started (#11172) PaperMC/Paper@100d75a Don't entirely die just because a plugin jar was bad PaperMC/Paper@227544c Move TickThread changes from Moonrise patch to MCUtils PaperMC/Paper@67d414a Allow plugin aliases to override vanilla commands (#11186) PaperMC/Paper@58c7ea3 Preserve command node when re-registering modern commands through old API (#11184) --- gradle.properties | 2 +- patches/server/0007-Ridables.patch | 33 +++++---- .../0013-Configurable-server-mod-name.patch | 4 +- patches/server/0014-Lagging-threshold.patch | 4 +- ...option-to-set-armorstand-step-height.patch | 4 +- .../0044-Configurable-TPS-Catchup.patch | 4 +- .../0053-Add-canSaveToDisk-to-Entity.patch | 4 +- ...0057-Add-5-second-tps-average-in-tps.patch | 6 +- .../0092-Configurable-daylight-cycle.patch | 4 +- patches/server/0112-Implement-TPSBar.patch | 4 +- ...166-API-for-any-mob-to-burn-daylight.patch | 6 +- .../server/0209-UPnP-Port-Forwarding.patch | 4 +- ...counts-in-beehives-to-Purpur-clients.patch | 4 +- ...dd-toggle-for-enchant-level-clamping.patch | 4 +- ...0249-Add-toggle-for-RNG-manipulation.patch | 4 +- patches/server/0250-Remove-Timings.patch | 36 ++++----- .../server/0251-Remove-Mojang-Profiler.patch | 73 +++++++++---------- patches/server/0267-Fire-Immunity-API.patch | 6 +- ...87-register-minecraft-debug-commands.patch | 4 +- .../0290-config-for-startup-commands.patch | 4 +- 20 files changed, 108 insertions(+), 106 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5ac9c119d..8722e1f46 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.21-R0.1-SNAPSHOT mcVersion = 1.21 -paperCommit = 66165f712a99e02d383dc393b09aac565ea27540 +paperCommit = 58c7ea3193c5c192fb09b0197b86f0ff5dbe2dfd org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index 52733f1e0..8063d58d0 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -22,10 +22,10 @@ index 2767d6f97e8b314d23a8e62f22dfd396f5660d31..a64e5997b94cc8173f0512d1e282355f super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9325d6f95165a7cee00d7de736af723681cc16b4..cc5bb3a8a06a7fc727f8737fca727f72a9302264 100644 +index 23ddd26af762c1cd7fb3920669abb96b3213ab37..e5ae7478cf2d3ef9d484116db742dd8c5bfb74b2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1784,6 +1784,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.updateLagCompensationTick(); // Paper - lag compensation @@ -66,7 +66,7 @@ index 37adf5d3c6248547d830248714f32dbec653d653..f21573f92d6703d74203b205aa2aebd0 private void updatePlayerAttributes() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7796e191747be545e744564a2b0b65790f69114d..82f60de72bc0f9b01eb97dbc0e296e80579b0968 100644 +index 624b80c796e9c95040d71d1595d11f98e2899cf3..152aff15307dabafdd0f3b3cf8f61b216c5d9f3f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2717,6 +2717,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -79,10 +79,10 @@ index 7796e191747be545e744564a2b0b65790f69114d..82f60de72bc0f9b01eb97dbc0e296e80 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 78a218bf01609dffcd3741ddc7b27190af7f2731..9cc922a6b75dde1f73b6b1e823cf2918d975f3f4 100644 +index 0d54e2c5c1a65c979a1188e1cd9f61e23981dd5d..6b3a97195be55076fa287a9463e1727575b9b49b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -384,7 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -383,7 +383,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private final Set tags; private final double[] pistonDeltas; private long pistonDeltasGameTime; @@ -5085,10 +5085,10 @@ index 55fd997a4e894eeab24de269d59e486196ffbe8d..63f48841c849ff49d9d43efc5de8952c public boolean hurt(DamageSource source, float amount) { return false; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 2cde808bfa797256409879505ba205a71f381981..84479dad6078a2a12e6b977185bdbbe7f6b36576 100644 +index cd789c235acf740ec29c30b180e7fbe1a140caa9..edaaaf0ecc412504b32fe7481f95e5947e0f922a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1297,4 +1297,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1299,4 +1299,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.getHandle().getScoreboardName(); } // Paper end - entity scoreboard name @@ -6055,14 +6055,15 @@ index 0000000000000000000000000000000000000000..9383c07fa53141127106a1f289366a04 +} diff --git a/src/main/java/org/purpurmc/purpur/controller/LookControllerWASD.java b/src/main/java/org/purpurmc/purpur/controller/LookControllerWASD.java new file mode 100644 -index 0000000000000000000000000000000000000000..b8c25c96e95dd5ec3ad9fa4c41bd6c08e144832d +index 0000000000000000000000000000000000000000..dd219518150ca90f89ad238904fd4095efe032d8 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/controller/LookControllerWASD.java -@@ -0,0 +1,76 @@ +@@ -0,0 +1,79 @@ +package org.purpurmc.purpur.controller; + + +import net.minecraft.network.protocol.game.ClientboundMoveEntityPacket; ++import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.ai.control.LookControl; @@ -6103,12 +6104,14 @@ index 0000000000000000000000000000000000000000..b8c25c96e95dd5ec3ad9fa4c41bd6c08 + entity.xRotO = entity.getXRot(); + entity.yRotO = entity.getYRot(); + -+ entity.tracker.broadcast(new ClientboundMoveEntityPacket -+ .PosRot(entity.getId(), -+ (short) 0, (short) 0, (short) 0, -+ (byte) Mth.floor(entity.getYRot() * 256.0F / 360.0F), -+ (byte) Mth.floor(entity.getXRot() * 256.0F / 360.0F), -+ entity.onGround)); ++ ClientboundMoveEntityPacket.PosRot entityPacket = new ClientboundMoveEntityPacket.PosRot( ++ entity.getId(), ++ (short) 0, (short) 0, (short) 0, ++ (byte) Mth.floor(entity.getYRot() * 256.0F / 360.0F), ++ (byte) Mth.floor(entity.getXRot() * 256.0F / 360.0F), ++ entity.onGround ++ ); ++ ((ServerLevel) entity.level()).getChunkSource().broadcast(entity, entityPacket); + } + + public void setOffsets(float yaw, float pitch) { diff --git a/patches/server/0013-Configurable-server-mod-name.patch b/patches/server/0013-Configurable-server-mod-name.patch index ba66669bb..9fdb3d334 100644 --- a/patches/server/0013-Configurable-server-mod-name.patch +++ b/patches/server/0013-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index cc5bb3a8a06a7fc727f8737fca727f72a9302264..a447abcc0ee8f3657f3a6cb189f9f74c322a8f91 100644 +index e5ae7478cf2d3ef9d484116db742dd8c5bfb74b2..90c7602b83134fdd84dcd0a96908256fa5bfd172 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1942,7 +1942,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3993769068556926eb30e32d90204ceb4287119d..14cadfb2fb802a6106b40cdac5c49ca8f40afeb7 100644 +index e2190c3ca38d37042d43be3eedfca29f5bd5a061..9470540c9f7db168e3ba8671d7a1ceab26b8dda3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -557,6 +557,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -556,6 +556,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } // Purpur end @@ -357,7 +357,7 @@ index e6321e1c5ed453824de4af629feff272e24def01..1910e22e9ee2d18e86c9f8e3dd06199e } // Paper end - Add more Zombie API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 4be205b10229b238039e4221df043e47cba68511..d4fc45d4f419309ba11830accdc3cdafe739ab15 100644 +index 0d497b26eeb53ca65bbb936e2c1bed3d47560ea2..33469665998543f45e68eb50e7dc3f3c6af7b0c4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -86,6 +86,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0209-UPnP-Port-Forwarding.patch b/patches/server/0209-UPnP-Port-Forwarding.patch index a36e13f76..c9becbc6f 100644 --- a/patches/server/0209-UPnP-Port-Forwarding.patch +++ b/patches/server/0209-UPnP-Port-Forwarding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] UPnP Port Forwarding diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fc2ce566c8af96548b26e238a0194dd382df823e..4c7423b13629943752f3190e6aa9cce2932cc10b 100644 +index 78921a485917012bbebe7d6ac05fb975449f8338..e4ccd6b8751d61c8be0c36b72d8d155e8452b379 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -321,6 +321,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.connection.suspendFlushing(); }); @@ -97,7 +97,7 @@ index 2de2fa1f515eac62ff5a8a789f3a86c83221cd31..5e1004ccd735a0889dbdfbfcebb92142 // Paper start - Folia scheduler API ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); getAllLevels().forEach(level -> { -@@ -1766,21 +1766,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -211,7 +211,7 @@ index d85cbcc06b35d5a3467d7d1c81c9f09c1a8db175..1b68b54c264483f20bb46921d5603ec9 ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -984,17 +984,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -983,17 +983,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } @@ -233,7 +233,7 @@ index d85cbcc06b35d5a3467d7d1c81c9f09c1a8db175..1b68b54c264483f20bb46921d5603ec9 } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 8a0b00d645e4cf2ca96ec7e8ebc6ef726a0ab8b0..84a66167e0e8e933c2c0051aae4c68d698b57738 100644 +index dcb5651d1d9b10b40430fb2f713beedf68336704..4aa9fbdf1eda91a5c54ff53709d94f30e9b2e62b 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -356,9 +356,9 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @@ -248,7 +248,7 @@ index 8a0b00d645e4cf2ca96ec7e8ebc6ef726a0ab8b0..84a66167e0e8e933c2c0051aae4c68d6 } @Override -@@ -393,26 +393,25 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -394,26 +394,25 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @Override public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) { this.level.getProfiler().push("purge"); @@ -281,7 +281,7 @@ index 8a0b00d645e4cf2ca96ec7e8ebc6ef726a0ab8b0..84a66167e0e8e933c2c0051aae4c68d6 this.level.getProfiler().pop(); this.clearCache(); } -@@ -448,13 +447,13 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -449,13 +448,13 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } // Paper end - chunk tick iteration optimisations Iterator iterator = null; // Paper - chunk tick iteration optimisations @@ -297,7 +297,7 @@ index 8a0b00d645e4cf2ca96ec7e8ebc6ef726a0ab8b0..84a66167e0e8e933c2c0051aae4c68d6 int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - Optional per player mob spawns int naturalSpawnChunkCount = k; -@@ -479,7 +478,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -480,7 +479,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); } // Paper end - Optional per player mob spawns @@ -306,7 +306,7 @@ index 8a0b00d645e4cf2ca96ec7e8ebc6ef726a0ab8b0..84a66167e0e8e933c2c0051aae4c68d6 this.lastSpawnState = spawnercreature_d; gameprofilerfiller.popPush("spawnAndTick"); -@@ -520,19 +519,19 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -521,19 +520,19 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } } } @@ -330,7 +330,7 @@ index 8a0b00d645e4cf2ca96ec7e8ebc6ef726a0ab8b0..84a66167e0e8e933c2c0051aae4c68d6 { final it.unimi.dsi.fastutil.objects.ObjectArrayList chunks = (it.unimi.dsi.fastutil.objects.ObjectArrayList)list; final ServerChunkCache.ChunkAndHolder[] raw = chunks.elements(); -@@ -546,7 +545,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -547,7 +546,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon holder.holder().broadcastChanges(holder.chunk()); } } diff --git a/patches/server/0251-Remove-Mojang-Profiler.patch b/patches/server/0251-Remove-Mojang-Profiler.patch index 6f0e09c5c..50a882767 100644 --- a/patches/server/0251-Remove-Mojang-Profiler.patch +++ b/patches/server/0251-Remove-Mojang-Profiler.patch @@ -83,7 +83,7 @@ index e9775b4506909bee65a74964f0d5391a0513de1d..684f7f202305c09b1037c5d38a52a5ea } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5e1004ccd735a0889dbdfbfcebb921422ac992a4..8828083d92a0c3c0623dbf6771cef88854c8ec6f 100644 +index 771c81e505974d8e3a21886eb0f0b07c87601bb0..cdb5b001ec3104a04da9a160c6c4db532c3508e1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -422,13 +422,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return false; } : this::haveTime); -@@ -1330,7 +1330,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0; try { this.isSaving = true; -@@ -1647,7 +1647,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Purpur @@ -246,7 +246,7 @@ index 5e1004ccd735a0889dbdfbfcebb921422ac992a4..8828083d92a0c3c0623dbf6771cef888 try { //worldserver.timings.doTick.startTiming(); // Spigot // Purpur -@@ -1838,17 +1838,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { this.executeBlocking(() -> { this.saveDebugReport(path.resolve("server")); -@@ -2859,40 +2860,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list; { -@@ -452,7 +452,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -453,7 +454,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon // Paper - chunk tick iteration optimisations if (this.level.tickRateManager().runsNormally()) { @@ -545,7 +544,7 @@ index 84a66167e0e8e933c2c0051aae4c68d698b57738..74453c9f81f8c2c0dec96d25ccf2cb34 //this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - Optional per player mob spawns -@@ -481,7 +481,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -482,7 +483,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon // this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur this.lastSpawnState = spawnercreature_d; @@ -554,7 +553,7 @@ index 84a66167e0e8e933c2c0051aae4c68d698b57738..74453c9f81f8c2c0dec96d25ccf2cb34 boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit if (!this.level.paperConfig().entities.spawning.perPlayerMobSpawns) Util.shuffle(list, this.level.random); // Paper - per player mob spawns - do not need this when per-player is enabled -@@ -521,7 +521,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -522,7 +523,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } //this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur @@ -563,7 +562,7 @@ index 84a66167e0e8e933c2c0051aae4c68d698b57738..74453c9f81f8c2c0dec96d25ccf2cb34 if (flag) { //try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings // Purpur this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies); -@@ -529,7 +529,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -530,7 +531,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } } @@ -572,7 +571,7 @@ index 84a66167e0e8e933c2c0051aae4c68d698b57738..74453c9f81f8c2c0dec96d25ccf2cb34 // Paper start - chunk tick iteration optimisations //this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur { -@@ -547,8 +547,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -548,8 +549,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon } //this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur // Paper end - chunk tick iteration optimisations @@ -583,7 +582,7 @@ index 84a66167e0e8e933c2c0051aae4c68d698b57738..74453c9f81f8c2c0dec96d25ccf2cb34 } } -@@ -729,7 +729,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon +@@ -730,7 +731,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon @Override protected void doRunTask(Runnable task) { @@ -1068,7 +1067,7 @@ index a715ecf4a8ac91d3e5e5c6269d89e54b2c1cd279..223c3665126c576eddb1a8f7c9f5bc60 }; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ca6a05c47ba6064cc0febccf14705613479b727c..d261ac556c737be50e4ac214df10d7e711bea9b2 100644 +index 204dc5cf5e4434dc6450254553088c0325a1d6ff..d3e393fa0f9b296eef4d97d0a7d39737a3c53a00 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -880,7 +880,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess diff --git a/patches/server/0267-Fire-Immunity-API.patch b/patches/server/0267-Fire-Immunity-API.patch index 11268d4ae..0b56857c7 100644 --- a/patches/server/0267-Fire-Immunity-API.patch +++ b/patches/server/0267-Fire-Immunity-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d261ac556c737be50e4ac214df10d7e711bea9b2..49ddbb2212d7c591cb21c253e0a4554b5e65ebad 100644 +index d3e393fa0f9b296eef4d97d0a7d39737a3c53a00..d8db27658d2c14c5794b8c7fa55c407bb74577f8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -431,6 +431,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -430,6 +430,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean fixedPose = false; // Paper - Expand Pose API @@ -50,7 +50,7 @@ index d261ac556c737be50e4ac214df10d7e711bea9b2..49ddbb2212d7c591cb21c253e0a4554b } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index d4fc45d4f419309ba11830accdc3cdafe739ab15..4b7d38a5ac6247c6e9d71ac7f3b65765ed3cf3ee 100644 +index 33469665998543f45e68eb50e7dc3f3c6af7b0c4..bec40e26e17ba6fdefb68c79e2fa7a9593b0f4fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -87,6 +87,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0287-register-minecraft-debug-commands.patch b/patches/server/0287-register-minecraft-debug-commands.patch index 62b512fb0..fba0c6f03 100644 --- a/patches/server/0287-register-minecraft-debug-commands.patch +++ b/patches/server/0287-register-minecraft-debug-commands.patch @@ -20,10 +20,10 @@ index 8468452ff61f226b65be1dad21b627f2a178506e..f907150083ddabcf5be75730cbbca225 DebugPathCommand.register(this.dispatcher); DebugMobSpawningCommand.register(this.dispatcher); diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 758fc5bc7465e6319bbbf06c2715655e491393ce..0f7d6da8685716604f0749d4f5b60730a44cde73 100644 +index 85a0a07707a2b4029879b8caea79ded4bd849dab..aad2cdf4c2237caf2c99695d0cbb01f56c0074e2 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -122,6 +122,7 @@ public class Main { +@@ -123,6 +123,7 @@ public class Main { // Purpur start - load config files early org.bukkit.configuration.file.YamlConfiguration purpurConfiguration = io.papermc.paper.configuration.PaperConfigurations.loadLegacyConfigFile((File) optionset.valueOf("purpur-settings")); org.purpurmc.purpur.PurpurConfig.clampEnchantLevels = purpurConfiguration.getBoolean("settings.enchantment.clamp-levels"); diff --git a/patches/server/0290-config-for-startup-commands.patch b/patches/server/0290-config-for-startup-commands.patch index 6c8f76449..ef2f10735 100644 --- a/patches/server/0290-config-for-startup-commands.patch +++ b/patches/server/0290-config-for-startup-commands.patch @@ -5,10 +5,10 @@ Subject: [PATCH] config for startup commands diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8828083d92a0c3c0623dbf6771cef88854c8ec6f..d0c31849b67e19e9a14593b3907266a3759acb61 100644 +index cdb5b001ec3104a04da9a160c6c4db532c3508e1..c56ffd2307b9c92742f760a51e16e48f3205f793 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1263,6 +1263,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop