From a1eebfea96e4db60aa9055ec4985b37422914e77 Mon Sep 17 00:00:00 2001 From: Riley Park Date: Mon, 22 Feb 2021 00:03:03 -0800 Subject: [PATCH] fix #5212 and #5213 --- Spigot-API-Patches/0005-Adventure.patch | 12 ++++----- .../0236-Add-API-for-quit-reason.patch | 4 +-- Spigot-Server-Patches/0010-Adventure.patch | 25 ++++++++++--------- .../0087-Configurable-Player-Collision.patch | 8 +++--- .../0135-Enforce-Sync-Player-Saves.patch | 4 +-- ...le-async-calls-to-restart-the-server.patch | 6 ++--- .../0160-ProfileWhitelistVerifyEvent.patch | 6 ++--- .../0234-InventoryCloseEvent-Reason-API.patch | 6 ++--- ...64-Use-ConcurrentHashMap-in-JsonList.patch | 4 +-- ...0-Fix-Whitelist-On-Off-inconsistency.patch | 4 +-- ...oggleEvent-when-whitelist-is-toggled.patch | 4 +-- .../0337-Entity-getEntitySpawnReason.patch | 8 +++--- ...339-Implement-PlayerPostRespawnEvent.patch | 8 +++--- .../0374-Fix-MC-158900.patch | 4 +-- ...-sneak-when-changing-worlds-MC-10657.patch | 4 +-- ...ptimize-Collision-to-not-load-chunks.patch | 6 ++--- .../0438-Improved-Watchdog-Support.patch | 4 +-- ...51-Broadcast-join-message-to-console.patch | 8 +++--- ...g-Broken-behavior-of-PlayerJoinEvent.patch | 8 +++--- ...Load-Chunks-for-Login-Asynchronously.patch | 14 +++++------ ...No-Tick-view-distance-implementation.patch | 6 ++--- ...k-Priority-Urgency-System-for-Chunks.patch | 8 +++--- ...-packets-to-nearby-locations-sounds-.patch | 4 +-- .../0533-Fix-SPIGOT-5989.patch | 10 ++++---- .../0540-Incremental-player-saving.patch | 6 ++--- .../0598-Add-API-for-quit-reason.patch | 6 ++--- .../0602-Expose-world-spawn-angle.patch | 6 ++--- .../0648-Fix-villager-boat-exploit.patch | 4 +-- .../0650-Add-sendOpLevel-API.patch | 6 ++--- 29 files changed, 102 insertions(+), 101 deletions(-) diff --git a/Spigot-API-Patches/0005-Adventure.patch b/Spigot-API-Patches/0005-Adventure.patch index 6b8bbc732c..74382ad6cf 100644 --- a/Spigot-API-Patches/0005-Adventure.patch +++ b/Spigot-API-Patches/0005-Adventure.patch @@ -1576,7 +1576,7 @@ index c8384da69af61e1970f254a3a9c206ee81d7a989..992d1025ca02020e87a9ab5db83d2494 /** diff --git a/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java b/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java -index d06684aba7688ce06777dbd837a46856a9d7767f..fda3a43f1eac6c660f75a77acb882a9e6753a3f0 100644 +index d06684aba7688ce06777dbd837a46856a9d7767f..4af1d064fcb57773dfa8f6ad40d6482973f8e1a8 100644 --- a/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerJoinEvent.java @@ -10,30 +10,60 @@ import org.jetbrains.annotations.Nullable; @@ -1594,7 +1594,7 @@ index d06684aba7688ce06777dbd837a46856a9d7767f..fda3a43f1eac6c660f75a77acb882a9e + @Deprecated // Paper end public PlayerJoinEvent(@NotNull final Player playerJoined, @Nullable final String joinMessage) { super(playerJoined); -+ this.joinMessage = joinMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(joinMessage) : net.kyori.adventure.text.Component.empty(); // Paper end ++ this.joinMessage = joinMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(joinMessage) : null; // Paper end + } + + // Paper start @@ -1639,7 +1639,7 @@ index d06684aba7688ce06777dbd837a46856a9d7767f..fda3a43f1eac6c660f75a77acb882a9e + @Deprecated // Paper public void setJoinMessage(@Nullable String joinMessage) { - this.joinMessage = joinMessage; -+ this.joinMessage = joinMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(joinMessage) : net.kyori.adventure.text.Component.empty(); // Paper ++ this.joinMessage = joinMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(joinMessage) : null; // Paper } @NotNull @@ -2029,7 +2029,7 @@ index fb066251f793ec3b41bfc075b9478901b15ee549..6800132c6288b4588fd02b08d26f016c /** diff --git a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java -index d70c25f404e994766a9ebce89a917c8d0719777c..9b43bb24055b94328c569f7e0df6bd24c8ebfd2b 100644 +index d70c25f404e994766a9ebce89a917c8d0719777c..0395ca85a466f6356259078d3bad48b2ce6e57b7 100644 --- a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java @@ -10,30 +10,59 @@ import org.jetbrains.annotations.Nullable; @@ -2042,7 +2042,7 @@ index d70c25f404e994766a9ebce89a917c8d0719777c..9b43bb24055b94328c569f7e0df6bd24 + @Deprecated // Paper public PlayerQuitEvent(@NotNull final Player who, @Nullable final String quitMessage) { super(who); -+ this.quitMessage = quitMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(quitMessage) : net.kyori.adventure.text.Component.empty(); // Paper ++ this.quitMessage = quitMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(quitMessage) : null; // Paper + } + // Paper start + public PlayerQuitEvent(@NotNull final Player who, @Nullable final net.kyori.adventure.text.Component quitMessage) { @@ -2091,7 +2091,7 @@ index d70c25f404e994766a9ebce89a917c8d0719777c..9b43bb24055b94328c569f7e0df6bd24 + @Deprecated // Paper public void setQuitMessage(@Nullable String quitMessage) { - this.quitMessage = quitMessage; -+ this.quitMessage = quitMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(quitMessage) : net.kyori.adventure.text.Component.empty(); // Paper ++ this.quitMessage = quitMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(quitMessage) : null; // Paper } @NotNull diff --git a/Spigot-API-Patches/0236-Add-API-for-quit-reason.patch b/Spigot-API-Patches/0236-Add-API-for-quit-reason.patch index 680d66c3ba..70e37ffc9b 100644 --- a/Spigot-API-Patches/0236-Add-API-for-quit-reason.patch +++ b/Spigot-API-Patches/0236-Add-API-for-quit-reason.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add API for quit reason diff --git a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java -index 9b43bb24055b94328c569f7e0df6bd24c8ebfd2b..876cdce63a362f9cc208f767c10169e75a798a09 100644 +index 0395ca85a466f6356259078d3bad48b2ce6e57b7..6e9205024ca9d3000a371bd0eb723dcd6c662bce 100644 --- a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java @@ -11,16 +11,28 @@ import org.jetbrains.annotations.Nullable; @@ -22,7 +22,7 @@ index 9b43bb24055b94328c569f7e0df6bd24c8ebfd2b..876cdce63a362f9cc208f767c10169e7 + @Deprecated // Paper + public PlayerQuitEvent(@NotNull final Player who, @Nullable final String quitMessage, @Nullable QuitReason quitReason) { super(who); - this.quitMessage = quitMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(quitMessage) : net.kyori.adventure.text.Component.empty(); // Paper + this.quitMessage = quitMessage != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(quitMessage) : null; // Paper + this.reason = quitReason == null ? QuitReason.DISCONNECTED : quitReason; } // Paper start diff --git a/Spigot-Server-Patches/0010-Adventure.patch b/Spigot-Server-Patches/0010-Adventure.patch index c3a486b688..598c3eddbe 100644 --- a/Spigot-Server-Patches/0010-Adventure.patch +++ b/Spigot-Server-Patches/0010-Adventure.patch @@ -1096,7 +1096,7 @@ index 055555cb5ce63d41cb9a7f4114341b0685879b9e..7875d4c08969b3adc6f95504686cc9fe @Override diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index d34e91887cd73009bf852fb849e495a8affed7a9..287d1c6abd407dc8f1e5b29a95579ff9875bdaec 100644 +index d34e91887cd73009bf852fb849e495a8affed7a9..b7346242ab1df88d33f33109aff6d21ebae052c6 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -25,6 +25,8 @@ import org.apache.logging.log4j.LogManager; @@ -1156,7 +1156,7 @@ index d34e91887cd73009bf852fb849e495a8affed7a9..287d1c6abd407dc8f1e5b29a95579ff9 - this.minecraftServer.getPlayerList().sendMessage(CraftChatMessage.fromString(quitMessage)); + // Paper start - Adventure + net.kyori.adventure.text.Component quitMessage = this.minecraftServer.getPlayerList().disconnect(this.player); -+ if ((quitMessage != null) && (quitMessage.equals(net.kyori.adventure.text.Component.empty()))) { ++ if ((quitMessage != null) && !quitMessage.equals(net.kyori.adventure.text.Component.empty())) { + this.minecraftServer.getPlayerList().sendMessage(PaperAdventure.asVanilla(quitMessage)); + // Paper end } @@ -1243,7 +1243,7 @@ index d34e91887cd73009bf852fb849e495a8affed7a9..287d1c6abd407dc8f1e5b29a95579ff9 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65b11e1ab8 100644 +index 5b49047b820dbe1f326320b71445ac216bf688b5..04d0749287803063c3cb3e92e44da873ceb044c0 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -8,6 +8,7 @@ import com.mojang.authlib.GameProfile; @@ -1271,7 +1271,7 @@ index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65 playerconnection.a(entityplayer.locX(), entityplayer.locY(), entityplayer.locZ(), entityplayer.yaw, entityplayer.pitch); this.players.add(entityplayer); -@@ -197,19 +199,17 @@ public abstract class PlayerList { +@@ -197,19 +199,18 @@ public abstract class PlayerList { // this.sendAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{entityplayer})); // CraftBukkit - replaced with loop below // CraftBukkit start @@ -1284,18 +1284,19 @@ index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65 } - joinMessage = playerJoinEvent.getJoinMessage(); -+ joinMessage = PaperAdventure.asVanilla(playerJoinEvent.joinMessage()); // Paper - Adventure ++ final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); - if (joinMessage != null && joinMessage.length() > 0) { - for (IChatBaseComponent line : org.bukkit.craftbukkit.util.CraftChatMessage.fromString(joinMessage)) { - server.getPlayerList().sendAll(new PacketPlayOutChat(line, ChatMessageType.SYSTEM, SystemUtils.b)); - } -+ if (playerJoinEvent.joinMessage() != net.kyori.adventure.text.Component.empty()) { // Paper - Adventure ++ if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure ++ joinMessage = PaperAdventure.asVanilla(playerJoinEvent.joinMessage()); // Paper - Adventure + server.getPlayerList().sendAll(new PacketPlayOutChat(joinMessage, ChatMessageType.SYSTEM, SystemUtils.b)); // Paper - Adventure } // CraftBukkit end -@@ -406,7 +406,7 @@ public abstract class PlayerList { +@@ -406,7 +407,7 @@ public abstract class PlayerList { } @@ -1304,7 +1305,7 @@ index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65 WorldServer worldserver = entityplayer.getWorldServer(); entityplayer.a(StatisticList.LEAVE_GAME); -@@ -417,7 +417,7 @@ public abstract class PlayerList { +@@ -417,7 +418,7 @@ public abstract class PlayerList { entityplayer.closeInventory(); } @@ -1313,7 +1314,7 @@ index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65 cserver.getPluginManager().callEvent(playerQuitEvent); entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); -@@ -478,7 +478,7 @@ public abstract class PlayerList { +@@ -478,7 +479,7 @@ public abstract class PlayerList { cserver.getScoreboardManager().removePlayer(entityplayer.getBukkitEntity()); // CraftBukkit end @@ -1322,7 +1323,7 @@ index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65 } // CraftBukkit start - Whole method, SocketAddress to LoginListener, added hostname to signature, return EntityPlayer -@@ -524,10 +524,10 @@ public abstract class PlayerList { +@@ -524,10 +525,10 @@ public abstract class PlayerList { } // return chatmessage; @@ -1335,7 +1336,7 @@ index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65 } else if (getIPBans().isBanned(socketaddress) && !getIPBans().get(socketaddress).hasExpired()) { IpBanEntry ipbanentry = this.l.get(socketaddress); -@@ -537,17 +537,17 @@ public abstract class PlayerList { +@@ -537,17 +538,17 @@ public abstract class PlayerList { } // return chatmessage; @@ -1356,7 +1357,7 @@ index 5b49047b820dbe1f326320b71445ac216bf688b5..1b0fe4f27a7346a1466db97e796c4a65 return null; } return entity; -@@ -1068,7 +1068,7 @@ public abstract class PlayerList { +@@ -1068,7 +1069,7 @@ public abstract class PlayerList { public void shutdown() { // CraftBukkit start - disconnect safely for (EntityPlayer player : this.players) { diff --git a/Spigot-Server-Patches/0087-Configurable-Player-Collision.patch b/Spigot-Server-Patches/0087-Configurable-Player-Collision.patch index d6de975ed6..b8960bdf8e 100644 --- a/Spigot-Server-Patches/0087-Configurable-Player-Collision.patch +++ b/Spigot-Server-Patches/0087-Configurable-Player-Collision.patch @@ -57,7 +57,7 @@ index d1581c9d9838797eb425020d21bd0fba432e5652..99dc43159f240135957aee35f6129f19 packetdataserializer.a(this.c); packetdataserializer.a(this.d); diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 430d86aba42de6de057a78d78e9d8c41bc6fd680..a1ec2ae7c3152019b3d01166547e6931d4bf2b57 100644 +index 4612e1d7adc6dad32dac7de040e0b8c45340be8d..e8ede86cab0bfcf1164fcdb6b19a60099b50e5eb 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -77,6 +77,7 @@ public abstract class PlayerList { @@ -68,7 +68,7 @@ index 430d86aba42de6de057a78d78e9d8c41bc6fd680..a1ec2ae7c3152019b3d01166547e6931 public PlayerList(MinecraftServer minecraftserver, IRegistryCustom.Dimension iregistrycustom_dimension, WorldNBTStorage worldnbtstorage, int i) { this.cserver = minecraftserver.server = new CraftServer((DedicatedServer) minecraftserver, this); -@@ -305,6 +306,13 @@ public abstract class PlayerList { +@@ -306,6 +307,13 @@ public abstract class PlayerList { } entityplayer.syncInventory(); @@ -82,7 +82,7 @@ index 430d86aba42de6de057a78d78e9d8c41bc6fd680..a1ec2ae7c3152019b3d01166547e6931 // CraftBukkit - Moved from above, added world PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", entityplayer.getDisplayName().getString(), s1, entityplayer.getId(), worldserver1.worldDataServer.getName(), entityplayer.locX(), entityplayer.locY(), entityplayer.locZ()); } -@@ -425,6 +433,16 @@ public abstract class PlayerList { +@@ -426,6 +434,16 @@ public abstract class PlayerList { entityplayer.playerTick(); // SPIGOT-924 // CraftBukkit end @@ -99,7 +99,7 @@ index 430d86aba42de6de057a78d78e9d8c41bc6fd680..a1ec2ae7c3152019b3d01166547e6931 this.savePlayerFile(entityplayer); if (entityplayer.isPassenger()) { Entity entity = entityplayer.getRootVehicle(); -@@ -1073,6 +1091,13 @@ public abstract class PlayerList { +@@ -1074,6 +1092,13 @@ public abstract class PlayerList { } // CraftBukkit end diff --git a/Spigot-Server-Patches/0135-Enforce-Sync-Player-Saves.patch b/Spigot-Server-Patches/0135-Enforce-Sync-Player-Saves.patch index 974ceaa580..084ce8e5d2 100644 --- a/Spigot-Server-Patches/0135-Enforce-Sync-Player-Saves.patch +++ b/Spigot-Server-Patches/0135-Enforce-Sync-Player-Saves.patch @@ -7,10 +7,10 @@ Saving players async is extremely dangerous. This will force it to main the same way we handle async chunk loads. diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index a1ec2ae7c3152019b3d01166547e6931d4bf2b57..05ef12c3b90191a3998d1251221658c86af99654 100644 +index e8ede86cab0bfcf1164fcdb6b19a60099b50e5eb..fbb7424306d25b0c6dd69229e00c13c4c1a92fec 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -975,11 +975,13 @@ public abstract class PlayerList { +@@ -976,11 +976,13 @@ public abstract class PlayerList { } public void savePlayers() { diff --git a/Spigot-Server-Patches/0142-Properly-handle-async-calls-to-restart-the-server.patch b/Spigot-Server-Patches/0142-Properly-handle-async-calls-to-restart-the-server.patch index e4304c7291..745b9ac557 100644 --- a/Spigot-Server-Patches/0142-Properly-handle-async-calls-to-restart-the-server.patch +++ b/Spigot-Server-Patches/0142-Properly-handle-async-calls-to-restart-the-server.patch @@ -73,10 +73,10 @@ index 7e4a966b5748417223243344bf7c4483e997a237..c6b520f3f8872a0345f76a75f0b48fe1 // Spigot Start private static double calcTps(double avg, double exp, double tps) diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 05ef12c3b90191a3998d1251221658c86af99654..7ecd5e3747fd8acbddcdf5b42285d7b6f3ffbac2 100644 +index fbb7424306d25b0c6dd69229e00c13c4c1a92fec..97cf3f1f4c19606f099de84745301b52295e2391 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1086,9 +1086,15 @@ public abstract class PlayerList { +@@ -1087,9 +1087,15 @@ public abstract class PlayerList { entityplayer.playerInteractManager.b(worldserver.worldDataServer.getGameType()); // CraftBukkit } @@ -92,7 +92,7 @@ index 05ef12c3b90191a3998d1251221658c86af99654..7ecd5e3747fd8acbddcdf5b42285d7b6 player.playerConnection.disconnect(PaperAdventure.asVanilla(this.server.server.shutdownMessage())); // CraftBukkit - add custom shutdown message // Paper - Adventure } // CraftBukkit end -@@ -1101,6 +1107,7 @@ public abstract class PlayerList { +@@ -1102,6 +1108,7 @@ public abstract class PlayerList { } // Paper end } diff --git a/Spigot-Server-Patches/0160-ProfileWhitelistVerifyEvent.patch b/Spigot-Server-Patches/0160-ProfileWhitelistVerifyEvent.patch index e30e6998e2..979d99fc3a 100644 --- a/Spigot-Server-Patches/0160-ProfileWhitelistVerifyEvent.patch +++ b/Spigot-Server-Patches/0160-ProfileWhitelistVerifyEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ProfileWhitelistVerifyEvent diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 07ab0bf135a6903c936606296b6701b970ad48db..d574bc5755b3075aa8d4a566262ee391b463be19 100644 +index fa4a74a496d8b46b8b3a5e5d28a76c8e7bfb3bbb..872b780b337ba75448e679d544373df6d53c8fe4 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -543,9 +543,9 @@ public abstract class PlayerList { +@@ -544,9 +544,9 @@ public abstract class PlayerList { // return chatmessage; if (!gameprofilebanentry.hasExpired()) event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(chatmessage)); // Spigot // Paper - Adventure @@ -21,7 +21,7 @@ index 07ab0bf135a6903c936606296b6701b970ad48db..d574bc5755b3075aa8d4a566262ee391 } else if (getIPBans().isBanned(socketaddress) && !getIPBans().get(socketaddress).hasExpired()) { IpBanEntry ipbanentry = this.l.get(socketaddress); -@@ -937,9 +937,25 @@ public abstract class PlayerList { +@@ -938,9 +938,25 @@ public abstract class PlayerList { this.server.getCommandDispatcher().a(entityplayer); } diff --git a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch index f9d56b33c0..03e069092d 100644 --- a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch +++ b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch @@ -88,7 +88,7 @@ index 3f559918e85b6d5c2ab8ff593b69d40c1db8bb16..d606e3faaf7c58d89539b6bd997978c0 this.o(); } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index a6a9ee8f34a61fbabfb1643b41cfb5e3a72cdf78..77e0d5dde4f3a7c808df545fd8d3870d24c42a38 100644 +index 5b6216e496256e27e2b53e807e5c7bff18e71014..1873ab094f43255c9eca64b3c1c4c6e0fbfe70cf 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -45,6 +45,7 @@ import org.bukkit.event.inventory.ClickType; @@ -117,10 +117,10 @@ index a6a9ee8f34a61fbabfb1643b41cfb5e3a72cdf78..77e0d5dde4f3a7c808df545fd8d3870d this.player.o(); } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index d574bc5755b3075aa8d4a566262ee391b463be19..6c652849a24787a74e7eed16cb30d77e7b293ce9 100644 +index 872b780b337ba75448e679d544373df6d53c8fe4..cb6fa4be113d732ed93d9ccbef99c56f9044e7ee 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -422,7 +422,7 @@ public abstract class PlayerList { +@@ -423,7 +423,7 @@ public abstract class PlayerList { // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it // See SPIGOT-5799, SPIGOT-6145 if (entityplayer.activeContainer != entityplayer.defaultContainer) { diff --git a/Spigot-Server-Patches/0264-Use-ConcurrentHashMap-in-JsonList.patch b/Spigot-Server-Patches/0264-Use-ConcurrentHashMap-in-JsonList.patch index 3d14986a52..b010cee462 100644 --- a/Spigot-Server-Patches/0264-Use-ConcurrentHashMap-in-JsonList.patch +++ b/Spigot-Server-Patches/0264-Use-ConcurrentHashMap-in-JsonList.patch @@ -122,10 +122,10 @@ index da21918ce0339a0eb8f65ce7791a04ceb12749b7..1fc0139cb9694ddea41f57d95774c3b4 this.d.values().stream().map((jsonlistentry) -> { diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 6c652849a24787a74e7eed16cb30d77e7b293ce9..55427a0a8e420eb7eedd9dcc951c56ddc1ef4020 100644 +index cb6fa4be113d732ed93d9ccbef99c56f9044e7ee..ee56306b49224b5421b6d2870019c1aa053873d7 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -546,7 +546,7 @@ public abstract class PlayerList { +@@ -547,7 +547,7 @@ public abstract class PlayerList { } else if (!this.isWhitelisted(gameprofile, event)) { // Paper //chatmessage = new ChatMessage("multiplayer.disconnect.not_whitelisted"); // Paper //event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, org.spigotmc.SpigotConfig.whitelistMessage); // Spigot // Paper - moved to isWhitelisted diff --git a/Spigot-Server-Patches/0331-MC-145260-Fix-Whitelist-On-Off-inconsistency.patch b/Spigot-Server-Patches/0331-MC-145260-Fix-Whitelist-On-Off-inconsistency.patch index b7509f753f..f09611c175 100644 --- a/Spigot-Server-Patches/0331-MC-145260-Fix-Whitelist-On-Off-inconsistency.patch +++ b/Spigot-Server-Patches/0331-MC-145260-Fix-Whitelist-On-Off-inconsistency.patch @@ -11,10 +11,10 @@ everything to the Whitelist object. https://github.com/PaperMC/Paper/issues/1880 diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index dbeb63de4fef480f5f4f3b967ddc93bb11616af5..ce62e3706bb69068d3baa875ea9d227a9c3a9465 100644 +index cdfa9359bbec27dcb59686019bbbffd5f43959c6..64fbe9f17d297fd71add78e72a8fa40ce52a3346 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -944,9 +944,9 @@ public abstract class PlayerList { +@@ -945,9 +945,9 @@ public abstract class PlayerList { } public boolean isWhitelisted(GameProfile gameprofile, org.bukkit.event.player.PlayerLoginEvent loginEvent) { boolean isOp = this.operators.d(gameprofile); diff --git a/Spigot-Server-Patches/0334-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch b/Spigot-Server-Patches/0334-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch index b2412ae715..95a8af85e7 100644 --- a/Spigot-Server-Patches/0334-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch +++ b/Spigot-Server-Patches/0334-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Call WhitelistToggleEvent when whitelist is toggled diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index ce62e3706bb69068d3baa875ea9d227a9c3a9465..7e8178421c43fa3f555b1a30aa15512ab5b3b403 100644 +index 64fbe9f17d297fd71add78e72a8fa40ce52a3346..15f62a4e66b1a2f208019507f8adbaa1c316829c 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1062,6 +1062,7 @@ public abstract class PlayerList { +@@ -1063,6 +1063,7 @@ public abstract class PlayerList { } public void setHasWhitelist(boolean flag) { diff --git a/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch b/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch index 6c866f8c48..cc776dbdd7 100644 --- a/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch +++ b/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch @@ -10,7 +10,7 @@ persistenting Living Entity, SPAWNER for spawners, or DEFAULT since data was not stored. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 8827ccfc77284020496046e755b3639de75c5903..3ba1ca223f689960c637245e1873a4aaa8672a22 100644 +index 00c57501f80fd0988573b36cd7e75a343c7e8e6e..1dbeda9fb385be29b3bb20c33a0487334c6e7c16 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -72,6 +72,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -71,10 +71,10 @@ index 1aecc84479b00a019a5b68f5e726d1c2965ae0f7..c3a5db97fd85b31c6b4bce93527b9d0e // Spigot Start if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) { diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 7e8178421c43fa3f555b1a30aa15512ab5b3b403..b09b3c34eb77df164cbc87f2383dd8dd5517f33d 100644 +index 15f62a4e66b1a2f208019507f8adbaa1c316829c..a3b1e4911b247a493e53710883f8ef36328ab68c 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -262,7 +262,7 @@ public abstract class PlayerList { +@@ -263,7 +263,7 @@ public abstract class PlayerList { // CraftBukkit start WorldServer finalWorldServer = worldserver1; Entity entity = EntityTypes.a(nbttagcompound1.getCompound("Entity"), finalWorldServer, (entity1) -> { @@ -84,7 +84,7 @@ index 7e8178421c43fa3f555b1a30aa15512ab5b3b403..b09b3c34eb77df164cbc87f2383dd8dd }); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index f047f07e768b77feb469c69166f36a3f6779f561..41d466bcd676e6988c4f754d0232d3addb3b6fc5 100644 +index f9d2228fb0543c60d2e0848afb4f927b6a7bce51..47229f73ede76176f884deb9ec623a684d6e81cd 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -930,6 +930,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { diff --git a/Spigot-Server-Patches/0339-Implement-PlayerPostRespawnEvent.patch b/Spigot-Server-Patches/0339-Implement-PlayerPostRespawnEvent.patch index dd0da17f95..41cf42bf9b 100644 --- a/Spigot-Server-Patches/0339-Implement-PlayerPostRespawnEvent.patch +++ b/Spigot-Server-Patches/0339-Implement-PlayerPostRespawnEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement PlayerPostRespawnEvent diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index b09b3c34eb77df164cbc87f2383dd8dd5517f33d..46c7ad88af6f69347477ff96df5c522211d0a577 100644 +index a3b1e4911b247a493e53710883f8ef36328ab68c..ec9d1c98ec58ec6e938a18a1ec86ecc830f12d36 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -668,9 +668,14 @@ public abstract class PlayerList { +@@ -669,9 +669,14 @@ public abstract class PlayerList { // this.a(entityplayer1, entityplayer, worldserver1); // CraftBukkit - removed boolean flag2 = false; @@ -24,7 +24,7 @@ index b09b3c34eb77df164cbc87f2383dd8dd5517f33d..46c7ad88af6f69347477ff96df5c5222 WorldServer worldserver1 = this.server.getWorldServer(entityplayer.getSpawnDimension()); if (worldserver1 != null) { Optional optional; -@@ -721,6 +726,7 @@ public abstract class PlayerList { +@@ -722,6 +727,7 @@ public abstract class PlayerList { location = respawnEvent.getRespawnLocation(); if (!flag) entityplayer.reset(); // SPIGOT-4785 @@ -32,7 +32,7 @@ index b09b3c34eb77df164cbc87f2383dd8dd5517f33d..46c7ad88af6f69347477ff96df5c5222 } else { location.setWorld(worldserver.getWorld()); } -@@ -778,6 +784,13 @@ public abstract class PlayerList { +@@ -779,6 +785,13 @@ public abstract class PlayerList { if (entityplayer.playerConnection.isDisconnected()) { this.savePlayerFile(entityplayer); } diff --git a/Spigot-Server-Patches/0374-Fix-MC-158900.patch b/Spigot-Server-Patches/0374-Fix-MC-158900.patch index 734cd72cc4..796a0fb1e6 100644 --- a/Spigot-Server-Patches/0374-Fix-MC-158900.patch +++ b/Spigot-Server-Patches/0374-Fix-MC-158900.patch @@ -7,10 +7,10 @@ The problem was we were checking isExpired() on the entry, but if it was expired at that point, then it would be null. diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 46c7ad88af6f69347477ff96df5c522211d0a577..a1f71569a6a0d0b69a52092f72fef23c888e636c 100644 +index ec9d1c98ec58ec6e938a18a1ec86ecc830f12d36..1b9781cc301aa09190cceaf9165500d044db5de4 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -534,8 +534,10 @@ public abstract class PlayerList { +@@ -535,8 +535,10 @@ public abstract class PlayerList { Player player = entity.getBukkitEntity(); PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.networkManager.getRawAddress()).getAddress()); diff --git a/Spigot-Server-Patches/0383-Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch b/Spigot-Server-Patches/0383-Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch index ba52bc60cc..1756b4716f 100644 --- a/Spigot-Server-Patches/0383-Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch +++ b/Spigot-Server-Patches/0383-Fix-stuck-in-sneak-when-changing-worlds-MC-10657.patch @@ -18,10 +18,10 @@ index bf68562b08b8d8fecb25a469b4fb4dbc868b0f28..c71a2264438317d1d36ddf56813ccd1c PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); this.world.getServer().getPluginManager().callEvent(changeEvent); diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index a1f71569a6a0d0b69a52092f72fef23c888e636c..a02c51c25d698594281bbe317cd91a44aaf52ebc 100644 +index 1b9781cc301aa09190cceaf9165500d044db5de4..7534c8d31f08b80d77aff29ca4822bc07b1ad8eb 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -773,6 +773,8 @@ public abstract class PlayerList { +@@ -774,6 +774,8 @@ public abstract class PlayerList { entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityEffect(entityplayer.getId(), mobEffect)); } diff --git a/Spigot-Server-Patches/0425-Optimize-Collision-to-not-load-chunks.patch b/Spigot-Server-Patches/0425-Optimize-Collision-to-not-load-chunks.patch index 4fd0dd1e28..a6174af0d4 100644 --- a/Spigot-Server-Patches/0425-Optimize-Collision-to-not-load-chunks.patch +++ b/Spigot-Server-Patches/0425-Optimize-Collision-to-not-load-chunks.patch @@ -14,7 +14,7 @@ movement will load only the chunk the player enters anyways and avoids loading massive amounts of surrounding chunks due to large AABB lookups. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 0adeb46e1a82820df8744379829f6f7a68fa6d2d..3dc33c26150af672df19e3f78572e74ce65bdc79 100644 +index 874dddc5d70dc149c272855a98ed858867dd2bb6..7da08dd7c2396ae1048d857bfae4fee2a9f3b4d9 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -80,6 +80,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -40,10 +40,10 @@ index 7bb0843d76864fc10575532745eb63f9ca478354..25e54a1fadc5d31fb250a3f47524b4f3 Stream c(@Nullable Entity entity, AxisAlignedBB axisalignedbb, Predicate predicate); diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index a02c51c25d698594281bbe317cd91a44aaf52ebc..c52c6cc6ab0bed4fbd088f6d32455e1a58a70c16 100644 +index 7534c8d31f08b80d77aff29ca4822bc07b1ad8eb..d4bf928ccfb31903b2fe69e2c5d78127d7f77721 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -736,6 +736,7 @@ public abstract class PlayerList { +@@ -737,6 +737,7 @@ public abstract class PlayerList { entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); // CraftBukkit end diff --git a/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch b/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch index 45912b0ce1..422c23dfb2 100644 --- a/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch +++ b/Spigot-Server-Patches/0438-Improved-Watchdog-Support.patch @@ -287,10 +287,10 @@ index 87de764f74e8174da4c1a28238375caa6fdb4d5e..1b5c97c74b7224a8ac4d6e834925c050 list.stream().map((playerchunk) -> { CompletableFuture completablefuture; diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index ce097978a072dd5499169277aa1143be97c3b4e1..a37e0330f95c00cc50b70ebbd6381c4acd671ed6 100644 +index 1f1a63a0a9b04aada2f4c66973c69beb9bb93e9d..ef7af4c6b9290ef18977e1aebd57621838685a5a 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -432,7 +432,7 @@ public abstract class PlayerList { +@@ -433,7 +433,7 @@ public abstract class PlayerList { cserver.getPluginManager().callEvent(playerQuitEvent); entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); diff --git a/Spigot-Server-Patches/0451-Broadcast-join-message-to-console.patch b/Spigot-Server-Patches/0451-Broadcast-join-message-to-console.patch index 40221c6c9a..277783d675 100644 --- a/Spigot-Server-Patches/0451-Broadcast-join-message-to-console.patch +++ b/Spigot-Server-Patches/0451-Broadcast-join-message-to-console.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Broadcast join message to console diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index a37e0330f95c00cc50b70ebbd6381c4acd671ed6..678c4d112a431148603144ff4210e101b989e4f0 100644 +index ef7af4c6b9290ef18977e1aebd57621838685a5a..80f549ab92e244478aa12e7113e8f6bf28729f7d 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -213,7 +213,9 @@ public abstract class PlayerList { - joinMessage = PaperAdventure.asVanilla(playerJoinEvent.joinMessage()); // Paper - Adventure +@@ -214,7 +214,9 @@ public abstract class PlayerList { - if (playerJoinEvent.joinMessage() != net.kyori.adventure.text.Component.empty()) { // Paper - Adventure + if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure + joinMessage = PaperAdventure.asVanilla(playerJoinEvent.joinMessage()); // Paper - Adventure - server.getPlayerList().sendAll(new PacketPlayOutChat(joinMessage, ChatMessageType.SYSTEM, SystemUtils.b)); // Paper - Adventure + // Paper start - Removed sendAll for loop and broadcasted to console also + server.getPlayerList().sendMessage(joinMessage); // Paper - Adventure diff --git a/Spigot-Server-Patches/0452-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/Spigot-Server-Patches/0452-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch index c813599a4e..396f84efa1 100644 --- a/Spigot-Server-Patches/0452-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch +++ b/Spigot-Server-Patches/0452-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch @@ -52,7 +52,7 @@ index 33e0a93917e67860704e08e639cca1dbdf3b2708..de9355914ec1dd4f2e5c3a9d9de881c9 if (!(entity instanceof EntityComplexPart)) { EntityTypes entitytypes = entity.getEntityType(); diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 678c4d112a431148603144ff4210e101b989e4f0..69c8d2d57270bf4cff2d0678ebf4a4d4bc83ab4c 100644 +index 80f549ab92e244478aa12e7113e8f6bf28729f7d..a45390e8a8782dc4295515aab033ba93a3a5a34b 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -202,6 +202,12 @@ public abstract class PlayerList { @@ -68,7 +68,7 @@ index 678c4d112a431148603144ff4210e101b989e4f0..69c8d2d57270bf4cff2d0678ebf4a4d4 // CraftBukkit start PlayerJoinEvent playerJoinEvent = new org.bukkit.event.player.PlayerJoinEvent(cserver.getPlayer(entityplayer), PaperAdventure.asAdventure(chatmessage)); // Paper - Adventure cserver.getPluginManager().callEvent(playerJoinEvent); -@@ -236,6 +242,8 @@ public abstract class PlayerList { +@@ -237,6 +243,8 @@ public abstract class PlayerList { entityplayer.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[] { entityplayer1})); } entityplayer.sentListPacket = true; @@ -77,7 +77,7 @@ index 678c4d112a431148603144ff4210e101b989e4f0..69c8d2d57270bf4cff2d0678ebf4a4d4 // CraftBukkit end entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityMetadata(entityplayer.getId(), entityplayer.datawatcher, true)); // CraftBukkit - BungeeCord#2321, send complete data to self on spawn -@@ -261,6 +269,11 @@ public abstract class PlayerList { +@@ -262,6 +270,11 @@ public abstract class PlayerList { playerconnection.sendPacket(new PacketPlayOutEntityEffect(entityplayer.getId(), mobeffect)); } @@ -89,7 +89,7 @@ index 678c4d112a431148603144ff4210e101b989e4f0..69c8d2d57270bf4cff2d0678ebf4a4d4 if (nbttagcompound != null && nbttagcompound.hasKeyOfType("RootVehicle", 10)) { NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("RootVehicle"); // CraftBukkit start -@@ -309,6 +322,10 @@ public abstract class PlayerList { +@@ -310,6 +323,10 @@ public abstract class PlayerList { } } diff --git a/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch b/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch index 318824fe15..905b264892 100644 --- a/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch +++ b/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch @@ -73,7 +73,7 @@ index e5790c2aeaa380a3acc26434f5de78ac746c6d57..bdd4766976902e11411728e6faa93b7e if (entityplayer != null) { this.g = LoginListener.EnumProtocolState.DELAY_ACCEPT; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 5b42d6ff29dfd7415a8b89b36e8522ab4f5494ca..bce167086d12b8b9b955a885ce86b33efa064a3c 100644 +index 503b090870c4307ab11ef5fb7e2692863d7dc9ea..11e63ee879fa8eaa502981bf3fe7fa4f5a6f5668 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -76,6 +76,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -110,7 +110,7 @@ index 5b42d6ff29dfd7415a8b89b36e8522ab4f5494ca..bce167086d12b8b9b955a885ce86b33e this.minecraftServer.getMethodProfiler().enter("keepAlive"); // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 69c8d2d57270bf4cff2d0678ebf4a4d4bc83ab4c..dce3ec8c9cb0ebbf1c2a87cb3225fca95f120314 100644 +index a45390e8a8782dc4295515aab033ba93a3a5a34b..992e3e932133c60b448ec62a322e74ef8deb7599 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -56,11 +56,12 @@ public abstract class PlayerList { @@ -200,7 +200,7 @@ index 69c8d2d57270bf4cff2d0678ebf4a4d4bc83ab4c..dce3ec8c9cb0ebbf1c2a87cb3225fca9 ChatMessage chatmessage; if (entityplayer.getProfile().getName().equalsIgnoreCase(s)) { -@@ -421,6 +472,7 @@ public abstract class PlayerList { +@@ -422,6 +473,7 @@ public abstract class PlayerList { protected void savePlayerFile(EntityPlayer entityplayer) { if (!entityplayer.getBukkitEntity().isPersistent()) return; // CraftBukkit @@ -208,7 +208,7 @@ index 69c8d2d57270bf4cff2d0678ebf4a4d4bc83ab4c..dce3ec8c9cb0ebbf1c2a87cb3225fca9 this.playerFileData.save(entityplayer); ServerStatisticManager serverstatisticmanager = (ServerStatisticManager) entityplayer.getStatisticManager(); // CraftBukkit -@@ -448,7 +500,7 @@ public abstract class PlayerList { +@@ -449,7 +501,7 @@ public abstract class PlayerList { } PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW)); @@ -217,7 +217,7 @@ index 69c8d2d57270bf4cff2d0678ebf4a4d4bc83ab4c..dce3ec8c9cb0ebbf1c2a87cb3225fca9 entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); if (server.isMainThread()) entityplayer.playerTick(); // SPIGOT-924 // Paper - don't tick during emergency shutdowns (Watchdog) -@@ -501,6 +553,13 @@ public abstract class PlayerList { +@@ -502,6 +554,13 @@ public abstract class PlayerList { // this.p.remove(uuid); // CraftBukkit end } @@ -231,7 +231,7 @@ index 69c8d2d57270bf4cff2d0678ebf4a4d4bc83ab4c..dce3ec8c9cb0ebbf1c2a87cb3225fca9 // CraftBukkit start // this.sendAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, new EntityPlayer[]{entityplayer})); -@@ -518,7 +577,7 @@ public abstract class PlayerList { +@@ -519,7 +578,7 @@ public abstract class PlayerList { cserver.getScoreboardManager().removePlayer(entityplayer.getBukkitEntity()); // CraftBukkit end @@ -240,7 +240,7 @@ index 69c8d2d57270bf4cff2d0678ebf4a4d4bc83ab4c..dce3ec8c9cb0ebbf1c2a87cb3225fca9 } // CraftBukkit start - Whole method, SocketAddress to LoginListener, added hostname to signature, return EntityPlayer -@@ -537,6 +596,13 @@ public abstract class PlayerList { +@@ -538,6 +597,13 @@ public abstract class PlayerList { list.add(entityplayer); } } diff --git a/Spigot-Server-Patches/0470-No-Tick-view-distance-implementation.patch b/Spigot-Server-Patches/0470-No-Tick-view-distance-implementation.patch index f850f6df02..98bc0d951b 100644 --- a/Spigot-Server-Patches/0470-No-Tick-view-distance-implementation.patch +++ b/Spigot-Server-Patches/0470-No-Tick-view-distance-implementation.patch @@ -577,7 +577,7 @@ index ebca5620f0bbd4173ca50f023f8333b853ab323a..025a5b24e259df04ee88cb251477c908 } } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index dce3ec8c9cb0ebbf1c2a87cb3225fca95f120314..778ceccf4c0ee6c56ead351ea9d4688d3fc9b041 100644 +index 992e3e932133c60b448ec62a322e74ef8deb7599..1dfd884d9b2dfb3b8c44afb8363019681ae49d84 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -177,7 +177,7 @@ public abstract class PlayerList { @@ -589,7 +589,7 @@ index dce3ec8c9cb0ebbf1c2a87cb3225fca95f120314..778ceccf4c0ee6c56ead351ea9d4688d entityplayer.getBukkitEntity().sendSupportedChannels(); // CraftBukkit playerconnection.sendPacket(new PacketPlayOutCustomPayload(PacketPlayOutCustomPayload.a, (new PacketDataSerializer(Unpooled.buffer())).a(this.getServer().getServerModName()))); playerconnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked())); -@@ -830,7 +830,7 @@ public abstract class PlayerList { +@@ -831,7 +831,7 @@ public abstract class PlayerList { // CraftBukkit start WorldData worlddata = worldserver1.getWorldData(); entityplayer1.playerConnection.sendPacket(new PacketPlayOutRespawn(worldserver1.getDimensionManager(), worldserver1.getDimensionKey(), BiomeManager.a(worldserver1.getSeed()), entityplayer1.playerInteractManager.getGameMode(), entityplayer1.playerInteractManager.c(), worldserver1.isDebugWorld(), worldserver1.isFlatWorld(), flag)); @@ -598,7 +598,7 @@ index dce3ec8c9cb0ebbf1c2a87cb3225fca95f120314..778ceccf4c0ee6c56ead351ea9d4688d entityplayer1.spawnIn(worldserver1); entityplayer1.dead = false; entityplayer1.playerConnection.teleport(new Location(worldserver1.getWorld(), entityplayer1.locX(), entityplayer1.locY(), entityplayer1.locZ(), entityplayer1.yaw, entityplayer1.pitch)); -@@ -1298,7 +1298,7 @@ public abstract class PlayerList { +@@ -1299,7 +1299,7 @@ public abstract class PlayerList { public void a(int i) { this.viewDistance = i; diff --git a/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch index 800ce7a010..8656c7738f 100644 --- a/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch +++ b/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch @@ -1146,7 +1146,7 @@ index e38c9a8f4bf017db9f296bffcd029f9603ee82f6..19a31536d40289cba25120d4cc4788e9 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 1570fc9490bfb776cfdfdf594d5b666563a3b342..9fe5c5109775f5d11bce47f88b78c20da971336e 100644 +index 6a3cd67816ee3cb79d00a2ea9e71af3d840b87c2..8e21c1d9bc47f5fc451bb0ff51480ca4cd1fff6e 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -1379,6 +1379,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -1158,7 +1158,7 @@ index 1570fc9490bfb776cfdfdf594d5b666563a3b342..9fe5c5109775f5d11bce47f88b78c20d } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 778ceccf4c0ee6c56ead351ea9d4688d3fc9b041..4ff99bbe820948a6f6a04588fa5505edc9932f21 100644 +index 1dfd884d9b2dfb3b8c44afb8363019681ae49d84..4bf086ab2ee2514515ab8238a30b766e5c9d3ea9 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -198,8 +198,8 @@ public abstract class PlayerList { @@ -1172,7 +1172,7 @@ index 778ceccf4c0ee6c56ead351ea9d4688d3fc9b041..4ff99bbe820948a6f6a04588fa5505ed PlayerChunk updatingChunk = playerChunkMap.getUpdatingChunk(pos.pair()); if (updatingChunk != null) { return updatingChunk.getEntityTickingFuture(); -@@ -618,6 +618,7 @@ public abstract class PlayerList { +@@ -619,6 +619,7 @@ public abstract class PlayerList { SocketAddress socketaddress = loginlistener.networkManager.getSocketAddress(); EntityPlayer entity = new EntityPlayer(this.server, this.server.getWorldServer(World.OVERWORLD), gameprofile, new PlayerInteractManager(this.server.getWorldServer(World.OVERWORLD))); @@ -1180,7 +1180,7 @@ index 778ceccf4c0ee6c56ead351ea9d4688d3fc9b041..4ff99bbe820948a6f6a04588fa5505ed Player player = entity.getBukkitEntity(); PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.networkManager.getRawAddress()).getAddress()); -@@ -824,6 +825,7 @@ public abstract class PlayerList { +@@ -825,6 +826,7 @@ public abstract class PlayerList { // CraftBukkit end worldserver1.getChunkProvider().addTicket(TicketType.POST_TELEPORT, new ChunkCoordIntPair(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper diff --git a/Spigot-Server-Patches/0487-Optimize-sending-packets-to-nearby-locations-sounds-.patch b/Spigot-Server-Patches/0487-Optimize-sending-packets-to-nearby-locations-sounds-.patch index b4af7c9e76..c2a15c96e2 100644 --- a/Spigot-Server-Patches/0487-Optimize-sending-packets-to-nearby-locations-sounds-.patch +++ b/Spigot-Server-Patches/0487-Optimize-sending-packets-to-nearby-locations-sounds-.patch @@ -11,10 +11,10 @@ This will drastically cut down on packet sending cost for worlds with lots of players in them. diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 4ff99bbe820948a6f6a04588fa5505edc9932f21..e7900a3f5ef54108bfe8397d7ee096563a9f9fa1 100644 +index 4bf086ab2ee2514515ab8238a30b766e5c9d3ea9..336e95013d4ff50246d22893d0c89af0245c9109 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1075,16 +1075,40 @@ public abstract class PlayerList { +@@ -1076,16 +1076,40 @@ public abstract class PlayerList { } public void sendPacketNearby(@Nullable EntityHuman entityhuman, double d0, double d1, double d2, double d3, ResourceKey resourcekey, Packet packet) { diff --git a/Spigot-Server-Patches/0533-Fix-SPIGOT-5989.patch b/Spigot-Server-Patches/0533-Fix-SPIGOT-5989.patch index e7077f950a..e221a63191 100644 --- a/Spigot-Server-Patches/0533-Fix-SPIGOT-5989.patch +++ b/Spigot-Server-Patches/0533-Fix-SPIGOT-5989.patch @@ -10,10 +10,10 @@ This fixes that by checking if the modified spawn location is still at a respawn anchor. diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 1da28f6eb3cf7d31e0b491238ec234236afc5b5a..4e2892f36fbc0176cbd6a250c0d23248f693972c 100644 +index 3f18a8cbea821cb878e0b0d3dde3b3e89b80715f..5255f3b0209226ee09827a51bb8282a220184975 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -772,6 +772,7 @@ public abstract class PlayerList { +@@ -773,6 +773,7 @@ public abstract class PlayerList { // Paper start boolean isBedSpawn = false; boolean isRespawn = false; @@ -21,7 +21,7 @@ index 1da28f6eb3cf7d31e0b491238ec234236afc5b5a..4e2892f36fbc0176cbd6a250c0d23248 // Paper end // CraftBukkit start - fire PlayerRespawnEvent -@@ -782,7 +783,7 @@ public abstract class PlayerList { +@@ -783,7 +784,7 @@ public abstract class PlayerList { Optional optional; if (blockposition != null) { @@ -30,7 +30,7 @@ index 1da28f6eb3cf7d31e0b491238ec234236afc5b5a..4e2892f36fbc0176cbd6a250c0d23248 } else { optional = Optional.empty(); } -@@ -825,7 +826,12 @@ public abstract class PlayerList { +@@ -826,7 +827,12 @@ public abstract class PlayerList { } // Spigot End @@ -44,7 +44,7 @@ index 1da28f6eb3cf7d31e0b491238ec234236afc5b5a..4e2892f36fbc0176cbd6a250c0d23248 if (!flag) entityplayer.reset(); // SPIGOT-4785 isRespawn = true; // Paper } else { -@@ -863,8 +869,12 @@ public abstract class PlayerList { +@@ -864,8 +870,12 @@ public abstract class PlayerList { } // entityplayer1.syncInventory(); entityplayer1.setHealth(entityplayer1.getHealth()); diff --git a/Spigot-Server-Patches/0540-Incremental-player-saving.patch b/Spigot-Server-Patches/0540-Incremental-player-saving.patch index 9ae84a5f9f..eb48e4fec2 100644 --- a/Spigot-Server-Patches/0540-Incremental-player-saving.patch +++ b/Spigot-Server-Patches/0540-Incremental-player-saving.patch @@ -59,10 +59,10 @@ index ca417825eb0827caad817f65b5132f1de37e3679..69fcfff3f21168f334fd526cb65e63e0 // Paper start for (WorldServer world : getWorlds()) { diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 4e2892f36fbc0176cbd6a250c0d23248f693972c..0592ee3511d5532440944af45fe5428077c88d7f 100644 +index 5255f3b0209226ee09827a51bb8282a220184975..f04b23b6ccf45701fc98dbbe9757181c94d82192 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -484,6 +484,7 @@ public abstract class PlayerList { +@@ -485,6 +485,7 @@ public abstract class PlayerList { protected void savePlayerFile(EntityPlayer entityplayer) { if (!entityplayer.getBukkitEntity().isPersistent()) return; // CraftBukkit if (!entityplayer.didPlayerJoinEvent) return; // Paper - If we never fired PJE, we disconnected during login. Data has not changed, and additionally, our saved vehicle is not loaded! If we save now, we will lose our vehicle (CraftBukkit bug) @@ -70,7 +70,7 @@ index 4e2892f36fbc0176cbd6a250c0d23248f693972c..0592ee3511d5532440944af45fe54280 this.playerFileData.save(entityplayer); ServerStatisticManager serverstatisticmanager = (ServerStatisticManager) entityplayer.getStatisticManager(); // CraftBukkit -@@ -1143,10 +1144,21 @@ public abstract class PlayerList { +@@ -1144,10 +1145,21 @@ public abstract class PlayerList { } public void savePlayers() { diff --git a/Spigot-Server-Patches/0598-Add-API-for-quit-reason.patch b/Spigot-Server-Patches/0598-Add-API-for-quit-reason.patch index 5a4e9e7984..982206def1 100644 --- a/Spigot-Server-Patches/0598-Add-API-for-quit-reason.patch +++ b/Spigot-Server-Patches/0598-Add-API-for-quit-reason.patch @@ -37,7 +37,7 @@ index fc4ad72ffaed5e747cfecc71e9ac8ee2b556ce31..fb1e3c705b8abee13695762cdfd0e9f1 NetworkManager.LOGGER.debug("Failed to sent packet", throwable); this.sendPacket(new PacketPlayOutKickDisconnect(chatmessage), (future) -> { diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 0f27428757b1827a625a25ea8f6435882f7b5f8a..54b109777c4383cfb4bef8f8ea8e4a9f1cbc9c7c 100644 +index 618675689dc22303a8f52f976dd89f07a299b221..f66201c839c25c101977628ac4b6f0f7eda5b2ca 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -298,6 +298,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -49,10 +49,10 @@ index 0f27428757b1827a625a25ea8f6435882f7b5f8a..54b109777c4383cfb4bef8f8ea8e4a9f this.networkManager.close(ichatbasecomponent); }); diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 9080f28d8c8ce20ea9934384bd14932145c64de0..c074f0b451b5bbaab977a7512045a6da9399ed32 100644 +index 38c20c3f7c8a602770aceb9b561b7fb2eb3c86aa..4378e81421b766219908e4e15ffe4ab774c65f0e 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -511,7 +511,7 @@ public abstract class PlayerList { +@@ -512,7 +512,7 @@ public abstract class PlayerList { entityplayer.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper } diff --git a/Spigot-Server-Patches/0602-Expose-world-spawn-angle.patch b/Spigot-Server-Patches/0602-Expose-world-spawn-angle.patch index 4d697748a5..b5f0ed06cc 100644 --- a/Spigot-Server-Patches/0602-Expose-world-spawn-angle.patch +++ b/Spigot-Server-Patches/0602-Expose-world-spawn-angle.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose world spawn angle diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index c074f0b451b5bbaab977a7512045a6da9399ed32..43176569a34a4c6af7a3fe7acf0c00da2f6fc91c 100644 +index 4378e81421b766219908e4e15ffe4ab774c65f0e..643694ff776986fdbecadff57b9a9b49763dc50c 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -815,7 +815,7 @@ public abstract class PlayerList { +@@ -816,7 +816,7 @@ public abstract class PlayerList { if (location == null) { worldserver1 = this.server.getWorldServer(World.OVERWORLD); blockposition = entityplayer1.getSpawnPoint(worldserver1); @@ -30,7 +30,7 @@ index faf931785ea35df4525d4a429bdb2363e26e491b..14e1762bf8669ef9e8444f5a73952daa long getTime(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 1162bf553ff6e5c5faf688b080a202dc55650ced..597d7a36d7d0b19502d92cf13da53d96c6ede58a 100644 +index 13614705328e5ae4432b585fe94d04f87b147dae..fe21b612f9bd2cf85670eeffa25998130b543339 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -379,7 +379,7 @@ public class CraftWorld implements World { diff --git a/Spigot-Server-Patches/0648-Fix-villager-boat-exploit.patch b/Spigot-Server-Patches/0648-Fix-villager-boat-exploit.patch index a7bba2a929..e395d465ec 100644 --- a/Spigot-Server-Patches/0648-Fix-villager-boat-exploit.patch +++ b/Spigot-Server-Patches/0648-Fix-villager-boat-exploit.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix villager boat exploit diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 43176569a34a4c6af7a3fe7acf0c00da2f6fc91c..ab1c23c12619aaea67cf3a484af3046a3e7c4872 100644 +index 643694ff776986fdbecadff57b9a9b49763dc50c..ae2af6bbd62ba3487b82afe4948cb3b2aa16bf2d 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -542,6 +542,15 @@ public abstract class PlayerList { +@@ -543,6 +543,15 @@ public abstract class PlayerList { for (Iterator iterator = entity.getAllPassengers().iterator(); iterator.hasNext(); entity1.dead = true) { entity1 = (Entity) iterator.next(); diff --git a/Spigot-Server-Patches/0650-Add-sendOpLevel-API.patch b/Spigot-Server-Patches/0650-Add-sendOpLevel-API.patch index acab1a094c..67a27af61c 100644 --- a/Spigot-Server-Patches/0650-Add-sendOpLevel-API.patch +++ b/Spigot-Server-Patches/0650-Add-sendOpLevel-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index ab1c23c12619aaea67cf3a484af3046a3e7c4872..e1ab296811081a0d1449d48d16de065c070fde23 100644 +index ae2af6bbd62ba3487b82afe4948cb3b2aa16bf2d..4a20235f34dc272b0a7939b97cf3448919c4f753 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1058,6 +1058,11 @@ public abstract class PlayerList { +@@ -1059,6 +1059,11 @@ public abstract class PlayerList { } private void a(EntityPlayer entityplayer, int i) { @@ -20,7 +20,7 @@ index ab1c23c12619aaea67cf3a484af3046a3e7c4872..e1ab296811081a0d1449d48d16de065c if (entityplayer.playerConnection != null) { byte b0; -@@ -1072,8 +1077,10 @@ public abstract class PlayerList { +@@ -1073,8 +1078,10 @@ public abstract class PlayerList { entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, b0)); }