diff --git a/build.gradle.kts b/build.gradle.kts index 66a80601..fc3c7382 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ repositories { } dependencies { - remapper("net.fabricmc:tiny-remapper:0.8.6:fat") + remapper("net.fabricmc:tiny-remapper:0.8.10 :fat") decompiler("net.minecraftforge:forgeflower:2.0.627.2") paperclip("top.leavesmc:leavesclip:1.0.2") } diff --git a/gradle.properties b/gradle.properties index 6433caeb..bde26635 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,5 +4,5 @@ version=1.20.2-R0.1-SNAPSHOT mcVersion=1.20.2 packageVersion=1_20_R2 org.gradle.jvmargs=-Xmx2G -paperRef=5bb30ce95b14293f5bfebf10be2fdf929eabcc01 +paperRef=4675152f4908431e0f944a7bf9fa3b2181a2dfd6 preVersion=false diff --git a/patches/api/0009-Force-peaceful-mode-switch.patch b/patches/api/0009-Force-peaceful-mode-switch.patch index f843cb8b..91433197 100644 --- a/patches/api/0009-Force-peaceful-mode-switch.patch +++ b/patches/api/0009-Force-peaceful-mode-switch.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Force peaceful mode switch diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 91eb95b04094394e8dc1e3a3343efc63690c87e4..1240a16b45e037f137e14200e2edab780705576d 100644 +index 17d404d6d1a5b46b58d612fca38f17e71adee92e..cf83520291722436734914f348e32ae176d4ec51 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4080,6 +4080,12 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4168,6 +4168,12 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public Set getFeatureFlags(); diff --git a/patches/server/0002-Delete-Timings.patch b/patches/server/0002-Delete-Timings.patch index 568b8d7d..5d520fa0 100644 --- a/patches/server/0002-Delete-Timings.patch +++ b/patches/server/0002-Delete-Timings.patch @@ -1109,7 +1109,7 @@ index d10abd28c522612934aada8124e5bb67a9b4e9da..4a87d5d7f0bfa777ba311ac021d88784 i = this.context.runTopCommand(customfunction1, source); } finally { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index aeab76b091221d3ed5df221faada70739a7d25a4..10d92f7a5bc8582df7322744bb42adcf1ecdc371 100644 +index 749087baa24d6c07d09ef0f93fa6bde694d72a93..8dbe0d3e867b3fa2478f2ad1e74e4763ff41d105 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -58,7 +58,6 @@ import org.apache.logging.log4j.Level; @@ -1136,7 +1136,7 @@ index aeab76b091221d3ed5df221faada70739a7d25a4..10d92f7a5bc8582df7322744bb42adcf } @Override -@@ -772,21 +769,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -775,21 +772,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface } // Paper start command.set(event.getCommand()); @@ -1159,7 +1159,7 @@ index aeab76b091221d3ed5df221faada70739a7d25a4..10d92f7a5bc8582df7322744bb42adcf // Paper start if (waitableArray[0] != null) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 6a49a36f64521f0bddcf21585ee507040119fd6d..ae168e17b01fd814793dda2e4ac9b38a3505adad 100644 +index caa73632aee15583c6b6ed12a668c8f49b794708..f0d4e84f7ba4e2b669ec0f748a7ab50eac90fdfe 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1,13 +1,10 @@ @@ -1249,7 +1249,7 @@ index 6a49a36f64521f0bddcf21585ee507040119fd6d..ae168e17b01fd814793dda2e4ac9b38a // CraftBukkit end public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider { -@@ -468,15 +453,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -548,15 +533,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider protected void tick(BooleanSupplier shouldKeepTicking) { ProfilerFiller gameprofilerfiller = this.level.getProfiler(); @@ -1265,7 +1265,7 @@ index 6a49a36f64521f0bddcf21585ee507040119fd6d..ae168e17b01fd814793dda2e4ac9b38a } gameprofilerfiller.pop(); -@@ -1090,7 +1071,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1188,7 +1169,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -1273,7 +1273,7 @@ index 6a49a36f64521f0bddcf21585ee507040119fd6d..ae168e17b01fd814793dda2e4ac9b38a ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -1115,17 +1095,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1213,17 +1193,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } @@ -1618,7 +1618,7 @@ index 584a768f2ce1c98a1de7749060c47f21721f9055..2f6f2a5504d51cc9277233ce5d1ca0e2 } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8bca5ba75977c0a61197eb47c94f0456d66b29a4..b6529d2898b4aceee90ebd768f1b07f699798de7 100644 +index 33be0db006cca66f38f2105924466b0210139848..64adb7da5c745b7800c1060b276e28f27602c535 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2388,7 +2388,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1652,7 +1652,7 @@ index 8bca5ba75977c0a61197eb47c94f0456d66b29a4..b6529d2898b4aceee90ebd768f1b07f6 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 03d2dc7f68d6918065f852057321fbaaf22fb413..798f24bd82a899a0d78b06064e182139fd29687c 100644 +index 33abcf12b4426572b74ca4c813e4392c823494bc..733170a3666e74bd87f6a50fda2d00529a08c55f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1,6 +1,5 @@ @@ -1662,7 +1662,7 @@ index 03d2dc7f68d6918065f852057321fbaaf22fb413..798f24bd82a899a0d78b06064e182139 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1211,7 +1210,6 @@ public abstract class PlayerList { +@@ -1232,7 +1231,6 @@ public abstract class PlayerList { public void saveAll(int interval) { io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main @@ -1670,7 +1670,7 @@ index 03d2dc7f68d6918065f852057321fbaaf22fb413..798f24bd82a899a0d78b06064e182139 int numSaved = 0; long now = MinecraftServer.currentTick; for (int i = 0; i < this.players.size(); ++i) { -@@ -1222,7 +1220,6 @@ public abstract class PlayerList { +@@ -1243,7 +1241,6 @@ public abstract class PlayerList { } // Paper end } @@ -1707,7 +1707,7 @@ index 73871f456a85bda1e51f54986d0e61fb629822e8..7dbb55953ce9fb489c8a6706bc8a64fd return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 675d695989cef5d8fc2e85673efbb57ec1bb38bd..afdea957ec8d893cea15a92fe40b19f0410da76a 100644 +index a76eb3d051db0229ed088b71c92ff3f131449007..6553e5a0e554b97667c0b66a63d88292007b7d6d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; diff --git a/patches/server/0003-Leaves-Server-Utils.patch b/patches/server/0003-Leaves-Server-Utils.patch index 8026f5e7..6a496bfa 100644 --- a/patches/server/0003-Leaves-Server-Utils.patch +++ b/patches/server/0003-Leaves-Server-Utils.patch @@ -31,10 +31,10 @@ index 46954db7ecd35ac4018fdf476df7c8020d7ce6c8..044c51ebb058fc36074fd178929e3279 public PlayerAreaMap() { super(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f20ae9153b7098980ce6c0e75fcbbb4da652661b..3011a7dee3ac2d5bcce7369fd846a11b69d99ef1 100644 +index 1e05fca2a2ba6e2c0b641b6e27585520889cd8a6..e54666bde53dcd0fdcd1a0dfd3e047886011508f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -416,6 +416,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -417,6 +417,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean collidingWithWorldBorder; // Paper @@ -42,7 +42,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..3011a7dee3ac2d5bcce7369fd846a11b public boolean fixedPose = false; // Paper public void setOrigin(@javax.annotation.Nonnull Location location) { -@@ -2422,6 +2423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2455,6 +2456,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { nbt.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -50,7 +50,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..3011a7dee3ac2d5bcce7369fd846a11b return nbt; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2590,6 +2592,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2602,6 +2604,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end @@ -62,7 +62,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..3011a7dee3ac2d5bcce7369fd846a11b } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); -@@ -4836,4 +4843,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4848,4 +4855,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end diff --git a/patches/server/0006-Leaves-Protocol-Core.patch b/patches/server/0006-Leaves-Protocol-Core.patch index d9aaa83e..218e4ff5 100644 --- a/patches/server/0006-Leaves-Protocol-Core.patch +++ b/patches/server/0006-Leaves-Protocol-Core.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Leaves Protocol Core diff --git a/src/main/java/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.java b/src/main/java/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.java -index 975da2529d18391ed4ecc7359a2d7319129bd872..ae5590b015a2b018188bd7a45b44ec4d4af048a5 100644 +index af86f752c33a2990405fea058b7c41c437ba9d46..bada9fae1e7178162429e1f5a1608b9c4a680a6c 100644 --- a/src/main/java/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.java +++ b/src/main/java/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.java @@ -20,7 +20,12 @@ public record ServerboundCustomPayloadPacket(CustomPacketPayload payload) implem @@ -23,7 +23,7 @@ index 975da2529d18391ed4ecc7359a2d7319129bd872..ae5590b015a2b018188bd7a45b44ec4d } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c798fbe078e14b0473b2d8bcdccc11238d28025e..68a242f6aaa4aeebff5c2c566ac2aab538eccc87 100644 +index d6f913b7bc79d2ffaa994b60d4a8252a296d852c..19a49358826c9fe39aeaf89348dc07b228d737c2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1562,6 +1562,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { - this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -3116,7 +3087,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + public boolean isLegacyTrackingEntity = false; + +@@ -3128,7 +3099,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.processPortalCooldown(); @@ -56,7 +58,7 @@ index 3011a7dee3ac2d5bcce7369fd846a11b69d99ef1..3f439b316960a734d0585dccdd331b25 } diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 9105418b29c89f092378da11b14e3d324332a2ba..739eeee273632ac86c245d88e2f6eafe4f31208c 100644 +index e6f75a9cac46c8e3ddba664a9d5b27b665a94cb4..d790c8de8c7b0bbe44c7e0eba3468b1f820fc0c0 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -132,11 +132,7 @@ public class FallingBlockEntity extends Entity { diff --git a/patches/server/0010-Fakeplayer-support.patch b/patches/server/0010-Fakeplayer-support.patch index adf5cbe7..3ac94e9c 100644 --- a/patches/server/0010-Fakeplayer-support.patch +++ b/patches/server/0010-Fakeplayer-support.patch @@ -69,10 +69,10 @@ index e38e2e5a7ddba9c140f362021b6be0b0974f7cd1..870a9c94885c983cd7a557b76cb4dbac AdvancementProgress advancementprogress = this.getOrStartProgress(advancement); boolean flag1 = advancementprogress.isDone(); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ae168e17b01fd814793dda2e4ac9b38a3505adad..4e21768185a624523811ea45eb4750dc1a4c1156 100644 +index f0d4e84f7ba4e2b669ec0f748a7ab50eac90fdfe..77cb44dd37229045981b687d5c5bd08e43e82294 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1298,6 +1298,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1432,6 +1432,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } // Paper end this.serverEntity.removePairing(player); @@ -167,7 +167,7 @@ index f71a4a8307fb092d33545e12d253e0b80c884168..8bd801e15408bf5284acec33bdf3c798 PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); this.level().getCraftServer().getPluginManager().callEvent(changeEvent); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b6529d2898b4aceee90ebd768f1b07f699798de7..64c09cace60f028a253456bdd46dc82e560141c2 100644 +index 64adb7da5c745b7800c1060b276e28f27602c535..b3ab3f17ebbcd2e02ac93391699c40cc6c364234 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -298,7 +298,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -186,7 +186,7 @@ index b6529d2898b4aceee90ebd768f1b07f699798de7..64c09cace60f028a253456bdd46dc82e player.connection = this; player.getTextFilter().join(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ecc0820b42c60994f2b51786b49568fe88f59c6a..12a09395e40cc225b0840f851674d68e0402bace 100644 +index afbe41b671073232614a1de246bea30ea2a26929..dea28bf8e1c0f67f13cc51d9e2cc6da69ad7fcb1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -101,6 +101,7 @@ import net.minecraft.world.scores.Objective; @@ -213,7 +213,7 @@ index ecc0820b42c60994f2b51786b49568fe88f59c6a..12a09395e40cc225b0840f851674d68e // CraftBukkit end public abstract class PlayerList { -@@ -329,6 +328,21 @@ public abstract class PlayerList { +@@ -350,6 +349,21 @@ public abstract class PlayerList { top.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePlayerJoin(player); // Leaves - protocol @@ -235,7 +235,7 @@ index ecc0820b42c60994f2b51786b49568fe88f59c6a..12a09395e40cc225b0840f851674d68e final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure -@@ -981,6 +995,13 @@ public abstract class PlayerList { +@@ -1002,6 +1016,13 @@ public abstract class PlayerList { } // Paper end @@ -249,7 +249,7 @@ index ecc0820b42c60994f2b51786b49568fe88f59c6a..12a09395e40cc225b0840f851674d68e // CraftBukkit end return entityplayer1; } -@@ -1091,11 +1112,16 @@ public abstract class PlayerList { +@@ -1112,11 +1133,16 @@ public abstract class PlayerList { } public String[] getPlayerNamesArray() { @@ -267,7 +267,7 @@ index ecc0820b42c60994f2b51786b49568fe88f59c6a..12a09395e40cc225b0840f851674d68e return astring; } -@@ -1572,4 +1598,16 @@ public abstract class PlayerList { +@@ -1593,4 +1619,16 @@ public abstract class PlayerList { public boolean isAllowCheatsForAllPlayers() { return this.allowCheatsForAllPlayers; } @@ -285,10 +285,10 @@ index ecc0820b42c60994f2b51786b49568fe88f59c6a..12a09395e40cc225b0840f851674d68e + // Leaves end - fakeplayer support } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cf6d467e9c8b4fa5f0f6c72881dbe1a79f3d8ca6..f26cd4e7769ae29fe01e36433b378780a941c2ab 100644 +index f2572810c52b948d7c83b88afe5f2c6b898888da..167ac5d96c8abd67b8dc987560e792837348cae4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1383,7 +1383,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1416,7 +1416,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return offsetFactor; } @@ -311,7 +311,7 @@ index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..d0752407684312982188abd0fa4af4f7 private int timeUntilHooked; private float fishAngle; diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index ffd349c1b80df0f1e8c02bda23700184825170fd..bc734baa18eb12b499bca2c0fc6b8d8960b3ba26 100644 +index f664da5a8413bb13cc95d2cf1604f11a5d285dae..2d5f6a69e0c2dc96375ec24d41522ae4e77c6744 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -406,6 +406,8 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0018-No-chat-sign.patch b/patches/server/0018-No-chat-sign.patch index 9eec7b81..1d204b9f 100644 --- a/patches/server/0018-No-chat-sign.patch +++ b/patches/server/0018-No-chat-sign.patch @@ -110,20 +110,20 @@ index 9d6db4a378036559efab91c8b7dcf2a6b0c2cce6..2c349dc502ce275a8215766933f4855f } } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 0835a4ab23b3cb0864d9b452e1a6c8141496cd57..7362fb735a7eb006ebe63190992ae098c4efb2f9 100644 +index 76592ce972f8fa508ee22a7b572759e55082e6ee..9576e2ffffa7eea64ab631aed43225719f3a7483 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -640,7 +640,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - public boolean enforceSecureProfile() { - DedicatedServerProperties dedicatedserverproperties = this.getProperties(); - -- return dedicatedserverproperties.enforceSecureProfile && dedicatedserverproperties.onlineMode && this.services.profileKeySignatureValidator() != null; -+ return dedicatedserverproperties.enforceSecureProfile && dedicatedserverproperties.onlineMode && this.services.profileKeySignatureValidator() != null && !top.leavesmc.leaves.LeavesConfig.noChatSign; // Leaves - No Secure profile; +@@ -642,7 +642,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + // Paper start - fix secure profile with proxy online mode + return dedicatedserverproperties.enforceSecureProfile + && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() +- && this.services.profileKeySignatureValidator() != null; ++ && this.services.profileKeySignatureValidator() != null && !top.leavesmc.leaves.LeavesConfig.noChatSign; // Leaves - No Secure profile; + // Paper end } - @Override diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 6f758e7bf7c93dae1c7f459e0bc4a32e91a09ca0..0059a650608cc0adc75851beeffc7370c6309478 100644 +index 0374cfb97e08496451d2f1d570c5fbc005f0215d..8812c99c0d89d379eac1ea0af28bd9c78f2cf537 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -226,10 +226,27 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -155,10 +155,10 @@ index 6f758e7bf7c93dae1c7f459e0bc4a32e91a09ca0..0059a650608cc0adc75851beeffc7370 if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index cc610748dd0ae033c8e48d30f1077c1f9697dac3..59b2124ea6d9b489488ace4fcd4529420a8eca99 100644 +index dea28bf8e1c0f67f13cc51d9e2cc6da69ad7fcb1..eebe80d8374b42d03b4658a0a04deafb96b06ace 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1459,7 +1459,7 @@ public abstract class PlayerList { +@@ -1480,7 +1480,7 @@ public abstract class PlayerList { } public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public diff --git a/patches/server/0023-Optimize-entity-coordinate-key.patch b/patches/server/0023-Optimize-entity-coordinate-key.patch index 8937a6d2..49278d0c 100644 --- a/patches/server/0023-Optimize-entity-coordinate-key.patch +++ b/patches/server/0023-Optimize-entity-coordinate-key.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimize entity coordinate key This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index d02546b18cb689724887b4e85e8d32a18828a4ad..624028022d205b55be4bd668d1015425174eca7e 100644 +index 8240bb085b619f257f8c0a25775e0b15068e440f..5af6b3ce20afa75e1510fb70c238204533a47142 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java @@ -213,7 +213,13 @@ public final class MCUtil { @@ -25,10 +25,10 @@ index d02546b18cb689724887b4e85e8d32a18828a4ad..624028022d205b55be4bd668d1015425 public static long getCoordinateKey(final ChunkPos pair) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 75633a872e15d2367d7962bac97152a26ebd9f28..005b4f012b308edf2016cb92b8b7ca526b628c4b 100644 +index 167ac5d96c8abd67b8dc987560e792837348cae4..ff506cd04cda5b01c0c62bdec3de10adfca9f3c8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -305,7 +305,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -306,7 +306,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public double yo; public double zo; private Vec3 position; diff --git a/patches/server/0032-Reduce-entity-allocations.patch b/patches/server/0032-Reduce-entity-allocations.patch index 3d68879d..e9233108 100644 --- a/patches/server/0032-Reduce-entity-allocations.patch +++ b/patches/server/0032-Reduce-entity-allocations.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Reduce entity allocations This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 005b4f012b308edf2016cb92b8b7ca526b628c4b..659d0c973b819b93010825ce2def5db4b12d3dff 100644 +index ff506cd04cda5b01c0c62bdec3de10adfca9f3c8..60672f00b8355815de47f58753a4a184288fc728 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -434,6 +434,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -435,6 +435,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return this.originWorld; } // Paper end diff --git a/patches/server/0035-Remove-streams-and-iterators-from-range-check.patch b/patches/server/0035-Remove-streams-and-iterators-from-range-check.patch index b541a8e0..27d94984 100644 --- a/patches/server/0035-Remove-streams-and-iterators-from-range-check.patch +++ b/patches/server/0035-Remove-streams-and-iterators-from-range-check.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Remove streams and iterators from range check This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e809ef00c17d2a55877799c595c6732f74f1680e..ed2e0774d5b14d4926b3214ebf3795d7555327e3 100644 +index 77cb44dd37229045981b687d5c5bd08e43e82294..255c6508d7b507dc9b23c5910f872c2fa97c7c50 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1314,19 +1314,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1448,19 +1448,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); } diff --git a/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch b/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch index 738c3ef1..836996bf 100644 --- a/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch +++ b/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Reduce entity fluid lookups if no fluids This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 659d0c973b819b93010825ce2def5db4b12d3dff..0b7639ef2540f8af2e5b5fc47df24d2e5ffd0846 100644 +index 60672f00b8355815de47f58753a4a184288fc728..759ee77818ea2916ea8c217be8ed26338f662861 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4304,16 +4304,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4316,16 +4316,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -35,7 +35,7 @@ index 659d0c973b819b93010825ce2def5db4b12d3dff..0b7639ef2540f8af2e5b5fc47df24d2e double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4321,38 +4323,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4333,38 +4335,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0042-BBOR-Protocol.patch b/patches/server/0042-BBOR-Protocol.patch index dbf2659e..41b2d03e 100644 --- a/patches/server/0042-BBOR-Protocol.patch +++ b/patches/server/0042-BBOR-Protocol.patch @@ -5,10 +5,10 @@ Subject: [PATCH] BBOR Protocol diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 59b2124ea6d9b489488ace4fcd4529420a8eca99..7f835ccc97daa0d5ebfebc0a5781233ac389a7ef 100644 +index eebe80d8374b42d03b4658a0a04deafb96b06ace..fe9110a92b690c2d3d8da171216129da20462984 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1593,6 +1593,7 @@ public abstract class PlayerList { +@@ -1614,6 +1614,7 @@ public abstract class PlayerList { entityplayer.getRecipeBook().sendInitialRecipeBook(entityplayer); } @@ -17,7 +17,7 @@ index 59b2124ea6d9b489488ace4fcd4529420a8eca99..7f835ccc97daa0d5ebfebc0a5781233a public boolean isAllowCheatsForAllPlayers() { 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 17696dfdb3ad1d8c63ff1d1fa0c5eb6bf2e2ae42..bb47170917ed8918a9781b71ae60fd74e2d1c586 100644 +index 9438e62577aa02423b1dd0fc95696dab097b8429..685c619a48e9787d927d812642f4c51cef1664e4 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -932,6 +932,11 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0051-MC-Technical-Survival-Mode.patch b/patches/server/0051-MC-Technical-Survival-Mode.patch index 6a4beca7..d5693e78 100644 --- a/patches/server/0051-MC-Technical-Survival-Mode.patch +++ b/patches/server/0051-MC-Technical-Survival-Mode.patch @@ -31,7 +31,7 @@ index 9e8b8de907654050c51400286af971caca87d6bd..e39ecb625f13ebc37cb4c7e0da7077e0 throw new RuntimeException("Could not reload paper configuration files", ex); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 35a70203a565ae50ed6a31ec70e78e7b2eaacccc..8117083ccf90e00a183b8cef84069e3bb208dfec 100644 +index 6e806b20ee280ea322992f757c3c66ab403bb5dc..790ffade00fa3a994490e652751faa6fa03a5ed2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2694,7 +2694,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -69,19 +69,6 @@ index 4ce3e69970dd9eb251d0538a2d233ca30e9e5e47..25a01ca42b8f2f0590965edbeca9c1f9 if (!this.isNoGravity()) { this.setDeltaMovement(this.getDeltaMovement().add(0.0D, -0.04D, 0.0D)); } -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 f555e29c7f9ea4ddb243a018bdc93d2bf1950c3c..2ef2f27fd899c434c1c35b6fb354f47c7199ad23 100644 ---- a/src/main/java/net/minecraft/world/entity/npc/Villager.java -+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -1018,7 +1018,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler - public void onReputationEventFrom(ReputationEventType interaction, Entity entity) { - if (interaction == ReputationEventType.ZOMBIE_VILLAGER_CURED) { - // Paper start - fix MC-181190 -- if (this.level().paperConfig().fixes.fixCuringZombieVillagerDiscountExploit) { -+ if (!top.leavesmc.leaves.LeavesConfig.mcTechnicalMode && this.level().paperConfig().fixes.fixCuringZombieVillagerDiscountExploit) { // Leaves - mc technical survival mode - final GossipContainer.EntityGossips playerReputation = this.getGossips().gossips.get(entity.getUUID()); - if (playerReputation != null) { - playerReputation.remove(GossipType.MAJOR_POSITIVE); diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java index a90317100d32974e481e14476843f66997a2cf3a..34029cdf229ef8f78ddb0c8a2e5e0542628848d8 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java diff --git a/patches/server/0052-Return-nether-portal-fix.patch b/patches/server/0052-Return-nether-portal-fix.patch index bb02c050..08725a42 100644 --- a/patches/server/0052-Return-nether-portal-fix.patch +++ b/patches/server/0052-Return-nether-portal-fix.patch @@ -74,7 +74,7 @@ index 97332f315bf0a4bca0d6526f8953bf34757b6321..fe5ef64df18c38cfb7912c7415ece9cc return optional; } else { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9897936868861b69f1120ab697ef81ffa625b83e..7269e9b7fff511903fe652e6579ec0ff4740a125 100644 +index fe9110a92b690c2d3d8da171216129da20462984..70c2ee8b98afdf8006273511f70dbd8ad81b473a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -24,6 +24,8 @@ import java.util.UUID; @@ -95,7 +95,7 @@ index 9897936868861b69f1120ab697ef81ffa625b83e..7269e9b7fff511903fe652e6579ec0ff public abstract class PlayerList { public static final File USERBANLIST_FILE = new File("banned-players.json"); -@@ -982,6 +986,24 @@ public abstract class PlayerList { +@@ -1003,6 +1007,24 @@ public abstract class PlayerList { if (fromWorld != location.getWorld()) { PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld); this.server.server.getPluginManager().callEvent(event); @@ -121,7 +121,7 @@ index 9897936868861b69f1120ab697ef81ffa625b83e..7269e9b7fff511903fe652e6579ec0ff // Save player file again if they were disconnected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9e018eea8725a3d922d94a66510fceb71014c9ad..9032a4c498c5081dba216077e502fe1798c71dfc 100644 +index 2f79822f10055ba9927716bbf5d46df3aa0046ef..f5695c4dd6f5192e8b11b87e22c41c40d4261f46 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -241,7 +241,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0054-Xaero-Map-Protocol.patch b/patches/server/0054-Xaero-Map-Protocol.patch index 018471ba..687a5ad8 100644 --- a/patches/server/0054-Xaero-Map-Protocol.patch +++ b/patches/server/0054-Xaero-Map-Protocol.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Xaero Map Protocol diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9cf607051794f673102dbb4dc887aafabb6e291f..16ce16049f6ee6d989606495d022af6ff893a695 100644 +index 70c2ee8b98afdf8006273511f70dbd8ad81b473a..683691fa61d02be951a0f759b1983ce9c5cd3863 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1298,6 +1298,7 @@ public abstract class PlayerList { +@@ -1319,6 +1319,7 @@ public abstract class PlayerList { player.connection.send(new ClientboundInitializeBorderPacket(worldborder)); player.connection.send(new ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(world.getSharedSpawnPos(), world.getSharedSpawnAngle())); diff --git a/patches/server/0056-Use-vanilla-random-config.patch b/patches/server/0056-Use-vanilla-random-config.patch index 07be00a1..344820db 100644 --- a/patches/server/0056-Use-vanilla-random-config.patch +++ b/patches/server/0056-Use-vanilla-random-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use vanilla random config diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0b7639ef2540f8af2e5b5fc47df24d2e5ffd0846..4b1a08fa9a9d34c40b4fee601495528ea1c5095d 100644 +index 759ee77818ea2916ea8c217be8ed26338f662861..4073424b4a2eb2f48540ee196598bac423695ad6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -510,7 +510,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -543,7 +543,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; diff --git a/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch b/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch index d4bfcb41..b512375c 100644 --- a/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch +++ b/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Elytra aeronautics no chunk load diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ed2e0774d5b14d4926b3214ebf3795d7555327e3..0434bf9b8d3b064c8426d51f9969686a188f0eaa 100644 +index 255c6508d7b507dc9b23c5910f872c2fa97c7c50..55cdb8e23b91ad68ad128c664ddad5b2cd734423 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -133,7 +133,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - // Paper start - distance maps - private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>(); +@@ -150,7 +150,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + } + // Paper end - use distance map to optimise tracker - void addPlayerToDistanceMaps(ServerPlayer player) { + public void addPlayerToDistanceMaps(ServerPlayer player) { // Leaves - package -> public int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX()); int chunkZ = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated -@@ -141,7 +141,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - this.level.playerChunkLoader.addPlayer(player); // Paper - replace chunk loader +@@ -166,7 +166,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + // Paper end - use distance map to optimise entity tracker } - void removePlayerFromDistanceMaps(ServerPlayer player) { @@ -26,7 +26,7 @@ index ed2e0774d5b14d4926b3214ebf3795d7555327e3..0434bf9b8d3b064c8426d51f9969686a int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX()); int chunkZ = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated -@@ -897,7 +897,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -977,7 +977,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } private boolean skipPlayer(ServerPlayer player) { @@ -36,16 +36,16 @@ index ed2e0774d5b14d4926b3214ebf3795d7555327e3..0434bf9b8d3b064c8426d51f9969686a } void updatePlayerStatus(ServerPlayer player, boolean added) { -@@ -934,6 +935,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1014,6 +1015,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { + if (player.elytraAeronauticsNoChunk) return; // Leaves - no chunk - ObjectIterator objectiterator = this.entityMap.values().iterator(); + // Paper - delay this logic for the entity tracker tick, no need to duplicate it - while (objectiterator.hasNext()) { + SectionPos sectionposition = player.getLastSectionPos(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d6c9348d7e8989ebca5f9fe35915d9a5910162aa..6d03da4fee0e53ffffe12a36efe0e095498eac6f 100644 +index 13185dfaf91b1029f4091d4754b03b88fcc00f22..f311111b91543288588be584dbbd7bb833df0eca 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -540,7 +540,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -58,10 +58,10 @@ index d6c9348d7e8989ebca5f9fe35915d9a5910162aa..6d03da4fee0e53ffffe12a36efe0e095 !worldserver.areChunksLoadedForMove(entity.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(entity.position()))) )) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4b1a08fa9a9d34c40b4fee601495528ea1c5095d..46dce902751fddc2966cb804e7b0b354e04bfad5 100644 +index 4073424b4a2eb2f48540ee196598bac423695ad6..00cc1bfec7578f2118d38ef275e92a0c01ecdecc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1031,7 +1031,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1064,7 +1064,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return; } } @@ -76,7 +76,7 @@ index 4b1a08fa9a9d34c40b4fee601495528ea1c5095d..46dce902751fddc2966cb804e7b0b354 this.level().getProfiler().push("move"); if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); -@@ -1970,6 +1976,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2003,6 +2009,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.yo = y; this.zo = d4; this.setPos(d3, y, d4); @@ -85,7 +85,7 @@ index 4b1a08fa9a9d34c40b4fee601495528ea1c5095d..46dce902751fddc2966cb804e7b0b354 } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4aa241f2ef7f27e9c9cf5ea3bbb1c4b389ce887c..88e0901b7e46e59569555d8ce00f48817073ee35 100644 +index 78e39714759ef2fc8495d1c9de9e11b5bb364002..608bc9b00661dcacc9ac87adc364c2acd9e74450 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -188,6 +188,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0093-Reduce-array-allocations.patch b/patches/server/0093-Reduce-array-allocations.patch index 0bb99f3e..eaed8443 100644 --- a/patches/server/0093-Reduce-array-allocations.patch +++ b/patches/server/0093-Reduce-array-allocations.patch @@ -257,7 +257,7 @@ index aa6bf9361144679821adf1b090abcef34115d1fc..f836228eb76b53944c127d2e5b759d9e return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9c290bb9698ba29f04e82edf892d3a189312b2f4..ebfe7088ee04e9bc45b57a29d3767d6997fbfe38 100644 +index f311111b91543288588be584dbbd7bb833df0eca..2f03a0114177a461b7bfb3475687b2f32522e794 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -239,6 +239,7 @@ import org.bukkit.inventory.EquipmentSlot; @@ -284,7 +284,7 @@ index 9c290bb9698ba29f04e82edf892d3a189312b2f4..ebfe7088ee04e9bc45b57a29d3767d69 return; } // Paper end -@@ -3193,7 +3194,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3199,7 +3200,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -328,7 +328,7 @@ index 1c4f272219e68373eaae93fc5ea9af7d8f3fd6f9..e6834c3388cba6d014871efb3ab2b953 final String s; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 10892eb3b1b0ce8ea197e2232f44bc29b73c8902..9af2f9ad9bdf483b4763c8b2d4573b04532d95d1 100644 +index 683691fa61d02be951a0f759b1983ce9c5cd3863..1bc21038e33faa9c1f24acedabeb84741e31de05 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -123,6 +123,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; @@ -339,7 +339,7 @@ index 10892eb3b1b0ce8ea197e2232f44bc29b73c8902..9af2f9ad9bdf483b4763c8b2d4573b04 import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix public abstract class PlayerList { -@@ -715,7 +716,7 @@ public abstract class PlayerList { +@@ -736,7 +737,7 @@ public abstract class PlayerList { while (iterator.hasNext()) { entityplayer = (ServerPlayer) iterator.next(); this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved @@ -398,7 +398,7 @@ index 2e324276ea4cd9e528c6a3f9a9ba394b378fe075..8d949983a30f27a60982f6b406151408 private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) { this.type = type; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9032a4c498c5081dba216077e502fe1798c71dfc..edc782045b002de631fdc432f68848b1f85dd363 100644 +index f5695c4dd6f5192e8b11b87e22c41c40d4261f46..694c077ad1b0e748bc37520051da165250002c2b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3138,7 +3138,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -411,10 +411,10 @@ index 9032a4c498c5081dba216077e502fe1798c71dfc..edc782045b002de631fdc432f68848b1 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 48889d29c94dc09030d5c9825d3b0a637e660b0e..c7475a368efd82d0b1e407c9addc0aeef630189a 100644 +index 115c25ec168145ae78797eeed830de66aa4546b1..c233c1e9f3162e6835d02ec1f3ef8267f8f1d7b2 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1083,7 +1083,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1081,7 +1081,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) { super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops); @@ -423,7 +423,7 @@ index 48889d29c94dc09030d5c9825d3b0a637e660b0e..c7475a368efd82d0b1e407c9addc0aee int j = aenumitemslot.length; for (int k = 0; k < j; ++k) { -@@ -1145,7 +1145,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1143,7 +1143,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } boolean flag = true; @@ -432,7 +432,7 @@ index 48889d29c94dc09030d5c9825d3b0a637e660b0e..c7475a368efd82d0b1e407c9addc0aee int j = aenumitemslot.length; for (int k = 0; k < j; ++k) { -@@ -1232,7 +1232,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1230,7 +1230,7 @@ public abstract class Mob extends LivingEntity implements Targeting { float f = localDifficulty.getSpecialMultiplier(); this.enchantSpawnedWeapon(random, f); @@ -441,7 +441,7 @@ index 48889d29c94dc09030d5c9825d3b0a637e660b0e..c7475a368efd82d0b1e407c9addc0aee int i = aenumitemslot.length; for (int j = 0; j < i; ++j) { -@@ -1451,7 +1451,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1449,7 +1449,7 @@ public abstract class Mob extends LivingEntity implements Targeting { t0.setInvulnerable(this.isInvulnerable()); if (flag) { t0.setCanPickUpLoot(this.canPickUpLoot()); diff --git a/patches/server/0094-Optimize-sun-burn-tick.patch b/patches/server/0094-Optimize-sun-burn-tick.patch index 12249574..dc22e273 100644 --- a/patches/server/0094-Optimize-sun-burn-tick.patch +++ b/patches/server/0094-Optimize-sun-burn-tick.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize sun burn tick This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 46dce902751fddc2966cb804e7b0b354e04bfad5..d856ba25568729520c33f24dbfb4b9a87dc54356 100644 +index 00cc1bfec7578f2118d38ef275e92a0c01ecdecc..4fdacff42533daa0cd4eabc25b5f30cbc9bbbfb4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1956,8 +1956,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1989,8 +1989,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { /** @deprecated */ @Deprecated public float getLightLevelDependentMagicValue() { @@ -34,10 +34,10 @@ index 46dce902751fddc2966cb804e7b0b354e04bfad5..d856ba25568729520c33f24dbfb4b9a8 public void absMoveTo(double x, double y, double z, float yaw, float pitch) { this.absMoveTo(x, y, z); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index c7475a368efd82d0b1e407c9addc0aeef630189a..d7288f48f17709f731bae583d729c57ca06b05d0 100644 +index c233c1e9f3162e6835d02ec1f3ef8267f8f1d7b2..7a4231892fb43a10193e2881f3715b32ac1c382f 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1713,15 +1713,41 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1711,15 +1711,41 @@ public abstract class Mob extends LivingEntity implements Targeting { } diff --git a/patches/server/0096-Use-optimized-collection.patch b/patches/server/0096-Use-optimized-collection.patch index fe8977ad..5df91c30 100644 --- a/patches/server/0096-Use-optimized-collection.patch +++ b/patches/server/0096-Use-optimized-collection.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use optimized collection This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 0434bf9b8d3b064c8426d51f9969686a188f0eaa..0ec07834599f1e44784c6cead77c031a3f4251e1 100644 +index 55cdb8e23b91ad68ad128c664ddad5b2cd734423..f84b3716657784ba8448b91dbebef4a12422a5d1 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -199,7 +199,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -237,7 +237,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper - rewrite chunk system this.tickingGenerated = new AtomicInteger(); this.playerMap = new PlayerMap(); diff --git a/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch index bd68d448..fd4b4d9c 100644 --- a/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Skip entity move if movement is zero This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d856ba25568729520c33f24dbfb4b9a87dc54356..bc1cdee13f4ee72c62fc6e48720d6ae18d57a340 100644 +index 4fdacff42533daa0cd4eabc25b5f30cbc9bbbfb4..f0ccd174fb7fa56ab3cd387d6680e8c5e5ecb5c3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -313,6 +313,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -314,6 +314,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public float yRotO; public float xRotO; private AABB bb; @@ -17,7 +17,7 @@ index d856ba25568729520c33f24dbfb4b9a87dc54356..bc1cdee13f4ee72c62fc6e48720d6ae1 public boolean onGround; public boolean horizontalCollision; public boolean verticalCollision; -@@ -1009,6 +1010,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1042,6 +1043,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // Paper end - detailed watchdog information public void move(MoverType movementType, Vec3 movement) { @@ -31,7 +31,7 @@ index d856ba25568729520c33f24dbfb4b9a87dc54356..bc1cdee13f4ee72c62fc6e48720d6ae1 // Paper start - detailed watchdog information io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); synchronized (this.posLock) { -@@ -4009,6 +4017,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4021,6 +4029,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch b/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch index 8ec3f1e4..c19ffa52 100644 --- a/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch +++ b/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Skip negligible planar movement multiplication This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bc1cdee13f4ee72c62fc6e48720d6ae18d57a340..bd3c7cac3ae5088dcb8227f2f20358f7cf31bf0c 100644 +index f0ccd174fb7fa56ab3cd387d6680e8c5e5ecb5c3..c1f0c485af4198ba16c606bcfa8507982776ec55 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1180,9 +1180,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1213,9 +1213,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.tryCheckInsideBlocks(); diff --git a/patches/server/0104-Fix-villagers-dont-release-memory.patch b/patches/server/0104-Fix-villagers-dont-release-memory.patch index bccfe7d8..2888c790 100644 --- a/patches/server/0104-Fix-villagers-dont-release-memory.patch +++ b/patches/server/0104-Fix-villagers-dont-release-memory.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix villagers dont release memory 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 2ef2f27fd899c434c1c35b6fb354f47c7199ad23..452caefc36140937f31be7e67c2580970e64626c 100644 +index cbe2a37f74f4fb2abd0b3297699e54335aaed64f..212c8a00eae9ef255e70790c26e50c44f9d5ff49 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -1085,4 +1085,20 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -1076,4 +1076,20 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return optional.isPresent() ? worldTime - (Long) optional.get() < 24000L : false; } diff --git a/patches/server/0109-Force-peaceful-mode-switch.patch b/patches/server/0109-Force-peaceful-mode-switch.patch index 8bfb9654..eab3bc60 100644 --- a/patches/server/0109-Force-peaceful-mode-switch.patch +++ b/patches/server/0109-Force-peaceful-mode-switch.patch @@ -100,10 +100,10 @@ index 7eec9dc8237ff04c53b573c3cc87e6cdbfdda7ed..2aafb872578d266f2826e5bddebc9b4a boolean spawnThisTick = true; int limit = enumcreaturetype.getMaxInstancesPerChunk(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 5e350fa39f47d54f6048ea89c1317759f122b8ae..79ae01e4b3f93e577896cae83d0f0cedfc531747 100644 +index 746f88db6b78b3c8ec372bfaacb26ec98f3b1163..8b290c8e0462ae1621dc71bc11cbd133f8c712ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2311,6 +2311,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2331,6 +2331,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { return CraftFeatureFlag.getFromNMS(this.getHandle().enabledFeatures()).stream().map(FeatureFlag.class::cast).collect(Collectors.toUnmodifiableSet()); } diff --git a/patches/server/0111-Replay-Mod-API.patch b/patches/server/0111-Replay-Mod-API.patch index fdb4c599..b27b4c36 100644 --- a/patches/server/0111-Replay-Mod-API.patch +++ b/patches/server/0111-Replay-Mod-API.patch @@ -107,7 +107,7 @@ index fbd602b5219c0eeefea36dbaca7aae10d483a152..e05620a5fa75e22001511fff205b718b } // Leaves end - bot can't get advancement diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ebfe7088ee04e9bc45b57a29d3767d6997fbfe38..010f7c8ee2ea275b8dd9e7cf6573df1a8c9aa39a 100644 +index 2f03a0114177a461b7bfb3475687b2f32522e794..498a16efd36deb71d0419104cc9946c88824b8cb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -300,7 +300,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -120,7 +120,7 @@ index ebfe7088ee04e9bc45b57a29d3767d6997fbfe38..010f7c8ee2ea275b8dd9e7cf6573df1a } else { connection.setListener(this); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9af2f9ad9bdf483b4763c8b2d4573b04532d95d1..94fce1ed0343d004609c11f7aea5649adb19546d 100644 +index 1bc21038e33faa9c1f24acedabeb84741e31de05..dc7b69f429cc9b19080fa05c6135175dbe55e4e8 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -125,6 +125,7 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason; @@ -260,7 +260,7 @@ index 9af2f9ad9bdf483b4763c8b2d4573b04532d95d1..94fce1ed0343d004609c11f7aea5649a public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie clientData) { player.isRealPlayer = true; // Paper player.loginTime = System.currentTimeMillis(); // Paper -@@ -308,6 +424,7 @@ public abstract class PlayerList { +@@ -329,6 +445,7 @@ public abstract class PlayerList { // entityplayer.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(this.players)); // CraftBukkit - replaced with loop below this.players.add(player); @@ -268,7 +268,7 @@ index 9af2f9ad9bdf483b4763c8b2d4573b04532d95d1..94fce1ed0343d004609c11f7aea5649a this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player); // Spigot this.playersByUUID.put(player.getUUID(), player); // this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer))); // CraftBukkit - replaced with loop below -@@ -379,6 +496,12 @@ public abstract class PlayerList { +@@ -400,6 +517,12 @@ public abstract class PlayerList { continue; } @@ -281,7 +281,7 @@ index 9af2f9ad9bdf483b4763c8b2d4573b04532d95d1..94fce1ed0343d004609c11f7aea5649a onlinePlayers.add(entityplayer1); // Paper - use single player info update packet } // Paper start - use single player info update packet -@@ -594,6 +717,43 @@ public abstract class PlayerList { +@@ -615,6 +738,43 @@ public abstract class PlayerList { } @@ -325,7 +325,7 @@ index 9af2f9ad9bdf483b4763c8b2d4573b04532d95d1..94fce1ed0343d004609c11f7aea5649a public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer) { // CraftBukkit - return string // Paper - return Component // Paper start return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); -@@ -662,6 +822,7 @@ public abstract class PlayerList { +@@ -683,6 +843,7 @@ public abstract class PlayerList { entityplayer.retireScheduler(); // Paper - Folia schedulers entityplayer.getAdvancements().stopListening(); this.players.remove(entityplayer);