From 331c21644ae0523c9271cbc0bcf74d2e761b8302 Mon Sep 17 00:00:00 2001 From: granny Date: Sat, 15 Jun 2024 23:32:47 -0700 Subject: [PATCH] re-add timings/mojang profiler removal patches --- .../0244-Remove-Timings.patch} | 311 +++--------- .../0245-Remove-Mojang-Profiler.patch} | 457 ++++++++---------- ...r-output-for-invalid-movement-kicks.patch} | 2 +- ...d-Bee-API.patch => 0247-Add-Bee-API.patch} | 0 ...-API.patch => 0248-Debug-Marker-API.patch} | 0 ...g-option-to-ignore-creative-players.patch} | 4 +- ...50-Add-skeleton-bow-accuracy-option.patch} | 0 ....patch => 0251-Add-death-screen-API.patch} | 0 ...2-Implement-ram-and-rambar-commands.patch} | 4 +- ...Configurable-block-blast-resistance.patch} | 2 +- ...gurable-block-fall-damage-modifiers.patch} | 0 ...uage-API.patch => 0255-Language-API.patch} | 2 +- ... 0256-Milk-Keeps-Beneficial-Effects.patch} | 4 +- ...s-not-looking-up-and-down-when-stra.patch} | 0 ...d-log-suppression-for-LibraryLoader.patch} | 0 ...ow-creeper-to-encircle-target-when-.patch} | 0 ...API.patch => 0260-Fire-Immunity-API.patch} | 2 +- ...eport-to-spawn-on-nether-ceiling-da.patch} | 4 +- ...t.patch => 0262-Added-got-ram-event.patch} | 2 +- ... 0263-Log-skipped-entity-s-position.patch} | 0 ....patch => 0264-End-Crystal-Cramming.patch} | 2 +- ...eacon-effects-when-covered-by-tinte.patch} | 2 +- ...ute-clamping-and-armor-limit-config.patch} | 0 ...ig-to-remove-explosion-radius-clamp.patch} | 4 +- ...ble-sugarcane-cactus-and-netherwart.patch} | 2 +- ....patch => 0269-Add-PreExplodeEvents.patch} | 2 +- ...0-Improve-output-of-plugins-command.patch} | 0 ....patch => 0271-Make-GUI-Great-Again.patch} | 2 +- ...ee-API.patch => 0272-Stored-Bee-API.patch} | 0 ...patch => 0273-Shears-can-defuse-TNT.patch} | 0 ...-API.patch => 0274-Explorer-Map-API.patch} | 0 ...Option-Ocelot-Spawn-Under-Sea-Level.patch} | 0 ...-piglins-to-ignore-gold-trimmed-arm.patch} | 0 ...ways-showing-item-in-player-death-m.patch} | 0 ...0278-place-end-crystal-on-any-block.patch} | 2 +- ...able-the-copper-oxidation-proximity.patch} | 2 +- ...0-register-minecraft-debug-commands.patch} | 2 +- ...Configurable-villager-search-radius.patch} | 0 ...-to-make-ravagers-afraid-of-rabbits.patch} | 0 ...=> 0283-config-for-startup-commands.patch} | 2 +- ...onfig-to-reverse-bubble-column-flow.patch} | 0 ...tch => 0285-Adopt-MaterialRerouting.patch} | 0 42 files changed, 309 insertions(+), 507 deletions(-) rename patches/{unapplied-server/0254-Remove-Timings.patch => server/0244-Remove-Timings.patch} (73%) rename patches/{unapplied-server/0255-Remove-Mojang-Profiler.patch => server/0245-Remove-Mojang-Profiler.patch} (84%) rename patches/server/{0244-Add-more-logger-output-for-invalid-movement-kicks.patch => 0246-Add-more-logger-output-for-invalid-movement-kicks.patch} (96%) rename patches/server/{0245-Add-Bee-API.patch => 0247-Add-Bee-API.patch} (100%) rename patches/server/{0246-Debug-Marker-API.patch => 0248-Debug-Marker-API.patch} (100%) rename patches/server/{0247-mob-spawning-option-to-ignore-creative-players.patch => 0249-mob-spawning-option-to-ignore-creative-players.patch} (92%) rename patches/server/{0248-Add-skeleton-bow-accuracy-option.patch => 0250-Add-skeleton-bow-accuracy-option.patch} (100%) rename patches/server/{0249-Add-death-screen-API.patch => 0251-Add-death-screen-API.patch} (100%) rename patches/server/{0250-Implement-ram-and-rambar-commands.patch => 0252-Implement-ram-and-rambar-commands.patch} (98%) rename patches/server/{0251-Configurable-block-blast-resistance.patch => 0253-Configurable-block-blast-resistance.patch} (96%) rename patches/server/{0252-Configurable-block-fall-damage-modifiers.patch => 0254-Configurable-block-fall-damage-modifiers.patch} (100%) rename patches/server/{0253-Language-API.patch => 0255-Language-API.patch} (93%) rename patches/server/{0254-Milk-Keeps-Beneficial-Effects.patch => 0256-Milk-Keeps-Beneficial-Effects.patch} (95%) rename patches/server/{0255-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch => 0257-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch} (100%) rename patches/server/{0256-Add-log-suppression-for-LibraryLoader.patch => 0258-Add-log-suppression-for-LibraryLoader.patch} (100%) rename patches/server/{0257-Add-option-to-allow-creeper-to-encircle-target-when-.patch => 0259-Add-option-to-allow-creeper-to-encircle-target-when-.patch} (100%) rename patches/server/{0258-Fire-Immunity-API.patch => 0260-Fire-Immunity-API.patch} (97%) rename patches/server/{0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch => 0261-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch} (93%) rename patches/server/{0260-Added-got-ram-event.patch => 0262-Added-got-ram-event.patch} (91%) rename patches/server/{0261-Log-skipped-entity-s-position.patch => 0263-Log-skipped-entity-s-position.patch} (100%) rename patches/server/{0262-End-Crystal-Cramming.patch => 0264-End-Crystal-Cramming.patch} (96%) rename patches/server/{0263-Option-to-allow-beacon-effects-when-covered-by-tinte.patch => 0265-Option-to-allow-beacon-effects-when-covered-by-tinte.patch} (97%) rename patches/server/{0264-Add-attribute-clamping-and-armor-limit-config.patch => 0266-Add-attribute-clamping-and-armor-limit-config.patch} (100%) rename patches/server/{0265-Config-to-remove-explosion-radius-clamp.patch => 0267-Config-to-remove-explosion-radius-clamp.patch} (91%) rename patches/server/{0266-bonemealable-sugarcane-cactus-and-netherwart.patch => 0268-bonemealable-sugarcane-cactus-and-netherwart.patch} (98%) rename patches/server/{0267-Add-PreExplodeEvents.patch => 0269-Add-PreExplodeEvents.patch} (95%) rename patches/server/{0268-Improve-output-of-plugins-command.patch => 0270-Improve-output-of-plugins-command.patch} (100%) rename patches/server/{0269-Make-GUI-Great-Again.patch => 0271-Make-GUI-Great-Again.patch} (99%) rename patches/server/{0270-Stored-Bee-API.patch => 0272-Stored-Bee-API.patch} (100%) rename patches/server/{0271-Shears-can-defuse-TNT.patch => 0273-Shears-can-defuse-TNT.patch} (100%) rename patches/server/{0272-Explorer-Map-API.patch => 0274-Explorer-Map-API.patch} (100%) rename patches/server/{0273-Option-Ocelot-Spawn-Under-Sea-Level.patch => 0275-Option-Ocelot-Spawn-Under-Sea-Level.patch} (100%) rename patches/server/{0274-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch => 0276-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch} (100%) rename patches/server/{0275-Add-option-for-always-showing-item-in-player-death-m.patch => 0277-Add-option-for-always-showing-item-in-player-death-m.patch} (100%) rename patches/server/{0276-place-end-crystal-on-any-block.patch => 0278-place-end-crystal-on-any-block.patch} (96%) rename patches/server/{0277-Add-option-to-disable-the-copper-oxidation-proximity.patch => 0279-Add-option-to-disable-the-copper-oxidation-proximity.patch} (96%) rename patches/server/{0278-register-minecraft-debug-commands.patch => 0280-register-minecraft-debug-commands.patch} (96%) rename patches/server/{0279-Configurable-villager-search-radius.patch => 0281-Configurable-villager-search-radius.patch} (100%) rename patches/server/{0280-option-to-make-ravagers-afraid-of-rabbits.patch => 0282-option-to-make-ravagers-afraid-of-rabbits.patch} (100%) rename patches/server/{0281-config-for-startup-commands.patch => 0283-config-for-startup-commands.patch} (96%) rename patches/server/{0282-Config-to-reverse-bubble-column-flow.patch => 0284-Config-to-reverse-bubble-column-flow.patch} (100%) rename patches/server/{0283-Adopt-MaterialRerouting.patch => 0285-Adopt-MaterialRerouting.patch} (100%) diff --git a/patches/unapplied-server/0254-Remove-Timings.patch b/patches/server/0244-Remove-Timings.patch similarity index 73% rename from patches/unapplied-server/0254-Remove-Timings.patch rename to patches/server/0244-Remove-Timings.patch index bbc010dd8..962f0ec1a 100644 --- a/patches/unapplied-server/0254-Remove-Timings.patch +++ b/patches/server/0244-Remove-Timings.patch @@ -4,38 +4,13 @@ Date: Fri, 1 Jul 2022 04:03:37 -0500 Subject: [PATCH] Remove Timings -diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -index 6bc7c6f16a1649fc9e24e7cf90fca401e5bd4875..e1ffd62f4ebceecb9bc5471df3da406cffea0483 100644 ---- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -@@ -1316,9 +1316,9 @@ public final class ChunkHolderManager { - } - - public boolean processTicketUpdates() { -- co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager -+ //co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager // Purpur - return this.processTicketUpdates(true, true, null); -- } finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager -+ //} finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager // Purpur - } - - 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 56b07a3306e5735816c8d89601b519cb0db6379a..604de7aed6db44c9c84d541765e57da48883cf00 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 -@@ -1779,7 +1779,7 @@ public final class NewChunkHolder { - boolean canSavePOI = !(chunk instanceof LevelChunk levelChunk && levelChunk.mustNotSave) && (poi != null && poi.isDirty()); - boolean canSaveEntities = entities != null; - -- try (co.aikar.timings.Timing ignored = this.world.timings.chunkSave.startTiming()) { // Paper -+ //try (co.aikar.timings.Timing ignored = this.world.timings.chunkSave.startTiming()) { // Paper // Purpur - if (canSaveChunk) { - canSaveChunk = this.saveChunk(chunk, unloading); - } -@@ -1793,7 +1793,7 @@ public final class NewChunkHolder { - this.lastEntityUnload = null; - } +diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java +index 545624cfeefacc7bff3bb24adc9b6d52672db701..57ab4dcd53bf4df7d0c70951d9c2ab139b77fc31 100644 +--- a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java ++++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java +@@ -1694,7 +1694,7 @@ public final class NewChunkHolder { + if (shutdown) { + this.lastEntityUnload = null; } - } + //} // Purpur @@ -67,10 +42,10 @@ index 0c3c82b28e581286b798ee58ca4193efc2faff4a..24121a43aeb5e9bce013f30c92dddd15 // return true as command was handled return 1; diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index 57e76b53e5e314c3e6b8856010f7a84188121582..8c134a642ccaf3530022f2e675a858d726e1dda4 100644 +index d0d36a57ec4896bcb74970f8fb24d8f3e17db133..0c8fe5b2500480c3a9e9ab3285ad22e0e599d953 100644 --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -@@ -51,7 +51,7 @@ public class PacketUtils { +@@ -32,7 +32,7 @@ public class PacketUtils { if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players if (listener.shouldHandleMessage(packet)) { co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings @@ -80,28 +55,10 @@ index 57e76b53e5e314c3e6b8856010f7a84188121582..8c134a642ccaf3530022f2e675a858d7 } 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 f9d975002b7ed5dc6b31562d05f8be4c96b2d515..bf9e17659305680dc0262a0bc82246ec1f334fb9 100644 +index 59938afbf2d3add16b6a7f0acdba81806054bbbb..f0a85af9681e30937b60d1325d2b719ae2b442b4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1477,7 +1477,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.connection.suspendFlushing(); }); @@ -153,7 +110,7 @@ index f9d975002b7ed5dc6b31562d05f8be4c96b2d515..bf9e17659305680dc0262a0bc82246ec // Paper start - Folia scheduler API ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); getAllLevels().forEach(level -> { -@@ -1739,21 +1739,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -321,7 +229,7 @@ index 7fb9ba3dadb1eca4a1000ea8cf4d13fed2b7db1e..2b8448ccb0e4750b722933b0b5de02d8 ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -1214,17 +1214,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1009,17 +1009,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } @@ -343,26 +251,13 @@ index 7fb9ba3dadb1eca4a1000ea8cf4d13fed2b7db1e..2b8448ccb0e4750b722933b0b5de02d8 } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index fcecfda569d2a8d6b8a7e228831f822fb7327748..e8906613073ba5dfe36f197c519953d391300ec4 100644 +index 7dc2ecd8a80b063cec922021bd978ba2c6f8c0fb..8bead89ad6f54f5dbc6b03d90b6bb111fd2c983b 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -274,10 +274,10 @@ public class ServerChunkCache extends ChunkSource { - if (!completablefuture.isDone()) { // Paper - io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system - com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x, z); // Paper - Add debug for sync chunk loads -- this.level.timings.syncChunkLoad.startTiming(); // Paper -+ //this.level.timings.syncChunkLoad.startTiming(); // Paper // Purpur - chunkproviderserver_b.managedBlock(completablefuture::isDone); - io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - rewrite chunk system -- this.level.timings.syncChunkLoad.stopTiming(); // Paper -+ //this.level.timings.syncChunkLoad.stopTiming(); // Paper // Purpur - } // Paper - ChunkResult chunkresult = (ChunkResult) completablefuture.join(); - ChunkAccess ichunkaccess1 = (ChunkAccess) chunkresult.orElse(null); // CraftBukkit - decompile error -@@ -425,17 +425,17 @@ public class ServerChunkCache extends ChunkSource { +@@ -418,9 +418,9 @@ public class ServerChunkCache extends ChunkSource { public void save(boolean flush) { - this.runDistanceManagerUpdates(); + // Paper - rewrite chunk system - try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings + //try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings // Purpur this.chunkMap.saveAllChunks(flush); @@ -370,18 +265,8 @@ index fcecfda569d2a8d6b8a7e228831f822fb7327748..e8906613073ba5dfe36f197c519953d3 + //} // Paper - Timings // Purpur } - // Paper start - Incremental chunk and player saving; duplicate save, but call incremental - public void saveIncrementally() { - this.runDistanceManagerUpdates(); -- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings -+ //try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings // Purpur - this.chunkMap.saveIncrementally(); -- } // Paper - Timings -+ //} // Paper - Timings // Purpur - } - // Paper end - Incremental chunk and player saving - -@@ -472,26 +472,25 @@ public class ServerChunkCache extends ChunkSource { + @Override +@@ -448,26 +448,25 @@ public class ServerChunkCache extends ChunkSource { @Override public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) { this.level.getProfiler().push("purge"); @@ -398,7 +283,7 @@ index fcecfda569d2a8d6b8a7e228831f822fb7327748..e8906613073ba5dfe36f197c519953d3 if (tickChunks) { - this.level.timings.chunks.startTiming(); // Paper - timings + //this.level.timings.chunks.startTiming(); // Paper - timings // Purpur - this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes + ((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getPlayerChunkLoader().tick(); // Paper - rewrite chunk system this.tickChunks(); - this.level.timings.chunks.stopTiming(); // Paper - timings + //this.level.timings.chunks.stopTiming(); // Paper - timings // Purpur @@ -414,14 +299,16 @@ index fcecfda569d2a8d6b8a7e228831f822fb7327748..e8906613073ba5dfe36f197c519953d3 this.level.getProfiler().pop(); this.clearCache(); } -@@ -507,13 +506,13 @@ public class ServerChunkCache extends ChunkSource { - gameprofilerfiller.push("pollingChunks"); +@@ -484,7 +483,7 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.push("filteringLoadedChunks"); - // Paper - optimise chunk tick iteration + List list = Lists.newArrayListWithCapacity(this.chunkMap.size()); + Iterator iterator = this.chunkMap.getChunks().iterator(); - if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper + //if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper // Purpur - // Paper - optimise chunk tick iteration + while (iterator.hasNext()) { + ChunkHolder playerchunk = (ChunkHolder) iterator.next(); +@@ -497,7 +496,7 @@ public class ServerChunkCache extends ChunkSource { if (this.level.tickRateManager().runsNormally()) { gameprofilerfiller.popPush("naturalSpawnCount"); @@ -430,7 +317,7 @@ index fcecfda569d2a8d6b8a7e228831f822fb7327748..e8906613073ba5dfe36f197c519953d3 int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - Optional per player mob spawns int naturalSpawnChunkCount = k; -@@ -538,7 +537,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -522,7 +521,7 @@ public class ServerChunkCache extends ChunkSource { 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 @@ -439,12 +326,12 @@ index fcecfda569d2a8d6b8a7e228831f822fb7327748..e8906613073ba5dfe36f197c519953d3 this.lastSpawnState = spawnercreature_d; gameprofilerfiller.popPush("spawnAndTick"); -@@ -647,19 +646,19 @@ public class ServerChunkCache extends ChunkSource { +@@ -558,21 +557,21 @@ public class ServerChunkCache extends ChunkSource { + } } } - // Paper end - optimise chunk tick iteration - this.level.timings.chunkTicks.stopTiming(); // Paper -+ // this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur ++ //this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur gameprofilerfiller.popPush("customSpawners"); if (flag) { @@ -457,26 +344,20 @@ index fcecfda569d2a8d6b8a7e228831f822fb7327748..e8906613073ba5dfe36f197c519953d3 } gameprofilerfiller.popPush("broadcast"); - // Paper - optimise chunk tick iteration + list.forEach((chunkproviderserver_a1) -> { - this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing + //this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur - // Paper start - optimise chunk tick iteration - if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { - it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet copy = this.chunkMap.needsChangeBroadcasting.clone(); -@@ -673,7 +672,7 @@ public class ServerChunkCache extends ChunkSource { - } - } - // Paper end - optimise chunk tick iteration + chunkproviderserver_a1.holder.broadcastChanges(chunkproviderserver_a1.chunk); - this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing + //this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur - // Paper - optimise chunk tick iteration + }); gameprofilerfiller.pop(); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6baff1c74 100644 +index 49f77274309befcdef1548e875480b9f667a414e..40f02c3871928be26cefca3afc62286cbee15e69 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -872,7 +872,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -687,7 +687,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } gameprofilerfiller.popPush("tickPending"); @@ -485,7 +366,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 if (!this.isDebug() && flag) { j = this.getGameTime(); gameprofilerfiller.push("blockTicks"); -@@ -881,24 +881,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -696,24 +696,24 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. this.fluidTicks.tick(j, paperConfig().environment.maxFluidTicks, this::tickFluid); // Paper - configurable max fluid ticks gameprofilerfiller.pop(); } @@ -517,7 +398,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 } this.handlingTick = false; -@@ -911,7 +911,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -726,7 +726,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (flag1 || this.emptyTime++ < 300) { gameprofilerfiller.push("entities"); @@ -526,7 +407,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 if (this.dragonFight != null && flag) { gameprofilerfiller.push("dragonFight"); this.dragonFight.tick(); -@@ -919,7 +919,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -734,7 +734,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } org.spigotmc.ActivationRange.activateEntities(this); // Spigot @@ -535,7 +416,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 this.entityTickList.forEach((entity) -> { if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed -@@ -946,8 +946,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -761,8 +761,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } } }); @@ -546,25 +427,25 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 gameprofilerfiller.pop(); this.tickBlockEntities(); } -@@ -1089,7 +1089,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -895,7 +895,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } // Paper - Option to disable ice and snow gameprofilerfiller.popPush("tickBlocks"); - timings.chunkTicksBlocks.startTiming(); // Paper + //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur if (randomTickSpeed > 0) { - // Paper start - optimize random block ticking - LevelChunkSection[] sections = chunk.getSections(); -@@ -1123,7 +1123,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + LevelChunkSection[] achunksection = chunk.getSections(); + +@@ -928,7 +928,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. + } } - // Paper end - optimise random block ticking - timings.chunkTicksBlocks.stopTiming(); // Paper + //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur gameprofilerfiller.pop(); } -@@ -1467,8 +1467,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1242,8 +1242,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // Spigot end // Paper start- timings final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); @@ -575,7 +456,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 // Paper end - timings entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1484,7 +1484,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1259,7 +1259,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. entity.postTick(); // CraftBukkit } else { entity.inactiveTick(); } // Paper - EAR 2 this.getProfiler().pop(); @@ -584,7 +465,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1507,8 +1507,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1276,8 +1276,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (passenger instanceof Player || this.entityTickList.contains(passenger)) { // Paper - EAR 2 final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger); @@ -595,7 +476,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; -@@ -1538,7 +1538,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1307,7 +1307,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. this.tickPassenger(passenger, entity2); } @@ -604,34 +485,7 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 } } else { passenger.stopRiding(); -@@ -1558,14 +1558,14 @@ public class ServerLevel extends Level implements WorldGenLevel { - org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); - } - -- try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { -+ //try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { // Purpur - if (doFull) { - this.saveLevelData(true); // Paper - Write SavedData IO async - } - -- this.timings.worldSaveChunks.startTiming(); // Paper -+ //this.timings.worldSaveChunks.startTiming(); // Paper // Purpur - if (!this.noSave()) chunkproviderserver.saveIncrementally(); -- this.timings.worldSaveChunks.stopTiming(); // Paper -+ //this.timings.worldSaveChunks.stopTiming(); // Paper // Purpur - - // Copied from save() - // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1577,7 +1577,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData()); - } - // CraftBukkit end -- } -+ //} // Purpur - } - // Paper end - Incremental chunk and player saving - -@@ -1591,7 +1591,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1329,7 +1329,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit @@ -640,37 +494,30 @@ index 5d20af55a3a8fa1b585a9fe36c817eb0bd609d16..b727c707ef46a9387fc225b51ef050c6 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1601,11 +1601,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1339,9 +1339,9 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. progressListener.progressStage(Component.translatable("menu.savingChunks")); } - timings.worldSaveChunks.startTiming(); // Paper + //timings.worldSaveChunks.startTiming(); // Paper // Purpur - if (!close) chunkproviderserver.save(flush); // Paper - rewrite chunk system - if (close) chunkproviderserver.close(true); // Paper - rewrite chunk system + if (!close) { chunkproviderserver.save(flush); } // Paper - add close param - timings.worldSaveChunks.stopTiming(); // Paper -- }// Paper + //timings.worldSaveChunks.stopTiming(); // Paper // Purpur -+ //}// Paper // Purpur - // Paper - rewrite chunk system - entity saving moved into ChunkHolder + }// Paper + // Paper - rewrite chunk system - } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d20a7a79e27db1092ff78910df5d45982971cc3e..b863f6fe65c796a1d3102cc3eddb5d6c5becd3ac 100644 +index f4f965a51628a096f6697f4008ec9dba04d30fd2..224ee4649a8e2d3c99ac5ca298233bcb89248fc3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1273,7 +1273,7 @@ public abstract class PlayerList { +@@ -1220,11 +1220,11 @@ public abstract class PlayerList { - public void saveAll(int interval) { + public void saveAll() { io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main - MinecraftTimings.savePlayers.startTiming(); // Paper + //MinecraftTimings.savePlayers.startTiming(); // Paper // Purpur - int numSaved = 0; - long now = MinecraftServer.currentTick; for (int i = 0; i < this.players.size(); ++i) { -@@ -1284,7 +1284,7 @@ public abstract class PlayerList { - } - // Paper end - Incremental chunk and player saving + this.save(this.players.get(i)); } - MinecraftTimings.savePlayers.stopTiming(); // Paper + //MinecraftTimings.savePlayers.stopTiming(); // Paper // Purpur @@ -727,10 +574,10 @@ index 85b4b24361e785acf75571ff98f924c00ae80748..09a7b418ddf564c0be13297f7c216db2 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f81a73b0ca751086cb13a9e4fef227356429209b..a09e27a34631b779ca0170da7abc0bcb2559c5d2 100644 +index 6b1dc40787e53723ff48b1ed4d408bb935f2cca8..e94e6cc538094de4ce0fc0f615e6fed8bcdcb828 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1298,15 +1298,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -987,15 +987,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("blockEntities"); @@ -749,7 +596,7 @@ index f81a73b0ca751086cb13a9e4fef227356429209b..a09e27a34631b779ca0170da7abc0bcb // Spigot start // Iterator iterator = this.blockEntityTickers.iterator(); boolean flag = this.tickRateManager().runsNormally(); -@@ -1335,7 +1335,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1019,7 +1019,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 @@ -781,11 +628,11 @@ index ed8032495af9ce9c23419224814b8d27e4a97c17..2812505185df691e8f08932aa0bba162 } 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 14ee7b5b9b804bebd4e2a846b238547a28a36035..a9ed6255be8505cb8d067dbf8f665aacda618716 100644 +index d869607853ad27032df072c1f1d74a74e4911baf..b29e8136f2bf7af0dd37bd030cee67e310de6faa 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -785,7 +785,7 @@ public class LevelChunk extends ChunkAccess { - this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system +@@ -739,7 +739,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p + server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(bukkitChunk, this.needsDecoration)); if (this.needsDecoration) { - try (co.aikar.timings.Timing ignored = this.level.timings.chunkLoadPopulate.startTiming()) { // Paper @@ -793,7 +640,7 @@ index 14ee7b5b9b804bebd4e2a846b238547a28a36035..a9ed6255be8505cb8d067dbf8f665aac this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(this.level.getSeed()); -@@ -805,7 +805,7 @@ public class LevelChunk extends ChunkAccess { +@@ -759,7 +759,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); @@ -802,7 +649,7 @@ index 14ee7b5b9b804bebd4e2a846b238547a28a36035..a9ed6255be8505cb8d067dbf8f665aac } } } -@@ -1161,7 +1161,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1109,7 +1109,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p ProfilerFiller gameprofilerfiller = LevelChunk.this.level.getProfiler(); gameprofilerfiller.push(this::getType); @@ -811,7 +658,7 @@ index 14ee7b5b9b804bebd4e2a846b238547a28a36035..a9ed6255be8505cb8d067dbf8f665aac BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); if (this.blockEntity.getType().isValid(iblockdata)) { -@@ -1188,7 +1188,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1135,7 +1135,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p // Paper end - Prevent block entity and entity crashes // Spigot start } finally { @@ -898,7 +745,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..d3ec817e95628f1fc8be4a29c9a0f13c // Paper end - add timings for scoreboard search } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 2ed85c0aa7d3053e338927fa308b86bcbf9eb7b6..f7644c5045b1accae4c0aaf44df26286c6cc5125 100644 +index 9bec373c470a4f2bc0f1f4101469ec8be903ab83..1e8100be8d443d43e99e0c5f777e20872f6e1a7f 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -167,7 +167,7 @@ public class ActivationRange @@ -910,7 +757,7 @@ index 2ed85c0aa7d3053e338927fa308b86bcbf9eb7b6..f7644c5045b1accae4c0aaf44df26286 final int miscActivationRange = world.spigotConfig.miscActivationRange; final int raiderActivationRange = world.spigotConfig.raiderActivationRange; final int animalActivationRange = world.spigotConfig.animalActivationRange; -@@ -227,7 +227,7 @@ public class ActivationRange +@@ -228,7 +228,7 @@ public class ActivationRange } // Paper end } diff --git a/patches/unapplied-server/0255-Remove-Mojang-Profiler.patch b/patches/server/0245-Remove-Mojang-Profiler.patch similarity index 84% rename from patches/unapplied-server/0255-Remove-Mojang-Profiler.patch rename to patches/server/0245-Remove-Mojang-Profiler.patch index 03ef03b3a..d0f446377 100644 --- a/patches/unapplied-server/0255-Remove-Mojang-Profiler.patch +++ b/patches/server/0245-Remove-Mojang-Profiler.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove Mojang Profiler diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 8f6dffe2a163f65e94547c734e718b3a349241e3..110c63296844376f10b57b51dc5da75d704c78ed 100644 +index 1beb75aa960c766344f00fa898f905d5094efc01..6daecb014fea4e0a4fb00aec28e0ab6779bad9ae 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -166,7 +166,7 @@ public class Commands { +@@ -165,7 +165,7 @@ public class Commands { DamageCommand.register(this.dispatcher, commandRegistryAccess); DataCommands.register(this.dispatcher); DataPackCommand.register(this.dispatcher); @@ -17,7 +17,7 @@ index 8f6dffe2a163f65e94547c734e718b3a349241e3..110c63296844376f10b57b51dc5da75d DefaultGameModeCommands.register(this.dispatcher); DifficultyCommand.register(this.dispatcher); EffectCommands.register(this.dispatcher, commandRegistryAccess); -@@ -351,9 +351,9 @@ public class Commands { +@@ -349,9 +349,9 @@ public class Commands { // Paper end CommandSourceStack commandlistenerwrapper = (CommandSourceStack) parseresults.getContext().getSource(); @@ -29,7 +29,7 @@ index 8f6dffe2a163f65e94547c734e718b3a349241e3..110c63296844376f10b57b51dc5da75d ContextChain contextchain = this.finishParsing(parseresults, s, commandlistenerwrapper, label); // CraftBukkit // Paper - Add UnknownCommandEvent try { -@@ -383,7 +383,7 @@ public class Commands { +@@ -381,7 +381,7 @@ public class Commands { Commands.LOGGER.error("'/{}' threw an exception", s, exception); } } finally { @@ -83,10 +83,10 @@ index e9775b4506909bee65a74964f0d5391a0513de1d..684f7f202305c09b1037c5d38a52a5ea } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bf9e17659305680dc0262a0bc82246ec1f334fb9..e3a837166d1febfdf3dea9ab0a84c6e64ecd2d6e 100644 +index f0a85af9681e30937b60d1325d2b719ae2b442b4..3df64fa31137116aed8b7993cb82164d8d5172cd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -344,13 +344,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return false; } : this::haveTime); +@@ -1232,7 +1232,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0; - try { - this.isSaving = true; -@@ -1620,7 +1620,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Purpur - this.profiler.push(() -> { @@ -242,7 +240,7 @@ index bf9e17659305680dc0262a0bc82246ec1f334fb9..e3a837166d1febfdf3dea9ab0a84c6e6 try { //worldserver.timings.doTick.startTiming(); // Spigot // Purpur -@@ -1816,17 +1816,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { this.executeBlocking(() -> { this.saveDebugReport(path.resolve("server")); -@@ -2837,40 +2838,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create); - ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor; - -@@ -459,26 +459,26 @@ public class ServerChunkCache extends ChunkSource { // CraftBukkit start - modelled on below public void purgeUnload() { - if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system - this.level.getProfiler().push("purge"); + //this.level.getProfiler().push("purge"); // Purpur this.distanceManager.purgeStaleTickets(); @@ -526,8 +502,8 @@ index e8906613073ba5dfe36f197c519953d391300ec4..25aff82dd74ee87f67632af48a2a8e74 + //this.level.getProfiler().popPush("chunks"); // Purpur if (tickChunks) { //this.level.timings.chunks.startTiming(); // Paper - timings // Purpur - this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes -@@ -488,10 +488,10 @@ public class ServerChunkCache extends ChunkSource { + ((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getPlayerChunkLoader().tick(); // Paper - rewrite chunk system +@@ -464,10 +464,10 @@ public class ServerChunkCache extends ChunkSource { } //this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur @@ -540,7 +516,7 @@ index e8906613073ba5dfe36f197c519953d391300ec4..25aff82dd74ee87f67632af48a2a8e74 this.clearCache(); } -@@ -501,17 +501,17 @@ public class ServerChunkCache extends ChunkSource { +@@ -477,10 +477,10 @@ public class ServerChunkCache extends ChunkSource { this.lastInhabitedUpdate = i; if (!this.level.isDebug()) { @@ -551,10 +527,11 @@ index e8906613073ba5dfe36f197c519953d391300ec4..25aff82dd74ee87f67632af48a2a8e74 - gameprofilerfiller.push("filteringLoadedChunks"); + //gameprofilerfiller.push("pollingChunks"); // Purpur + //gameprofilerfiller.push("filteringLoadedChunks"); // Purpur - // Paper - optimise chunk tick iteration + List list = Lists.newArrayListWithCapacity(this.chunkMap.size()); + Iterator iterator = this.chunkMap.getChunks().iterator(); //if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper // Purpur - - // Paper - optimise chunk tick iteration +@@ -495,7 +495,7 @@ public class ServerChunkCache extends ChunkSource { + } if (this.level.tickRateManager().runsNormally()) { - gameprofilerfiller.popPush("naturalSpawnCount"); @@ -562,7 +539,7 @@ index e8906613073ba5dfe36f197c519953d391300ec4..25aff82dd74ee87f67632af48a2a8e74 //this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - Optional per player mob spawns -@@ -540,7 +540,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -524,7 +524,7 @@ public class ServerChunkCache extends ChunkSource { // this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur this.lastSpawnState = spawnercreature_d; @@ -570,29 +547,27 @@ index e8906613073ba5dfe36f197c519953d391300ec4..25aff82dd74ee87f67632af48a2a8e74 + //gameprofilerfiller.popPush("spawnAndTick"); // Purpur boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit - // Paper start - optimise chunk tick iteration -@@ -648,7 +648,7 @@ public class ServerChunkCache extends ChunkSource { - // Paper end - optimise chunk tick iteration - // this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur + Util.shuffle(list, this.level.random); +@@ -559,7 +559,7 @@ public class ServerChunkCache extends ChunkSource { + } + //this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur - gameprofilerfiller.popPush("customSpawners"); + //gameprofilerfiller.popPush("customSpawners"); // Purpur if (flag) { //try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings // Purpur this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies); -@@ -656,7 +656,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -567,14 +567,14 @@ public class ServerChunkCache extends ChunkSource { } } - gameprofilerfiller.popPush("broadcast"); + //gameprofilerfiller.popPush("broadcast"); // Purpur - // Paper - optimise chunk tick iteration + list.forEach((chunkproviderserver_a1) -> { //this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur - // Paper start - optimise chunk tick iteration -@@ -674,8 +674,8 @@ public class ServerChunkCache extends ChunkSource { - // Paper end - optimise chunk tick iteration + chunkproviderserver_a1.holder.broadcastChanges(chunkproviderserver_a1.chunk); //this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur - // Paper - optimise chunk tick iteration + }); - gameprofilerfiller.pop(); - gameprofilerfiller.pop(); + //gameprofilerfiller.pop(); // Purpur @@ -600,7 +575,7 @@ index e8906613073ba5dfe36f197c519953d391300ec4..25aff82dd74ee87f67632af48a2a8e74 } } -@@ -847,7 +847,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -755,7 +755,7 @@ public class ServerChunkCache extends ChunkSource { @Override protected void doRunTask(Runnable task) { @@ -610,10 +585,10 @@ index e8906613073ba5dfe36f197c519953d391300ec4..25aff82dd74ee87f67632af48a2a8e74 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b1d41b9c3 100644 +index 40f02c3871928be26cefca3afc62286cbee15e69..fd8149d55488a7fbb6143dde669b957812c93464 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -830,16 +830,16 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -645,16 +645,16 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } public void tick(BooleanSupplier shouldKeepTicking) { @@ -633,7 +608,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b this.advanceWeatherCycle(); } -@@ -871,30 +871,30 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -686,30 +686,30 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. this.tickTime(); } @@ -671,7 +646,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b if (flag) { // this.timings.doSounds.startTiming(); // Spigot // Purpur this.runBlockEvents(); -@@ -902,7 +902,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -717,7 +717,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } this.handlingTick = false; @@ -680,7 +655,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b boolean flag1 = !paperConfig().unsupportedSettings.disableWorldTickingWhenEmpty || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players // Paper - restore this if (flag1) { -@@ -910,12 +910,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -725,12 +725,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } if (flag1 || this.emptyTime++ < 300) { @@ -696,7 +671,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -@@ -925,9 +925,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -740,9 +740,9 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); } else if (!tickratemanager.isEntityFrozen(entity)) { @@ -705,10 +680,10 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b entity.checkDespawn(); - gameprofilerfiller.pop(); + //gameprofilerfiller.pop(); // Purpur - if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list + if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - rewrite chunk system Entity entity1 = entity.getVehicle(); -@@ -939,22 +939,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -754,22 +754,22 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. entity.stopRiding(); } @@ -730,12 +705,13 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b - gameprofilerfiller.push("entityManagement"); + //gameprofilerfiller.push("entityManagement"); // Purpur - //this.entityManager.tick(); // Paper - rewrite chunk system + // Paper - rewrite chunk system - gameprofilerfiller.pop(); ++ //gameprofilerfiller.pop(); // Purpur } @Override -@@ -1034,9 +1033,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -845,9 +845,9 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. boolean flag = this.isRaining(); int j = chunkcoordintpair.getMinBlockX(); int k = chunkcoordintpair.getMinBlockZ(); @@ -744,10 +720,10 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b - gameprofilerfiller.push("thunder"); + //gameprofilerfiller.push("thunder"); // Purpur - 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) { // Spigot // Paper - Option to disable thunder -@@ -1075,7 +1074,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + BlockPos blockposition = this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15)); + +@@ -884,7 +884,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } } @@ -756,7 +732,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b if (!this.paperConfig().environment.disableIceAndSnow) { // Paper - Option to disable ice and snow for (int l = 0; l < randomTickSpeed; ++l) { -@@ -1088,7 +1087,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -894,7 +894,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } } // Paper - Option to disable ice and snow @@ -764,9 +740,9 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b + //gameprofilerfiller.popPush("tickBlocks"); // Purpur //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur if (randomTickSpeed > 0) { - // Paper start - optimize random block ticking -@@ -1124,7 +1123,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - // Paper end - optimise random block ticking + LevelChunkSection[] achunksection = chunk.getSections(); +@@ -929,7 +929,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. + } //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur - gameprofilerfiller.pop(); @@ -774,7 +750,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b } @VisibleForTesting -@@ -1471,19 +1470,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1246,19 +1246,19 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. //try { // Purpur // Paper end - timings entity.setOldPosAndRot(); @@ -799,7 +775,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b //} finally { timer.stopTiming(); } // Paper - timings // Purpur Iterator iterator = entity.getPassengers().iterator(); -@@ -1512,12 +1511,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1281,12 +1281,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -816,7 +792,7 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1529,7 +1528,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1298,7 +1298,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. vehicle.positionRider(passenger); } // Paper end - EAR 2 @@ -826,43 +802,43 @@ index b727c707ef46a9387fc225b51ef050c6baff1c74..7924e3c597164f71056cd58dd167ee8b while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a5566e52d839191add236a6ff7245d1b7617fc37..375d1532d267f4fbc735eede99eddc6f7f25103c 100644 +index c830fd0e990cb4220b6de3485df391ffbf7c7509..9b23487d0b454bdf2be043888d152fe68b7d343e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1318,7 +1318,7 @@ public class ServerPlayer extends Player { - PortalInfo shapedetectorshape = this.findDimensionEntryPoint(worldserver); - - if (shapedetectorshape != null) { +@@ -1398,7 +1398,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple + this.unsetRemoved(); + */ + // CraftBukkit end - worldserver1.getProfiler().push("moving"); + //worldserver1.getProfiler().push("moving"); // Purpur - worldserver = shapedetectorshape.world; // CraftBukkit - if (worldserver == null) { } else // CraftBukkit - empty to fall through to null to event - if (resourcekey == LevelStem.OVERWORLD && worldserver.getTypeKey() == LevelStem.NETHER) { // CraftBukkit -@@ -1341,8 +1341,8 @@ public class ServerPlayer extends Player { - worldserver = ((CraftWorld) exit.getWorld()).getHandle(); - // CraftBukkit end + if (worldserver != null && resourcekey == LevelStem.OVERWORLD && worldserver.getTypeKey() == LevelStem.NETHER) { // CraftBukkit - empty to fall through to null to event + this.enteredNetherPosition = this.position(); + } +@@ -1414,8 +1414,8 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple + worldserver = ((CraftWorld) exit.getWorld()).getHandle(); + // CraftBukkit end -- worldserver1.getProfiler().pop(); -- worldserver1.getProfiler().push("placing"); -+ //worldserver1.getProfiler().pop(); // Purpur -+ //worldserver1.getProfiler().push("placing"); // Purpur - if (true) { // CraftBukkit +- worldserver1.getProfiler().pop(); +- worldserver1.getProfiler().push("placing"); ++ //worldserver1.getProfiler().pop(); // Purpur ++ //worldserver1.getProfiler().push("placing"); // Purpur + // CraftBukkit start this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds - -@@ -1360,7 +1360,7 @@ public class ServerPlayer extends Player { + LevelData worlddata = worldserver.getLevelData(); +@@ -1432,7 +1432,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple this.connection.teleport(exit); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); - worldserver.addDuringPortalTeleport(this); + worldserver.addDuringTeleport(this); - worldserver1.getProfiler().pop(); + //worldserver1.getProfiler().pop(); // Purpur this.triggerDimensionChangeTriggers(worldserver1); this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities())); playerlist.sendLevelInfo(this, worldserver); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index a30435cdc62d4947596b9cee3b114f7cb1349769..dcc3cb2c476831d6093928ce0a14424634b100ec 100644 +index e7075e0c59fe99229142ecb518fadc5b481886fb..fac2fb82c381d245f77b7288c34920660ac2c3af 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -265,7 +265,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -266,7 +266,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } protected void keepConnectionAlive() { @@ -871,7 +847,7 @@ index a30435cdc62d4947596b9cee3b114f7cb1349769..dcc3cb2c476831d6093928ce0a144246 // Paper start - give clients a longer time to respond to pings as per pre 1.12.2 timings // This should effectively place the keepalive handling back to "as it was" before 1.12.2 long currentTime = Util.getMillis(); -@@ -298,7 +298,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -299,7 +299,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } // Paper end - give clients a longer time to respond to pings as per pre 1.12.2 timings @@ -1085,10 +1061,10 @@ 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 d42cf771b9cf77304d5174f374c56eb793fc2991..45e06ec0e975973edb4434f64ddfc0f663ca3c31 100644 +index 8fddc8f7c0bdd91b0a1ce72c9bfccfc254c76bb7..452ca1aeb5b57b8e0e4a1ef369c9b521c485d803 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -896,7 +896,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -827,7 +827,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // CraftBukkit end public void baseTick() { @@ -1097,16 +1073,16 @@ index d42cf771b9cf77304d5174f374c56eb793fc2991..45e06ec0e975973edb4434f64ddfc0f6 if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups this.inBlockState = null; if (this.isPassenger() && this.getVehicle().isRemoved()) { -@@ -957,7 +957,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -892,7 +892,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + Leashable.tickLeash((Entity & Leashable) this); // CraftBukkit - decompile error } - this.firstTick = false; - this.level().getProfiler().pop(); + //this.level().getProfiler().pop(); // Purpur } public void setSharedFlagOnFire(boolean onFire) { -@@ -1174,7 +1174,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1070,7 +1070,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } @@ -1115,7 +1091,7 @@ index d42cf771b9cf77304d5174f374c56eb793fc2991..45e06ec0e975973edb4434f64ddfc0f6 if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1183,7 +1183,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1079,7 +1079,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // Paper start - ignore movement changes while inactive. if (isTemporarilyActive && !(this instanceof ItemEntity) && movement == getDeltaMovement() && movementType == MoverType.SELF) { setDeltaMovement(Vec3.ZERO); @@ -1124,7 +1100,7 @@ index d42cf771b9cf77304d5174f374c56eb793fc2991..45e06ec0e975973edb4434f64ddfc0f6 return; } // Paper end -@@ -1204,8 +1204,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1100,8 +1100,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1135,7 +1111,7 @@ index d42cf771b9cf77304d5174f374c56eb793fc2991..45e06ec0e975973edb4434f64ddfc0f6 boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1224,7 +1224,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1120,7 +1120,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); if (this.isRemoved()) { @@ -1144,7 +1120,7 @@ index d42cf771b9cf77304d5174f374c56eb793fc2991..45e06ec0e975973edb4434f64ddfc0f6 } else { if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1362,7 +1362,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1223,7 +1223,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1152,69 +1128,48 @@ index d42cf771b9cf77304d5174f374c56eb793fc2991..45e06ec0e975973edb4434f64ddfc0f6 + //this.level().getProfiler().pop(); // Purpur } } - // Paper start - detailed watchdog information -@@ -3263,7 +3263,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey); - - if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit -- this.level().getProfiler().push("portal"); -+ //this.level().getProfiler().push("portal"); // Purpur - this.portalTime = i; + } +@@ -3107,7 +3107,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + this.processPortalCooldown(); + if (this.portalProcess != null) { + if (this.portalProcess.processPortalTeleportation(worldserver, this, this.canUsePortal(false))) { +- worldserver.getProfiler().push("portal"); ++ //worldserver.getProfiler().push("portal"); // Purpur // Paper start - Add EntityPortalReadyEvent - io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER); -@@ -3281,7 +3281,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + ServerLevel changedTarget = worldserver.getServer().getLevel(worldserver.getTypeKey() == net.minecraft.world.level.dimension.LevelStem.NETHER ? Level.OVERWORLD : Level.NETHER); + if (this.portalProcess.isSamePortal(((net.minecraft.world.level.block.NetherPortalBlock) net.minecraft.world.level.block.Blocks.NETHER_PORTAL))) { +@@ -3130,7 +3130,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + } + } + +- worldserver.getProfiler().pop(); ++ //worldserver.getProfiler().pop(); // Purpur + } else if (this.portalProcess.hasExpired()) { + this.portalProcess = null; + } +@@ -3631,7 +3631,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } - } // Paper - Add EntityPortalReadyEvent - // CraftBukkit end -- this.level().getProfiler().pop(); -+ //this.level().getProfiler().pop(); // Purpur } - this.isInsidePortal = false; -@@ -3741,14 +3741,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +- worldserver.getProfiler().push("changeDimension"); ++ //worldserver.getProfiler().push("changeDimension"); // Purpur + Entity entity2 = worldserver1.dimension() == worldserver.dimension() ? this : this.getType().create(worldserver1); + + if (entity2 != null) { +@@ -3667,7 +3667,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + teleportTarget.postDimensionTransition().onTransition(entity2); + } + +- worldserver.getProfiler().pop(); ++ //worldserver.getProfiler().pop(); // Purpur + return entity2; + } } - // Paper end - Fix item duplication and teleport issues - if (this.level() instanceof ServerLevel && !this.isRemoved()) { -- this.level().getProfiler().push("changeDimension"); -+ //this.level().getProfiler().push("changeDimension"); // Purpur - // CraftBukkit start - // this.unRide(); - if (worldserver == null) { - return null; - } - // CraftBukkit end -- this.level().getProfiler().push("reposition"); -+ //this.level().getProfiler().push("reposition"); // Purpur - PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit - - if (shapedetectorshape == null) { -@@ -3787,7 +3787,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - this.unRide(); - // CraftBukkit end - -- this.level().getProfiler().popPush("reloading"); -+ //this.level().getProfiler().popPush("reloading"); // Purpur - // Paper start - Fix item duplication and teleport issues - if (this instanceof Mob) { - ((Mob) this).dropLeash(true, true); // Paper drop lead -@@ -3814,10 +3814,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - } - - this.removeAfterChangingDimensions(); -- this.level().getProfiler().pop(); -+ //this.level().getProfiler().pop(); // Purpur - ((ServerLevel) this.level()).resetEmptyTime(); - worldserver.resetEmptyTime(); -- this.level().getProfiler().pop(); -+ //this.level().getProfiler().pop(); // Purpur - return entity; - } - } else { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08b3fe73a1 100644 +index 0c89b32f868bfdeb995c9652f15de7b1816e7bfe..3f0d3229ec4727c0d176a2e603c3f9e933f3395e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -423,7 +423,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -445,7 +445,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } super.baseTick(); @@ -1223,7 +1178,7 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 if (this.fireImmune() || this.level().isClientSide) { this.clearFire(); } -@@ -526,7 +526,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -551,7 +551,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.yHeadRotO = this.yHeadRot; this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); @@ -1231,8 +1186,8 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 + //this.level().getProfiler().pop(); // Purpur } - public boolean canSpawnSoulSpeedParticle() { -@@ -3214,10 +3214,10 @@ public abstract class LivingEntity extends Entity implements Attackable { + @Override +@@ -3217,10 +3217,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.run += (f3 - this.run) * 0.3F; @@ -1246,7 +1201,7 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 // Paper start - stop large pitch and yaw changes from crashing the server this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; -@@ -3229,7 +3229,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3232,7 +3232,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Paper end @@ -1255,7 +1210,7 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 this.animStep += f2; if (this.isFallFlying()) { ++this.fallFlyTicks; -@@ -3452,19 +3452,19 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3472,19 +3472,19 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.setDeltaMovement(d0, d1, d2); @@ -1280,7 +1235,7 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 if (this.jumping && this.isAffectedByFluids()) { double d3; -@@ -3491,8 +3491,8 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3511,8 +3511,8 @@ public abstract class LivingEntity extends Entity implements Attackable { this.noJumpDelay = 0; } @@ -1291,7 +1246,7 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 this.xxa *= 0.98F; this.zza *= 0.98F; this.updateFallFlying(); -@@ -3517,8 +3517,8 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3537,8 +3537,8 @@ public abstract class LivingEntity extends Entity implements Attackable { this.travel(vec3d1); } @@ -1302,7 +1257,7 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 if (!this.level().isClientSide && !this.isDeadOrDying() && !this.freezeLocked) { // Paper - Freeze Tick Lock API int i = this.getTicksFrozen(); -@@ -3535,15 +3535,15 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3555,15 +3555,15 @@ public abstract class LivingEntity extends Entity implements Attackable { this.hurt(this.damageSources().freeze(), 1.0F); } @@ -1322,10 +1277,10 @@ index 36102a9bafde35d30a5cf78999a1999daa05b7e1..511e3de6de202ee96195194fd05f8a08 // Purpur start if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 2fa19bf199eb7736a97737e0712fd300d04d35fc..174117898f349f83810d45152ca96ececa2a5be5 100644 +index 84827f266bddd75ee91e7e88e49caf6d66c58d2b..1612da157bc59799ab98eba673049c046cffa38f 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -375,13 +375,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti +@@ -370,13 +370,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @Override public void baseTick() { super.baseTick(); @@ -1341,7 +1296,7 @@ index 2fa19bf199eb7736a97737e0712fd300d04d35fc..174117898f349f83810d45152ca96ece incrementTicksSinceLastInteraction(); // Purpur } -@@ -746,7 +746,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti +@@ -706,7 +706,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @Override public void aiStep() { super.aiStep(); @@ -1350,7 +1305,7 @@ index 2fa19bf199eb7736a97737e0712fd300d04d35fc..174117898f349f83810d45152ca96ece if (!this.level().isClientSide && this.canPickUpLoot() && this.isAlive() && !this.dead && (this.level().purpurConfig.entitiesPickUpLootBypassMobGriefing || this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { Vec3i baseblockposition = this.getPickupReach(); List list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); -@@ -766,7 +766,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti +@@ -726,7 +726,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab } } @@ -1359,7 +1314,7 @@ index 2fa19bf199eb7736a97737e0712fd300d04d35fc..174117898f349f83810d45152ca96ece } protected Vec3i getPickupReach() { -@@ -991,44 +991,44 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti +@@ -946,44 +946,44 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab return; } // Paper end - Allow nerfed mobs to jump and float @@ -1513,10 +1468,10 @@ index 51772f03a3469b11e7166ec6f3a1b9c64a606221..02f2f46ccc48bb4d9bd08555818b0489 this.seen.add(i); } else { diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -index 09502b15c20f401c3b56ecedc4d3b515384d654f..bca7b7192debb3a34a08047010a2438e7b7e2a78 100644 +index 49dccfc0010b5727250f7e27591502408c903739..37bdc1bd1ce7f402418b1e8c57c6f58540571ec2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -@@ -252,13 +252,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS +@@ -254,13 +254,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @Override protected void customServerAiStep() { @@ -1535,10 +1490,10 @@ index 09502b15c20f401c3b56ecedc4d3b515384d654f..bca7b7192debb3a34a08047010a2438e } diff --git a/src/main/java/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/src/main/java/net/minecraft/world/entity/animal/armadillo/Armadillo.java -index c9740f5588cf4db0c8257c47e96cef7a743cca45..412efb69786e767953864e5f5b44f5cf83a52061 100644 +index 6e01e5847396e14ce1d9af53f1ed29ef360d1b31..ef69b630d93b4e630083b852b126b6d939cb5f07 100644 --- a/src/main/java/net/minecraft/world/entity/animal/armadillo/Armadillo.java +++ b/src/main/java/net/minecraft/world/entity/animal/armadillo/Armadillo.java -@@ -157,12 +157,12 @@ public class Armadillo extends Animal { +@@ -158,12 +158,12 @@ public class Armadillo extends Animal { @Override protected void customServerAiStep() { @@ -1556,10 +1511,10 @@ index c9740f5588cf4db0c8257c47e96cef7a743cca45..412efb69786e767953864e5f5b44f5cf this.playSound(SoundEvents.ARMADILLO_SCUTE_DROP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); this.forceDrops = true; // CraftBukkit diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index ea1515f189bf3bc4cfef4524fb40f0d826f68cc0..d330f79e860662bc93a1703215e66e6564d181b9 100644 +index 93e5fd3509dc5fd9ff1087058d98003ab467dd04..44e0c8c25f6aadfb5f1715df4770391da0104381 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -@@ -307,13 +307,13 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder optional = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS); diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index ed67fcd2b67bfe581863cc6748692c3348f6c883..24a1663cf1cd3f888981a13907811b55bdbf6133 100644 +index 260138fcf0191391b68cb9d03cc55e26873bc001..2fcf8301949ff420ae0955a5194b5db52f030454 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -151,14 +151,14 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -1623,7 +1578,7 @@ index b0f8115b328eda1e3571051870b5310c5a7e115a..ee8c232ddaa518377bdfa54e83ffc04f } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index b98a34357e59168bbb22c967b86a449fc91f47f0..09c4cf772df4644413e40055fedcdf42ee8064fd 100644 +index 057096c5252e86d828a69080bdc70538e516ce99..0656e03bdd71f5d81853e817e136c8f11667c76e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java @@ -122,13 +122,13 @@ public class Tadpole extends AbstractFish { @@ -1667,7 +1622,7 @@ index fab01a3e779e39962ef04305540e2fe3043072a2..4feddea8703d25a671fe11617f99e1fa } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 0cc5b9e44dd6f1e0afdbb62ef41aa749c0c79b18..21bdcbd51d9f440e0734750b40cefa4c08cdaf5f 100644 +index 14264a491061ef17c9fd3fea36c0505d06e88277..072f6ea6ed0bb543b1d71628a1e1e43f73719a09 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -504,11 +504,11 @@ public class Sniffer extends Animal { @@ -1686,10 +1641,10 @@ index 0cc5b9e44dd6f1e0afdbb62ef41aa749c0c79b18..21bdcbd51d9f440e0734750b40cefa4c } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -index 451762b3cd023b8c5828f68e2778aada9c50ab85..f9bb83f35a41e5b076ae438af613a97b8e60c0c3 100644 +index 541acd5d2208b64977f33049cc0cbd9f8c136ccb..41c17c92bf5ec63ab6e0325936dbe52606524c60 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -@@ -266,10 +266,10 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { +@@ -265,10 +265,10 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { @Override protected void customServerAiStep() { @@ -1703,10 +1658,10 @@ index 451762b3cd023b8c5828f68e2778aada9c50ab85..f9bb83f35a41e5b076ae438af613a97b } diff --git a/src/main/java/net/minecraft/world/entity/monster/breeze/Breeze.java b/src/main/java/net/minecraft/world/entity/monster/breeze/Breeze.java -index 796ce24185ab9e80864116f9523c4289fcaad243..82391c84789c27353212d3142c036cc5aedb98f9 100644 +index ee9098f311b5db7251fcaf3ca199ae51ec1f2a2a..0d8e49e4f3c52244f8f84d6e4beeaa60aa6acdd9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/breeze/Breeze.java +++ b/src/main/java/net/minecraft/world/entity/monster/breeze/Breeze.java -@@ -226,11 +226,11 @@ public class Breeze extends Monster { +@@ -228,11 +228,11 @@ public class Breeze extends Monster { @Override protected void customServerAiStep() { @@ -1722,7 +1677,7 @@ index 796ce24185ab9e80864116f9523c4289fcaad243..82391c84789c27353212d3142c036cc5 } diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index a69a4d860cf537322cdf96bfd42e55d3fc684dd1..757d2b7bcb83f5bdcddf85a00e90288f3b82a2d6 100644 +index 9fcdc3dc71240450b983a071e21f24d497aa06e6..ee1fcffc3f94795ea0c53d9e9a5d1d28380321ef 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -192,10 +192,10 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -1739,10 +1694,10 @@ index a69a4d860cf537322cdf96bfd42e55d3fc684dd1..757d2b7bcb83f5bdcddf85a00e90288f if (this.isConverting()) { this.timeInOverworld++; diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 811b622945ecf67cff1992c3cdd4fcd84f33fb68..1b5977aa14d9a7254e7692bb152cc2808d52107a 100644 +index eb0deccb2f39dbe5ad47c689b0858b69fc08782f..44b64c00d43a40f66d2711abf3839c5b195f419f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -@@ -328,10 +328,10 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento +@@ -327,10 +327,10 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override protected void customServerAiStep() { @@ -1773,10 +1728,10 @@ index 71d2501e88a99819ef305fa8715418aad65ec81d..407a0f27719d3944b3a005c664d80246 PiglinBruteAi.maybePlayActivitySound(this); super.customServerAiStep(); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index 9f5325444cc4f64fc88f85794fbad09ddd4f7860..0bb577ec9ba0d23a741ccf067ac35f6be68312ca 100644 +index ba560ab0340c06614547dcddbdcbd1bbda44bb79..6ee394c1616db9b0203b3e52e39234d064438654 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -@@ -299,9 +299,10 @@ public class Warden extends Monster implements VibrationSystem { +@@ -300,9 +300,10 @@ public class Warden extends Monster implements VibrationSystem { protected void customServerAiStep() { ServerLevel worldserver = (ServerLevel) this.level(); @@ -1790,10 +1745,10 @@ index 9f5325444cc4f64fc88f85794fbad09ddd4f7860..0bb577ec9ba0d23a741ccf067ac35f6b if ((this.tickCount + this.getId()) % 120 == 0) { Warden.applyDarknessAround(worldserver, this.position(), this, 20); diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index dcf580d852ede8ea01f5d91944a224ec6eca73e4..4be218129188c1be8736940170a861adc10fdb7d 100644 +index bebbbdfe2b1056cc643a108afbfb46aace94598a..8431c19a974f8e846dce3258481dd6489dfb3206 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -341,7 +341,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -336,7 +336,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } protected void customServerAiStep(boolean inactive) { // Purpur - not final // Paper end @@ -1802,7 +1757,7 @@ index dcf580d852ede8ea01f5d91944a224ec6eca73e4..4be218129188c1be8736940170a861ad // Purpur start if (this.level().purpurConfig.villagerLobotomizeEnabled) { // treat as inactive if lobotomized -@@ -357,7 +357,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -352,7 +352,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler this.getBrain().tick((ServerLevel) this.level(), this); // Paper } // Purpur end*/ // Purpur - TODO: Pufferfish @@ -1812,10 +1767,10 @@ index dcf580d852ede8ea01f5d91944a224ec6eca73e4..4be218129188c1be8736940170a861ad this.assignProfessionWhenSpawned = false; } diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 638447e8cb74b26f4f8e3862c2fb4a3048979ebc..2e2461b585d9008f1bbb90f9b45e2a1ad837dbd6 100644 +index bff83fe413c7baef4ba56a3270ea4463a58c792f..3ee7bf7e10f8120258baaae8f77cdcbb6a781f78 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -668,7 +668,7 @@ public class Explosion { +@@ -350,7 +350,7 @@ public class Explosion { } if (flag1) { @@ -1824,7 +1779,7 @@ index 638447e8cb74b26f4f8e3862c2fb4a3048979ebc..2e2461b585d9008f1bbb90f9b45e2a1a List> list = new ArrayList(); Util.shuffle(this.toBlow, this.level.random); -@@ -746,7 +746,7 @@ public class Explosion { +@@ -428,7 +428,7 @@ public class Explosion { Block.popResource(this.level, (BlockPos) pair.getSecond(), (ItemStack) pair.getFirst()); } @@ -1834,10 +1789,10 @@ index 638447e8cb74b26f4f8e3862c2fb4a3048979ebc..2e2461b585d9008f1bbb90f9b45e2a1a if (this.fire) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a09e27a34631b779ca0170da7abc0bcb2559c5d2..4beada452d014ec7dc7c167466ec2af3c5bfcd33 100644 +index e94e6cc538094de4ce0fc0f615e6fed8bcdcb828..c6760eb6ad0b4cedd5a2b22e9c460a76d10cb5b6 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1295,9 +1295,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -984,9 +984,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } protected void tickBlockEntities() { @@ -1849,7 +1804,7 @@ index a09e27a34631b779ca0170da7abc0bcb2559c5d2..4beada452d014ec7dc7c167466ec2af3 //this.timings.tileEntityPending.startTiming(); // Spigot // Purpur this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { -@@ -1338,7 +1338,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1022,7 +1022,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl //this.timings.tileEntityTick.stopTiming(); // Spigot // Purpur this.tickingBlockEntities = false; co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper @@ -1858,25 +1813,25 @@ index a09e27a34631b779ca0170da7abc0bcb2559c5d2..4beada452d014ec7dc7c167466ec2af3 this.spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1553,7 +1553,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1225,7 +1225,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @Override public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { - this.getProfiler().incrementCounter("getEntities"); + //this.getProfiler().incrementCounter("getEntities"); // Purpur - List list = Lists.newArrayList(); - ((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call - return list; -@@ -1572,7 +1572,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - } + // Paper start - rewrite chunk system + final List ret = new java.util.ArrayList<>(); - public void getEntities(EntityTypeTest filter, AABB box, Predicate predicate, List result, int limit) { +@@ -1251,7 +1251,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl + public void getEntities(final EntityTypeTest entityTypeTest, + final AABB boundingBox, final Predicate predicate, + final List into, final int maxCount) { - this.getProfiler().incrementCounter("getEntities"); + //this.getProfiler().incrementCounter("getEntities"); // Purpur - // Paper start - optimise this call - //TODO use limit - if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) { -@@ -1827,6 +1827,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + + if (entityTypeTest instanceof net.minecraft.world.entity.EntityType byType) { + if (maxCount != Integer.MAX_VALUE) { +@@ -1546,6 +1546,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } public ProfilerFiller getProfiler() { @@ -1907,16 +1862,16 @@ index 2812505185df691e8f08932aa0bba162a7d9db86..35e94c06361795d032f995e8282f8b35 // Paper start - Add mobcaps commands 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 a9ed6255be8505cb8d067dbf8f665aacda618716..8fea185d3b7213dfef3c94ab7cc38bd008c38d29 100644 +index b29e8136f2bf7af0dd37bd030cee67e310de6faa..f84a3d9909542c685672b9cdd5d8125746870665 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -443,11 +443,11 @@ public class LevelChunk extends ChunkAccess { +@@ -449,11 +449,11 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p if (LightEngine.hasDifferentLightProperties(this, blockposition, iblockdata1, iblockdata)) { ProfilerFiller gameprofilerfiller = this.level.getProfiler(); - gameprofilerfiller.push("updateSkyLightSources"); + //gameprofilerfiller.push("updateSkyLightSources"); // Purpur - // Paper - starlight - remove skyLightSources + // Paper - rewrite chunk system - gameprofilerfiller.popPush("queueCheckLight"); + //gameprofilerfiller.popPush("queueCheckLight"); // Purpur this.level.getChunkSource().getLightEngine().checkBlock(blockposition); @@ -1925,7 +1880,7 @@ index a9ed6255be8505cb8d067dbf8f665aacda618716..8fea185d3b7213dfef3c94ab7cc38bd0 } boolean flag3 = iblockdata1.hasBlockEntity(); -@@ -1158,9 +1158,9 @@ public class LevelChunk extends ChunkAccess { +@@ -1106,9 +1106,9 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p if (LevelChunk.this.isTicking(blockposition)) { try { @@ -1937,15 +1892,15 @@ index a9ed6255be8505cb8d067dbf8f665aacda618716..8fea185d3b7213dfef3c94ab7cc38bd0 //this.blockEntity.tickTimer.startTiming(); // Spigot // Purpur BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); -@@ -1177,7 +1177,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1125,7 +1125,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p // Paper end - Remove the Block Entity if it's invalid } - gameprofilerfiller.pop(); + //gameprofilerfiller.pop(); } catch (Throwable throwable) { - if (throwable instanceof ThreadDeath) throw throwable; // Paper // Paper start - Prevent block entity and entity crashes + final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java index 18bbb3f8f99849333ff4bc020c8ce758a69312a5..404080976208c30e9e95e5bee47c2a749e709a45 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java diff --git a/patches/server/0244-Add-more-logger-output-for-invalid-movement-kicks.patch b/patches/server/0246-Add-more-logger-output-for-invalid-movement-kicks.patch similarity index 96% rename from patches/server/0244-Add-more-logger-output-for-invalid-movement-kicks.patch rename to patches/server/0246-Add-more-logger-output-for-invalid-movement-kicks.patch index d3310548d..4b3048a45 100644 --- a/patches/server/0244-Add-more-logger-output-for-invalid-movement-kicks.patch +++ b/patches/server/0246-Add-more-logger-output-for-invalid-movement-kicks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more logger output for invalid movement kicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c1f345fed7c5f95a87e3cc74e8ec200fcc49e777..44baee03b15c710f06f0d255e3102393d4c172f5 100644 +index 86ee80021010b5cbae088aff73eb53d0195b4443..0df2b762429a32343fae7838afa4f4971e8ba3c3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -721,6 +721,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0245-Add-Bee-API.patch b/patches/server/0247-Add-Bee-API.patch similarity index 100% rename from patches/server/0245-Add-Bee-API.patch rename to patches/server/0247-Add-Bee-API.patch diff --git a/patches/server/0246-Debug-Marker-API.patch b/patches/server/0248-Debug-Marker-API.patch similarity index 100% rename from patches/server/0246-Debug-Marker-API.patch rename to patches/server/0248-Debug-Marker-API.patch diff --git a/patches/server/0247-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0249-mob-spawning-option-to-ignore-creative-players.patch similarity index 92% rename from patches/server/0247-mob-spawning-option-to-ignore-creative-players.patch rename to patches/server/0249-mob-spawning-option-to-ignore-creative-players.patch index 34f15163c..8c7f055f1 100644 --- a/patches/server/0247-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0249-mob-spawning-option-to-ignore-creative-players.patch @@ -5,7 +5,7 @@ Subject: [PATCH] mob spawning option to ignore creative players diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index ed8032495af9ce9c23419224814b8d27e4a97c17..eb5447295f51c061774b552451d4ffdbc28cb775 100644 +index 35e94c06361795d032f995e8282f8b35c075dae7..0f90a6803851eba51e164772c984b1cd1193d882 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -253,7 +253,7 @@ public final class NaturalSpawner { @@ -18,7 +18,7 @@ index ed8032495af9ce9c23419224814b8d27e4a97c17..eb5447295f51c061774b552451d4ffdb if (entityhuman != null) { double d2 = entityhuman.distanceToSqr(d0, (double) i, d1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bd48c162844d3aaa194476eb6b6c2647ec2a7316..3ee77eafb36b744035e4eb0cc916ad165f100b13 100644 +index a0b85893498cef8f33a3a5c7bdf75fa34faac0f9..f256365039f8669552feb895c6f7f85f05de7235 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -370,6 +370,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0248-Add-skeleton-bow-accuracy-option.patch b/patches/server/0250-Add-skeleton-bow-accuracy-option.patch similarity index 100% rename from patches/server/0248-Add-skeleton-bow-accuracy-option.patch rename to patches/server/0250-Add-skeleton-bow-accuracy-option.patch diff --git a/patches/server/0249-Add-death-screen-API.patch b/patches/server/0251-Add-death-screen-API.patch similarity index 100% rename from patches/server/0249-Add-death-screen-API.patch rename to patches/server/0251-Add-death-screen-API.patch diff --git a/patches/server/0250-Implement-ram-and-rambar-commands.patch b/patches/server/0252-Implement-ram-and-rambar-commands.patch similarity index 98% rename from patches/server/0250-Implement-ram-and-rambar-commands.patch rename to patches/server/0252-Implement-ram-and-rambar-commands.patch index aa727fd7b..e9f9841f0 100644 --- a/patches/server/0250-Implement-ram-and-rambar-commands.patch +++ b/patches/server/0252-Implement-ram-and-rambar-commands.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement ram and rambar commands diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 1beb75aa960c766344f00fa898f905d5094efc01..358c03d6fb2f9442a9ac71fa6eca3915a6c4305c 100644 +index 6daecb014fea4e0a4fb00aec28e0ab6779bad9ae..13c084e250f298b2181abebe2c391dc172c0d49f 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -256,6 +256,8 @@ public class Commands { @@ -18,7 +18,7 @@ index 1beb75aa960c766344f00fa898f905d5094efc01..358c03d6fb2f9442a9ac71fa6eca3915 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c830fd0e990cb4220b6de3485df391ffbf7c7509..574937623f1aa38a8b2602357e0038eb23f5d0c3 100644 +index 9b23487d0b454bdf2be043888d152fe68b7d343e..d61311119fe91d3aaa27d34a7184c2cc14e1d7cb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -304,6 +304,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple diff --git a/patches/server/0251-Configurable-block-blast-resistance.patch b/patches/server/0253-Configurable-block-blast-resistance.patch similarity index 96% rename from patches/server/0251-Configurable-block-blast-resistance.patch rename to patches/server/0253-Configurable-block-blast-resistance.patch index 672d60a18..a96c31d2d 100644 --- a/patches/server/0251-Configurable-block-blast-resistance.patch +++ b/patches/server/0253-Configurable-block-blast-resistance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable block blast resistance diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 52bd9fa49649ede9d29e1c0d348cb13abf2ef1b1..ff76338659201424dcc88dfd08b6b8c2f2af593b 100644 +index 1b825b9012e24b12f83883f2056839c102802e4b..155a099eb9b0196385947f5765fad4e5c5b74b44 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -85,7 +85,7 @@ public abstract class BlockBehaviour implements FeatureElement { diff --git a/patches/server/0252-Configurable-block-fall-damage-modifiers.patch b/patches/server/0254-Configurable-block-fall-damage-modifiers.patch similarity index 100% rename from patches/server/0252-Configurable-block-fall-damage-modifiers.patch rename to patches/server/0254-Configurable-block-fall-damage-modifiers.patch diff --git a/patches/server/0253-Language-API.patch b/patches/server/0255-Language-API.patch similarity index 93% rename from patches/server/0253-Language-API.patch rename to patches/server/0255-Language-API.patch index 852e6962a..f2f12c30c 100644 --- a/patches/server/0253-Language-API.patch +++ b/patches/server/0255-Language-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Language API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index dedf510a5942aaa65a606d108d4082e87add5523..12e4202f198ea7fe3a69d265444b8ad88bbc0ee6 100644 +index 8bd0bb8b9593347bd249312af3832a4c1a932a5c..002a3ee08d7e009ef1e4bd3bc274aa608846b219 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -410,6 +410,20 @@ public final class CraftServer implements Server { diff --git a/patches/server/0254-Milk-Keeps-Beneficial-Effects.patch b/patches/server/0256-Milk-Keeps-Beneficial-Effects.patch similarity index 95% rename from patches/server/0254-Milk-Keeps-Beneficial-Effects.patch rename to patches/server/0256-Milk-Keeps-Beneficial-Effects.patch index f720c2a8b..0ccdd7780 100644 --- a/patches/server/0254-Milk-Keeps-Beneficial-Effects.patch +++ b/patches/server/0256-Milk-Keeps-Beneficial-Effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Milk Keeps Beneficial Effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b3320e206e07a7b895fe28bcc4cc501c104bedd5..7d8b12bdbb2e86e49d92124ba8376df3ff5edc17 100644 +index 3f0d3229ec4727c0d176a2e603c3f9e933f3395e..bfa8ad069e7632863fffe20442c56d21f1da51d7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1129,6 +1129,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -30,7 +30,7 @@ index 1313844a719befa96d4d8ab23505e89e8c4df2fd..0da4dbd11d2b5368e10291ca0389f087 this.goalSelector.addGoal(1, new TradeWithPlayerGoal(this)); this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, Zombie.class, 8.0F, 0.5D, 0.5D)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 81d3a0af4da0387fc072c015e04d51b7564f603a..eaf99a0fc84372f12e2c54c9d175072abf1239b4 100644 +index aa98a89984182ead3dca5c517c87864c7cdde0bf..e76fe82819cf0193f124b080c10f11c0596516d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -126,6 +126,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0255-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch b/patches/server/0257-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch similarity index 100% rename from patches/server/0255-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch rename to patches/server/0257-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch diff --git a/patches/server/0256-Add-log-suppression-for-LibraryLoader.patch b/patches/server/0258-Add-log-suppression-for-LibraryLoader.patch similarity index 100% rename from patches/server/0256-Add-log-suppression-for-LibraryLoader.patch rename to patches/server/0258-Add-log-suppression-for-LibraryLoader.patch diff --git a/patches/server/0257-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0259-Add-option-to-allow-creeper-to-encircle-target-when-.patch similarity index 100% rename from patches/server/0257-Add-option-to-allow-creeper-to-encircle-target-when-.patch rename to patches/server/0259-Add-option-to-allow-creeper-to-encircle-target-when-.patch diff --git a/patches/server/0258-Fire-Immunity-API.patch b/patches/server/0260-Fire-Immunity-API.patch similarity index 97% rename from patches/server/0258-Fire-Immunity-API.patch rename to patches/server/0260-Fire-Immunity-API.patch index 07f6ee136..c0934be08 100644 --- a/patches/server/0258-Fire-Immunity-API.patch +++ b/patches/server/0260-Fire-Immunity-API.patch @@ -5,7 +5,7 @@ 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 8fddc8f7c0bdd91b0a1ce72c9bfccfc254c76bb7..9aa1a040c452d2b5737e0cbb4dc293b0f7060f9b 100644 +index 452ca1aeb5b57b8e0e4a1ef369c9b521c485d803..5577499417c5ef138a3943fcdb0a93365df6713b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -430,6 +430,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess diff --git a/patches/server/0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0261-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch similarity index 93% rename from patches/server/0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch rename to patches/server/0261-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index d41531289..dc7aaae19 100644 --- a/patches/server/0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0261-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9aa1a040c452d2b5737e0cbb4dc293b0f7060f9b..7e12e94d56e1750e072e4dfa94413998ce18049e 100644 +index 5577499417c5ef138a3943fcdb0a93365df6713b..9bad2e02588160ff2644e343a65ecf2ddb593acf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -906,6 +906,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -17,7 +17,7 @@ index 9aa1a040c452d2b5737e0cbb4dc293b0f7060f9b..7e12e94d56e1750e072e4dfa94413998 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1c6d34c1d186c561666ac0f3b7e358652e21f1bb..780a70df21bef34942c2f1cdf0d1613d4bab94fc 100644 +index e44dcc89cb6286125400f6e83a672bcd66654704..d3a01c7445e693989f72e1215a2b72d06713cd1d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -410,6 +410,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0260-Added-got-ram-event.patch b/patches/server/0262-Added-got-ram-event.patch similarity index 91% rename from patches/server/0260-Added-got-ram-event.patch rename to patches/server/0262-Added-got-ram-event.patch index 0cdb99254..ed9151652 100644 --- a/patches/server/0260-Added-got-ram-event.patch +++ b/patches/server/0262-Added-got-ram-event.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Added got ram event diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index fab01a3e779e39962ef04305540e2fe3043072a2..e3a018f05c7c0019a076283a5217cca3acb0161b 100644 +index 4feddea8703d25a671fe11617f99e1fa9c1deaa2..aa548cba6134652751d73b6774e88f9f6d9ee0ed 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -428,6 +428,7 @@ public class Goat extends Animal { diff --git a/patches/server/0261-Log-skipped-entity-s-position.patch b/patches/server/0263-Log-skipped-entity-s-position.patch similarity index 100% rename from patches/server/0261-Log-skipped-entity-s-position.patch rename to patches/server/0263-Log-skipped-entity-s-position.patch diff --git a/patches/server/0262-End-Crystal-Cramming.patch b/patches/server/0264-End-Crystal-Cramming.patch similarity index 96% rename from patches/server/0262-End-Crystal-Cramming.patch rename to patches/server/0264-End-Crystal-Cramming.patch index 18b511447..5e74f06ac 100644 --- a/patches/server/0262-End-Crystal-Cramming.patch +++ b/patches/server/0264-End-Crystal-Cramming.patch @@ -17,7 +17,7 @@ index 02f1d0418395b100cabfad7294466aaad34ac7c6..c0275197cc9aab2a49d88476e072a94f // Purpur start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 780a70df21bef34942c2f1cdf0d1613d4bab94fc..495bf6d8c5898410a955a8a0a9298c4919a7d65b 100644 +index d3a01c7445e693989f72e1215a2b72d06713cd1d..4ad829aa273c5c15efd8cc2d358042f749d611ad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -937,6 +937,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0263-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0265-Option-to-allow-beacon-effects-when-covered-by-tinte.patch similarity index 97% rename from patches/server/0263-Option-to-allow-beacon-effects-when-covered-by-tinte.patch rename to patches/server/0265-Option-to-allow-beacon-effects-when-covered-by-tinte.patch index be8fc4647..b41d672a9 100644 --- a/patches/server/0263-Option-to-allow-beacon-effects-when-covered-by-tinte.patch +++ b/patches/server/0265-Option-to-allow-beacon-effects-when-covered-by-tinte.patch @@ -36,7 +36,7 @@ index d1fb77d83d48183a9a37dbeec7bb0fda623d7e9b..df02a78855f1d0c32d1f744c20803fc9 BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 495bf6d8c5898410a955a8a0a9298c4919a7d65b..88a1843a19967683ce0470c7f6c17f02179ac556 100644 +index 4ad829aa273c5c15efd8cc2d358042f749d611ad..b54e12dbac09b8347a45a912d9f21ac146b87a9b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -836,11 +836,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0264-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0266-Add-attribute-clamping-and-armor-limit-config.patch similarity index 100% rename from patches/server/0264-Add-attribute-clamping-and-armor-limit-config.patch rename to patches/server/0266-Add-attribute-clamping-and-armor-limit-config.patch diff --git a/patches/server/0265-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0267-Config-to-remove-explosion-radius-clamp.patch similarity index 91% rename from patches/server/0265-Config-to-remove-explosion-radius-clamp.patch rename to patches/server/0267-Config-to-remove-explosion-radius-clamp.patch index 5a3e49334..f1139e359 100644 --- a/patches/server/0265-Config-to-remove-explosion-radius-clamp.patch +++ b/patches/server/0267-Config-to-remove-explosion-radius-clamp.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to remove explosion radius clamp diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index bff83fe413c7baef4ba56a3270ea4463a58c792f..c3bd4bcf79ef1ad28bb5651271144668e11f780b 100644 +index 3ee7bf7e10f8120258baaae8f77cdcbb6a781f78..754373da9a5246c11f3c33a8907d387e2113ee4d 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -99,7 +99,7 @@ public class Explosion { @@ -27,7 +27,7 @@ index bff83fe413c7baef4ba56a3270ea4463a58c792f..c3bd4bcf79ef1ad28bb5651271144668 } // CraftBukkit end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 88a1843a19967683ce0470c7f6c17f02179ac556..06ef23a5be69952876e539cd2ff785dae0d19caf 100644 +index b54e12dbac09b8347a45a912d9f21ac146b87a9b..bdfeefa959a66ebb21f0882c7035e77f234c0b60 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -217,6 +217,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0266-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0268-bonemealable-sugarcane-cactus-and-netherwart.patch similarity index 98% rename from patches/server/0266-bonemealable-sugarcane-cactus-and-netherwart.patch rename to patches/server/0268-bonemealable-sugarcane-cactus-and-netherwart.patch index 8f2d70c7b..e76bfa9b8 100644 --- a/patches/server/0266-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0268-bonemealable-sugarcane-cactus-and-netherwart.patch @@ -137,7 +137,7 @@ index c48c622e92cedeaa46b929c7adfedec98dd5a3fb..6449b5c424443b5f0ee7e3fce8034494 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 06ef23a5be69952876e539cd2ff785dae0d19caf..62328bd56578789dd898b203396d37a76e75f1e4 100644 +index bdfeefa959a66ebb21f0882c7035e77f234c0b60..8f7fe53477f2abe680cbe7417956021097a22935 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -890,8 +890,20 @@ public class PurpurWorldConfig { diff --git a/patches/server/0267-Add-PreExplodeEvents.patch b/patches/server/0269-Add-PreExplodeEvents.patch similarity index 95% rename from patches/server/0267-Add-PreExplodeEvents.patch rename to patches/server/0269-Add-PreExplodeEvents.patch index 722537041..9a2214d5b 100644 --- a/patches/server/0267-Add-PreExplodeEvents.patch +++ b/patches/server/0269-Add-PreExplodeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PreExplodeEvents diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index c3bd4bcf79ef1ad28bb5651271144668e11f780b..2429f6525623e5a052a92479486328f49c3f1ba3 100644 +index 754373da9a5246c11f3c33a8907d387e2113ee4d..4c94fff162db3546434e502f39e90f42364e5092 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -166,6 +166,25 @@ public class Explosion { diff --git a/patches/server/0268-Improve-output-of-plugins-command.patch b/patches/server/0270-Improve-output-of-plugins-command.patch similarity index 100% rename from patches/server/0268-Improve-output-of-plugins-command.patch rename to patches/server/0270-Improve-output-of-plugins-command.patch diff --git a/patches/server/0269-Make-GUI-Great-Again.patch b/patches/server/0271-Make-GUI-Great-Again.patch similarity index 99% rename from patches/server/0269-Make-GUI-Great-Again.patch rename to patches/server/0271-Make-GUI-Great-Again.patch index 8161e0793..e99151e54 100644 --- a/patches/server/0269-Make-GUI-Great-Again.patch +++ b/patches/server/0271-Make-GUI-Great-Again.patch @@ -96,7 +96,7 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 7a579cdb6bb9dced485f86d1bfe8ab432db51ab1..931da957b34dc2d84f52de3d9e790c811a2a075a 100644 +index d9b299cde538db9bc07a267274551cc9893615db..3e27a6c1d0e36d76d1ecdf52f642935b90d50d73 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -114,6 +114,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0270-Stored-Bee-API.patch b/patches/server/0272-Stored-Bee-API.patch similarity index 100% rename from patches/server/0270-Stored-Bee-API.patch rename to patches/server/0272-Stored-Bee-API.patch diff --git a/patches/server/0271-Shears-can-defuse-TNT.patch b/patches/server/0273-Shears-can-defuse-TNT.patch similarity index 100% rename from patches/server/0271-Shears-can-defuse-TNT.patch rename to patches/server/0273-Shears-can-defuse-TNT.patch diff --git a/patches/server/0272-Explorer-Map-API.patch b/patches/server/0274-Explorer-Map-API.patch similarity index 100% rename from patches/server/0272-Explorer-Map-API.patch rename to patches/server/0274-Explorer-Map-API.patch diff --git a/patches/server/0273-Option-Ocelot-Spawn-Under-Sea-Level.patch b/patches/server/0275-Option-Ocelot-Spawn-Under-Sea-Level.patch similarity index 100% rename from patches/server/0273-Option-Ocelot-Spawn-Under-Sea-Level.patch rename to patches/server/0275-Option-Ocelot-Spawn-Under-Sea-Level.patch diff --git a/patches/server/0274-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch b/patches/server/0276-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch similarity index 100% rename from patches/server/0274-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch rename to patches/server/0276-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch diff --git a/patches/server/0275-Add-option-for-always-showing-item-in-player-death-m.patch b/patches/server/0277-Add-option-for-always-showing-item-in-player-death-m.patch similarity index 100% rename from patches/server/0275-Add-option-for-always-showing-item-in-player-death-m.patch rename to patches/server/0277-Add-option-for-always-showing-item-in-player-death-m.patch diff --git a/patches/server/0276-place-end-crystal-on-any-block.patch b/patches/server/0278-place-end-crystal-on-any-block.patch similarity index 96% rename from patches/server/0276-place-end-crystal-on-any-block.patch rename to patches/server/0278-place-end-crystal-on-any-block.patch index ebcdd4a9f..399081c84 100644 --- a/patches/server/0276-place-end-crystal-on-any-block.patch +++ b/patches/server/0278-place-end-crystal-on-any-block.patch @@ -18,7 +18,7 @@ index 5f51e64cb0611a4ba6bdcdcacbcba1063a7f3a5c..8fb564f43e2f1194d2ad68d35c4df6b9 } else { BlockPos blockposition1 = blockposition.above(); final BlockPos aboveBlockPosition = blockposition1; // Paper - OBFHELPER diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 07dbd2768b52d3143d65c34adf48884bfde00c4d..ddc188c67246fd9b0a887a6c4248e369e08acff0 100644 +index 555594d330d5621bf656299aa76f7a85fba46292..8e892a7acb8f143ab3ecdf7b6dfee3ac0d86c172 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -957,6 +957,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0277-Add-option-to-disable-the-copper-oxidation-proximity.patch b/patches/server/0279-Add-option-to-disable-the-copper-oxidation-proximity.patch similarity index 96% rename from patches/server/0277-Add-option-to-disable-the-copper-oxidation-proximity.patch rename to patches/server/0279-Add-option-to-disable-the-copper-oxidation-proximity.patch index ff1e3da19..849d9258f 100644 --- a/patches/server/0277-Add-option-to-disable-the-copper-oxidation-proximity.patch +++ b/patches/server/0279-Add-option-to-disable-the-copper-oxidation-proximity.patch @@ -18,7 +18,7 @@ index daae7fd6e0148cfba8e359d990748a0c83a3376e..0e06b1bcd906e92c083dc74d56d6d0a2 return random.nextFloat() < f1 ? this.getNext(state) : Optional.empty(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ddc188c67246fd9b0a887a6c4248e369e08acff0..913ec0b08cbffcbd30579c0925ffa301c9466101 100644 +index 8e892a7acb8f143ab3ecdf7b6dfee3ac0d86c172..214141c932153d1b5147c94815256246b2615eb9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -143,6 +143,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0278-register-minecraft-debug-commands.patch b/patches/server/0280-register-minecraft-debug-commands.patch similarity index 96% rename from patches/server/0278-register-minecraft-debug-commands.patch rename to patches/server/0280-register-minecraft-debug-commands.patch index 8b17f2fe7..d567dd5d9 100644 --- a/patches/server/0278-register-minecraft-debug-commands.patch +++ b/patches/server/0280-register-minecraft-debug-commands.patch @@ -5,7 +5,7 @@ Subject: [PATCH] register minecraft debug commands diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 7bcc0f87337547f8783dd9cc8adff61187cd41d7..d559b6f0e5ae4f761cd5fe4124bc26034ef297eb 100644 +index 13c084e250f298b2181abebe2c391dc172c0d49f..c6fe1a3760d620bd95a918d7b37d284d7161621c 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -221,8 +221,8 @@ public class Commands { diff --git a/patches/server/0279-Configurable-villager-search-radius.patch b/patches/server/0281-Configurable-villager-search-radius.patch similarity index 100% rename from patches/server/0279-Configurable-villager-search-radius.patch rename to patches/server/0281-Configurable-villager-search-radius.patch diff --git a/patches/server/0280-option-to-make-ravagers-afraid-of-rabbits.patch b/patches/server/0282-option-to-make-ravagers-afraid-of-rabbits.patch similarity index 100% rename from patches/server/0280-option-to-make-ravagers-afraid-of-rabbits.patch rename to patches/server/0282-option-to-make-ravagers-afraid-of-rabbits.patch diff --git a/patches/server/0281-config-for-startup-commands.patch b/patches/server/0283-config-for-startup-commands.patch similarity index 96% rename from patches/server/0281-config-for-startup-commands.patch rename to patches/server/0283-config-for-startup-commands.patch index 34009794e..718d5a4e0 100644 --- a/patches/server/0281-config-for-startup-commands.patch +++ b/patches/server/0283-config-for-startup-commands.patch @@ -5,7 +5,7 @@ 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 59938afbf2d3add16b6a7f0acdba81806054bbbb..bc58ad858d7753cc2b992e9f18ed717cbd3e5989 100644 +index 3df64fa31137116aed8b7993cb82164d8d5172cd..40a4273275822a8b3013807a9dd0716a0c93eaf0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1165,6 +1165,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop