diff --git a/gradle.properties b/gradle.properties index cb64151d..392a5e69 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,5 +4,5 @@ version=1.20.1-R0.1-SNAPSHOT mcVersion=1.20.1 packageVersion=1_20_R1 org.gradle.jvmargs=-Xmx2G -paperRef=eb8f2bb2a183746381738b5ccf08d209efa542b8 +paperRef=a751001ed1649860794a57ab818a5e51793aafe6 preVersion=false diff --git a/patches/api/0001-Leaves-Server-Config.patch b/patches/api/0001-Leaves-Server-Config.patch index 15505740..a485db8c 100644 --- a/patches/api/0001-Leaves-Server-Config.patch +++ b/patches/api/0001-Leaves-Server-Config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Server Config diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 68206cf0178c26c0f528a1e14a5fb4e9ad410369..9d4c99ed38f3dc35ba1cf744ef12c9b2c28c6116 100644 +index 8d8fe04e6b09d2a5b1cc05002073df5c58cdcb96..09fa5d4f8cbaf77150459f78d08004f85dd3cdcc 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2080,6 +2080,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2120,6 +2120,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi throw new UnsupportedOperationException("Not supported yet."); } // Paper end diff --git a/patches/api/0003-Add-fakeplayer-api.patch b/patches/api/0003-Add-fakeplayer-api.patch index dcda8251..239ed986 100644 --- a/patches/api/0003-Add-fakeplayer-api.patch +++ b/patches/api/0003-Add-fakeplayer-api.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add fakeplayer api diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index f380a518bc444bfdfbbedf38805c7684e53a5629..7203c39190772d4d8159e62367322fe4e3cae8a9 100644 +index f78b5fd3c3347d28da58777bff88903d2eb140f6..63d9d30a11eecb872fe64f04ef7fe5d16f0afa3e 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -57,6 +57,7 @@ import org.jetbrains.annotations.Contract; @@ -16,7 +16,7 @@ index f380a518bc444bfdfbbedf38805c7684e53a5629..7203c39190772d4d8159e62367322fe4 /** * Represents the Bukkit core, for version and Server singleton handling -@@ -2710,6 +2711,17 @@ public final class Bukkit { +@@ -2752,6 +2753,17 @@ public final class Bukkit { } // Paper end - Folia region threading API @@ -35,7 +35,7 @@ index f380a518bc444bfdfbbedf38805c7684e53a5629..7203c39190772d4d8159e62367322fe4 public static Server.Spigot spigot() { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 9d4c99ed38f3dc35ba1cf744ef12c9b2c28c6116..c952eea7533aeec1c789dbe58673625761b704f6 100644 +index 09fa5d4f8cbaf77150459f78d08004f85dd3cdcc..0b58392263898b4ef7eba8a082cddf74d3c7cd82 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -57,6 +57,7 @@ import org.bukkit.util.CachedServerIcon; @@ -46,7 +46,7 @@ index 9d4c99ed38f3dc35ba1cf744ef12c9b2c28c6116..c952eea7533aeec1c789dbe586736257 /** * Represents a server implementation. -@@ -2372,4 +2373,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2412,4 +2413,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ boolean isOwnedByCurrentRegion(@NotNull Entity entity); // Paper end - Folia region threading API diff --git a/patches/api/0009-Replay-Mod-API.patch b/patches/api/0009-Replay-Mod-API.patch index db2dc497..8688b004 100644 --- a/patches/api/0009-Replay-Mod-API.patch +++ b/patches/api/0009-Replay-Mod-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Replay Mod API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 7203c39190772d4d8159e62367322fe4e3cae8a9..ee35ab3934af19013cfbb1516cc7dffea53d21e7 100644 +index 63d9d30a11eecb872fe64f04ef7fe5d16f0afa3e..d688290ffbeb27a576cdcce1080b439e2c577d7b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -58,6 +58,7 @@ import org.jetbrains.annotations.NotNull; @@ -16,7 +16,7 @@ index 7203c39190772d4d8159e62367322fe4e3cae8a9..ee35ab3934af19013cfbb1516cc7dffe /** * Represents the Bukkit core, for version and Server singleton handling -@@ -2721,6 +2722,11 @@ public final class Bukkit { +@@ -2763,6 +2764,11 @@ public final class Bukkit { return server.getBotManager(); } // Leaves end - Bot API @@ -29,7 +29,7 @@ index 7203c39190772d4d8159e62367322fe4e3cae8a9..ee35ab3934af19013cfbb1516cc7dffe @NotNull public static Server.Spigot spigot() { diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index c952eea7533aeec1c789dbe58673625761b704f6..a88c68c089805dcec131f28c9b3471ba34838b22 100644 +index 0b58392263898b4ef7eba8a082cddf74d3c7cd82..9de03cb5217bd9ac73484e1121768bce7429aac7 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -58,6 +58,7 @@ import org.jetbrains.annotations.Contract; @@ -40,7 +40,7 @@ index c952eea7533aeec1c789dbe58673625761b704f6..a88c68c089805dcec131f28c9b3471ba /** * Represents a server implementation. -@@ -2382,4 +2383,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2422,4 +2423,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull BotManager getBotManager(); // Leaves end - Bot API diff --git a/patches/server/0002-Leaves-Server-Utils.patch b/patches/server/0002-Leaves-Server-Utils.patch index d595c615..799252c9 100644 --- a/patches/server/0002-Leaves-Server-Utils.patch +++ b/patches/server/0002-Leaves-Server-Utils.patch @@ -31,7 +31,7 @@ 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 2edab21bb271405f200de5a19e9c748bb14aba7d..7469c4acb8b5fc47c87ba573232a996f464479e3 100644 +index e8485fb900b25e911a858678a833852731cb2ace..a8013eea506ce6e1e0cd8a1bb2cf80db383e7318 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -417,6 +417,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -39,10 +39,10 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..7469c4acb8b5fc47c87ba573232a996f public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean collidingWithWorldBorder; // Paper + private CompoundTag leavesData = new CompoundTag(); // Leaves - Leaves ex data + public boolean fixedPose = false; // Paper public void setOrigin(@javax.annotation.Nonnull Location location) { - this.origin = location.toVector(); -@@ -2437,6 +2438,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2439,6 +2440,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { nbt.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -50,7 +50,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..7469c4acb8b5fc47c87ba573232a996f return nbt; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2605,6 +2607,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2607,6 +2609,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end @@ -62,7 +62,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..7469c4acb8b5fc47c87ba573232a996f } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); -@@ -4793,4 +4800,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4783,4 +4790,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/0004-Leaves-Server-Config-And-Command.patch b/patches/server/0004-Leaves-Server-Config-And-Command.patch index 3c3c24f9..2fbd694a 100644 --- a/patches/server/0004-Leaves-Server-Config-And-Command.patch +++ b/patches/server/0004-Leaves-Server-Config-And-Command.patch @@ -65,7 +65,7 @@ index f39ab10c5b0b8d86b579a5b683491204c51db70b..0462f03a5aaa47522451aa7732691597 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5a6d0ea81f63f1fd6c94ff048a471e0f53d69bc3..4302f90f80ce8aeef4107ce63806fe53840f8d0e 100644 +index 51d2c974af4610784e91ca04412bdff80f99dc01..92361a187454a7e62a35cff657dcf748b6d34613 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1057,6 +1057,7 @@ public final class CraftServer implements Server { @@ -92,7 +92,7 @@ index 5a6d0ea81f63f1fd6c94ff048a471e0f53d69bc3..4302f90f80ce8aeef4107ce63806fe53 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2901,6 +2904,14 @@ public final class CraftServer implements Server { +@@ -2931,6 +2934,14 @@ public final class CraftServer implements Server { { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } diff --git a/patches/server/0005-Fix-gravity-block-duper.patch b/patches/server/0005-Fix-gravity-block-duper.patch index 956f110f..3604b8f5 100644 --- a/patches/server/0005-Fix-gravity-block-duper.patch +++ b/patches/server/0005-Fix-gravity-block-duper.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix gravity block duper diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d92156a7ad34f7c8e9d43ea5472d33a5e1cd9fdd..1d76aae6657bb45b540644f7967f04cef24c9992 100644 +index a8013eea506ce6e1e0cd8a1bb2cf80db383e7318..c702d270720bb3e3d97030d2d6b7d5dfe07fd7c6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -531,36 +531,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -532,36 +532,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this)); } // Paper end - optimise entity tracking @@ -46,7 +46,7 @@ index d92156a7ad34f7c8e9d43ea5472d33a5e1cd9fdd..1d76aae6657bb45b540644f7967f04ce public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -3068,7 +3040,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3070,7 +3042,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.processPortalCooldown(); diff --git a/patches/server/0008-Fakeplayer-support.patch b/patches/server/0008-Fakeplayer-support.patch index c81004ea..5495997a 100644 --- a/patches/server/0008-Fakeplayer-support.patch +++ b/patches/server/0008-Fakeplayer-support.patch @@ -58,7 +58,7 @@ index acc49f66bf34e2507d0ee6fec0a56b11bfc68f46..7fc87841fd72fc9b5bca4fbdffd378c7 AdvancementProgress advancementprogress = this.getOrStartProgress(advancement); boolean flag1 = advancementprogress.isDone(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dc5fda83a66afbfeb7897fc20b4742899d8aca08..9af7a0e1c5eaac6480824ed1d59a6e649b2a03cd 100644 +index 161c40692e8d469fad4169908b9353be0f85d0d8..6cea0829fe243445f318f1622f16f48686e3c398 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -185,6 +185,7 @@ import org.bukkit.event.player.PlayerTeleportEvent; @@ -69,7 +69,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..9af7a0e1c5eaac6480824ed1d59a6e64 // CraftBukkit end public class ServerPlayer extends Player { -@@ -718,15 +719,19 @@ public class ServerPlayer extends Player { +@@ -719,15 +720,19 @@ public class ServerPlayer extends Player { } // Paper start - Configurable container update tick rate @@ -97,7 +97,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..9af7a0e1c5eaac6480824ed1d59a6e64 Entity entity = this.getCamera(); -@@ -742,7 +747,7 @@ public class ServerPlayer extends Player { +@@ -743,7 +748,7 @@ public class ServerPlayer extends Player { } } @@ -106,7 +106,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..9af7a0e1c5eaac6480824ed1d59a6e64 if (this.levitationStartPos != null) { CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime); } -@@ -935,7 +940,7 @@ public class ServerPlayer extends Player { +@@ -936,7 +941,7 @@ public class ServerPlayer extends Player { java.util.List loot = new java.util.ArrayList(this.getInventory().getContainerSize()); boolean keepInventory = this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) || this.isSpectator(); @@ -115,7 +115,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..9af7a0e1c5eaac6480824ed1d59a6e64 for (ItemStack item : this.getInventory().getContents()) { if (!item.isEmpty() && !EnchantmentHelper.hasVanishingCurse(item)) { loot.add(CraftItemStack.asCraftMirror(item)); -@@ -1264,6 +1269,13 @@ public class ServerPlayer extends Player { +@@ -1265,6 +1270,13 @@ public class ServerPlayer extends Player { this.lastSentHealth = -1.0F; this.lastSentFood = -1; @@ -130,7 +130,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..9af7a0e1c5eaac6480824ed1d59a6e64 PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); this.level().getCraftServer().getPluginManager().callEvent(changeEvent); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 640e9bd618dc8286933318744c2064ede1fd9b5f..d0ddf67d544ff7f1f9dfaab88412cfbce91716b9 100644 +index f097ec5b4e3ad6b1a7c464a8cff4f8b2568fcf4f..5ec8999aa305f614b605d7e858d9e817b1830735 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -81,6 +81,7 @@ import net.minecraft.server.ServerScoreboard; @@ -169,7 +169,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..d0ddf67d544ff7f1f9dfaab88412cfbc final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure -@@ -1087,11 +1102,16 @@ public abstract class PlayerList { +@@ -1095,11 +1110,16 @@ public abstract class PlayerList { } public String[] getPlayerNamesArray() { @@ -187,7 +187,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..d0ddf67d544ff7f1f9dfaab88412cfbc return astring; } -@@ -1570,4 +1590,16 @@ public abstract class PlayerList { +@@ -1578,4 +1598,16 @@ public abstract class PlayerList { public boolean isAllowCheatsForAllPlayers() { return this.allowCheatsForAllPlayers; } @@ -205,10 +205,10 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..d0ddf67d544ff7f1f9dfaab88412cfbc + // 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 2cd61ea78c56db382ed3ecdb08daa3e6d61a6cf9..82cf724352396f949ebc60da9146514672b76e45 100644 +index c702d270720bb3e3d97030d2d6b7d5dfe07fd7c6..b531f8ac81f079b7814f796fa10babf24cd3b195 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1415,7 +1415,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1417,7 +1417,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return offsetFactor; } @@ -268,7 +268,7 @@ index 706b354ac9a1a6a4a1e61b2a109180d1dd22bbbd..f13f21dbd50f63a71276837abbcf82e0 FeatureFlagSet featureflagset = player.level().enabledFeatures(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4302f90f80ce8aeef4107ce63806fe53840f8d0e..136168dd1d1aaa8357f1e4b7e4b3bbf1ae705ea8 100644 +index 92361a187454a7e62a35cff657dcf748b6d34613..82194109e10772eafb905c6d3b6c3cc2032331b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -260,6 +260,7 @@ import org.yaml.snakeyaml.constructor.SafeConstructor; @@ -287,7 +287,7 @@ index 4302f90f80ce8aeef4107ce63806fe53840f8d0e..136168dd1d1aaa8357f1e4b7e4b3bbf1 // Paper start - Folia region threading API private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); -@@ -3126,4 +3128,11 @@ public final class CraftServer implements Server { +@@ -3156,4 +3158,11 @@ public final class CraftServer implements Server { } // Paper end @@ -300,7 +300,7 @@ index 4302f90f80ce8aeef4107ce63806fe53840f8d0e..136168dd1d1aaa8357f1e4b7e4b3bbf1 + // Leaves end - Bot API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 6e600f9d81178f4ad10967a1aba802c9ac853d82..9d6b1550302eb552872d91380e79ac28716ebb83 100644 +index 2dbe8b870fd39b4d22e9725912f443757ae70761..8388c2a56cbe531cf5f60a18866c85fad1e23c54 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -194,6 +194,8 @@ import org.bukkit.plugin.Plugin; diff --git a/patches/server/0012-Budding-Amethyst-can-push-by-piston.patch b/patches/server/0012-Budding-Amethyst-can-push-by-piston.patch index d2a3c1a5..4f235a5e 100644 --- a/patches/server/0012-Budding-Amethyst-can-push-by-piston.patch +++ b/patches/server/0012-Budding-Amethyst-can-push-by-piston.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Budding Amethyst can push by piston diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 9522e646529f3d849471931b4b3c0d133e7fcfc5..72cece40c531372954ab07b2fa99ed50dc3ff3cc 100644 +index fdd9c61b7248e92dbcbec91cd6fe4c6310bba237..2af43e50cc84c7b83e69e837ab4fbaa3a51c60a6 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -585,6 +585,12 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -593,6 +593,12 @@ public class Block extends BlockBehaviour implements ItemLike { } // Spigot end diff --git a/patches/server/0016-No-chat-sign.patch b/patches/server/0016-No-chat-sign.patch index 10960706..170430d1 100644 --- a/patches/server/0016-No-chat-sign.patch +++ b/patches/server/0016-No-chat-sign.patch @@ -123,10 +123,10 @@ index 27638ebb110f46f7e3d0255e3078ebb586863a30..9abc92d8c98c1075ebc74e9dc4290b88 protected boolean convertOldUsers() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 80e050603e36134754136a8ee2bd14624f976e91..eb5fc12c50690c59146cc0c9c59682b525620316 100644 +index 3c0651fa5a5db880202c9a3805a6455269c5f16d..434e5e1fd280dc5b1bd29fc2a196ce0b803279f7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2188,10 +2188,27 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2200,10 +2200,27 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void send(Packet packet) { @@ -155,10 +155,10 @@ index 80e050603e36134754136a8ee2bd14624f976e91..eb5fc12c50690c59146cc0c9c59682b5 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 d0ddf67d544ff7f1f9dfaab88412cfbce91716b9..672b60264acfa2b9eea1c5a80731ece535f22940 100644 +index 5ec8999aa305f614b605d7e858d9e817b1830735..1cdf89c196f34b0036e14c3e445e67306cb026a5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1451,7 +1451,7 @@ public abstract class PlayerList { +@@ -1459,7 +1459,7 @@ public abstract class PlayerList { } public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public diff --git a/patches/server/0017-Optimize-mob-spawning.patch b/patches/server/0017-Optimize-mob-spawning.patch index 0509f4cc..9552fe4d 100644 --- a/patches/server/0017-Optimize-mob-spawning.patch +++ b/patches/server/0017-Optimize-mob-spawning.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimize mob spawning This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 307d4fd4b52aa654f859aab34126048b6a127dde..a1cf15fc45111508657efe3a4d7f48bfe27dcd9f 100644 +index 3ac048de85febb5ff005c3e7a53326e3fd4623cc..058149dc78a855f72e43e121badacdd6206e394d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -313,6 +313,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop tag, double speed) { @@ -35,7 +35,7 @@ index 65d7df9a78f3880037b4b2becafee203d6a8833d..e314e572c05a12cfeb90be501d491765 double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4316,38 +4318,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4306,38 +4308,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0043-PCA-sync-protocol.patch b/patches/server/0043-PCA-sync-protocol.patch index 6a3cac69..e7fbb5aa 100644 --- a/patches/server/0043-PCA-sync-protocol.patch +++ b/patches/server/0043-PCA-sync-protocol.patch @@ -6,7 +6,7 @@ Subject: [PATCH] PCA sync protocol This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition) diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3f3e953630bf709b5926a6b6a421bda1ec327d44..dc5f67e6d16eec7bf7bb4bcbf4840e0845d5dc54 100644 +index 434e5e1fd280dc5b1bd29fc2a196ce0b803279f7..2ed3fba5de71bb36187b8a65f65673a4f426cfd0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -247,6 +247,7 @@ import org.bukkit.inventory.CraftingInventory; @@ -17,7 +17,7 @@ index 3f3e953630bf709b5926a6b6a421bda1ec327d44..dc5f67e6d16eec7bf7bb4bcbf4840e08 // CraftBukkit end public class ServerGamePacketListenerImpl implements ServerPlayerConnection, TickablePacketListener, ServerGamePacketListener { -@@ -3623,6 +3624,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3635,6 +3636,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } } else { @@ -35,7 +35,7 @@ index 3f3e953630bf709b5926a6b6a421bda1ec327d44..dc5f67e6d16eec7bf7bb4bcbf4840e08 byte[] data = new byte[packet.data.readableBytes()]; packet.data.readBytes(data); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 672b60264acfa2b9eea1c5a80731ece535f22940..9559bb5fb3ce8758686b337a13d9ccff4b7dfc35 100644 +index 1cdf89c196f34b0036e14c3e445e67306cb026a5..2fa9e5e6d513b47e613a7b8f0c9caf463fec2a40 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -356,6 +356,7 @@ public abstract class PlayerList { @@ -47,10 +47,10 @@ index 672b60264acfa2b9eea1c5a80731ece535f22940..9559bb5fb3ce8758686b337a13d9ccff final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index 9b35a50eb99551f28d45fd5114e0401b4c54646e..21aa401966c13677826697f3e4ee9b4cf1b9d963 100644 +index 49d7109b6ca63c8073db777549a65b2fcb70967e..b06ff2c26a562ff0afdd85c222da4e6fe417bfdc 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -@@ -379,6 +379,11 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, +@@ -371,6 +371,11 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @Override public void containerChanged(Container sender) { @@ -343,7 +343,7 @@ index b7686fd63b7c5d88c3a12ec4ee9bc01a17f997e0..25a9c38c60d183bb65b14f4d7550ab98 public int[] getSlotsForFace(Direction side) { return ShulkerBoxBlockEntity.SLOTS; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 136168dd1d1aaa8357f1e4b7e4b3bbf1ae705ea8..b74b3a257eeb877468498e5d2cba8ad6c5381548 100644 +index 82194109e10772eafb905c6d3b6c3cc2032331b9..601ceba710e9230fabe1846926025fb1c87c351b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -468,6 +468,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0044-BBOR-Protocol.patch b/patches/server/0044-BBOR-Protocol.patch index 9f491dc8..bdc56df2 100644 --- a/patches/server/0044-BBOR-Protocol.patch +++ b/patches/server/0044-BBOR-Protocol.patch @@ -18,10 +18,10 @@ index 64149614643b77792fec42793fa0af0f3189c5b8..5bdfe75075118c6a2347bc6c9764be43 for (int i = 0; i < this.tickables.size(); ++i) { ((Runnable) this.tickables.get(i)).run(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dc5f67e6d16eec7bf7bb4bcbf4840e0845d5dc54..428bfc3c59aa32ab09c6508e7c50de005dbee1ea 100644 +index 2ed3fba5de71bb36187b8a65f65673a4f426cfd0..4004b3d068b97efa835798b05aa424d08b8e3229 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3629,6 +3629,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3641,6 +3641,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (top.leavesmc.leaves.LeavesConfig.pcaSyncProtocol && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.PcaSyncProtocol.PROTOCOL_ID)) { top.leavesmc.leaves.protocol.PcaSyncProtocol.handlePacket(server, player, packet); } @@ -32,7 +32,7 @@ index dc5f67e6d16eec7bf7bb4bcbf4840e0845d5dc54..428bfc3c59aa32ab09c6508e7c50de00 ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9559bb5fb3ce8758686b337a13d9ccff4b7dfc35..1bd1f5f712ab65829d07f7136041b1b01cd94b4a 100644 +index 2fa9e5e6d513b47e613a7b8f0c9caf463fec2a40..0e7d232fc61fac147df01f17fa30102f35a22435 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -357,6 +357,7 @@ public abstract class PlayerList { @@ -43,7 +43,7 @@ index 9559bb5fb3ce8758686b337a13d9ccff4b7dfc35..1bd1f5f712ab65829d07f7136041b1b0 final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); -@@ -600,6 +601,7 @@ public abstract class PlayerList { +@@ -608,6 +609,7 @@ public abstract class PlayerList { 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() : PaperAdventure.asAdventure(entityplayer.getDisplayName()))); } public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { @@ -51,7 +51,7 @@ index 9559bb5fb3ce8758686b337a13d9ccff4b7dfc35..1bd1f5f712ab65829d07f7136041b1b0 // Paper end ServerLevel worldserver = entityplayer.serverLevel(); -@@ -1585,7 +1587,7 @@ public abstract class PlayerList { +@@ -1593,7 +1595,7 @@ public abstract class PlayerList { entityplayer.connection.send(packetplayoutrecipeupdate); entityplayer.getRecipeBook().sendInitialRecipeBook(entityplayer); } @@ -77,7 +77,7 @@ index cc224af0139a6e3adefd22cbfa0cd519735b7191..2c3ca05644bc97d505e8ca92e7a5f486 public Level getLevel() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b74b3a257eeb877468498e5d2cba8ad6c5381548..11d44bdb1f9be5f681e1e8e892fd54e5e9c78e6c 100644 +index 601ceba710e9230fabe1846926025fb1c87c351b..8160fc590eeb6b13ef73f928dea2f5de20e16798 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1068,6 +1068,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0047-Jade-Protocol.patch b/patches/server/0047-Jade-Protocol.patch index 2c5670d5..8394bbef 100644 --- a/patches/server/0047-Jade-Protocol.patch +++ b/patches/server/0047-Jade-Protocol.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Jade Protocol This patch is Powered by Jade(https://github.com/Snownee/Jade) diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 428bfc3c59aa32ab09c6508e7c50de005dbee1ea..dac97d0c32a8801e6dfddfe47b2c9de4ed9f6ae6 100644 +index 4004b3d068b97efa835798b05aa424d08b8e3229..bb0e97bd0f4332a2da1b9f077d61b6f81fbeaaad 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3632,6 +3632,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3644,6 +3644,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (top.leavesmc.leaves.LeavesConfig.bborProtocol && packet.identifier.equals(top.leavesmc.leaves.protocol.BBORProtocol.SUBSCRIBE)) { top.leavesmc.leaves.protocol.BBORProtocol.onPlayerSubscribed(player); } @@ -20,7 +20,7 @@ index 428bfc3c59aa32ab09c6508e7c50de005dbee1ea..dac97d0c32a8801e6dfddfe47b2c9de4 ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1bd1f5f712ab65829d07f7136041b1b01cd94b4a..be4adfe5450612692bfb56b8b80e40e181cf9175 100644 +index 0e7d232fc61fac147df01f17fa30102f35a22435..a654e000b7f9b62b8bbf57874d6d383f71ff3f82 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { @@ -45,7 +45,7 @@ index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..fe8c9b7e7956837829b4fe3eb449b2c0 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 11d44bdb1f9be5f681e1e8e892fd54e5e9c78e6c..94378e73b4da268b46f2918c61ad700ac14fe951 100644 +index 8160fc590eeb6b13ef73f928dea2f5de20e16798..3417c4184f7a9516c3910d4ccf8f139ba96e3224 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -469,6 +469,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0049-Player-operation-limiter.patch b/patches/server/0049-Player-operation-limiter.patch index eba9d6d7..ccf8a30a 100644 --- a/patches/server/0049-Player-operation-limiter.patch +++ b/patches/server/0049-Player-operation-limiter.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Player operation limiter This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 40f6377b3aecb5217d5882bfa644475797a004c2..16b740f54e8343e06d2349389068e3c7a0714da0 100644 +index 6cea0829fe243445f318f1622f16f48686e3c398..5f23b11cf9ad01d1e44b70997726885789cf7c49 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -278,6 +278,10 @@ public class ServerPlayer extends Player { +@@ -279,6 +279,10 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event @@ -20,7 +20,7 @@ index 40f6377b3aecb5217d5882bfa644475797a004c2..16b740f54e8343e06d2349389068e3c7 private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; -@@ -711,6 +715,7 @@ public class ServerPlayer extends Player { +@@ -712,6 +716,7 @@ public class ServerPlayer extends Player { this.joining = false; } // CraftBukkit end @@ -28,7 +28,7 @@ index 40f6377b3aecb5217d5882bfa644475797a004c2..16b740f54e8343e06d2349389068e3c7 this.gameMode.tick(); this.wardenSpawnTracker.tick(); --this.spawnInvulnerableTime; -@@ -2660,5 +2665,32 @@ public class ServerPlayer extends Player { +@@ -2661,5 +2666,32 @@ public class ServerPlayer extends Player { public CraftPlayer getBukkitEntity() { return (CraftPlayer) super.getBukkitEntity(); } @@ -62,7 +62,7 @@ index 40f6377b3aecb5217d5882bfa644475797a004c2..16b740f54e8343e06d2349389068e3c7 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 34ecfb89372f459117db99d57a7edd6f681bbe8a..a756bdbb7d40ea9d1d3f5ed7d9475e8c5ebbe529 100644 +index 618ab9a2903f6d4139acd4aaa2e6db0a26e88ba9..960a2c5735d3ddb05673f8aba43268ad16bc6df8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -44,6 +44,7 @@ import org.bukkit.event.Event; @@ -94,7 +94,7 @@ index 34ecfb89372f459117db99d57a7edd6f681bbe8a..a756bdbb7d40ea9d1d3f5ed7d9475e8c this.debugLogging(pos, true, sequence, reason); } else { diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index 1015b3c5f6969709bb8ebfbd66eb9cede444385c..437ed8d4cba5e3393ac6370f6b8e364e4b7d9042 100644 +index 2007cd935d7879ae0234f875a0c00dd9727bdc4b..5976a25837bdc6571c9523a6ccfed919433e45f3 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -32,9 +32,12 @@ import net.minecraft.world.level.block.state.StateDefinition; diff --git a/patches/server/0051-Stackable-ShulkerBoxes.patch b/patches/server/0051-Stackable-ShulkerBoxes.patch index f8ceb173..7aef69ad 100644 --- a/patches/server/0051-Stackable-ShulkerBoxes.patch +++ b/patches/server/0051-Stackable-ShulkerBoxes.patch @@ -96,7 +96,7 @@ index 52196431a6538872755344859a0454a0e50c3b6e..46d51b33cf68eaf759b437862778006e ItemStack itemstack1 = other.getItem(); diff --git a/src/main/java/net/minecraft/world/entity/player/Inventory.java b/src/main/java/net/minecraft/world/entity/player/Inventory.java -index a8e8ed277bf467ca8a34e040bf7b1257ffe8a17e..15b3425fd5cebfc2ddcb0e39879f4f65c64f3317 100644 +index 41cb0d1efd81b7754b68c89af289c1260779c08b..75a26684dc892f96e9209ef77709d1b445bef636 100644 --- a/src/main/java/net/minecraft/world/entity/player/Inventory.java +++ b/src/main/java/net/minecraft/world/entity/player/Inventory.java @@ -114,7 +114,7 @@ public class Inventory implements Container, Nameable { @@ -108,7 +108,7 @@ index a8e8ed277bf467ca8a34e040bf7b1257ffe8a17e..15b3425fd5cebfc2ddcb0e39879f4f65 } // CraftBukkit start - Watch method above! :D -@@ -283,9 +283,11 @@ public class Inventory implements Container, Nameable { +@@ -289,9 +289,11 @@ public class Inventory implements Container, Nameable { int k = j; @@ -122,7 +122,7 @@ index a8e8ed277bf467ca8a34e040bf7b1257ffe8a17e..15b3425fd5cebfc2ddcb0e39879f4f65 if (k > this.getMaxStackSize() - itemstack1.getCount()) { k = this.getMaxStackSize() - itemstack1.getCount(); -@@ -403,7 +405,7 @@ public class Inventory implements Container, Nameable { +@@ -409,7 +411,7 @@ public class Inventory implements Container, Nameable { } if (i != -1) { diff --git a/patches/server/0054-Return-nether-portal-fix.patch b/patches/server/0054-Return-nether-portal-fix.patch index 0423b6e7..f6f03f4a 100644 --- a/patches/server/0054-Return-nether-portal-fix.patch +++ b/patches/server/0054-Return-nether-portal-fix.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Return nether portal fix This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 16b740f54e8343e06d2349389068e3c7a0714da0..85a59fbbba1e9c14567f8cc294c27ce9640b73b7 100644 +index 5f23b11cf9ad01d1e44b70997726885789cf7c49..d9224108e70b918b5ea33a2cc979d1d7dd3b00b2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -186,6 +186,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -17,7 +17,7 @@ index 16b740f54e8343e06d2349389068e3c7a0714da0..85a59fbbba1e9c14567f8cc294c27ce9 // CraftBukkit end public class ServerPlayer extends Player { -@@ -1285,6 +1286,24 @@ public class ServerPlayer extends Player { +@@ -1286,6 +1287,24 @@ public class ServerPlayer extends Player { PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); this.level().getCraftServer().getPluginManager().callEvent(changeEvent); // CraftBukkit end @@ -42,7 +42,7 @@ index 16b740f54e8343e06d2349389068e3c7a0714da0..85a59fbbba1e9c14567f8cc294c27ce9 } // Paper start if (this.isBlocking()) { -@@ -1337,6 +1356,30 @@ public class ServerPlayer extends Player { +@@ -1338,6 +1357,30 @@ public class ServerPlayer extends Player { protected Optional getExitPortal(ServerLevel worldserver, BlockPos blockposition, boolean flag, WorldBorder worldborder, int searchRadius, boolean canCreatePortal, int createRadius) { // CraftBukkit Optional optional = super.getExitPortal(worldserver, blockposition, flag, worldborder, searchRadius, canCreatePortal, createRadius); // CraftBukkit @@ -74,7 +74,7 @@ index 16b740f54e8343e06d2349389068e3c7a0714da0..85a59fbbba1e9c14567f8cc294c27ce9 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 52b7d704f1a13e215da586a45da9c554f40f3d86..3994583f24bd558e7b0f7649e27fcea79da32026 100644 +index a654e000b7f9b62b8bbf57874d6d383f71ff3f82..8e86794cdd8387e83208c5c823a237352d2c2934 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -27,6 +27,8 @@ import java.util.UUID; @@ -95,7 +95,7 @@ index 52b7d704f1a13e215da586a45da9c554f40f3d86..3994583f24bd558e7b0f7649e27fcea7 public abstract class PlayerList { public static final File USERBANLIST_FILE = new File("banned-players.json"); -@@ -983,6 +987,24 @@ public abstract class PlayerList { +@@ -991,6 +995,24 @@ public abstract class PlayerList { if (fromWorld != location.getWorld()) { PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld); server.server.getPluginManager().callEvent(event); @@ -121,7 +121,7 @@ index 52b7d704f1a13e215da586a45da9c554f40f3d86..3994583f24bd558e7b0f7649e27fcea7 // 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 ee7769a12cad46f962dc75fe48e3e2dd0ed644a8..41f93fd2aa5d8b6362a40764be3e1e3a834a6827 100644 +index dfce80a9e4736f8545d20713ebd4d4d0fd377a10..deaba5f2c0f684451d9cac5d1eb73fe7bcc36210 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -242,7 +242,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0055-Appleskin-Protocol.patch b/patches/server/0055-Appleskin-Protocol.patch index e3c63104..196142c2 100644 --- a/patches/server/0055-Appleskin-Protocol.patch +++ b/patches/server/0055-Appleskin-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Appleskin Protocol diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 41fcf8abe96be28cdc79eba6eebe753deb38de2f..46eacd000b622b9dba746fe38e4bf2a0abfe061c 100644 +index 5bdfe75075118c6a2347bc6c9764be4352a83944..b0b3421ce24a6b8f16c3ec45bb2d10ac48667eff 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1604,6 +1604,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -1) { -@@ -2154,6 +2162,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2166,6 +2174,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.processedDisconnect = true; } // CraftBukkit end @@ -43,7 +43,7 @@ index dac97d0c32a8801e6dfddfe47b2c9de4ed9f6ae6..b898c0c4dc108ea111935fa32eaaf0ef this.chatMessageChain.close(); ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), reason.getString()); // CraftBukkit start - Replace vanilla quit message handling with our own. -@@ -3635,6 +3648,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3647,6 +3660,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (top.leavesmc.leaves.LeavesConfig.jadeProtocol && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.JadeProtocol.PROTOCOL_ID)) { top.leavesmc.leaves.protocol.JadeProtocol.handlePacket(server, player, packet); } diff --git a/patches/server/0063-Disable-distance-check-for-UseItemOnPacket.patch b/patches/server/0063-Disable-distance-check-for-UseItemOnPacket.patch index 3d570ad5..f127ec62 100644 --- a/patches/server/0063-Disable-distance-check-for-UseItemOnPacket.patch +++ b/patches/server/0063-Disable-distance-check-for-UseItemOnPacket.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable distance check for UseItemOnPacket diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 30ed248d933ef31af041ccbf60f57cdbde97b91c..873e0c1e8aff83eb65e4fe82dd51c58412f32db4 100644 +index b2be14056502a902f8fd2caaacaffc5d01776051..0b5bea46ed8695cd50d37cecf0d37417661e7121 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2000,7 +2000,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2012,7 +2012,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Vec3 vec3d2 = vec3d.subtract(vec3d1); double d0 = 1.0000001D; diff --git a/patches/server/0068-Disable-check-out-of-order-command.patch b/patches/server/0068-Disable-check-out-of-order-command.patch index 9676681c..f113e1e1 100644 --- a/patches/server/0068-Disable-check-out-of-order-command.patch +++ b/patches/server/0068-Disable-check-out-of-order-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable check out-of-order command diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 873e0c1e8aff83eb65e4fe82dd51c58412f32db4..30b806329d450f5fe4e10862176360d09116efe0 100644 +index 0b5bea46ed8695cd50d37cecf0d37417661e7121..6d527cdb75e767182dce5b338322a9c27b21d5b8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2404,7 +2404,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2416,7 +2416,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { diff --git a/patches/server/0070-Leaves-carpet-support.patch b/patches/server/0070-Leaves-carpet-support.patch index bffe04b5..34048c08 100644 --- a/patches/server/0070-Leaves-carpet-support.patch +++ b/patches/server/0070-Leaves-carpet-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaves carpet support diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index cdf61407ccdc61fd0c63367273b70bbf2f4cc8e0..0aa1f96d113c055df1abb9e2832870d62336421c 100644 +index 6d527cdb75e767182dce5b338322a9c27b21d5b8..7634fc05f7e1bd12c9c6aa9204af613364ec5e7f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3651,6 +3651,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3663,6 +3663,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (top.leavesmc.leaves.LeavesConfig.syncmaticaProtocol && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.syncmatica.SyncmaticaProtocol.PROTOCOL_ID)) { top.leavesmc.leaves.protocol.syncmatica.SyncmaticaProtocol.getCommunicationManager().onPacketGet(packet, this); } @@ -19,7 +19,7 @@ index cdf61407ccdc61fd0c63367273b70bbf2f4cc8e0..0aa1f96d113c055df1abb9e2832870d6 ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a5ca7132bfbdc6bdf57262707fdf93de993b7c61..e50305b51a3759f53a9425ba6487db30c5d5d788 100644 +index fed72c6fef684758be756602f57393d088bac50d..13356860e13374227ac5559daf77fc4dc60e378d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -364,6 +364,7 @@ public abstract class PlayerList { @@ -31,7 +31,7 @@ index a5ca7132bfbdc6bdf57262707fdf93de993b7c61..e50305b51a3759f53a9425ba6487db30 final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -index 7f9c9ddbd16a25b7f2b1d267901aade4452d64b2..a1ee8c10b03bf8788b038e12588622660b7445af 100644 +index b6984f7074ee1782a31c44820c255d21a4228df6..7fa2be51b1e68a15533b20263a3eeab8d3792c2d 100644 --- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java @@ -14,6 +14,8 @@ import top.leavesmc.leaves.bot.agent.Actions; diff --git a/patches/server/0071-Creative-fly-no-clip.patch b/patches/server/0071-Creative-fly-no-clip.patch index 94f27569..373d1e26 100644 --- a/patches/server/0071-Creative-fly-no-clip.patch +++ b/patches/server/0071-Creative-fly-no-clip.patch @@ -64,10 +64,10 @@ index 25a9c38c60d183bb65b14f4d7550ab98b431c218..118a5b4c0a5268d52c69b0cfd061dbcc } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index d9baa85962236c42219cf09d4f3129be93ff069c..c1bd06fbc2c5683888f7264c35c25feb31b00d67 100644 +index 1ec80f9c901dff1c9f29befa5a8e3c3f6f37aaf7..f26e5626c0823c041eeb388cbcd78e5293d2f0ff 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -@@ -19,6 +19,7 @@ import net.minecraft.util.Mth; +@@ -18,6 +18,7 @@ import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntitySelector; @@ -75,7 +75,7 @@ index d9baa85962236c42219cf09d4f3129be93ff069c..c1bd06fbc2c5683888f7264c35c25feb import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.ChunkPos; -@@ -128,7 +129,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -127,7 +128,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { } public static boolean canEntityTeleport(Entity entity) { @@ -85,7 +85,7 @@ index d9baa85962236c42219cf09d4f3129be93ff069c..c1bd06fbc2c5683888f7264c35c25feb public boolean isSpawning() { diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -index 4e6f561530a9658c82df583f9586c39f5021311c..54d8bc4d86c78f44206aa5769b7db36e39291a98 100644 +index 7fa2be51b1e68a15533b20263a3eeab8d3792c2d..4f9b950e21f55c0f251eb15164315c8f7891b17a 100644 --- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java @@ -604,6 +604,7 @@ public final class LeavesConfig { diff --git a/patches/server/0072-Optimized-dragon-respawn.patch b/patches/server/0072-Optimized-dragon-respawn.patch index 9cd0cdf8..b795f4d1 100644 --- a/patches/server/0072-Optimized-dragon-respawn.patch +++ b/patches/server/0072-Optimized-dragon-respawn.patch @@ -18,7 +18,7 @@ index d0a047fd8849e9210dc9424325561f5a1b9998df..b665410788aa7c889dc214c2a97a9c29 for(int j = 0; j < this.height; ++j) { for(int k = 0; k < this.depth; ++k) { diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 02d5a5b799bfe90993bc6868369d31f43d5b7fd6..78429c3847cb17686aac2258d5ace57f09cd8dab 100644 +index 630971d7a87c12798672af9635535eaf80a3ec9c..a8485a4fe962246c4d0bfd71b9f5278a348188ae 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -45,6 +45,7 @@ import net.minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhase; @@ -97,7 +97,7 @@ index 02d5a5b799bfe90993bc6868369d31f43d5b7fd6..78429c3847cb17686aac2258d5ace57f ChunkPos chunkcoordintpair = new ChunkPos(this.origin); int i; -@@ -574,6 +634,11 @@ public class EndDragonFight { +@@ -592,6 +652,11 @@ public class EndDragonFight { } public boolean respawnDragon(List list) { // PAIL private -> public // CraftBukkit - return boolean diff --git a/patches/server/0076-Elytra-aeronautics-no-chunk-load.patch b/patches/server/0076-Elytra-aeronautics-no-chunk-load.patch index ae2f1de4..76b2d1c1 100644 --- a/patches/server/0076-Elytra-aeronautics-no-chunk-load.patch +++ b/patches/server/0076-Elytra-aeronautics-no-chunk-load.patch @@ -5,7 +5,7 @@ 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 2b0314d57354995f9756841b4b31cb38a841e9ab..09b79deb76e9766c3cf960a8d1295d762c589e11 100644 +index c867d727ae61f09cde0a4a88383d30a49c2f29a7..9969afdcd826db2c53db1d54f6e3df69a59a486e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -195,7 +195,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -26,7 +26,7 @@ index 2b0314d57354995f9756841b4b31cb38a841e9ab..09b79deb76e9766c3cf960a8d1295d76 this.level.playerChunkLoader.removePlayer(player); // Paper - replace chunk loader // Paper start - optimise ChunkMap#anyPlayerCloseEnoughForSpawning -@@ -1081,7 +1081,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1100,7 +1100,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } private boolean skipPlayer(ServerPlayer player) { @@ -36,7 +36,7 @@ index 2b0314d57354995f9756841b4b31cb38a841e9ab..09b79deb76e9766c3cf960a8d1295d76 } void updatePlayerStatus(ServerPlayer player, boolean added) { -@@ -1122,6 +1123,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1141,6 +1142,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void move(ServerPlayer player) { // Paper - delay this logic for the entity tracker tick, no need to duplicate it @@ -45,7 +45,7 @@ index 2b0314d57354995f9756841b4b31cb38a841e9ab..09b79deb76e9766c3cf960a8d1295d76 int j = SectionPos.blockToSectionCoord(player.getBlockZ()); 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 55b620c3dfea942f1d8d9ba4eddd54934c1ae443..93613d0aef1a05fa77e079478e464d46379e52af 100644 +index 7634fc05f7e1bd12c9c6aa9204af613364ec5e7f..3d7e2654d67b9b61cf783e234e33576a03351413 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -655,7 +655,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -58,10 +58,10 @@ index 55b620c3dfea942f1d8d9ba4eddd54934c1ae443..93613d0aef1a05fa77e079478e464d46 !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 1531c7efc148d427cb8ede12e5070769c299ce3d..1739b609b497d56531ccc74039ecf005ea52abd0 100644 +index a8e00561ab37f932767b5f6448879acea4e896b4..2a3baba3e0318f67bb65dbd5adac0675102bc771 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1088,7 +1088,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1090,7 +1090,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return; } } @@ -76,7 +76,7 @@ index 1531c7efc148d427cb8ede12e5070769c299ce3d..1739b609b497d56531ccc74039ecf005 this.level().getProfiler().push("move"); if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); -@@ -2011,6 +2017,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2013,6 +2019,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.yo = y; this.zo = d4; this.setPos(d3, y, d4); diff --git a/patches/server/0077-Disable-timings-default.patch b/patches/server/0077-Disable-timings-default.patch index 57e64661..3f630e2c 100644 --- a/patches/server/0077-Disable-timings-default.patch +++ b/patches/server/0077-Disable-timings-default.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable timings default diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 4ac3fa45cd155ae8a852e26d4d4d1f16b28efdc2..cacd808f1d03c9729bcf2110bffceb940c0e11c0 100644 +index 019d3bbd78fb0b06861979d223915fedb6c99442..269936bb2a631a8a4452d9c62760c2aa7aeaf014 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -50,8 +50,8 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -89,8 +89,8 @@ public class GlobalConfiguration extends ConfigurationPart { public Timings timings; public class Timings extends ConfigurationPart.Post { diff --git a/patches/server/0078-Bladeren-mspt-sync-protocol.patch b/patches/server/0078-Bladeren-mspt-sync-protocol.patch index 9f12f843..98dfa9ed 100644 --- a/patches/server/0078-Bladeren-mspt-sync-protocol.patch +++ b/patches/server/0078-Bladeren-mspt-sync-protocol.patch @@ -17,10 +17,10 @@ index ab008fdf7b7d9e3e17fbd8524729f4434aefc1f3..49fc9c750d7696789649081430b262b0 MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper for (int i = 0; i < this.tickables.size(); ++i) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 02853df54fca8364bf5e0386a9b77c6e55da9802..090d73eeef3bd97c60a9434200e099b6dd1dec28 100644 +index 3d7e2654d67b9b61cf783e234e33576a03351413..6640cb8c04871bebeadc59f91db097124d06f801 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3654,6 +3654,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3666,6 +3666,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (top.leavesmc.leaves.LeavesConfig.leavesCarpetSupport && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.CarpetServerProtocol.PROTOCOL_ID)) { top.leavesmc.leaves.protocol.CarpetServerProtocol.handlePacket(player, packet); } @@ -31,7 +31,7 @@ index 02853df54fca8364bf5e0386a9b77c6e55da9802..090d73eeef3bd97c60a9434200e099b6 ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e50305b51a3759f53a9425ba6487db30c5d5d788..b00a84a73b7682d1579a8b6350a11f320a5c0682 100644 +index 13356860e13374227ac5559daf77fc4dc60e378d..9676ada06db5956cdc4489d07f4c031ae9372b06 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -365,6 +365,7 @@ public abstract class PlayerList { @@ -42,7 +42,7 @@ index e50305b51a3759f53a9425ba6487db30c5d5d788..b00a84a73b7682d1579a8b6350a11f32 final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); -@@ -610,6 +611,7 @@ public abstract class PlayerList { +@@ -618,6 +619,7 @@ public abstract class PlayerList { public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { top.leavesmc.leaves.protocol.BBORProtocol.onPlayerLoggedOut(entityplayer); // Leaves - bbor top.leavesmc.leaves.protocol.AppleSkinProtocol.onPlayerLoggedOut(entityplayer); // Leaves - appleskin diff --git a/patches/server/0079-Fix-Paper-9372.patch b/patches/server/0079-Fix-Paper-9372.patch index 99f32790..86d877e5 100644 --- a/patches/server/0079-Fix-Paper-9372.patch +++ b/patches/server/0079-Fix-Paper-9372.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix Paper#9372 This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 85a59fbbba1e9c14567f8cc294c27ce9640b73b7..ab3ab965e0efa106f20ff9fd84fe7fb026fa4efc 100644 +index d9224108e70b918b5ea33a2cc979d1d7dd3b00b2..a03472d2ceb268168268600fea7ce7ce4e62d4f6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1256,6 +1256,7 @@ public class ServerPlayer extends Player { +@@ -1257,6 +1257,7 @@ public class ServerPlayer extends Player { this.setServerLevel(worldserver); this.connection.teleport(exit); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); @@ -17,7 +17,7 @@ index 85a59fbbba1e9c14567f8cc294c27ce9640b73b7..ab3ab965e0efa106f20ff9fd84fe7fb0 worldserver.addDuringPortalTeleport(this); worldserver1.getProfiler().pop(); this.triggerDimensionChangeTriggers(worldserver1); -@@ -1967,6 +1968,7 @@ public class ServerPlayer extends Player { +@@ -1968,6 +1969,7 @@ public class ServerPlayer extends Player { public void moveTo(double x, double y, double z) { super.moveTo(x, y, z); this.connection.resetPosition(); @@ -25,7 +25,7 @@ index 85a59fbbba1e9c14567f8cc294c27ce9640b73b7..ab3ab965e0efa106f20ff9fd84fe7fb0 } @Override -@@ -2203,6 +2205,7 @@ public class ServerPlayer extends Player { +@@ -2204,6 +2206,7 @@ public class ServerPlayer extends Player { this.connection.send(new ClientboundSetCameraPacket(this.camera)); this.connection.resetPosition(); @@ -33,7 +33,7 @@ index 85a59fbbba1e9c14567f8cc294c27ce9640b73b7..ab3ab965e0efa106f20ff9fd84fe7fb0 } } -@@ -2655,6 +2658,7 @@ public class ServerPlayer extends Player { +@@ -2656,6 +2659,7 @@ public class ServerPlayer extends Player { public void forceSetPositionRotation(double x, double y, double z, float yaw, float pitch) { this.moveTo(x, y, z, yaw, pitch); this.connection.resetPosition(); diff --git a/patches/server/0095-Cache-BlockStatePairKey-hash.patch b/patches/server/0095-Cache-BlockStatePairKey-hash.patch index 058318ce..9d8bc78b 100644 --- a/patches/server/0095-Cache-BlockStatePairKey-hash.patch +++ b/patches/server/0095-Cache-BlockStatePairKey-hash.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Cache BlockStatePairKey hash This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index d13e665a1f2fa4b671894a8c708e8e7ff94af07f..98eb6061da8ac8617b54d489ff41b4808dafe839 100644 +index 35f1aea111aab3e79a73fb51c553e96bbcdab3bf..aa2fd4a567f5243ccd082644d56e1fa2b9ae4a7d 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -623,11 +623,18 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -631,11 +631,18 @@ public class Block extends BlockBehaviour implements ItemLike { private final BlockState first; private final BlockState second; private final Direction direction; @@ -28,7 +28,7 @@ index d13e665a1f2fa4b671894a8c708e8e7ff94af07f..98eb6061da8ac8617b54d489ff41b480 } public boolean equals(Object object) { -@@ -643,11 +650,17 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -651,11 +658,17 @@ public class Block extends BlockBehaviour implements ItemLike { } public int hashCode() { diff --git a/patches/server/0097-Disable-packet-limit.patch b/patches/server/0097-Disable-packet-limit.patch index 3cd48297..8f59e3a7 100644 --- a/patches/server/0097-Disable-packet-limit.patch +++ b/patches/server/0097-Disable-packet-limit.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable packet limit diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 25b1f48a4821771643f5184088f589b7a986dc92..a00a0a8148107fae1f8a2dce671bb0d08d5ba886 100644 +index 269936bb2a631a8a4452d9c62760c2aa7aeaf014..7d5a6ec1995a3f9483209836746a552d9c005669 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -212,7 +212,7 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -251,7 +251,7 @@ public class GlobalConfiguration extends ConfigurationPart { } public boolean isEnabled() { diff --git a/patches/server/0098-Reduce-array-allocations.patch b/patches/server/0098-Reduce-array-allocations.patch index e261d9d2..be93b724 100644 --- a/patches/server/0098-Reduce-array-allocations.patch +++ b/patches/server/0098-Reduce-array-allocations.patch @@ -266,7 +266,7 @@ index 55ef6d5ffebe04e678dc89ec2740f031af361cb8..4c86d1836c8b4ac9c535cf5bccd71dec 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 090d73eeef3bd97c60a9434200e099b6dd1dec28..71a7adea17b6909c1390e11004055867dc14d2fa 100644 +index 6640cb8c04871bebeadc59f91db097124d06f801..b3e893dde6a39e699f192c139fa1055321ec5809 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -249,6 +249,7 @@ import org.bukkit.inventory.InventoryView; @@ -302,7 +302,7 @@ index 090d73eeef3bd97c60a9434200e099b6dd1dec28..71a7adea17b6909c1390e11004055867 return; } // Paper end -@@ -3368,7 +3369,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3380,7 +3381,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // 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) { @@ -346,7 +346,7 @@ index 2ff578e4a953ffcf5176815ba8e3f06f73499989..bf082b9c3947d6037328526e5bfafe2b 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 8c3e87e3510ab048c206c974ec154e5b59c7342b..3ff61af745630dc692d84aeccc25ad8dcf5c5746 100644 +index 5342cbb955cd6536004ca1c905fd9ab3bd9f7839..5718574a8a258a9a11417667b3373b4631a1211c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -134,6 +134,7 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason; @@ -357,7 +357,7 @@ index 8c3e87e3510ab048c206c974ec154e5b59c7342b..3ff61af745630dc692d84aeccc25ad8d import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix public abstract class PlayerList { -@@ -729,7 +730,7 @@ public abstract class PlayerList { +@@ -737,7 +738,7 @@ public abstract class PlayerList { while (iterator.hasNext()) { entityplayer = (ServerPlayer) iterator.next(); this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved diff --git a/patches/server/0099-Optimize-sun-burn-tick.patch b/patches/server/0099-Optimize-sun-burn-tick.patch index 7fb77416..dd8706ea 100644 --- a/patches/server/0099-Optimize-sun-burn-tick.patch +++ b/patches/server/0099-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 0ba05de67c4ae1926f4adf8a4283414cf5c2bd1f..570ee65b43a08f6f1846192b71660f0ed4c5b447 100644 +index 2a3baba3e0318f67bb65dbd5adac0675102bc771..ab9f64289bf4628f9087e0530f66b354532d5b0b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1997,8 +1997,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1999,8 +1999,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { /** @deprecated */ @Deprecated public float getLightLevelDependentMagicValue() { diff --git a/patches/server/0106-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0106-Skip-entity-move-if-movement-is-zero.patch index f505c3c4..adcde96c 100644 --- a/patches/server/0106-Skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0106-Skip-entity-move-if-movement-is-zero.patch @@ -6,7 +6,7 @@ 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 570ee65b43a08f6f1846192b71660f0ed4c5b447..ab063e4a3fcdb402dfedac90b8b5ec4336021be3 100644 +index ab9f64289bf4628f9087e0530f66b354532d5b0b..193f825ca7781470490e0f0a3f8bbb47f856e700 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -314,6 +314,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -17,7 +17,7 @@ index 570ee65b43a08f6f1846192b71660f0ed4c5b447..ab063e4a3fcdb402dfedac90b8b5ec43 public boolean onGround; public boolean horizontalCollision; public boolean verticalCollision; -@@ -1066,6 +1067,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1068,6 +1069,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 570ee65b43a08f6f1846192b71660f0ed4c5b447..ab063e4a3fcdb402dfedac90b8b5ec43 // Paper start - detailed watchdog information io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); synchronized (this.posLock) { -@@ -3992,6 +4000,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3994,6 +4002,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0108-Skip-unnecessary-mob-spawning-computations.patch b/patches/server/0108-Skip-unnecessary-mob-spawning-computations.patch index 09ac547c..7a3915b8 100644 --- a/patches/server/0108-Skip-unnecessary-mob-spawning-computations.patch +++ b/patches/server/0108-Skip-unnecessary-mob-spawning-computations.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Skip unnecessary mob spawning computations This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index b3d60819cee789c4cb3f7dcd2a8ea4aeb0b50f27..47787f1f86b99cfcae6e1bb3dcf7648e9f04c936 100644 +index 5942626173e68d80a2e93d7221f2f470f07f022b..e3760154b7d3aabb9d63a06f11e4dca0743bb03f 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -566,15 +566,19 @@ public class ServerChunkCache extends ChunkSource { +@@ -566,50 +566,57 @@ public class ServerChunkCache extends ChunkSource { int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit @@ -20,6 +20,17 @@ index b3d60819cee789c4cb3f7dcd2a8ea4aeb0b50f27..47787f1f86b99cfcae6e1bb3dcf7648e + // Leaves start - skip unnecessary mob spawning computations NaturalSpawner.SpawnState spawnercreature_d; // moved down - if ((this.spawnFriendlies || this.spawnEnemies) && this.chunkMap.playerMobDistanceMap != null) { // don't count mobs when animals and monsters are disabled +- // Leaves start - optimize mob spawning +- if (!top.leavesmc.leaves.LeavesConfig.asyncMobSpawning) { +- // re-set mob counts +- for (ServerPlayer player : this.level.players) { +- // Paper start - per player mob spawning backoff +- for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { +- player.mobCounts[ii] = 0; +- +- int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm? +- if (newBackoff < 0) { +- newBackoff = 0; + boolean flag2 = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit + boolean flag2AndHasNaturalSpawn = flag2 && this.anySpawnCategoryIsSpawnedThisTick(); + if (!top.leavesmc.leaves.LeavesConfig.skipUnnecessaryMobSpawningComputations || flag2AndHasNaturalSpawn) { @@ -28,29 +39,54 @@ index b3d60819cee789c4cb3f7dcd2a8ea4aeb0b50f27..47787f1f86b99cfcae6e1bb3dcf7648e + int l = this.distanceManager.getNaturalSpawnChunkCount(); + // Paper start - per player mob spawning + if ((this.spawnFriendlies || this.spawnEnemies) && this.chunkMap.playerMobDistanceMap != null) { // don't count mobs when animals and monsters are disabled - // Leaves start - optimize mob spawning - if (!top.leavesmc.leaves.LeavesConfig.asyncMobSpawning) { -- // re-set mob counts ++ // Leaves start - optimize mob spawning ++ if (!top.leavesmc.leaves.LeavesConfig.asyncMobSpawning) { + //re-set mob counts - for (ServerPlayer player : this.level.players) { - Arrays.fill(player.mobCounts, 0); - } -@@ -587,18 +591,21 @@ public class ServerChunkCache extends ChunkSource { - spawnCountsReady.set(true); - // Leaves end - optimize mob spawning ++ for (ServerPlayer player : this.level.players) { ++ // Paper start - per player mob spawning backoff ++ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { ++ player.mobCounts[ii] = 0; ++ ++ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm? ++ if (newBackoff < 0) { ++ newBackoff = 0; ++ } ++ player.mobBackoffCounts[ii] = newBackoff; + } +- player.mobBackoffCounts[ii] = newBackoff; +- } + +- // Paper end - per player mob spawning backoff ++ // Paper end - per player mob spawning backoff ++ } ++ lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true); + } +- lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true); ++ // Leaves end - optimize mob spawning ++ } else { ++ // Leaves start - optimize mob spawning ++ lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, this.chunkMap.playerMobDistanceMap == null ? new LocalMobCapCalculator(this.chunkMap) : null, false); ++ spawnCountsReady.set(true); ++ // Leaves end - optimize mob spawning } -- // Paper end -- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings +- // Leaves end - optimize mob spawning + // Paper end + this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings - -- // this.lastSpawnState = spawnercreature_d; // Leaves - optimize mob spawning -- gameprofilerfiller.popPush("filteringLoadedChunks"); ++ + // this.lastSpawnState = spawnercreature_d; // Leaves - optimize mob spawning + gameprofilerfiller.popPush("filteringLoadedChunks"); -+ } else { -+ spawnercreature_d = null; -+ } + } else { +- // Leaves start - optimize mob spawning +- lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, this.chunkMap.playerMobDistanceMap == null ? new LocalMobCapCalculator(this.chunkMap) : null, false); +- spawnCountsReady.set(true); +- // Leaves end - optimize mob spawning ++ lastSpawnState = null; + } +- // Paper end +- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings +- +- // this.lastSpawnState = spawnercreature_d; // Leaves - optimize mob spawning +- gameprofilerfiller.popPush("filteringLoadedChunks"); // Paper - moved down this.level.timings.chunkTicks.startTiming(); // Paper @@ -62,7 +98,7 @@ index b3d60819cee789c4cb3f7dcd2a8ea4aeb0b50f27..47787f1f86b99cfcae6e1bb3dcf7648e // Paper - only shuffle if per-player mob spawning is disabled // Paper - moved natural spawn event up -@@ -630,7 +637,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -641,7 +648,7 @@ public class ServerChunkCache extends ChunkSource { if ((true || this.level.isNaturalSpawningAllowed(chunkcoordintpair)) && this.chunkMap.anyPlayerCloseEnoughForSpawning(holder, chunkcoordintpair, false)) { // Paper - optimise anyPlayerCloseEnoughForSpawning // Paper - the chunk is known ticking chunk1.incrementInhabitedTime(j); // Leaves start - optimize mob spawning @@ -71,16 +107,16 @@ index b3d60819cee789c4cb3f7dcd2a8ea4aeb0b50f27..47787f1f86b99cfcae6e1bb3dcf7648e NaturalSpawner.spawnForChunk(this.level, chunk1, lastSpawnState, this.spawnFriendlies, this.spawnEnemies, flag1); } // Leaves end - optimize mob spawning -@@ -695,7 +702,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -706,7 +713,7 @@ public class ServerChunkCache extends ChunkSource { // Paper end - controlled flush for entity tracker packets // Leaves start - optimize mob spawning - if (top.leavesmc.leaves.LeavesConfig.asyncMobSpawning) { + if (top.leavesmc.leaves.LeavesConfig.asyncMobSpawning && (!top.leavesmc.leaves.LeavesConfig.skipUnnecessaryMobSpawningComputations || flag2AndHasNaturalSpawn)) { for (ServerPlayer player : this.level.players) { - Arrays.fill(player.mobCounts, 0); - } -@@ -720,6 +727,18 @@ public class ServerChunkCache extends ChunkSource { + for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { + player.mobCounts[ii] = 0; +@@ -739,6 +746,18 @@ public class ServerChunkCache extends ChunkSource { } } diff --git a/patches/server/0109-Skip-negligible-planar-movement-multiplication.patch b/patches/server/0109-Skip-negligible-planar-movement-multiplication.patch index 2b14582d..4061a1db 100644 --- a/patches/server/0109-Skip-negligible-planar-movement-multiplication.patch +++ b/patches/server/0109-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 ab063e4a3fcdb402dfedac90b8b5ec4336021be3..a8eb0643a1c6f3db4453c8f86b106572bb06ddfd 100644 +index 193f825ca7781470490e0f0a3f8bbb47f856e700..6ac903998abeb4432ecebe4b7f977f9322b78803 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1237,9 +1237,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1239,9 +1239,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.tryCheckInsideBlocks(); diff --git a/patches/server/0115-Force-peaceful-mode-switch.patch b/patches/server/0115-Force-peaceful-mode-switch.patch index b3b2f19d..3eeaf737 100644 --- a/patches/server/0115-Force-peaceful-mode-switch.patch +++ b/patches/server/0115-Force-peaceful-mode-switch.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Force peaceful mode switch diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 47787f1f86b99cfcae6e1bb3dcf7648e9f04c936..d9da306d2675201beedddd43dcef18b31a2fa0e0 100644 +index e3760154b7d3aabb9d63a06f11e4dca0743bb03f..501090d78b9713c5e225664db86f9e7870c574fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -82,6 +82,12 @@ public class ServerChunkCache extends ChunkSource { @@ -44,7 +44,7 @@ index 47787f1f86b99cfcae6e1bb3dcf7648e9f04c936..d9da306d2675201beedddd43dcef18b3 int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit -@@ -624,6 +646,15 @@ public class ServerChunkCache extends ChunkSource { +@@ -635,6 +657,15 @@ public class ServerChunkCache extends ChunkSource { iterator1 = shuffled.iterator(); } @@ -60,7 +60,7 @@ index 47787f1f86b99cfcae6e1bb3dcf7648e9f04c936..d9da306d2675201beedddd43dcef18b3 int chunksTicked = 0; // Paper try { while (iterator1.hasNext()) { -@@ -638,7 +669,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -649,7 +680,7 @@ public class ServerChunkCache extends ChunkSource { chunk1.incrementInhabitedTime(j); // Leaves start - optimize mob spawning if ((top.leavesmc.leaves.LeavesConfig.skipUnnecessaryMobSpawningComputations ? flag2AndHasNaturalSpawn : flag2) && (!top.leavesmc.leaves.LeavesConfig.asyncMobSpawning || spawnCountsReady.get()) && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair) && this.chunkMap.anyPlayerCloseEnoughForSpawning(holder, chunkcoordintpair, true)) { // Spigot // Paper - optimise anyPlayerCloseEnoughForSpawning & optimise chunk tick iteration // Leaves -skip unnecessary mob spawning computations @@ -70,7 +70,7 @@ index 47787f1f86b99cfcae6e1bb3dcf7648e9f04c936..d9da306d2675201beedddd43dcef18b3 // Leaves end - optimize mob spawning diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 9a5b31a3a8614ca2ff2d5bdb64dddccd70b22c3f..64fdfb3c124f8574fc0313b8fd764a5cd254b151 100644 +index c85d55cc9baf69968470a0bbe56c4233ae5509a4..541f0e76a19fbd08cf2a2a8b4372f7de99c3e46e 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -133,6 +133,12 @@ public final class NaturalSpawner { @@ -99,7 +99,7 @@ index 9a5b31a3a8614ca2ff2d5bdb64dddccd70b22c3f..64fdfb3c124f8574fc0313b8fd764a5c 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 550dcb7d595221b221e4710890d8a3cad789fc07..7b576936c5a29f3714b2fc16c24e8cdec0d43f9e 100644 +index f857f490ffba2f25f7c06c5fb1a1905f0b51fbe2..ba296f2a3c8381b928b4bbcbd2937314f7861f9a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2300,6 +2300,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0117-Replay-Mod-API.patch b/patches/server/0117-Replay-Mod-API.patch index 808cfb69..e6f3e22b 100644 --- a/patches/server/0117-Replay-Mod-API.patch +++ b/patches/server/0117-Replay-Mod-API.patch @@ -115,7 +115,7 @@ index fd9e85dab7c511873824cac56a270ff435792292..257e51570ed08660613895f5a1eccbee } // Leaves end - bot can't get advancement diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3ff61af745630dc692d84aeccc25ad8dcf5c5746..32daf27565b1466f5f6645b9f5bbc4f00fe0cc3e 100644 +index 5718574a8a258a9a11417667b3373b4631a1211c..2f1c56de20a77d7ca5f424148cbc63019761438d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -136,6 +136,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent; @@ -251,7 +251,7 @@ index 3ff61af745630dc692d84aeccc25ad8dcf5c5746..32daf27565b1466f5f6645b9f5bbc4f0 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 -@@ -392,6 +497,12 @@ public abstract class PlayerList { +@@ -400,6 +505,12 @@ public abstract class PlayerList { continue; } @@ -264,7 +264,7 @@ index 3ff61af745630dc692d84aeccc25ad8dcf5c5746..32daf27565b1466f5f6645b9f5bbc4f0 onlinePlayers.add(entityplayer1); // Paper - use single player info update packet } // Paper start - use single player info update packet -@@ -606,6 +717,43 @@ public abstract class PlayerList { +@@ -614,6 +725,43 @@ public abstract class PlayerList { } @@ -308,7 +308,7 @@ index 3ff61af745630dc692d84aeccc25ad8dcf5c5746..32daf27565b1466f5f6645b9f5bbc4f0 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() : PaperAdventure.asAdventure(entityplayer.getDisplayName()))); -@@ -676,6 +824,7 @@ public abstract class PlayerList { +@@ -684,6 +832,7 @@ public abstract class PlayerList { entityplayer.retireScheduler(); // Paper - Folia schedulers entityplayer.getAdvancements().stopListening(); this.players.remove(entityplayer); @@ -317,7 +317,7 @@ index 3ff61af745630dc692d84aeccc25ad8dcf5c5746..32daf27565b1466f5f6645b9f5bbc4f0 this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer); UUID uuid = entityplayer.getUUID(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3948b88cf2fb407ebf228de93d42330ff1df0634..6bd1ef55b2d171025132ccb158fe51638267f28c 100644 +index 47b27712c6ed11fc5c2cd7de04482870207545e7..0644273b83226d5a794e8d9517254b4c1febdfdd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -261,6 +261,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; @@ -345,7 +345,7 @@ index 3948b88cf2fb407ebf228de93d42330ff1df0634..6bd1ef55b2d171025132ccb158fe5163 @Override public CraftPlayer apply(ServerPlayer player) { return player.getBukkitEntity(); -@@ -3163,4 +3165,11 @@ public final class CraftServer implements Server { +@@ -3193,4 +3195,11 @@ public final class CraftServer implements Server { return botManager; } // Leaves end - Bot API @@ -358,7 +358,7 @@ index 3948b88cf2fb407ebf228de93d42330ff1df0634..6bd1ef55b2d171025132ccb158fe5163 + // Leaves end - replay mod api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 9d6b1550302eb552872d91380e79ac28716ebb83..78b1303996078493a0787135691479d05af1d52e 100644 +index 8388c2a56cbe531cf5f60a18866c85fad1e23c54..bdd36d58c55a66a9538540fa5c88a2943f1c7b05 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -198,6 +198,8 @@ import top.leavesmc.leaves.bot.ServerBot; diff --git a/patches/server/0118-Leaves-tick-command.patch b/patches/server/0118-Leaves-tick-command.patch index 867cb508..42e3f089 100644 --- a/patches/server/0118-Leaves-tick-command.patch +++ b/patches/server/0118-Leaves-tick-command.patch @@ -109,10 +109,10 @@ index 49fc9c750d7696789649081430b262b084a21022..d3caf75c726a88b6ace1161550057c12 ReportedException reportedexception = null; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a5d306e9e8081480275ab6a59b4c0681976913df..c5f5cbf8fe88c42993dbcea1d9514d407024348c 100644 +index a03472d2ceb268168268600fea7ce7ce4e62d4f6..f2e0e45e6255ab8cb47f355203bb0bbdc8faa61f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2736,7 +2736,7 @@ public class ServerPlayer extends Player { +@@ -2737,7 +2737,7 @@ public class ServerPlayer extends Player { } public boolean allowOperation() { diff --git a/patches/server/0119-Fix-vehicle-teleport-by-end-gateway.patch b/patches/server/0119-Fix-vehicle-teleport-by-end-gateway.patch index ac728f78..216bd680 100644 --- a/patches/server/0119-Fix-vehicle-teleport-by-end-gateway.patch +++ b/patches/server/0119-Fix-vehicle-teleport-by-end-gateway.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix vehicle teleport by end gateway diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index c1bd06fbc2c5683888f7264c35c25feb31b00d67..eaa654829b1520dc934634964ef7946468f5e261 100644 +index f26e5626c0823c041eeb388cbcd78e5293d2f0ff..8c13b0ff5a34a66df0e087320e7bb6542fbf89fd 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -@@ -109,7 +109,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -108,7 +108,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { if (!list.isEmpty()) { // Paper start for (Entity entity : list) {