diff --git a/patches/api/0281-Add-EntityInsideBlockEvent.patch b/patches/api/0281-Add-EntityInsideBlockEvent.patch index 2805c40dcc..b055847730 100644 --- a/patches/api/0281-Add-EntityInsideBlockEvent.patch +++ b/patches/api/0281-Add-EntityInsideBlockEvent.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add EntityInsideBlockEvent diff --git a/src/main/java/io/papermc/paper/event/entity/EntityInsideBlockEvent.java b/src/main/java/io/papermc/paper/event/entity/EntityInsideBlockEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..3e98db83060e614c606de41dcd4b4ac4f242edc9 +index 0000000000000000000000000000000000000000..b162d4b6f12c0d7d3542ada3bdae24471a16d622 --- /dev/null +++ b/src/main/java/io/papermc/paper/event/entity/EntityInsideBlockEvent.java -@@ -0,0 +1,86 @@ +@@ -0,0 +1,87 @@ +package io.papermc.paper.event.entity; + +import org.bukkit.block.Block; @@ -35,6 +35,7 @@ index 0000000000000000000000000000000000000000..3e98db83060e614c606de41dcd4b4ac4 + *
  • Campfire
  • + *
  • Cauldron
  • + *
  • Crops
  • ++ *
  • End Gateway
  • + *
  • Ender Portal
  • + *
  • Fires
  • + *
  • Frogspawn
  • diff --git a/patches/unapplied/server/0562-Fix-dangerous-end-portal-logic.patch b/patches/removed/1.21/0562-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/unapplied/server/0562-Fix-dangerous-end-portal-logic.patch rename to patches/removed/1.21/0562-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index c47b6a48fc..66ee2a96b4 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2775,7 +2775,7 @@ index 5f8adf662e5ab9114e2891cfacb8db5d4d40a297..a8a7f1fcf235508d9437ec7c550c3a38 this.chatVisibility = clientOptions.chatVisibility(); this.canChatColor = clientOptions.chatColors(); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 677ee8dfa0d2f5bcb23ee870a76bcee63e557813..94008b8a1f2dafdb9efa1fec6096d3eb632b9a5e 100644 +index 677ee8dfa0d2f5bcb23ee870a76bcee63e557813..678f12679985c6fa9effe8beec306d95d5e0bdac 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -67,7 +67,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -2819,7 +2819,7 @@ index 677ee8dfa0d2f5bcb23ee870a76bcee63e557813..94008b8a1f2dafdb9efa1fec6096d3eb } + // Paper start - adventure -+ public void disconnect(@Nullable final net.kyori.adventure.text.Component reason) { ++ public void disconnect(final net.kyori.adventure.text.Component reason) { + this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(reason)); + } + // Paper end - adventure @@ -2977,7 +2977,7 @@ index 2c555c5ad05992b19f67b883c3c0ec7018180747..71540687b4212702cdaaad5fd4815fb3 @Override diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6abe921099ff00ecfaf0f423ef27d708420f6f48..9113c183f1e977f71eea95a891618883b075ce5a 100644 +index 6abe921099ff00ecfaf0f423ef27d708420f6f48..e9109526880159e2341cc97b53939ba2bcfaeaf9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -271,7 +271,7 @@ public abstract class PlayerList { @@ -3082,7 +3082,7 @@ index 6abe921099ff00ecfaf0f423ef27d708420f6f48..9113c183f1e977f71eea95a891618883 // CraftBukkit start - disconnect safely for (ServerPlayer player : this.players) { - player.connection.disconnect(CraftChatMessage.fromStringOrEmpty(this.server.server.getShutdownMessage())); // CraftBukkit - add custom shutdown message -+ player.connection.disconnect(this.server.server.shutdownMessage()); // CraftBukkit - add custom shutdown message // Paper - Adventure ++ player.connection.disconnect(java.util.Objects.requireNonNullElseGet(this.server.server.shutdownMessage(), net.kyori.adventure.text.Component::empty)); // CraftBukkit - add custom shutdown message // Paper - Adventure } // CraftBukkit end diff --git a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch index 720176d247..0ea8ae4013 100644 --- a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -382,7 +382,7 @@ index 3d92c61f7781221cfdc0324d11bd0088954e4a68..84a2c6c397604279ba821286f5c3c855 if (!SwingUtilities.isEventDispatchThread()) { SwingUtilities.invokeLater(() -> { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9113c183f1e977f71eea95a891618883b075ce5a..9807c5b2b248a62a476bfe3ae023d57d35811049 100644 +index e9109526880159e2341cc97b53939ba2bcfaeaf9..9dcfcea63f57f45a5584bb80c34fe445d65849e8 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -161,8 +161,7 @@ public abstract class PlayerList { diff --git a/patches/server/0023-Timings-v2.patch b/patches/server/0023-Timings-v2.patch index 1e8501da78..5a6f57a089 100644 --- a/patches/server/0023-Timings-v2.patch +++ b/patches/server/0023-Timings-v2.patch @@ -1277,7 +1277,7 @@ index 27cf5dceba5835f94f5397ec011f409e7b226ad5..4f50e2f5de529813c269b7670a47e063 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9807c5b2b248a62a476bfe3ae023d57d35811049..62174dae20bd9ff092238f1437f7e2b0114ef83b 100644 +index 9dcfcea63f57f45a5584bb80c34fe445d65849e8..765c412cd0c5cd410c224b4bc55dbf431fd6617b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1,5 +1,6 @@ diff --git a/patches/server/0054-Add-PlayerInitialSpawnEvent.patch b/patches/server/0054-Add-PlayerInitialSpawnEvent.patch index cc08d58fcb..47543684e8 100644 --- a/patches/server/0054-Add-PlayerInitialSpawnEvent.patch +++ b/patches/server/0054-Add-PlayerInitialSpawnEvent.patch @@ -12,7 +12,7 @@ improve setPosition to use raw public net.minecraft.world.entity.Entity setRot(FF)V diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 62174dae20bd9ff092238f1437f7e2b0114ef83b..a3e695c321b9164822506e787bb5c54813aad7c2 100644 +index 765c412cd0c5cd410c224b4bc55dbf431fd6617b..3cc30aaf63a3a953c1947f0f19ca8816b92654f6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -226,7 +226,7 @@ public abstract class PlayerList { diff --git a/patches/server/0067-Complete-resource-pack-API.patch b/patches/server/0067-Complete-resource-pack-API.patch index 3e377d04c1..1b635ae17f 100644 --- a/patches/server/0067-Complete-resource-pack-API.patch +++ b/patches/server/0067-Complete-resource-pack-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 94008b8a1f2dafdb9efa1fec6096d3eb632b9a5e..d2061ea6f670edd33be2460eef0b489e88857690 100644 +index 678f12679985c6fa9effe8beec306d95d5e0bdac..8520f0f2b4b4e758b2e2fae206b7fd818a6fa14f 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -202,7 +202,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0089-Configurable-Player-Collision.patch b/patches/server/0089-Configurable-Player-Collision.patch index e6bf7fd1ae..2604d242a1 100644 --- a/patches/server/0089-Configurable-Player-Collision.patch +++ b/patches/server/0089-Configurable-Player-Collision.patch @@ -43,7 +43,7 @@ index 4fd88b63ae6e6aa3265f72f4f0ae1b1895b70be9..8f0a0384d12b738553a6bec02e3b9438 if (io.papermc.paper.plugin.PluginInitializerManager.instance().pluginRemapper != null) io.papermc.paper.plugin.PluginInitializerManager.instance().pluginRemapper.pluginsEnabled(); // Paper - Remap plugins this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP)); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a3e695c321b9164822506e787bb5c54813aad7c2..aaae646588a3a09c96a4bc481f15a44a96efbb8e 100644 +index 3cc30aaf63a3a953c1947f0f19ca8816b92654f6..5c7e8387a885221960df818a1c1178f739a72c43 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -159,6 +159,7 @@ public abstract class PlayerList { diff --git a/patches/server/0121-Properly-fix-item-duplication-bug.patch b/patches/server/0121-Properly-fix-item-duplication-bug.patch index 42be9e08a5..01d6cf8f24 100644 --- a/patches/server/0121-Properly-fix-item-duplication-bug.patch +++ b/patches/server/0121-Properly-fix-item-duplication-bug.patch @@ -19,7 +19,7 @@ index 916ba7c09b077bc3c9ed9fad579e607e4c065e06..813c3bc9943e2700d2e4ad2335b7d235 @Override diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index d2061ea6f670edd33be2460eef0b489e88857690..e8d1ade5542dcf01476ba8580cc281b28f36c9a0 100644 +index 8520f0f2b4b4e758b2e2fae206b7fd818a6fa14f..73d40f768b6882062656cba30acc5f86f26d1a96 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -179,7 +179,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0125-Enforce-Sync-Player-Saves.patch b/patches/server/0125-Enforce-Sync-Player-Saves.patch index b867d70b81..b5f9bb065b 100644 --- a/patches/server/0125-Enforce-Sync-Player-Saves.patch +++ b/patches/server/0125-Enforce-Sync-Player-Saves.patch @@ -7,7 +7,7 @@ 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/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index aaae646588a3a09c96a4bc481f15a44a96efbb8e..9d46c2241098959e30a2e45762a67386eeec6d5d 100644 +index 5c7e8387a885221960df818a1c1178f739a72c43..f47c1ccba18b98854fb3671ed5bbce6548a5ef27 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1029,11 +1029,13 @@ public abstract class PlayerList { diff --git a/patches/server/0129-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0129-Properly-handle-async-calls-to-restart-the-server.patch index b9167e41f2..c5198a52d6 100644 --- a/patches/server/0129-Properly-handle-async-calls-to-restart-the-server.patch +++ b/patches/server/0129-Properly-handle-async-calls-to-restart-the-server.patch @@ -64,7 +64,7 @@ index 56d51073eb0cd902fa2c1e790201f74d120b149f..7335f9bb936eeb585ee077b0b9c461d7 if (waitForShutdown) { try { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9d46c2241098959e30a2e45762a67386eeec6d5d..bad29b6f6bf2859a876799a053eef0374b9d7140 100644 +index f47c1ccba18b98854fb3671ed5bbce6548a5ef27..c2faf513ad435f979d889d43809e2caa92d11b18 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1143,8 +1143,15 @@ public abstract class PlayerList { @@ -79,8 +79,8 @@ index 9d46c2241098959e30a2e45762a67386eeec6d5d..bad29b6f6bf2859a876799a053eef037 + // Paper end // CraftBukkit start - disconnect safely for (ServerPlayer player : this.players) { -+ if (isRestarting) player.connection.disconnect(org.spigotmc.SpigotConfig.restartMessage); else // Paper - player.connection.disconnect(this.server.server.shutdownMessage()); // CraftBukkit - add custom shutdown message // Paper - Adventure ++ if (isRestarting) player.connection.disconnect(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.restartMessage)); else // Paper + player.connection.disconnect(java.util.Objects.requireNonNullElseGet(this.server.server.shutdownMessage(), net.kyori.adventure.text.Component::empty)); // CraftBukkit - add custom shutdown message // Paper - Adventure } // CraftBukkit end diff --git a/src/main/java/org/spigotmc/RestartCommand.java b/src/main/java/org/spigotmc/RestartCommand.java diff --git a/patches/server/0146-ProfileWhitelistVerifyEvent.patch b/patches/server/0146-ProfileWhitelistVerifyEvent.patch index fdf3cb1943..8e32031865 100644 --- a/patches/server/0146-ProfileWhitelistVerifyEvent.patch +++ b/patches/server/0146-ProfileWhitelistVerifyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ProfileWhitelistVerifyEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index bad29b6f6bf2859a876799a053eef0374b9d7140..1c3b21eaff8481724858cf3013dbfc2f210f317b 100644 +index c2faf513ad435f979d889d43809e2caa92d11b18..5375fd660e3ed4a5997896d28ea234a81d183a10 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -624,9 +624,9 @@ public abstract class PlayerList { diff --git a/patches/server/0153-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0153-handle-ServerboundKeepAlivePacket-async.patch index cc671fd5ce..4bf90ddb29 100644 --- a/patches/server/0153-handle-ServerboundKeepAlivePacket-async.patch +++ b/patches/server/0153-handle-ServerboundKeepAlivePacket-async.patch @@ -15,7 +15,7 @@ also adding some additional logging in order to help work out what is causing random disconnections for clients. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index e8d1ade5542dcf01476ba8580cc281b28f36c9a0..0ac9f9d4816767ced7928a7d79743d97870a21a4 100644 +index 73d40f768b6882062656cba30acc5f86f26d1a96..07d2e60bcd7d1f3ba2f8005ec496561b3648ae86 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -117,14 +117,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0155-revert-serverside-behavior-of-keepalives.patch b/patches/server/0155-revert-serverside-behavior-of-keepalives.patch index 1e370538f2..349786b31a 100644 --- a/patches/server/0155-revert-serverside-behavior-of-keepalives.patch +++ b/patches/server/0155-revert-serverside-behavior-of-keepalives.patch @@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients, at the cost of dead connections being kept open for longer. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 0ac9f9d4816767ced7928a7d79743d97870a21a4..e2a07d4e006d90132102a6449d57dd9e9642e6af 100644 +index 07d2e60bcd7d1f3ba2f8005ec496561b3648ae86..382920335337c8d0abd8b1f600fddd391249fe21 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -69,7 +69,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0177-Player.setPlayerProfile-API.patch b/patches/server/0177-Player.setPlayerProfile-API.patch index c8bb5b87a0..b9c84d7202 100644 --- a/patches/server/0177-Player.setPlayerProfile-API.patch +++ b/patches/server/0177-Player.setPlayerProfile-API.patch @@ -40,7 +40,7 @@ index 2d9db1ac80216a509a7590254e422b3c4792e3ec..b31f00f2f0b7cec59301afe36c9dd7cd playerName = gameprofile.getName(); uniqueId = gameprofile.getId(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1c3b21eaff8481724858cf3013dbfc2f210f317b..8ff6b8ada1cfb9a4b344ba7d77db95f3ddcff6c5 100644 +index 5375fd660e3ed4a5997896d28ea234a81d183a10..e959c7e45bffdcf46908a6919c07a0cdf9aa83bb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -831,10 +831,16 @@ public abstract class PlayerList { diff --git a/patches/server/0209-InventoryCloseEvent-Reason-API.patch b/patches/server/0209-InventoryCloseEvent-Reason-API.patch index 535abc02a9..fa629e4a55 100644 --- a/patches/server/0209-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0209-InventoryCloseEvent-Reason-API.patch @@ -96,7 +96,7 @@ index ecc2ce39629f6edbd09e96c85e14ab2196ac3173..75736ebe99e96a20c2c3e7ac5350ab55 this.player.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8ff6b8ada1cfb9a4b344ba7d77db95f3ddcff6c5..0c3be0663a3e69701e6b91ef65c7fbd764ae7c46 100644 +index e959c7e45bffdcf46908a6919c07a0cdf9aa83bb..3cb56ccb3a42871488b76706d7a6edecd122c418 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -510,7 +510,7 @@ public abstract class PlayerList { diff --git a/patches/server/0229-Use-ConcurrentHashMap-in-JsonList.patch b/patches/server/0229-Use-ConcurrentHashMap-in-JsonList.patch index 394f6f876a..96c9189932 100644 --- a/patches/server/0229-Use-ConcurrentHashMap-in-JsonList.patch +++ b/patches/server/0229-Use-ConcurrentHashMap-in-JsonList.patch @@ -23,7 +23,7 @@ Modified isEmpty to use the isEmpty() method instead of the slightly confusing s The point of this is readability, but does have a side-benefit of a small microptimization diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0c3be0663a3e69701e6b91ef65c7fbd764ae7c46..91206bb797f82936abea75f1956c08a92a15bd2c 100644 +index 3cb56ccb3a42871488b76706d7a6edecd122c418..db80ad51dd824c2d6d119184fd80d3c12199862c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -627,7 +627,7 @@ public abstract class PlayerList { diff --git a/patches/server/0273-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0273-Replace-OfflinePlayer-getLastPlayed.patch index b6fbf5917a..714e43f6b9 100644 --- a/patches/server/0273-Replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0273-Replace-OfflinePlayer-getLastPlayed.patch @@ -28,7 +28,7 @@ index fcbb0b64feb8d5624de3805d4db6d489110b4e69..a2adbad6382276b149c41ff422e4aa9b public boolean queueHealthUpdatePacket; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 91206bb797f82936abea75f1956c08a92a15bd2c..92e81514ce85f32303506d6ffc501946c0320c83 100644 +index db80ad51dd824c2d6d119184fd80d3c12199862c..91c1f58aea3f0f7ee5dd314aa3dda099d12ffb46 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -182,6 +182,7 @@ public abstract class PlayerList { diff --git a/patches/server/0281-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch b/patches/server/0281-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch index e5983ba805..1465cee6a5 100644 --- a/patches/server/0281-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch +++ b/patches/server/0281-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Call WhitelistToggleEvent when whitelist is toggled diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 92e81514ce85f32303506d6ffc501946c0320c83..f82728bece2723a8f676ebc5b09885c7833174e4 100644 +index 91c1f58aea3f0f7ee5dd314aa3dda099d12ffb46..6dff0c73f1187daed7c037b5c781b6e4c681723c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1126,6 +1126,7 @@ public abstract class PlayerList { diff --git a/patches/server/0282-Entity-getEntitySpawnReason.patch b/patches/server/0282-Entity-getEntitySpawnReason.patch index df07a434a3..4c322684f3 100644 --- a/patches/server/0282-Entity-getEntitySpawnReason.patch +++ b/patches/server/0282-Entity-getEntitySpawnReason.patch @@ -34,7 +34,7 @@ index b151506b96a51c74ba408cb555a4d38507b2f8c1..bbcee9d8dbf17085b11bb5e38eb37271 // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f82728bece2723a8f676ebc5b09885c7833174e4..f9794c0eaced71d242cb04b0815bad322ed7165d 100644 +index 6dff0c73f1187daed7c037b5c781b6e4c681723c..f3b154a14690d6a4650f20a4ab7da7b727b0fa49 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -223,6 +223,11 @@ public abstract class PlayerList { diff --git a/patches/server/0284-Add-PlayerPostRespawnEvent.patch b/patches/server/0284-Add-PlayerPostRespawnEvent.patch index a20ec67bd9..a35b7e7db0 100644 --- a/patches/server/0284-Add-PlayerPostRespawnEvent.patch +++ b/patches/server/0284-Add-PlayerPostRespawnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPostRespawnEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f9794c0eaced71d242cb04b0815bad322ed7165d..7fa13f1fe02a1bdfa93c76e9c2eefc81c9bded50 100644 +index f3b154a14690d6a4650f20a4ab7da7b727b0fa49..54668cfc4666b07681d03c1c2cbad0f387b89b2b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -738,6 +738,10 @@ public abstract class PlayerList { diff --git a/patches/server/0291-Fix-CB-call-to-changed-postToMainThread-method.patch b/patches/server/0291-Fix-CB-call-to-changed-postToMainThread-method.patch index d174f5594c..06263e3eef 100644 --- a/patches/server/0291-Fix-CB-call-to-changed-postToMainThread-method.patch +++ b/patches/server/0291-Fix-CB-call-to-changed-postToMainThread-method.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix CB call to changed postToMainThread method diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index e2a07d4e006d90132102a6449d57dd9e9642e6af..adf953994d2c7e8f1e15075722ee2b9213e4bf94 100644 +index 382920335337c8d0abd8b1f600fddd391249fe21..2d1fad00ee084841618f0da8113c7aac8c0e2b0d 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -366,7 +366,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0338-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0338-Don-t-move-existing-players-to-world-spawn.patch index ec997ec997..18766aae5d 100644 --- a/patches/server/0338-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0338-Don-t-move-existing-players-to-world-spawn.patch @@ -35,7 +35,7 @@ index d2f5ff035d4d496c035b8ae0c04c67e3de78fd4b..142bdd74f930a1a2a004c8b6d9435318 this.gameMode.setLevel((ServerLevel) world); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 7fa13f1fe02a1bdfa93c76e9c2eefc81c9bded50..5cc92a5f55a9492928c4ba140d4e45dcf75b5431 100644 +index 54668cfc4666b07681d03c1c2cbad0f387b89b2b..511333fc0f00c5de544f5e10ddf4c5262fdf5ee3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -226,6 +226,7 @@ public abstract class PlayerList { diff --git a/patches/server/0346-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0346-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index 0f5c5bbc3d..fff7495c48 100644 --- a/patches/server/0346-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch +++ b/patches/server/0346-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -55,7 +55,7 @@ index df6fb7dd6015ce6e558a97598c822243dcc1c284..b808d9c710d6cd59ac34ea537f603fd4 // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5cc92a5f55a9492928c4ba140d4e45dcf75b5431..47392be43dffcb983c29683263227780a3ddee24 100644 +index 511333fc0f00c5de544f5e10ddf4c5262fdf5ee3..cbad29d23f5c90dadd7d442372247e7befe18e49 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -297,6 +297,12 @@ public abstract class PlayerList { diff --git a/patches/server/0347-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0347-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index 5ab2b2b01d..f015a14ad6 100644 --- a/patches/server/0347-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0347-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 47392be43dffcb983c29683263227780a3ddee24..fa35bc76575a3ffe6435ff24db0c7ad78b53e309 100644 +index cbad29d23f5c90dadd7d442372247e7befe18e49..7d5c82b50c59de0a40ae11e8d7751500288889c5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -197,6 +197,7 @@ public abstract class PlayerList { diff --git a/patches/server/0396-Brand-support.patch b/patches/server/0396-Brand-support.patch index eb4a88b700..b00669312d 100644 --- a/patches/server/0396-Brand-support.patch +++ b/patches/server/0396-Brand-support.patch @@ -17,14 +17,14 @@ index b808d9c710d6cd59ac34ea537f603fd4002073d0..45d36070735cd7a8baee585165a95a16 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index adf953994d2c7e8f1e15075722ee2b9213e4bf94..4761a8d8f342c649bc2e5f530819fa88f43542ec 100644 +index 2d1fad00ee084841618f0da8113c7aac8c0e2b0d..a3c67bdc2c08b3550534f37d15b0db90b479e34f 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -78,6 +78,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack private volatile boolean suspendFlushingOnServerThread = false; public final java.util.Map packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit -+ protected static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support ++ protected static final ResourceLocation MINECRAFT_BRAND = ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit this.server = minecraftserver; diff --git a/patches/server/0435-Add-API-for-quit-reason.patch b/patches/server/0435-Add-API-for-quit-reason.patch index 1354ba8696..bd00466113 100644 --- a/patches/server/0435-Add-API-for-quit-reason.patch +++ b/patches/server/0435-Add-API-for-quit-reason.patch @@ -40,7 +40,7 @@ index 45d36070735cd7a8baee585165a95a169d7059b4..2c24de44e48a1c55b81e2ecfb92c57e4 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 4761a8d8f342c649bc2e5f530819fa88f43542ec..125a80951f6e4d19c6aa61e104339242de7a4b00 100644 +index a3c67bdc2c08b3550534f37d15b0db90b479e34f..24bf661e76fb421a8be565d9ea68edf7205254d2 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -371,6 +371,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -52,7 +52,7 @@ index 4761a8d8f342c649bc2e5f530819fa88f43542ec..125a80951f6e4d19c6aa61e104339242 this.connection.disconnect(disconnectiondetails); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index fa35bc76575a3ffe6435ff24db0c7ad78b53e309..858bbd4add280f0cd04aa94fb0b2f8f9423299cf 100644 +index 7d5c82b50c59de0a40ae11e8d7751500288889c5..60845fe39f6e24474c1fa39c06a8b164348cb326 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,7 +570,7 @@ public abstract class PlayerList { diff --git a/patches/server/0474-Fix-villager-boat-exploit.patch b/patches/server/0474-Fix-villager-boat-exploit.patch index d840c66bf3..69ce1a86af 100644 --- a/patches/server/0474-Fix-villager-boat-exploit.patch +++ b/patches/server/0474-Fix-villager-boat-exploit.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix villager boat exploit diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 858bbd4add280f0cd04aa94fb0b2f8f9423299cf..f565dd3ae7cce3de0aa230155fb955efbab681af 100644 +index 60845fe39f6e24474c1fa39c06a8b164348cb326..5a709e301b336ee2fc62b422a2f3d878b81f9743 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -595,6 +595,14 @@ public abstract class PlayerList { diff --git a/patches/server/0475-Add-sendOpLevel-API.patch b/patches/server/0475-Add-sendOpLevel-API.patch index 32db44d5d8..adc3b60e1c 100644 --- a/patches/server/0475-Add-sendOpLevel-API.patch +++ b/patches/server/0475-Add-sendOpLevel-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f565dd3ae7cce3de0aa230155fb955efbab681af..05365355fe54d2ed37724d17b174b32fbe6f417f 100644 +index 5a709e301b336ee2fc62b422a2f3d878b81f9743..f9ecdb537b7cbf4a97888a88a61686d9a2847cd6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1062,6 +1062,11 @@ public abstract class PlayerList { diff --git a/patches/server/0500-fix-converting-txt-to-json-file.patch b/patches/server/0500-fix-converting-txt-to-json-file.patch index 152cb53e29..760da20ec3 100644 --- a/patches/server/0500-fix-converting-txt-to-json-file.patch +++ b/patches/server/0500-fix-converting-txt-to-json-file.patch @@ -48,7 +48,7 @@ index 2b1d7a2360a9ee7bca9d93a2dc8c61d1648a8348..d5153f804cfcfd1a70c46975e3fb1e50 if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 05365355fe54d2ed37724d17b174b32fbe6f417f..0e3aa2a16ecdc607efba8db92aedf877657f1026 100644 +index f9ecdb537b7cbf4a97888a88a61686d9a2847cd6..bf1a8d273a9599597fc4bb0c8e33b15177ad5d8e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -179,6 +179,7 @@ public abstract class PlayerList { diff --git a/patches/server/0508-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0508-Drop-carried-item-when-player-has-disconnected.patch index e8d06948eb..768ba92804 100644 --- a/patches/server/0508-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0508-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0e3aa2a16ecdc607efba8db92aedf877657f1026..d6c5a664b9e08083e856e79522b85b2e75e677a8 100644 +index bf1a8d273a9599597fc4bb0c8e33b15177ad5d8e..995f085b0a1c7b14c4942dd4ed700f0271e18ec5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -588,6 +588,14 @@ public abstract class PlayerList { diff --git a/patches/unapplied/server/0545-Move-range-check-for-block-placing-up.patch b/patches/server/0540-Move-range-check-for-block-placing-up.patch similarity index 88% rename from patches/unapplied/server/0545-Move-range-check-for-block-placing-up.patch rename to patches/server/0540-Move-range-check-for-block-placing-up.patch index 44913b8c49..84a1ccd001 100644 --- a/patches/unapplied/server/0545-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0540-Move-range-check-for-block-placing-up.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4a5553335cd6bbad8d3a05694710d95c96f62b9d..a04c7677ded862890e6e809db610817b4cfff56a 100644 +index 498104eb1509e0f8389c07d1573a6b496b0bcd41..71a1b5108847b6284482ce33cdc07b944adeadba 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1734,6 +1734,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1746,6 +1746,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (itemstack.isItemEnabled(worldserver.enabledFeatures())) { BlockHitResult movingobjectpositionblock = packet.getHitResult(); Vec3 vec3d = movingobjectpositionblock.getLocation(); diff --git a/patches/unapplied/server/0546-Add-Mob-lookAt-API.patch b/patches/server/0541-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/unapplied/server/0546-Add-Mob-lookAt-API.patch rename to patches/server/0541-Add-Mob-lookAt-API.patch diff --git a/patches/unapplied/server/0547-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/0542-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 96% rename from patches/unapplied/server/0547-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/0542-Correctly-check-if-bucket-dispenses-will-succeed-for.patch index faa6d5c514..5a8b0c1cb5 100644 --- a/patches/unapplied/server/0547-Correctly-check-if-bucket-dispenses-will-succeed-for.patch +++ b/patches/server/0542-Correctly-check-if-bucket-dispenses-will-succeed-for.patch @@ -8,7 +8,7 @@ in order to fire the BlockDispenseEvent. This patch corrects that. diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 6c0ec15d47c8174976b40555cf5d3b00d7f97b20..dc68ade2ed576020a4a40608243059d6d9d82f19 100644 +index 32f06b29930906cdb6d3ceefa609c1a45518f80f..fb80b00b34ae5a4b1491c618a7fe1bdbbde0de9b 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -405,7 +405,13 @@ public interface DispenseItemBehavior { diff --git a/patches/unapplied/server/0548-Add-Unix-domain-socket-support.patch b/patches/server/0543-Add-Unix-domain-socket-support.patch similarity index 92% rename from patches/unapplied/server/0548-Add-Unix-domain-socket-support.patch rename to patches/server/0543-Add-Unix-domain-socket-support.patch index 712854840a..4b76967918 100644 --- a/patches/unapplied/server/0548-Add-Unix-domain-socket-support.patch +++ b/patches/server/0543-Add-Unix-domain-socket-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Unix domain socket support diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index c0261c3cd6de850edbd197272c2d1c52f76e6ebe..b8043b7e778792153620923ea228c1a211c27969 100644 +index 4057ade698a227b4f6efd3aa30b16d78c777be83..adbd61c41cc30afa89c6ee3544c562b351304a01 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -232,6 +232,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -236,6 +236,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface this.setEnforceWhitelist(dedicatedserverproperties.enforceWhitelist); // this.worldData.setGameType(dedicatedserverproperties.gamemode); // CraftBukkit - moved to world loading DedicatedServer.LOGGER.info("Default game type: {}", dedicatedserverproperties.gamemode); @@ -29,7 +29,7 @@ index c0261c3cd6de850edbd197272c2d1c52f76e6ebe..b8043b7e778792153620923ea228c1a2 InetAddress inetaddress = null; if (!this.getLocalIp().isEmpty()) { -@@ -241,12 +255,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -245,12 +259,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface if (this.getPort() < 0) { this.setPort(dedicatedserverproperties.serverPort); } @@ -87,10 +87,10 @@ index d6d7f1c446ba5507f67038ff27775ba75156f4a7..c63c194c44646e6bc1a5942655278701 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a04c7677ded862890e6e809db610817b4cfff56a..f4c6e815253f3e49577c554bf632e5c9f4f578ff 100644 +index 71a1b5108847b6284482ce33cdc07b944adeadba..4a3f6197aae50e35584e3e2134551a955e4b6729 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2534,6 +2534,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2551,6 +2551,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot Start public SocketAddress getRawAddress() { @@ -103,10 +103,10 @@ index a04c7677ded862890e6e809db610817b4cfff56a..f4c6e815253f3e49577c554bf632e5c9 } // Spigot End diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index b5d8ef9dd24687b99f5cf547574351c359fb85ba..45a2683c9489bee6d67a1f3d702c17f2e9dc02e4 100644 +index a5bbea6a073e00c10c3c5facd997eb8473fd9a5f..ddf42645402afefc0f5caebc684b191eef9d6ec2 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -@@ -80,6 +80,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL +@@ -81,6 +81,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL this.connection.setupOutboundProtocol(LoginProtocols.CLIENTBOUND); // CraftBukkit start - Connection throttle try { @@ -114,7 +114,7 @@ index b5d8ef9dd24687b99f5cf547574351c359fb85ba..45a2683c9489bee6d67a1f3d702c17f2 long currentTime = System.currentTimeMillis(); long connectionThrottle = this.server.server.getConnectionThrottle(); InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); -@@ -108,6 +109,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL +@@ -109,6 +110,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL } } } @@ -122,7 +122,7 @@ index b5d8ef9dd24687b99f5cf547574351c359fb85ba..45a2683c9489bee6d67a1f3d702c17f2 } catch (Throwable t) { org.apache.logging.log4j.LogManager.getLogger().debug("Failed to check connection throttle", t); } -@@ -165,8 +167,11 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL +@@ -166,8 +168,11 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL if (!handledByEvent && proxyLogicEnabled) { // Paper // if (org.spigotmc.SpigotConfig.bungee) { // Paper - comment out, we check above! if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.BYPASS_HOSTCHECK || ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { // Paper - Add bypass host check diff --git a/patches/unapplied/server/0549-Add-EntityInsideBlockEvent.patch b/patches/server/0544-Add-EntityInsideBlockEvent.patch similarity index 90% rename from patches/unapplied/server/0549-Add-EntityInsideBlockEvent.patch rename to patches/server/0544-Add-EntityInsideBlockEvent.patch index 26d32bc8bf..912a0dbe33 100644 --- a/patches/unapplied/server/0549-Add-EntityInsideBlockEvent.patch +++ b/patches/server/0544-Add-EntityInsideBlockEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityInsideBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 83f48d543eac94276ee4d7f7a4c21abdfa8eb8e6..39a92a25c55fb16f1371b0dfe2fb94258e4b7f0d 100644 +index 993538f613e52ecd009f01e7b68fddba76b6a3e8..c36e64c3df09f14ffb06b81ef20c5e200e386e50 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -124,6 +124,7 @@ public abstract class BaseFireBlock extends Block { @@ -53,7 +53,7 @@ index 7c70c98ee27a6a09e73942ff4dc0f88ceb77936f..4c1f20fafdbd86011959cc2d4983b6c2 if (blockState.isAir()) { entity.onAboveBubbleCol(state.getValue(DRAG_DOWN)); diff --git a/src/main/java/net/minecraft/world/level/block/ButtonBlock.java b/src/main/java/net/minecraft/world/level/block/ButtonBlock.java -index dc9dca35ec406b8046372719392d20acc3f5dac9..776357342c76127af0868591a56a059f89a55f20 100644 +index 4a58bf1081e57bd34858481dee824e2a75120281..4c37d9ebd74b32b9ad6dc46d000afc7a7d1bb4a3 100644 --- a/src/main/java/net/minecraft/world/level/block/ButtonBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ButtonBlock.java @@ -206,6 +206,7 @@ public class ButtonBlock extends FaceAttachedHorizontalDirectionalBlock { @@ -77,16 +77,16 @@ index fd344c5cf0d6d523abe34d5e3f8d939106942cbb..ff4dda48116a2969704b355ff96407ba } diff --git a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java -index 47f1f2fec847ff19b994c98d0f5b01d063f37067..d6fffb0953494e8667cc456137cac0f5deebfbb6 100644 +index e81bf62cf9dbc27391deaad46d2098e81f746746..7f6058f4def83867971121751acd51c398583651 100644 --- a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java -@@ -105,6 +105,7 @@ public class CampfireBlock extends BaseEntityBlock implements SimpleWaterloggedB +@@ -104,6 +104,7 @@ public class CampfireBlock extends BaseEntityBlock implements SimpleWaterloggedB @Override protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent - if ((Boolean) state.getValue(CampfireBlock.LIT) && entity instanceof LivingEntity && !EnchantmentHelper.hasFrostWalker((LivingEntity) entity)) { - entity.hurt(world.damageSources().inFire().directBlock(world, pos), (float) this.fireDamage); // CraftBukkit + if ((Boolean) state.getValue(CampfireBlock.LIT) && entity instanceof LivingEntity) { + entity.hurt(world.damageSources().campfire().directBlock(world, pos), (float) this.fireDamage); // CraftBukkit } diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java index fcaf6b4bb7371ce9f00a7d4306f7b2b6884b7c4c..73595922dcff8e7a8595fcf033ab238bc4096630 100644 @@ -112,20 +112,32 @@ index 55a97da8786ec0ae98abe56876c00f4678ba0007..9d69e439ff853465303c2abd896e6c53 if (!world.isClientSide) { if (!(Boolean) state.getValue(DetectorRailBlock.POWERED)) { this.checkPressed(world, pos, state); -diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index 6845beea2a10adf5eab08744c7eef63c0bd42254..a2de13a366e4a462b746dab035372838127f4994 100644 ---- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -@@ -52,6 +52,7 @@ public class EndPortalBlock extends BaseEntityBlock { +diff --git a/src/main/java/net/minecraft/world/level/block/EndGatewayBlock.java b/src/main/java/net/minecraft/world/level/block/EndGatewayBlock.java +index 2ad77d7666cc9a5101b3da58f07f497409676a26..11486419dd98a013c7387d3d73f322a95a18c574 100644 +--- a/src/main/java/net/minecraft/world/level/block/EndGatewayBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/EndGatewayBlock.java +@@ -90,6 +90,7 @@ public class EndGatewayBlock extends BaseEntityBlock implements Portal { @Override protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent - if (world instanceof ServerLevel && entity.canChangeDimensions() && Shapes.joinIsNotEmpty(Shapes.create(entity.getBoundingBox().move((double) (-pos.getX()), (double) (-pos.getY()), (double) (-pos.getZ()))), state.getShape(world, pos), BooleanOp.AND)) { - ResourceKey resourcekey = world.getTypeKey() == LevelStem.END ? Level.OVERWORLD : Level.END; // CraftBukkit - SPIGOT-6152: send back to main overworld in custom ends - ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey); + if (entity.canUsePortal(false)) { + BlockEntity tileentity = world.getBlockEntity(pos); + +diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +index e2d6693da4abe6204c0ecb5e924a3903fa80ab7d..cff3e9869340f1ffb7093431cbe1ac5e67792a4e 100644 +--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +@@ -63,6 +63,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { + + @Override + protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent + if (entity.canUsePortal(false) && Shapes.joinIsNotEmpty(Shapes.create(entity.getBoundingBox().move((double) (-pos.getX()), (double) (-pos.getY()), (double) (-pos.getZ()))), state.getShape(world, pos), BooleanOp.AND)) { + // CraftBukkit start - Entity in portal + EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index d7a6d4f11325791767be8fcb2355916ca2f63f11..a3339b47165814238351d307c729af14d5e5d1ff 100644 +index 211b7809f099678bc3bd64bd29fd9c4d19e3ab0d..6e7595193275e88c69b82ebbc9f9df636879a03e 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -79,6 +79,7 @@ public class FrogspawnBlock extends Block { @@ -185,15 +197,15 @@ index 5f778ea22efa76ced1ba4455d50b94b3519113fc..7c67efa6e344870b764eb39d55081903 // CraftBukkit start if (entity.mayInteract(world, pos)) { diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -index d3f2c0e3107a781b462a2b67c10cd1e5f05feefb..a9e3078cefcae8cc4672d514a7add162590d48df 100644 +index ab1cbcf5ef1ebffd39373bacb2b0983d2c8fa15a..caa22afb0781671b901c23ebcc89e5bb0d2bd615 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -@@ -90,6 +90,7 @@ public class NetherPortalBlock extends Block { +@@ -107,6 +107,7 @@ public class NetherPortalBlock extends Block implements Portal { @Override protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent - if (entity.canChangeDimensions()) { + if (entity.canUsePortal(false)) { // CraftBukkit start - Entity in portal EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java diff --git a/patches/unapplied/server/0550-Improve-item-default-attribute-API.patch b/patches/server/0545-Improve-item-default-attribute-API.patch similarity index 83% rename from patches/unapplied/server/0550-Improve-item-default-attribute-API.patch rename to patches/server/0545-Improve-item-default-attribute-API.patch index af803064cb..cce3124b76 100644 --- a/patches/unapplied/server/0550-Improve-item-default-attribute-API.patch +++ b/patches/server/0545-Improve-item-default-attribute-API.patch @@ -7,24 +7,24 @@ Also fixes an issue where upstream isn't actually getting the correct default attributes diff --git a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java -index 8afbb8e0cb368e95f23bb78c1261f9aa9b8abd86..0a18983151d17b8e1460b82326b0380087e13795 100644 +index de0eba19c0c963adb4f17cea22333240021fd801..3b171a08bd0bedfe224905feb5838d2540199bce 100644 --- a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java +++ b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java -@@ -74,7 +74,7 @@ public class CraftAttributeInstance implements AttributeInstance { - return new AttributeModifier(nms.id(), nms.name, nms.amount(), AttributeModifier.Operation.values()[nms.operation().ordinal()]); +@@ -75,7 +75,7 @@ public class CraftAttributeInstance implements AttributeInstance { + return new AttributeModifier(CraftNamespacedKey.fromMinecraft(nms.id()), nms.amount(), AttributeModifier.Operation.values()[nms.operation().ordinal()], org.bukkit.inventory.EquipmentSlotGroup.ANY); } - public static AttributeModifier convert(net.minecraft.world.entity.ai.attributes.AttributeModifier nms, EquipmentSlot slot) { -- return new AttributeModifier(nms.id(), nms.name, nms.amount(), AttributeModifier.Operation.values()[nms.operation().ordinal()], slot); +- return new AttributeModifier(CraftNamespacedKey.fromMinecraft(nms.id()), nms.amount(), AttributeModifier.Operation.values()[nms.operation().ordinal()], slot.getGroup()); + public static AttributeModifier convert(net.minecraft.world.entity.ai.attributes.AttributeModifier nms, net.minecraft.world.entity.EquipmentSlotGroup slot) { // Paper -+ return new AttributeModifier(nms.id(), nms.name, nms.amount(), AttributeModifier.Operation.values()[nms.operation().ordinal()], org.bukkit.craftbukkit.CraftEquipmentSlot.getSlot(slot)); // Paper ++ return new AttributeModifier(CraftNamespacedKey.fromMinecraft(nms.id()), nms.amount(), AttributeModifier.Operation.values()[nms.operation().ordinal()], org.bukkit.craftbukkit.CraftEquipmentSlot.getSlot(slot)); // Paper } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java -index 1218163a4d803288aeb1c9254f8cd03013a9fbcc..5fcf64a30a798a516cd3b30123d16cc5c420e45f 100644 +index 761d943658de9c7faadf24584baf63057e99d04a..c0ef1c99fa384fa4f898ef020ec16060a7675e84 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java -@@ -199,15 +199,34 @@ public class CraftItemType implements ItemType.Typed, Han +@@ -198,15 +198,34 @@ public class CraftItemType implements ItemType.Typed, Han // return CraftEquipmentSlot.getSlot(EntityInsentient.getEquipmentSlotForItem(CraftItemStack.asNMSCopy(ItemStack.of(this)))); // } @@ -66,7 +66,7 @@ index 1218163a4d803288aeb1c9254f8cd03013a9fbcc..5fcf64a30a798a516cd3b30123d16cc5 return defaultAttributes.build(); } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 206f7fff1be676bebef086a0c1b5350cfd175e33..44e3e4c8326dc93292f482c136fe2d6e6b8eb0b6 100644 +index 080ab25d3585552c1abd62a9992d48bf094fc065..a867c9de9c2c1798d8e9014f5114b0f4e32b3261 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -400,15 +400,11 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/unapplied/server/0551-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0546-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 94% rename from patches/unapplied/server/0551-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0546-Add-cause-to-Weather-ThunderChangeEvents.patch index c1bd804863..960089e7d4 100644 --- a/patches/unapplied/server/0551-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0546-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3816b445279fcd562acc06f08b8cd04bffa49592..3e935df2de58bd57b061c33b00f9d2ea4134ca80 100644 +index 58c56636f324f1073bbb03d94f51cd69600a80c4..9a09946b6b178837c44daae894555000668aeb72 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -440,8 +440,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -441,8 +441,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setClearWeatherTime(clearDuration); this.serverLevelData.setRainTime(rainDuration); this.serverLevelData.setThunderTime(rainDuration); @@ -19,7 +19,7 @@ index 3816b445279fcd562acc06f08b8cd04bffa49592..3e935df2de58bd57b061c33b00f9d2ea } @Override -@@ -874,8 +874,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -875,8 +875,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setThunderTime(j); this.serverLevelData.setRainTime(k); this.serverLevelData.setClearWeatherTime(i); @@ -30,7 +30,7 @@ index 3816b445279fcd562acc06f08b8cd04bffa49592..3e935df2de58bd57b061c33b00f9d2ea } this.oThunderLevel = this.thunderLevel; -@@ -942,14 +942,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -943,14 +943,14 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start @@ -95,7 +95,7 @@ index e50ad48658193f889d65d37c57b1e30ce46758b7..efd0bcfebb3b4f63018d4e20a6a89f79 if (weather.isCancelled()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0f1f5e4cbe476f45f9473cc9ce4e50f837eba652..e75d2970329dd92263bc57c7452d0c46afa3da16 100644 +index ab8a2906ee2c5eb3d11001f421e76ddde1172d46..a27fb39dfada76b1d33364b2b3e92e4f5203074b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1231,7 +1231,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0552-More-Lidded-Block-API.patch b/patches/server/0547-More-Lidded-Block-API.patch similarity index 100% rename from patches/unapplied/server/0552-More-Lidded-Block-API.patch rename to patches/server/0547-More-Lidded-Block-API.patch diff --git a/patches/unapplied/server/0553-Limit-item-frame-cursors-on-maps.patch b/patches/server/0548-Limit-item-frame-cursors-on-maps.patch similarity index 79% rename from patches/unapplied/server/0553-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0548-Limit-item-frame-cursors-on-maps.patch index 6072cb5269..d710b59685 100644 --- a/patches/unapplied/server/0553-Limit-item-frame-cursors-on-maps.patch +++ b/patches/server/0548-Limit-item-frame-cursors-on-maps.patch @@ -5,21 +5,21 @@ Subject: [PATCH] Limit item frame cursors on maps diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index 38c0855a6f9398f8d075f304288cf9e9f695770a..ad24a79e190d07c75d8e29e816fc398894771c2c 100644 +index d6a0a882331226c3ae4ced09e449eb7931740f8f..a43544704109f21bab230dd9bf0401e28f878582 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -@@ -321,8 +321,10 @@ public class MapItemSavedData extends SavedData { +@@ -322,8 +322,10 @@ public class MapItemSavedData extends SavedData { MapFrame worldmapframe1 = new MapFrame(blockposition, entityitemframe.getDirection().get2DDataValue() * 90, entityitemframe.getId()); + if (this.decorations.size() < player.level().paperConfig().maps.itemFrameCursorLimit) { // Paper - Limit item frame cursors on maps - this.addDecoration(MapDecorationTypes.FRAME, player.level(), "frame-" + entityitemframe.getId(), (double) blockposition.getX(), (double) blockposition.getZ(), (double) (entityitemframe.getDirection().get2DDataValue() * 90), (Component) null); + this.addDecoration(MapDecorationTypes.FRAME, player.level(), MapItemSavedData.getFrameKey(entityitemframe.getId()), (double) blockposition.getX(), (double) blockposition.getZ(), (double) (entityitemframe.getDirection().get2DDataValue() * 90), (Component) null); this.frameMarkers.put(worldmapframe1.getId(), worldmapframe1); + } // Paper - Limit item frame cursors on maps } MapDecorations mapdecorations = (MapDecorations) stack.getOrDefault(DataComponents.MAP_DECORATIONS, MapDecorations.EMPTY); -@@ -487,7 +489,7 @@ public class MapItemSavedData extends SavedData { +@@ -488,7 +490,7 @@ public class MapItemSavedData extends SavedData { return true; } diff --git a/patches/unapplied/server/0554-Add-PlayerKickEvent-causes.patch b/patches/server/0549-Add-PlayerKickEvent-causes.patch similarity index 72% rename from patches/unapplied/server/0554-Add-PlayerKickEvent-causes.patch rename to patches/server/0549-Add-PlayerKickEvent-causes.patch index 4229938b0b..9b753e688b 100644 --- a/patches/unapplied/server/0554-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0549-Add-PlayerKickEvent-causes.patch @@ -43,15 +43,15 @@ index dbcf183483766f39334d7f7e8336033906625f3f..300929a406905f5ff1ede664d5b99fb0 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5c47573843c25b0d15037a28e55b616c829f694d..cdbdacee826c424177096ee78427eaf80131b5fd 100644 +index fa37c6b43f76af0b82b056cf87ba350abf92e7bb..ee212ed5538357830ea8b69da650ab67d67634bb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2266,7 +2266,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { - this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE); -+ this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause ++ this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause }); // Paper end - This needs to be handled on the main thread for plugins } -@@ -163,7 +163,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -164,7 +164,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex); -- this.disconnect("Invalid payload REGISTER!"); -+ this.disconnect("Invalid payload REGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause +- this.disconnect(Component.literal("Invalid payload REGISTER!")); ++ this.disconnect(Component.literal("Invalid payload REGISTER!"), PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } } else if (identifier.equals(ServerCommonPacketListenerImpl.CUSTOM_UNREGISTER)) { try { -@@ -173,7 +173,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -174,7 +174,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); -- this.disconnect("Invalid payload UNREGISTER!"); -+ this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause +- this.disconnect(Component.literal("Invalid payload UNREGISTER!")); ++ this.disconnect(Component.literal("Invalid payload UNREGISTER!"), PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } } else { try { -@@ -191,7 +191,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -192,7 +192,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), identifier.toString(), data); } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); -- this.disconnect("Invalid custom payload!"); -+ this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause +- this.disconnect(Component.literal("Invalid custom payload!")); ++ this.disconnect(Component.literal("Invalid custom payload!"), PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } } -@@ -207,7 +207,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -208,7 +208,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack PacketUtils.ensureRunningOnSameThread(packet, this, (BlockableEventLoop) this.server); if (packet.action() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) { ServerCommonPacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack {} rejection", this.playerProfile().getName(), packet.id()); -- this.disconnect(Component.translatable("multiplayer.requiredTexturePrompt.disconnect")); -+ this.disconnect(Component.translatable("multiplayer.requiredTexturePrompt.disconnect"), org.bukkit.event.player.PlayerKickEvent.Cause.RESOURCE_PACK_REJECTION); // Paper - kick event cause +- this.disconnect((Component) Component.translatable("multiplayer.requiredTexturePrompt.disconnect")); ++ this.disconnect((Component) Component.translatable("multiplayer.requiredTexturePrompt.disconnect"), PlayerKickEvent.Cause.RESOURCE_PACK_REJECTION); // Paper - kick event cause } // Paper start - adventure pack callbacks // call the callbacks before the previously-existing event so the event has final say -@@ -237,7 +237,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -238,7 +238,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack return; } // CraftBukkit end - this.disconnect(ServerCommonPacketListenerImpl.DISCONNECT_UNEXPECTED_QUERY); -+ this.disconnect(ServerCommonPacketListenerImpl.DISCONNECT_UNEXPECTED_QUERY, org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_COOKIE); // Paper - kick event cause ++ this.disconnect(ServerCommonPacketListenerImpl.DISCONNECT_UNEXPECTED_QUERY, PlayerKickEvent.Cause.INVALID_COOKIE); // Paper - kick event cause } protected void keepConnectionAlive() { -@@ -249,7 +249,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -250,7 +250,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack if (!this.isSingleplayerOwner() && elapsedTime >= 15000L) { // Paper - use vanilla's 15000L between keep alive packets if (this.keepAlivePending && !this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // Paper - check keepalive limit, don't fire if already disconnected - this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE); -+ this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause ++ this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause } else if (this.checkIfClosed(currentTime)) { // Paper this.keepAlivePending = true; this.keepAliveTime = currentTime; -@@ -265,7 +265,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -266,7 +266,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack private boolean checkIfClosed(long time) { if (this.closed) { if (time - this.closedListenerTime >= 15000L) { - this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE); -+ this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause ++ this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause } return false; -@@ -316,18 +316,28 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack - } +@@ -318,15 +318,25 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack - // CraftBukkit start -- @Deprecated -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - public void disconnect(String s) { // Paper -- this.disconnect(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(s)); // Paper -+ this.disconnect(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(s), org.bukkit.event.player.PlayerKickEvent.Cause.UNKNOWN); // Paper + // Paper start - adventure + public void disconnect(final net.kyori.adventure.text.Component reason) { +- this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(reason)); ++ this.disconnect(reason, PlayerKickEvent.Cause.UNKNOWN); ++ } ++ public void disconnect(final net.kyori.adventure.text.Component reason, PlayerKickEvent.Cause cause) { ++ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(reason), cause); ++ // Paper end - kick event causes } - // CraftBukkit end + // Paper end - adventure -+ // Paper start - kick event cause -+ public void disconnect(String s, PlayerKickEvent.Cause cause) { -+ this.disconnect(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(s), cause); ++ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - kick event causes + public void disconnect(Component reason) { +- this.disconnect(new DisconnectionDetails(reason)); ++ // Paper start - kick event causes ++ this.disconnect(reason, PlayerKickEvent.Cause.UNKNOWN); + } -+ - // Paper start -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - public void disconnect(final Component reason) { -- this.disconnect(io.papermc.paper.adventure.PaperAdventure.asAdventure(reason)); -+ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asAdventure(reason), org.bukkit.event.player.PlayerKickEvent.Cause.UNKNOWN); -+ } -+ + public void disconnect(final Component reason, PlayerKickEvent.Cause cause) { -+ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asAdventure(reason), cause); ++ this.disconnect(new DisconnectionDetails(reason), cause); ++ // Paper end - kick event causes } -- public void disconnect(net.kyori.adventure.text.Component reason) { -+ public void disconnect(net.kyori.adventure.text.Component reason, org.bukkit.event.player.PlayerKickEvent.Cause cause) { // Paper - kick event cause - // Paper end +- public void disconnect(DisconnectionDetails disconnectionInfo) { ++ public void disconnect(DisconnectionDetails disconnectionInfo, PlayerKickEvent.Cause cause) { // Paper - kick event cause // CraftBukkit start - fire PlayerKickEvent if (this.processedDisconnect) { -@@ -337,7 +347,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack + return; +@@ -335,7 +345,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack Waitable waitable = new Waitable() { @Override protected Object evaluate() { -- ServerCommonPacketListenerImpl.this.disconnect(reason); // Paper - adventure -+ ServerCommonPacketListenerImpl.this.disconnect(reason, cause); // Paper - adventure +- ServerCommonPacketListenerImpl.this.disconnect(disconnectionInfo); ++ ServerCommonPacketListenerImpl.this.disconnect(disconnectionInfo, cause); // Paper - kick event causes return null; } }; -@@ -356,7 +366,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -354,7 +364,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack net.kyori.adventure.text.Component leaveMessage = net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? this.player.getBukkitEntity().displayName() : net.kyori.adventure.text.Component.text(this.player.getScoreboardName())); // Paper - Adventure -- PlayerKickEvent event = new PlayerKickEvent(this.player.getBukkitEntity(), reason, leaveMessage); // Paper - adventure -+ PlayerKickEvent event = new PlayerKickEvent(this.player.getBukkitEntity(), reason, leaveMessage, cause); // Paper - adventure +- PlayerKickEvent event = new PlayerKickEvent(this.player.getBukkitEntity(), io.papermc.paper.adventure.PaperAdventure.asAdventure(disconnectionInfo.reason()), leaveMessage); // Paper - adventure ++ PlayerKickEvent event = new PlayerKickEvent(this.player.getBukkitEntity(), io.papermc.paper.adventure.PaperAdventure.asAdventure(disconnectionInfo.reason()), leaveMessage, cause); // Paper - adventure & kick event causes if (this.cserver.getServer().isRunning()) { this.cserver.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9dd60bdca 100644 +index 4a3f6197aae50e35584e3e2134551a955e4b6729..b9db64ac1a3a3e179adf08157a4dbe9c2d1e9682 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -349,7 +349,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -247,8 +243,8 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L) { this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 -- this.disconnect(Component.translatable("multiplayer.disconnect.idling")); -+ this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause +- this.disconnect((Component) Component.translatable("multiplayer.disconnect.idling")); ++ this.disconnect((Component) Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } } @@ -256,21 +252,21 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 public void handleMoveVehicle(ServerboundMoveVehiclePacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(), packet.getY(), packet.getZ(), packet.getYRot(), packet.getXRot())) { -- this.disconnect(Component.translatable("multiplayer.disconnect.invalid_vehicle_movement")); -+ this.disconnect(Component.translatable("multiplayer.disconnect.invalid_vehicle_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_VEHICLE_MOVEMENT); // Paper - kick event cause - } else { +- this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_vehicle_movement")); ++ this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_vehicle_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_VEHICLE_MOVEMENT); // Paper - kick event cause + } else if (!this.updateAwaitingTeleport()) { Entity entity = this.player.getRootVehicle(); -@@ -683,7 +683,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -686,7 +686,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (packet.getId() == this.awaitingTeleport) { if (this.awaitingPositionFromClient == null) { -- this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement")); -+ this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause +- this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement")); ++ this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause return; } -@@ -741,7 +741,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -744,7 +744,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async // CraftBukkit start if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits @@ -279,7 +275,7 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 return; } // CraftBukkit end -@@ -906,7 +906,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -909,7 +909,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Paper start - validate pick item position if (!(packet.getSlot() >= 0 && packet.getSlot() < this.player.getInventory().items.size())) { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -288,7 +284,7 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 return; } this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed -@@ -1085,7 +1085,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1088,7 +1088,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); @@ -297,7 +293,7 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 return; } byteTotal += byteLength; -@@ -1108,14 +1108,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1111,14 +1111,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); @@ -309,48 +305,48 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 // Paper end - Book size limits // CraftBukkit start if (this.lastBookTick + 20 > MinecraftServer.currentTick) { -- this.disconnect("Book edited too quickly!"); -+ this.disconnect("Book edited too quickly!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause +- this.disconnect(Component.literal("Book edited too quickly!")); ++ this.disconnect(Component.literal("Book edited too quickly!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; } this.lastBookTick = MinecraftServer.currentTick; -@@ -1227,7 +1227,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1230,7 +1230,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(0.0D), packet.getY(0.0D), packet.getZ(0.0D), packet.getYRot(0.0F), packet.getXRot(0.0F))) { -- this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement")); -+ this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause +- this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement")); ++ this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause } else { ServerLevel worldserver = this.player.serverLevel(); -@@ -1656,7 +1656,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1668,7 +1668,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.dropCount++; if (this.dropCount >= 20) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!"); -- this.disconnect("You dropped your items too quickly (Hacking?)"); -+ this.disconnect("You dropped your items too quickly (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause +- this.disconnect(Component.literal("You dropped your items too quickly (Hacking?)")); ++ this.disconnect(Component.literal("You dropped your items too quickly (Hacking?)"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; } } -@@ -1939,7 +1939,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1956,7 +1956,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.resetLastActionTime(); } else { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); -- this.disconnect("Invalid hotbar selection (Hacking?)"); // CraftBukkit -+ this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // CraftBukkit // Paper - kick event cause +- this.disconnect(Component.literal("Invalid hotbar selection (Hacking?)")); // CraftBukkit ++ this.disconnect(Component.literal("Invalid hotbar selection (Hacking?)"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // CraftBukkit // Paper - kick event cause } } -@@ -2137,7 +2137,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2154,7 +2154,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void tryHandleChat(String s, Runnable runnable, boolean sync) { // CraftBukkit if (ServerGamePacketListenerImpl.isChatMessageIllegal(s)) { -- this.disconnect(Component.translatable("multiplayer.disconnect.illegal_characters")); -+ this.disconnect(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper +- this.disconnect((Component) Component.translatable("multiplayer.disconnect.illegal_characters")); ++ this.disconnect((Component) Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper } else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false)); } else { -@@ -2160,7 +2160,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2177,7 +2177,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (optional.isEmpty()) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -359,16 +355,16 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 } return optional; -@@ -2346,7 +2346,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2363,7 +2363,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // this.chatSpamTickCount += 20; - if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { + if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // CraftBukkit end -- this.disconnect(Component.translatable("disconnect.spam")); -+ this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - kick event cause +- this.disconnect((Component) Component.translatable("disconnect.spam")); ++ this.disconnect((Component) Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - kick event cause } } -@@ -2358,7 +2358,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2375,7 +2375,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl synchronized (this.lastSeenMessages) { if (!this.lastSeenMessages.applyOffset(packet.offset())) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -377,34 +373,34 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 } } -@@ -2506,7 +2506,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2523,7 +2523,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (i > 4096) { -- this.disconnect(Component.translatable("multiplayer.disconnect.too_many_pending_chats")); -+ this.disconnect(Component.translatable("multiplayer.disconnect.too_many_pending_chats"), org.bukkit.event.player.PlayerKickEvent.Cause.TOO_MANY_PENDING_CHATS); // Paper - kick event cause +- this.disconnect((Component) Component.translatable("multiplayer.disconnect.too_many_pending_chats")); ++ this.disconnect((Component) Component.translatable("multiplayer.disconnect.too_many_pending_chats"), org.bukkit.event.player.PlayerKickEvent.Cause.TOO_MANY_PENDING_CHATS); // Paper - kick event cause } } -@@ -2564,7 +2564,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2581,7 +2581,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot Start if ( entity == this.player && !this.player.isSpectator() ) { -- this.disconnect( "Cannot interact with self!" ); -+ this.disconnect( "Cannot interact with self!" , org.bukkit.event.player.PlayerKickEvent.Cause.SELF_INTERACTION ); // Paper - kick event cause +- this.disconnect( Component.literal( "Cannot interact with self!" ) ); ++ this.disconnect( Component.literal( "Cannot interact with self!" ), org.bukkit.event.player.PlayerKickEvent.Cause.SELF_INTERACTION ); // Paper - kick event cause return; } // Spigot End -@@ -2678,7 +2678,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2695,7 +2695,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } -- ServerGamePacketListenerImpl.this.disconnect(Component.translatable("multiplayer.disconnect.invalid_entity_attacked")); -+ ServerGamePacketListenerImpl.this.disconnect(Component.translatable("multiplayer.disconnect.invalid_entity_attacked"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_ENTITY_ATTACKED); // Paper - add cause +- ServerGamePacketListenerImpl.this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_entity_attacked")); ++ ServerGamePacketListenerImpl.this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_entity_attacked"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_ENTITY_ATTACKED); // Paper - add cause ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString()); } }); -@@ -3075,7 +3075,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3092,7 +3092,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Paper start - auto recipe limit 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) { @@ -413,7 +409,7 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 return; } } -@@ -3317,7 +3317,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3334,7 +3334,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) { if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) { @@ -422,7 +418,7 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 } else { try { SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator(); -@@ -3330,7 +3330,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3347,7 +3347,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); @@ -432,10 +428,10 @@ index f4c6e815253f3e49577c554bf632e5c9f4f578ff..1f6e123fbd146129e5460631fdd88de9 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 40d1451b43228b802aabe8c021ad781ceb8d8df8..709cf6655e5ccb17caf0b8a735ae957cb0509f2c 100644 +index 995f085b0a1c7b14c4942dd4ed700f0271e18ec5..51f723ef7362ff3eb1bb58f2a75acd12928fabac 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -681,7 +681,7 @@ public abstract class PlayerList { +@@ -675,7 +675,7 @@ public abstract class PlayerList { while (iterator.hasNext()) { entityplayer = (ServerPlayer) iterator.next(); this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved @@ -444,17 +440,15 @@ index 40d1451b43228b802aabe8c021ad781ceb8d8df8..709cf6655e5ccb17caf0b8a735ae957c } // Instead of kicking then returning, we need to store the kick reason -@@ -1318,8 +1318,8 @@ public abstract class PlayerList { +@@ -1272,7 +1272,7 @@ public abstract class PlayerList { // Paper end // CraftBukkit start - disconnect safely for (ServerPlayer player : this.players) { -- if (isRestarting) player.connection.disconnect(org.spigotmc.SpigotConfig.restartMessage); else // Paper -- player.connection.disconnect(this.server.server.shutdownMessage()); // CraftBukkit - add custom shutdown message // Paper - Adventure -+ if (isRestarting) player.connection.disconnect(org.spigotmc.SpigotConfig.restartMessage, org.bukkit.event.player.PlayerKickEvent.Cause.UNKNOWN); else // Paper - kick event cause (cause is never used here) -+ player.connection.disconnect(this.server.server.shutdownMessage(), org.bukkit.event.player.PlayerKickEvent.Cause.UNKNOWN); // CraftBukkit - add custom shutdown message // Paper - Adventure & KickEventCause (cause is never used here) +- if (isRestarting) player.connection.disconnect(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.restartMessage)); else // Paper ++ if (isRestarting) player.connection.disconnect(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.restartMessage), org.bukkit.event.player.PlayerKickEvent.Cause.UNKNOWN); else // Paper - kick event cause (cause is never used here) + player.connection.disconnect(java.util.Objects.requireNonNullElseGet(this.server.server.shutdownMessage(), net.kyori.adventure.text.Component::empty)); // CraftBukkit - add custom shutdown message // Paper - Adventure } // CraftBukkit end - diff --git a/src/main/java/net/minecraft/world/entity/player/ProfilePublicKey.java b/src/main/java/net/minecraft/world/entity/player/ProfilePublicKey.java index f472dea0bd4f834c0c8f0aa59ae7cdae082b14af..2fa51c3a70f43cd23b8f494fc643d66cecfda7d2 100644 --- a/src/main/java/net/minecraft/world/entity/player/ProfilePublicKey.java @@ -486,19 +480,19 @@ index f472dea0bd4f834c0c8f0aa59ae7cdae082b14af..2fa51c3a70f43cd23b8f494fc643d66c } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9a3ba0011f306a3cd1e3c60fcc329ab93011ebd8..eee0c49bbf9bc768fcf7275c29536b4f16b1d421 100644 +index ed08f30d7163d01b5c280d20ea721da8d7f4b41e..26a8006a1daa9eecb226732a5a33d2a5d1cdedf9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -633,7 +633,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -635,7 +635,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { org.spigotmc.AsyncCatcher.catchOp("player kick"); // Spigot if (this.getHandle().connection == null) return; -- this.getHandle().connection.disconnect(message == null ? "" : message); -+ this.getHandle().connection.disconnect(message == null ? "" : message, org.bukkit.event.player.PlayerKickEvent.Cause.PLUGIN); // Paper - kick event cause +- this.getHandle().connection.disconnect(CraftChatMessage.fromStringOrEmpty(message)); ++ this.getHandle().connection.disconnect(CraftChatMessage.fromStringOrEmpty(message), org.bukkit.event.player.PlayerKickEvent.Cause.PLUGIN); // Paper - kick event cause } // Paper start -@@ -645,10 +645,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -647,10 +647,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void kick(final net.kyori.adventure.text.Component message) { @@ -515,7 +509,7 @@ index 9a3ba0011f306a3cd1e3c60fcc329ab93011ebd8..eee0c49bbf9bc768fcf7275c29536b4f } } -@@ -707,7 +712,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -709,7 +714,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper start - Improve chat handling if (ServerGamePacketListenerImpl.isChatMessageIllegal(msg)) { @@ -525,15 +519,15 @@ index 9a3ba0011f306a3cd1e3c60fcc329ab93011ebd8..eee0c49bbf9bc768fcf7275c29536b4f if (msg.startsWith("/")) { this.getHandle().connection.handleCommand(msg); diff --git a/src/main/java/org/spigotmc/RestartCommand.java b/src/main/java/org/spigotmc/RestartCommand.java -index 051b9e3a5d29a5840d596468e3ddd013bedc8da3..e3b262add194a126e731c68e68f3139a00cacacb 100644 +index 9a1fffa0c07c24eed8bd6ea8f3cd26c9f926c54d..f3fa0340babfc5eb627066115164e2d885c602c2 100644 --- a/src/main/java/org/spigotmc/RestartCommand.java +++ b/src/main/java/org/spigotmc/RestartCommand.java -@@ -73,7 +73,7 @@ public class RestartCommand extends Command +@@ -74,7 +74,7 @@ public class RestartCommand extends Command // Kick all players for ( ServerPlayer p : com.google.common.collect.ImmutableList.copyOf( MinecraftServer.getServer().getPlayerList().players ) ) { -- p.connection.disconnect(SpigotConfig.restartMessage); -+ p.connection.disconnect(SpigotConfig.restartMessage, org.bukkit.event.player.PlayerKickEvent.Cause.RESTART_COMMAND); // Paper - kick event reason (cause is never used)) +- p.connection.disconnect( CraftChatMessage.fromStringOrEmpty( SpigotConfig.restartMessage ) ); ++ p.connection.disconnect( CraftChatMessage.fromStringOrEmpty( SpigotConfig.restartMessage ), org.bukkit.event.player.PlayerKickEvent.Cause.RESTART_COMMAND); // Paper - kick event reason (cause is never used)) } // Give the socket a chance to send the packets try diff --git a/patches/unapplied/server/0555-Add-PufferFishStateChangeEvent.patch b/patches/server/0550-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/unapplied/server/0555-Add-PufferFishStateChangeEvent.patch rename to patches/server/0550-Add-PufferFishStateChangeEvent.patch diff --git a/patches/unapplied/server/0556-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0551-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 90% rename from patches/unapplied/server/0556-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0551-Fix-PlayerBucketEmptyEvent-result-itemstack.patch index 6e70197163..12c519eefe 100644 --- a/patches/unapplied/server/0556-Fix-PlayerBucketEmptyEvent-result-itemstack.patch +++ b/patches/server/0551-Fix-PlayerBucketEmptyEvent-result-itemstack.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix PlayerBucketEmptyEvent result itemstack Fixes SPIGOT-2560: https://hub.spigotmc.org/jira/projects/SPIGOT/issues/SPIGOT-2560 diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java -index b20263db1988529dd6e7969d65ee30096f10d591..6d494b80ae002aea00afa44adf83dad1ae5bbbc1 100644 +index 7617b6a0ad44e8b135d071836dc30df5ad062c42..6caed156ed0cfe0017d578f58cb963ee68272d78 100644 --- a/src/main/java/net/minecraft/world/item/BucketItem.java +++ b/src/main/java/net/minecraft/world/item/BucketItem.java @@ -40,6 +40,8 @@ import org.bukkit.event.player.PlayerBucketFillEvent; @@ -18,7 +18,7 @@ index b20263db1988529dd6e7969d65ee30096f10d591..6d494b80ae002aea00afa44adf83dad1 public final Fluid content; public BucketItem(Fluid fluid, Item.Properties settings) { -@@ -123,6 +125,13 @@ public class BucketItem extends Item implements DispensibleContainerItem { +@@ -125,6 +127,13 @@ public class BucketItem extends Item implements DispensibleContainerItem { } public static ItemStack getEmptySuccessItem(ItemStack stack, Player player) { @@ -32,7 +32,7 @@ index b20263db1988529dd6e7969d65ee30096f10d591..6d494b80ae002aea00afa44adf83dad1 return !player.hasInfiniteMaterials() ? new ItemStack(Items.BUCKET) : stack; } -@@ -180,6 +189,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { +@@ -182,6 +191,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { ((ServerPlayer) entityhuman).getBukkitEntity().updateInventory(); // SPIGOT-4541 return false; } diff --git a/patches/unapplied/server/0557-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0552-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/unapplied/server/0557-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0552-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/unapplied/server/0558-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0553-Add-option-to-fix-items-merging-through-walls.patch similarity index 89% rename from patches/unapplied/server/0558-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0553-Add-option-to-fix-items-merging-through-walls.patch index 05969fb324..636797089d 100644 --- a/patches/unapplied/server/0558-Add-option-to-fix-items-merging-through-walls.patch +++ b/patches/server/0553-Add-option-to-fix-items-merging-through-walls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to fix items merging through walls diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index a6dc7c7aab40a9b21c7debd0f9a1619238cff94c..1817e8876f13695578b0a5b2f75e738b3286db48 100644 +index 2e550c7db6cebc941590c35337fd47416407a5aa..5448a0f54080ac02bc4ce8ad5645173b67841e1a 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -283,6 +283,14 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -284,6 +284,14 @@ public class ItemEntity extends Entity implements TraceableEntity { ItemEntity entityitem = (ItemEntity) iterator.next(); if (entityitem.isMergable()) { diff --git a/patches/unapplied/server/0559-Add-BellRevealRaiderEvent.patch b/patches/server/0554-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/unapplied/server/0559-Add-BellRevealRaiderEvent.patch rename to patches/server/0554-Add-BellRevealRaiderEvent.patch diff --git a/patches/unapplied/server/0560-Fix-invulnerable-end-crystals.patch b/patches/server/0555-Fix-invulnerable-end-crystals.patch similarity index 92% rename from patches/unapplied/server/0560-Fix-invulnerable-end-crystals.patch rename to patches/server/0555-Fix-invulnerable-end-crystals.patch index bddc6ec149..57cba19656 100644 --- a/patches/unapplied/server/0560-Fix-invulnerable-end-crystals.patch +++ b/patches/server/0555-Fix-invulnerable-end-crystals.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix invulnerable end crystals MC-108513 diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -index dd0c441fef3b4db28d6ba52118095600512ffe9c..d8e440e14b72dc48ae97244f1bed2c06abd997ab 100644 +index 6f8d4584aae56fc7fbcbc38b1291ea415208fd5e..a33d89fe9ca9e343edab8bb1cc88c54130ddb4a7 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java @@ -30,6 +30,7 @@ public class EndCrystal extends Entity { @@ -17,7 +17,7 @@ index dd0c441fef3b4db28d6ba52118095600512ffe9c..d8e440e14b72dc48ae97244f1bed2c06 public EndCrystal(EntityType type, Level world) { super(type, world); -@@ -66,6 +67,17 @@ public class EndCrystal extends Entity { +@@ -68,6 +69,17 @@ public class EndCrystal extends Entity { } // CraftBukkit end } @@ -35,7 +35,7 @@ index dd0c441fef3b4db28d6ba52118095600512ffe9c..d8e440e14b72dc48ae97244f1bed2c06 } } -@@ -77,6 +89,7 @@ public class EndCrystal extends Entity { +@@ -79,6 +91,7 @@ public class EndCrystal extends Entity { } nbt.putBoolean("ShowBottom", this.showsBottom()); @@ -43,7 +43,7 @@ index dd0c441fef3b4db28d6ba52118095600512ffe9c..d8e440e14b72dc48ae97244f1bed2c06 } @Override -@@ -85,6 +98,7 @@ public class EndCrystal extends Entity { +@@ -87,6 +100,7 @@ public class EndCrystal extends Entity { if (nbt.contains("ShowBottom", 1)) { this.setShowBottom(nbt.getBoolean("ShowBottom")); } diff --git a/patches/unapplied/server/0561-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0556-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/unapplied/server/0561-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0556-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/unapplied/server/0563-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0557-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/unapplied/server/0563-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0557-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/unapplied/server/0564-Line-Of-Sight-Changes.patch b/patches/server/0558-Line-Of-Sight-Changes.patch similarity index 89% rename from patches/unapplied/server/0564-Line-Of-Sight-Changes.patch rename to patches/server/0558-Line-Of-Sight-Changes.patch index fd1932cb3f..688f2d72a3 100644 --- a/patches/unapplied/server/0564-Line-Of-Sight-Changes.patch +++ b/patches/server/0558-Line-Of-Sight-Changes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Line Of Sight Changes diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5b03665a04a68dc49fb0100b58148ffa2d8f6000..f6febeb8f24b227520cda80efac7e43c023f1b10 100644 +index 55381753736e3ec4a84730f22731544cdddfcb29..3bcc79b4f4d69ca7bbf1c8311869243853a19f3e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3704,7 +3704,8 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3726,7 +3726,8 @@ public abstract class LivingEntity extends Entity implements Attackable { Vec3 vec3d = new Vec3(this.getX(), this.getEyeY(), this.getZ()); Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ()); @@ -19,10 +19,10 @@ index 5b03665a04a68dc49fb0100b58148ffa2d8f6000..f6febeb8f24b227520cda80efac7e43c } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 9bf4d9eaa961196873b3be89c2ca05e701025871..54a79d802806d5354db74d27c04458e8baedfa0c 100644 +index 04a39cb6c13c26e2cb1d73a9da98df5d04df69bc..5d137f8c42356359701e1bea7525f82c018b502c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -@@ -519,5 +519,21 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -520,5 +520,21 @@ public abstract class CraftRegionAccessor implements RegionAccessor { public org.bukkit.NamespacedKey getKey() { return org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(this.getHandle().getLevel().dimension().location()); } @@ -45,10 +45,10 @@ index 9bf4d9eaa961196873b3be89c2ca05e701025871..54a79d802806d5354db74d27c04458e8 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 2701e53086f4be07c341cd1e4fcd7a351e77c486..1cfc3d18fb785410f5acfcf3c338776858efe25a 100644 +index 36ec4032ade4b0f7ae9428e7871354ef9527f0c8..c23f60a6a3bc294a6ce68b6e72f8eda30812a8f8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -627,6 +627,23 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -629,6 +629,23 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return this.getHandle().hasLineOfSight(((CraftEntity) other).getHandle()); } diff --git a/patches/unapplied/server/0565-add-per-world-spawn-limits.patch b/patches/server/0559-add-per-world-spawn-limits.patch similarity index 91% rename from patches/unapplied/server/0565-add-per-world-spawn-limits.patch rename to patches/server/0559-add-per-world-spawn-limits.patch index c77624fa6d..79ac41227e 100644 --- a/patches/unapplied/server/0565-add-per-world-spawn-limits.patch +++ b/patches/server/0559-add-per-world-spawn-limits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add per world spawn limits diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e75d2970329dd92263bc57c7452d0c46afa3da16..e10043db80ee5dc6468c8caa16d55ad418fa3670 100644 +index a27fb39dfada76b1d33364b2b3e92e4f5203074b..6734f9e22e9bd1d1b385812d35a72487fe2b7b9b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -222,6 +222,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0566-Fix-potions-splash-events.patch b/patches/server/0560-Fix-potions-splash-events.patch similarity index 95% rename from patches/unapplied/server/0566-Fix-potions-splash-events.patch rename to patches/server/0560-Fix-potions-splash-events.patch index 6cc585bcf8..39a7d43df2 100644 --- a/patches/unapplied/server/0566-Fix-potions-splash-events.patch +++ b/patches/server/0560-Fix-potions-splash-events.patch @@ -8,10 +8,10 @@ Fixes SPIGOT-6221: https://hub.spigotmc.org/jira/projects/SPIGOT/issues/SPIGOT-6 Fix splash events cancellation that still show particles/sound diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index d7fe99e55b64b66af7795c2d0aeca69023f93bae..bf627d66310f201172d3cd3ea12f1d321cd3cd62 100644 +index be787a5b52e90796d4f06e17e564f4324807c3e6..cb34cc9443da56c0497c7a0192c8b8363c3426fe 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -@@ -104,55 +104,76 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -106,55 +106,76 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie ItemStack itemstack = this.getItem(); PotionContents potioncontents = (PotionContents) itemstack.getOrDefault(DataComponents.POTION_CONTENTS, PotionContents.EMPTY); @@ -103,7 +103,7 @@ index d7fe99e55b64b66af7795c2d0aeca69023f93bae..bf627d66310f201172d3cd3ea12f1d32 AABB axisalignedbb = this.getBoundingBox().inflate(4.0D, 2.0D, 4.0D); List list = this.level().getEntitiesOfClass(net.minecraft.world.entity.LivingEntity.class, axisalignedbb); Map affected = new HashMap(); // CraftBukkit -@@ -170,6 +191,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -172,6 +193,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie if (d0 < 16.0D) { double d1; @@ -111,7 +111,7 @@ index d7fe99e55b64b66af7795c2d0aeca69023f93bae..bf627d66310f201172d3cd3ea12f1d32 if (entityliving == entity) { d1 = 1.0D; } else { -@@ -225,10 +247,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -227,10 +249,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie } } } @@ -124,7 +124,7 @@ index d7fe99e55b64b66af7795c2d0aeca69023f93bae..bf627d66310f201172d3cd3ea12f1d32 AreaEffectCloud entityareaeffectcloud = new AreaEffectCloud(this.level(), this.getX(), this.getY(), this.getZ()); Entity entity = this.getOwner(); -@@ -241,14 +264,16 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -243,14 +266,16 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie entityareaeffectcloud.setWaitTime(10); entityareaeffectcloud.setRadiusPerTick(-entityareaeffectcloud.getRadius() / (float) entityareaeffectcloud.getDuration()); entityareaeffectcloud.setPotionContents(potioncontents); @@ -143,10 +143,10 @@ index d7fe99e55b64b66af7795c2d0aeca69023f93bae..bf627d66310f201172d3cd3ea12f1d32 public boolean isLingering() { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b3aceea0a7f57f32da3924ed73231a0dc65ccc51..3102324bfdaa82826eead1f40d24bf13553f6506 100644 +index 388f0a53e993b84376ce2549c6b041bed283b8a7..f99247b37a6fb04d27611051908364bcde168afa 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -875,6 +875,32 @@ public class CraftEventFactory { +@@ -876,6 +876,32 @@ public class CraftEventFactory { return event; } diff --git a/patches/unapplied/server/0567-Add-more-LimitedRegion-API.patch b/patches/server/0561-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/unapplied/server/0567-Add-more-LimitedRegion-API.patch rename to patches/server/0561-Add-more-LimitedRegion-API.patch diff --git a/patches/unapplied/server/0568-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0562-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 90% rename from patches/unapplied/server/0568-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0562-Fix-PlayerDropItemEvent-using-wrong-item.patch index a15f10ca2a..92eb8d5365 100644 --- a/patches/unapplied/server/0568-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0562-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -31,10 +31,10 @@ index c81fd3e1108fb0a02f9240263404af2b968c8494..0d9de4c61c7b26a6ff37c12fde629161 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2ff11c9aff04f404d45e0b267285e2b4a2a23b6f..b342516707448ab5f0f1e763bf6be3f004b9e4b4 100644 +index ff6a8a3977ec489a372c72323e6285c16f00bd7f..90855f6929a0de660d0827aff41f466677d80e0b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2434,7 +2434,7 @@ public class ServerPlayer extends Player { +@@ -2483,7 +2483,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { if (retainOwnership) { if (!itemstack1.isEmpty()) { @@ -44,10 +44,10 @@ index 2ff11c9aff04f404d45e0b267285e2b4a2a23b6f..b342516707448ab5f0f1e763bf6be3f0 this.awardStat(Stats.DROP); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 444e226a32062efff45e3d3d42fdc756787bc6ac..56f7a753d2167504b6d91219093097323a9081c5 100644 +index 6ce03f49f5085cf468ae2114f08f1faa1b099aaa..c89b7cf63d067895bbd07f43eef467ff1861f625 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -726,6 +726,11 @@ public abstract class Player extends LivingEntity { +@@ -744,6 +744,11 @@ public abstract class Player extends LivingEntity { } double d0 = this.getEyeY() - 0.30000001192092896D; diff --git a/patches/unapplied/server/0569-Missing-Entity-API.patch b/patches/server/0563-Missing-Entity-API.patch similarity index 96% rename from patches/unapplied/server/0569-Missing-Entity-API.patch rename to patches/server/0563-Missing-Entity-API.patch index 6de7b2998d..c7cb2e0db5 100644 --- a/patches/unapplied/server/0569-Missing-Entity-API.patch +++ b/patches/server/0563-Missing-Entity-API.patch @@ -128,10 +128,10 @@ index 2cd61138dfaa82fa698ef8d32d690f51f621ee3b..957eb2ba3f647f70522243fedf36b921 this.leader = null; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index d4389172c3c006ebec5d9cd8213cdd499ab39b68..d317b8500e8d2c280e52140440cf2b9cb61c3b28 100644 +index 615b57fac9def18d9dcaefcfe397c74c11cac627..f933654b66f7474dc071da5f10cf1684fdac367a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java -@@ -543,11 +543,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -554,11 +554,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { this.setFlag(4, hasStung); } @@ -146,7 +146,7 @@ index d4389172c3c006ebec5d9cd8213cdd499ab39b68..d317b8500e8d2c280e52140440cf2b9c } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index 864cb9bd4c71e41cf2ed165e5d252ccb613de6cb..290d41136f5ec7671bc4990dfe50da0a770c124d 100644 +index b06d39d3bd39a4dc4f273a359a89592d3b8cf184..43046f4a0cff620834ac4647efdcde227185b2ff 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java @@ -50,6 +50,7 @@ public class Tadpole extends AbstractFish { @@ -206,10 +206,10 @@ index 864cb9bd4c71e41cf2ed165e5d252ccb613de6cb..290d41136f5ec7671bc4990dfe50da0a } 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 d53ef42e64d87790ea86d806153f047005accb9f..57952ad65c905265799ba2d8f99cc4cf4aa69f94 100644 +index affa2e133611b7a045a99bac801398263d114ba7..f1e43254936feedfe0ffbf77071505f3a65e5053 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 -@@ -753,6 +753,15 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, +@@ -760,6 +760,15 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, } @@ -225,7 +225,7 @@ index d53ef42e64d87790ea86d806153f047005accb9f..57952ad65c905265799ba2d8f99cc4cf @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { if (!this.isVehicle() && !this.isBaby()) { -@@ -795,6 +804,11 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, +@@ -802,6 +811,11 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, this.setFlag(16, eatingGrass); } @@ -238,7 +238,7 @@ index d53ef42e64d87790ea86d806153f047005accb9f..57952ad65c905265799ba2d8f99cc4cf if (angry) { this.setEating(false); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 37da58385ecf40baeb4665a0d9c262da03c01763..b6574ffbe3b9fac6ce0f4d398508c9914139f7ec 100644 +index 8afd453deda455bd486c9a4a69790151f5012f62..33b7e578f39608d522a9c270cac69be44a34456b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -74,10 +74,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder type, Level world) { super(type, world); -@@ -594,7 +599,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -595,7 +600,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @Override - public boolean canChangeDimensions() { + public boolean canUsePortal(boolean allowVehicles) { - return false; -+ return super.canChangeDimensions() && canPortal; // Paper ++ return this.canPortal; // Paper } @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 853d65025d5e049467c1f1e7322580880506c347..57f84a0eccbdb051adddc25a1a7126f60c7c274b 100644 +index 0214e8bbcaefdd92ee3719d9a570f9d256ee29ba..7caa5469a4daa5d0c569f446ff2d597a9f10e8ac 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -440,6 +440,16 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -442,6 +442,16 @@ public class EnderMan extends Monster implements NeutralMob { this.entityData.set(EnderMan.DATA_STARED_AT, true); } @@ -310,7 +310,7 @@ index 853d65025d5e049467c1f1e7322580880506c347..57f84a0eccbdb051adddc25a1a7126f6 public boolean requiresCustomPersistence() { return super.requiresCustomPersistence() || this.getCarriedBlock() != null; diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java -index ba7104784cbbbb6eeacf0ca333af20212f6c47b0..373a4f036157017b0d95e8f1849780582235a549 100644 +index 603e948583ce0a99fc0061a85f495e8262659035..a836a902bebf318ceabaed4e98fab1141b46a28b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java @@ -65,6 +65,12 @@ public class Ghast extends FlyingMob implements Enemy { @@ -327,10 +327,10 @@ index ba7104784cbbbb6eeacf0ca333af20212f6c47b0..373a4f036157017b0d95e8f184978058 protected boolean shouldDespawnInPeaceful() { return true; diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index b6653a942b07c2d1f7774054a68bf04d547d7cc0..deedc707971be0bd1b7757f4e9b6d2729cc669d0 100644 +index 9cf453248b6ee9e1af9f5945b1e515a9ad7ff236..f8c733961015ace508bfe14fd61d5188ca9d551b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -@@ -202,6 +202,12 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { +@@ -205,6 +205,12 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { } public void startConverting(@Nullable UUID uuid, int delay) { @@ -343,7 +343,7 @@ index b6653a942b07c2d1f7774054a68bf04d547d7cc0..deedc707971be0bd1b7757f4e9b6d272 this.conversionStarter = uuid; this.villagerConversionTime = delay; this.getEntityData().set(ZombieVillager.DATA_CONVERTING_ID, true); -@@ -209,7 +215,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { +@@ -212,7 +218,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { this.removeEffect(MobEffects.WEAKNESS, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.CONVERSION); this.addEffect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, delay, Math.min(this.level().getDifficulty().getId() - 1, 0)), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.CONVERSION); // CraftBukkit end @@ -353,10 +353,10 @@ index b6653a942b07c2d1f7774054a68bf04d547d7cc0..deedc707971be0bd1b7757f4e9b6d272 @Override diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -index 636638bfee54618b36b09d49a76a46d47e1d09b4..c75ac52f302e8e29e0bdea32c85ccf6713257a9b 100644 +index 46b67c38dccf911973e6a7643f06972019073eb2..e45c3a9805d9fac1fabe6d891c817743acd9969e 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -@@ -105,6 +105,20 @@ public class ThrownTrident extends AbstractArrow { +@@ -106,6 +106,20 @@ public class ThrownTrident extends AbstractArrow { return (Boolean) this.entityData.get(ThrownTrident.ID_FOIL); } @@ -705,10 +705,10 @@ index fc0f0e841dc974d080e1abb9bbafb5165801131f..d657fd2c507a5b215aeab0a5f3e9c2ee + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index d30e1dd1b4525674c8a52da9b677c09a251b2467..9edcdc71b28cf08e42fbe44723ba540e8d4f7808 100644 +index 4134bfb3579e91367644df517c161c1b40cdbe66..7310f53747e68b918f132ee0f0a142e36537902e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1067,4 +1067,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1084,4 +1084,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return set; } // Paper end - tracked players API @@ -737,11 +737,11 @@ index d30e1dd1b4525674c8a52da9b677c09a251b2467..9edcdc71b28cf08e42fbe44723ba540e + // Paper end - missing entity api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -index 763cfa6cfc8447c5a963e79f128e734efe542f89..b0a02c9ca4349ab56ceceae8b78559e20a9b0af5 100644 +index 142f3e3257afebb2e831fd0970678123d99a1717..1b084d63bdbb24dad45d28eed1693eb6e26e24dc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java @@ -84,6 +84,18 @@ public class CraftFireball extends AbstractProjectile implements Fireball { - return new Vector(this.getHandle().xPower, this.getHandle().yPower, this.getHandle().zPower); + return new Vector(delta.x, delta.y, delta.z); } + // Paper start - Expose power on fireball projectiles @@ -828,10 +828,10 @@ index 2cec61a1bb050c1ef81c5fc3d0afafe9ff29d459..97fa4e1e70203194bd939618b2fad926 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 1cfc3d18fb785410f5acfcf3c338776858efe25a..e549c827d68ca96afea1ffdabf6802275c3328d1 100644 +index c23f60a6a3bc294a6ce68b6e72f8eda30812a8f8..af0a44df65277dae72dfb3496c9296bf4ac73da3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -122,6 +122,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -123,6 +123,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } } @@ -845,7 +845,7 @@ index 1cfc3d18fb785410f5acfcf3c338776858efe25a..e549c827d68ca96afea1ffdabf680227 @Override public double getAbsorptionAmount() { return this.getHandle().getAbsorptionAmount(); -@@ -906,14 +913,29 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -908,14 +915,29 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @Override public boolean isInvisible() { diff --git a/patches/unapplied/server/0570-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0564-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 59% rename from patches/unapplied/server/0570-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0564-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 09e73af027..738bfeec26 100644 --- a/patches/unapplied/server/0570-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0564-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1f6e123fbd146129e5460631fdd88de9dd60bdca..66d6bd361edfb04eeed4076feb20cb8861d48874 100644 +index b9db64ac1a3a3e179adf08157a4dbe9c2d1e9682..13d052ae4661b6d725d016cc35437a0125e098d7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1115,7 +1115,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1118,7 +1118,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Paper end - Book size limits // CraftBukkit start if (this.lastBookTick + 20 > MinecraftServer.currentTick) { -- this.disconnect("Book edited too quickly!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause -+ server.scheduleOnMain(() -> this.disconnect("Book edited too quickly!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause // Paper - Also ensure this is called on main +- this.disconnect(Component.literal("Book edited too quickly!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause ++ server.scheduleOnMain(() -> this.disconnect(Component.literal("Book edited too quickly!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause // Paper - Also ensure this is called on main return; } this.lastBookTick = MinecraftServer.currentTick; diff --git a/patches/unapplied/server/0571-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0565-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/unapplied/server/0571-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0565-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/unapplied/server/0572-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0566-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 90% rename from patches/unapplied/server/0572-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0566-Use-getChunkIfLoadedImmediately-in-places.patch index c72ab8a129..0cfa5936f9 100644 --- a/patches/unapplied/server/0572-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0566-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,10 +8,10 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3e935df2de58bd57b061c33b00f9d2ea4134ca80..eecc5704582ce7c9a45adee8057d8297eae03a86 100644 +index 9a09946b6b178837c44daae894555000668aeb72..8c268f57d44d70df3210510abf7832939d41781d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -230,7 +230,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -231,7 +231,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent public LevelChunk getChunkIfLoaded(int x, int z) { @@ -21,10 +21,10 @@ index 3e935df2de58bd57b061c33b00f9d2ea4134ca80..eecc5704582ce7c9a45adee8057d8297 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 88b09635590958b4edf992490dd30616c35d4d6d..fd5dc0e09c89f4e21fde5d06b0fc0d4d45e52280 100644 +index cfd5d3e50197b38d0ffef6debbb7f5b4b208382a..ed1fc466151ebebf7c3ac135c6893f4ea9a55a52 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -179,6 +179,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -180,6 +180,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return (CraftServer) Bukkit.getServer(); } diff --git a/patches/unapplied/server/0573-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0567-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/unapplied/server/0573-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0567-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/unapplied/server/0574-Add-PlayerArmSwingEvent.patch b/patches/server/0568-Add-PlayerArmSwingEvent.patch similarity index 88% rename from patches/unapplied/server/0574-Add-PlayerArmSwingEvent.patch rename to patches/server/0568-Add-PlayerArmSwingEvent.patch index 0c66804f9a..73dc2eeb99 100644 --- a/patches/unapplied/server/0574-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0568-Add-PlayerArmSwingEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 66d6bd361edfb04eeed4076feb20cb8861d48874..dd3767f482929d7d8105a4164c27651099935a89 100644 +index 13d052ae4661b6d725d016cc35437a0125e098d7..0a21e25e7a7771e1c86a857af8133cf7203333e3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2396,7 +2396,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2413,7 +2413,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Paper end - Call interact event // Arm swing animation diff --git a/patches/unapplied/server/0575-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0569-Fix-kick-event-leave-message-not-being-sent.patch similarity index 72% rename from patches/unapplied/server/0575-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0569-Fix-kick-event-leave-message-not-being-sent.patch index 0aebdf0ac4..e5a45438bf 100644 --- a/patches/unapplied/server/0575-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0569-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b342516707448ab5f0f1e763bf6be3f004b9e4b4..ea2c8c91408cb65b3b6a520877c9273dbffd0ac1 100644 +index 90855f6929a0de660d0827aff41f466677d80e0b..db04b3dcd83599042c02566b533a8ec0c9f0fcd4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -285,7 +285,6 @@ public class ServerPlayer extends Player { +@@ -289,7 +289,6 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { public boolean joining = true; public boolean sentListPacket = false; public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready @@ -17,63 +17,63 @@ index b342516707448ab5f0f1e763bf6be3f004b9e4b4..ea2c8c91408cb65b3b6a520877c9273d public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 7659a3f50f5a90814dc7331ea00d6251dcf32600..308aef9c4933b2bcdd622a34b68efab4a220fe4d 100644 +index feb529adf2168025c785ab92d95a3246e73c0236..7ab900fcb949962d226b8293360bb42f7cb0836b 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -109,6 +109,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -110,6 +110,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @Override - public void onDisconnect(Component reason) { + public void onDisconnect(DisconnectionDetails info) { + // Paper start - Fix kick event leave message not being sent -+ this.onDisconnect(reason, null); ++ this.onDisconnect(info, null); + } -+ public void onDisconnect(Component reason, @Nullable net.kyori.adventure.text.Component quitMessage) { ++ public void onDisconnect(DisconnectionDetails info, @Nullable net.kyori.adventure.text.Component quitMessage) { + // Paper end - Fix kick event leave message not being sent if (this.isSingleplayerOwner()) { ServerCommonPacketListenerImpl.LOGGER.info("Stopping singleplayer server as player logged out"); this.server.halt(false); -@@ -376,7 +381,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -374,7 +379,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack // Do not kick the player return; } - this.player.kickLeaveMessage = event.getLeaveMessage(); // CraftBukkit - SPIGOT-3034: Forward leave message to PlayerQuitEvent // Send the possibly modified leave message - final Component ichatbasecomponent = io.papermc.paper.adventure.PaperAdventure.asVanilla(event.reason()); // Paper - Adventure - // CraftBukkit end + this.disconnect0(new DisconnectionDetails(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.reason()), disconnectionInfo.report(), disconnectionInfo.bugReportLink())); // Paper - Adventure + } @@ -385,7 +389,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack - this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> { - this.connection.disconnect(ichatbasecomponent); + this.connection.send(new ClientboundDisconnectPacket(disconnectiondetails.reason()), PacketSendListener.thenRun(() -> { + this.connection.disconnect(disconnectiondetails); })); -- this.onDisconnect(ichatbasecomponent); // CraftBukkit - fire quit instantly -+ this.onDisconnect(ichatbasecomponent, event.leaveMessage()); // CraftBukkit - fire quit instantly // Paper - use kick event leave message +- this.onDisconnect(disconnectiondetails); // CraftBukkit - fire quit instantly ++ this.onDisconnect(disconnectiondetails, event.leaveMessage()); // CraftBukkit - fire quit instantly // Paper - use kick event leave message this.connection.setReadOnly(); MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dd3767f482929d7d8105a4164c27651099935a89..5ba7340d3860975b826dc878385e0879a9f07957 100644 +index 0a21e25e7a7771e1c86a857af8133cf7203333e3..1aad9232786994b89d08fb36ca877ceffcf98d2c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1878,6 +1878,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1895,6 +1895,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override - public void onDisconnect(Component reason) { + public void onDisconnect(DisconnectionDetails info) { + // Paper start - Fix kick event leave message not being sent -+ this.onDisconnect(reason, null); ++ this.onDisconnect(info, null); + } + @Override -+ public void onDisconnect(Component reason, @Nullable net.kyori.adventure.text.Component quitMessage) { ++ public void onDisconnect(DisconnectionDetails info, @Nullable net.kyori.adventure.text.Component quitMessage) { + // Paper end - Fix kick event leave message not being sent // CraftBukkit start - Rarely it would send a disconnect line twice if (this.processedDisconnect) { return; -@@ -1886,11 +1892,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1903,11 +1909,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // CraftBukkit end - ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), reason.getString()); + ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), info.reason().getString()); - this.removePlayerFromWorld(); -- super.onDisconnect(reason); +- super.onDisconnect(info); + this.removePlayerFromWorld(quitMessage); // Paper - Fix kick event leave message not being sent -+ super.onDisconnect(reason, quitMessage); // Paper - Fix kick event leave message not being sent ++ super.onDisconnect(info, quitMessage); // Paper - Fix kick event leave message not being sent } + // Paper start - Fix kick event leave message not being sent @@ -86,7 +86,7 @@ index dd3767f482929d7d8105a4164c27651099935a89..5ba7340d3860975b826dc878385e0879 this.chatMessageChain.close(); // CraftBukkit start - Replace vanilla quit message handling with our own. /* -@@ -1900,7 +1912,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1917,7 +1929,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.disconnect(); // Paper start - Adventure @@ -96,10 +96,10 @@ index dd3767f482929d7d8105a4164c27651099935a89..5ba7340d3860975b826dc878385e0879 this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 709cf6655e5ccb17caf0b8a735ae957cb0509f2c..2b7ad2b9cd525814c9f91d22606c42aa82ce9f94 100644 +index 51f723ef7362ff3eb1bb58f2a75acd12928fabac..ab0b33de277c90404a24b842d7d17124895d6d4e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -567,6 +567,11 @@ public abstract class PlayerList { +@@ -561,6 +561,11 @@ public abstract class PlayerList { } public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer) { // CraftBukkit - return string // Paper - return Component diff --git a/patches/unapplied/server/0576-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0570-Don-t-apply-cramming-damage-to-players.patch similarity index 86% rename from patches/unapplied/server/0576-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0570-Don-t-apply-cramming-damage-to-players.patch index dcfd508e6b..035356d2ad 100644 --- a/patches/unapplied/server/0576-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0570-Don-t-apply-cramming-damage-to-players.patch @@ -11,10 +11,10 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ea2c8c91408cb65b3b6a520877c9273dbffd0ac1..bb0ac7db0467ec8468fcbf63b8f22580ed11e723 100644 +index db04b3dcd83599042c02566b533a8ec0c9f0fcd4..0b2d9f069a5f4aa77a267a2df92b87817c503691 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -98,6 +98,7 @@ import net.minecraft.util.Mth; +@@ -95,6 +95,7 @@ import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; import net.minecraft.util.Unit; import net.minecraft.world.damagesource.DamageSource; @@ -22,7 +22,7 @@ index ea2c8c91408cb65b3b6a520877c9273dbffd0ac1..bb0ac7db0467ec8468fcbf63b8f22580 import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; -@@ -1507,7 +1508,7 @@ public class ServerPlayer extends Player { +@@ -1548,7 +1549,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @Override public boolean isInvulnerableTo(DamageSource damageSource) { diff --git a/patches/unapplied/server/0577-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0571-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/unapplied/server/0577-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0571-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/unapplied/server/0578-Add-missing-forceDrop-toggles.patch b/patches/server/0572-Add-missing-forceDrop-toggles.patch similarity index 89% rename from patches/unapplied/server/0578-Add-missing-forceDrop-toggles.patch rename to patches/server/0572-Add-missing-forceDrop-toggles.patch index b89de7428a..ee356401e0 100644 --- a/patches/unapplied/server/0578-Add-missing-forceDrop-toggles.patch +++ b/patches/server/0572-Add-missing-forceDrop-toggles.patch @@ -19,10 +19,10 @@ index b9c2b41d9c46c871bab44cfb1d454f4141f1627b..d975b349aa81327c6b6c23e83e955215 } } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index fb4c7220c4edad54813036d62db7e3eefeda92a3..83d8a09980c4ab3c7c97b07c3dcdb3d7dab9e1aa 100644 +index 8df42121aa22ec9f95a1b8627b64b0ff71e36314..7b3d5322611990406028e59b1409907291e27b21 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java -@@ -549,11 +549,13 @@ public class Panda extends Animal { +@@ -554,11 +554,13 @@ public class Panda extends Animal { List list1 = loottable.getRandomItems(lootparams); Iterator iterator1 = list1.iterator(); @@ -36,7 +36,7 @@ index fb4c7220c4edad54813036d62db7e3eefeda92a3..83d8a09980c4ab3c7c97b07c3dcdb3d7 } } -@@ -677,7 +679,9 @@ public class Panda extends Animal { +@@ -682,7 +684,9 @@ public class Panda extends Animal { ItemStack itemstack1 = this.getItemBySlot(EquipmentSlot.MAINHAND); if (!itemstack1.isEmpty() && !player.hasInfiniteMaterials()) { @@ -57,10 +57,10 @@ index fb4c7220c4edad54813036d62db7e3eefeda92a3..83d8a09980c4ab3c7c97b07c3dcdb3d7 int i = Panda.this.isLazy() ? Panda.this.random.nextInt(50) + 10 : Panda.this.random.nextInt(150) + 10; diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 11f4a2e15d42a029406fe8399b8d93ae136f0295..5ebf49a565af4ab3bead60a83bca2e6561e6a29c 100644 +index faff64ae69eb689cea7754f221f374f8faa6e541..26b050599984ae3ba3827a0cabab255374e38c1e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -@@ -468,7 +468,9 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder activeCompatibilities = Collections.emptySet(); private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper public static Exception excessiveVelEx; // Paper - Velocity warnings diff --git a/patches/unapplied/server/0581-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0575-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 82% rename from patches/unapplied/server/0581-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0575-Prevent-AFK-kick-while-watching-end-credits.patch index 92d95bf1df..d0eec6fa13 100644 --- a/patches/unapplied/server/0581-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0575-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5ba7340d3860975b826dc878385e0879a9f07957..40d2c7bfc8ba8b8b366f23e53cf37f331e19ccf7 100644 +index 1aad9232786994b89d08fb36ca877ceffcf98d2c..83b0df341f4be1191191718e871dac6842d4a31a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -397,7 +397,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -15,5 +15,5 @@ index 5ba7340d3860975b826dc878385e0879a9f07957..40d2c7bfc8ba8b8b366f23e53cf37f33 - if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L) { + if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 - this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause + this.disconnect((Component) Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } diff --git a/patches/unapplied/server/0582-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0576-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/unapplied/server/0582-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0576-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/unapplied/server/0583-Add-PlayerSetSpawnEvent.patch b/patches/server/0577-Add-PlayerSetSpawnEvent.patch similarity index 87% rename from patches/unapplied/server/0583-Add-PlayerSetSpawnEvent.patch rename to patches/server/0577-Add-PlayerSetSpawnEvent.patch index 28d5ca16f6..b0e5115164 100644 --- a/patches/unapplied/server/0583-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0577-Add-PlayerSetSpawnEvent.patch @@ -49,20 +49,20 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index bb0ac7db0467ec8468fcbf63b8f22580ed11e723..b90b525faa5bba684c783a56f136532a8195de84 100644 +index 0b2d9f069a5f4aa77a267a2df92b87817c503691..bc0a26cfbc5e1d21880f976c6bd4d0e30b277767 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1384,7 +1384,7 @@ public class ServerPlayer extends Player { +@@ -1425,7 +1425,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } else if (this.bedBlocked(blockposition, enumdirection)) { - return Either.left(Player.BedSleepingProblem.OBSTRUCTED); + return Either.left(net.minecraft.world.entity.player.Player.BedSleepingProblem.OBSTRUCTED); } else { - this.setRespawnPosition(this.level().dimension(), blockposition, this.getYRot(), false, true, PlayerSpawnChangeEvent.Cause.BED); // CraftBukkit + this.setRespawnPosition(this.level().dimension(), blockposition, this.getYRot(), false, true, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.BED); // Paper - Add PlayerSetSpawnEvent if (this.level().isDay()) { - return Either.left(Player.BedSleepingProblem.NOT_POSSIBLE_NOW); + return Either.left(net.minecraft.world.entity.player.Player.BedSleepingProblem.NOT_POSSIBLE_NOW); } else { -@@ -2354,44 +2354,50 @@ public class ServerPlayer extends Player { - return this.respawnForced; +@@ -2403,44 +2403,50 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { + this.setRespawnPosition(player.getRespawnDimension(), player.getRespawnPosition(), player.getRespawnAngle(), player.isRespawnForced(), false); } + @Deprecated // Paper - Add PlayerSetSpawnEvent @@ -145,7 +145,7 @@ index bb0ac7db0467ec8468fcbf63b8f22580ed11e723..b90b525faa5bba684c783a56f136532a } else { this.respawnPosition = null; this.respawnDimension = Level.OVERWORLD; -@@ -2399,6 +2405,7 @@ public class ServerPlayer extends Player { +@@ -2448,6 +2454,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.respawnForced = false; } @@ -154,18 +154,18 @@ index bb0ac7db0467ec8468fcbf63b8f22580ed11e723..b90b525faa5bba684c783a56f136532a public SectionPos getLastSectionPos() { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 2b7ad2b9cd525814c9f91d22606c42aa82ce9f94..d7bbdcc97745246718c92c9aba56d9f926897975 100644 +index ab0b33de277c90404a24b842d7d17124895d6d4e..1ba8fa300b95ad5709e35068e8a372b627d132f9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -870,7 +870,7 @@ public abstract class PlayerList { - location = CraftLocation.toBukkit(vec3d, worldserver1.getWorld(), f1, 0.0F); - } else if (blockposition != null) { - entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F)); -- entityplayer1.setRespawnPosition(null, null, 0f, false, false, PlayerSpawnChangeEvent.Cause.RESET); // CraftBukkit - SPIGOT-5988: Clear respawn location when obstructed -+ entityplayer1.setRespawnPosition(null, null, 0f, false, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLAYER_RESPAWN); // CraftBukkit - SPIGOT-5988: Clear respawn location when obstructed // Paper - Add PlayerSetSpawnEvent - } - } +@@ -841,7 +841,7 @@ public abstract class PlayerList { + // CraftBukkit end + if (dimensiontransition.missingRespawnBlock()) { + entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F)); +- entityplayer1.setRespawnPosition(null, null, 0f, false, false, PlayerSpawnChangeEvent.Cause.RESET); // CraftBukkit - SPIGOT-5988: Clear respawn location when obstructed ++ entityplayer1.setRespawnPosition(null, null, 0f, false, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLAYER_RESPAWN); // CraftBukkit - SPIGOT-5988: Clear respawn location when obstructed // Paper - PlayerSetSpawnEvent + } + int i = flag ? 1 : 0; diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java index ba22ad1e4253477572d10d71db6db0ebc14d6755..94d067e9eeee73183de25165d8c97043fe256103 100644 --- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java @@ -187,10 +187,10 @@ index ba22ad1e4253477572d10d71db6db0ebc14d6755..94d067e9eeee73183de25165d8c97043 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index eee0c49bbf9bc768fcf7275c29536b4f16b1d421..634da85870b31a9fc09d53f5670239e18bcb3d47 100644 +index 26a8006a1daa9eecb226732a5a33d2a5d1cdedf9..9c1205b6b3cae33e735e5d64735935e8396db7d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1399,9 +1399,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1412,9 +1412,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setRespawnLocation(Location location, boolean override) { if (location == null) { diff --git a/patches/unapplied/server/0584-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0578-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/unapplied/server/0584-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0578-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0579-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0579-Optimize-entity-tracker-passenger-checks.patch new file mode 100644 index 0000000000..0dd7d25ba3 --- /dev/null +++ b/patches/server/0579-Optimize-entity-tracker-passenger-checks.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andrew Steinborn +Date: Sun, 8 Aug 2021 00:52:54 -0400 +Subject: [PATCH] Optimize entity tracker passenger checks + + +diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java +index 9f04dc7817909d81f387b03bfc57d2d9a1d63478..7e8a43ea1b32f444fb66e270a5f6b48bf7bcd2a0 100644 +--- a/src/main/java/net/minecraft/server/level/ServerEntity.java ++++ b/src/main/java/net/minecraft/server/level/ServerEntity.java +@@ -71,7 +71,7 @@ public class ServerEntity { + private Vec3 lastSentMovement; + private int tickCount; + private int teleportDelay; +- private List lastPassengers = Collections.emptyList(); ++ private List lastPassengers = com.google.common.collect.ImmutableList.of(); // Paper - optimize passenger checks + private boolean wasRiding; + private boolean wasOnGround; + @Nullable diff --git a/patches/unapplied/server/0585-Optimize-entity-tracker-passenger-checks.patch b/patches/unapplied/server/0585-Optimize-entity-tracker-passenger-checks.patch deleted file mode 100644 index a764dcd8ab..0000000000 --- a/patches/unapplied/server/0585-Optimize-entity-tracker-passenger-checks.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Andrew Steinborn -Date: Sun, 8 Aug 2021 00:52:54 -0400 -Subject: [PATCH] Optimize entity tracker passenger checks - - -diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 002c73c7dc7c72968ed8692a67e1bce4236f7214..56408fa2603137819f47e7bd9b53b0b5f647edd6 100644 ---- a/src/main/java/net/minecraft/server/level/ServerEntity.java -+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -83,7 +83,7 @@ public class ServerEntity { - this.trackedPlayers = trackedPlayers; - // CraftBukkit end - this.ap = Vec3.ZERO; -- this.lastPassengers = Collections.emptyList(); -+ this.lastPassengers = com.google.common.collect.ImmutableList.of(); // Paper - optimize passenger checks - this.level = worldserver; - this.broadcast = consumer; - this.entity = entity;