aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMiniDigger | Martin <[email protected]>2021-04-18 11:02:48 +0200
committerGitHub <[email protected]>2021-04-18 09:02:48 +0000
commit0fb8bdf0e0a7093551b095c668a6595efbf51872 (patch)
tree4a97a64d96fb949d36c86dad849d930e288170a8
parent88ab784da08cba772226c3525954ca6218a94464 (diff)
downloadPaper-0fb8bdf0e0a7093551b095c668a6595efbf51872.tar.gz
Paper-0fb8bdf0e0a7093551b095c668a6595efbf51872.zip
Updated Upstream (Bukkit/CraftBukkit) (#5508)
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 14883d6b SPIGOT-6078: Add SmithItemEvent and expand SmithingInventory API CraftBukkit Changes: 115244c7 SPIGOT-6078: Add SmithItemEvent and expand SmithingInventory API
-rw-r--r--Spigot-API-Patches/0199-Add-item-slot-convenience-methods.patch37
-rw-r--r--Spigot-Server-Patches/0004-MC-Utils.patch4
-rw-r--r--Spigot-Server-Patches/0009-Timings-v2.patch16
-rw-r--r--Spigot-Server-Patches/0010-Adventure.patch12
-rw-r--r--Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch4
-rw-r--r--Spigot-Server-Patches/0059-Complete-resource-pack-API.patch4
-rw-r--r--Spigot-Server-Patches/0078-Add-PlayerUseUnknownEntityEvent.patch4
-rw-r--r--Spigot-Server-Patches/0110-Configurable-packet-in-spam-threshold.patch4
-rw-r--r--Spigot-Server-Patches/0111-Configurable-flying-kick-messages.patch6
-rw-r--r--Spigot-Server-Patches/0130-Properly-fix-item-duplication-bug.patch4
-rw-r--r--Spigot-Server-Patches/0144-Add-option-to-make-parrots-stay-on-shoulders-despite.patch4
-rw-r--r--Spigot-Server-Patches/0170-Add-PlayerJumpEvent.patch4
-rw-r--r--Spigot-Server-Patches/0171-handle-PacketPlayInKeepAlive-async.patch4
-rw-r--r--Spigot-Server-Patches/0173-revert-serverside-behavior-of-keepalives.patch8
-rw-r--r--Spigot-Server-Patches/0180-AsyncTabCompleteEvent.patch8
-rw-r--r--Spigot-Server-Patches/0209-Fix-exploit-that-allowed-colored-signs-to-be-created.patch4
-rw-r--r--Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch6
-rw-r--r--Spigot-Server-Patches/0236-Refresh-player-inventory-when-cancelling-PlayerInter.patch4
-rw-r--r--Spigot-Server-Patches/0258-Break-up-and-make-tab-spam-limits-configurable.patch8
-rw-r--r--Spigot-Server-Patches/0298-Call-player-spectator-target-events-and-improve-impl.patch6
-rw-r--r--Spigot-Server-Patches/0303-Add-option-to-prevent-players-from-moving-into-unloa.patch8
-rw-r--r--Spigot-Server-Patches/0311-Don-t-allow-digging-into-unloaded-chunks.patch4
-rw-r--r--Spigot-Server-Patches/0312-Book-Size-Limits.patch4
-rw-r--r--Spigot-Server-Patches/0326-Fix-sign-edit-memory-leak.patch4
-rw-r--r--Spigot-Server-Patches/0327-Limit-Client-Sign-length-more.patch6
-rw-r--r--Spigot-Server-Patches/0338-Update-entity-Metadata-for-all-tracked-players.patch4
-rw-r--r--Spigot-Server-Patches/0347-Fix-CB-call-to-changed-postToMainThread-method.patch4
-rw-r--r--Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch4
-rw-r--r--Spigot-Server-Patches/0370-Use-getChunkIfLoadedImmediately-in-places.patch6
-rw-r--r--Spigot-Server-Patches/0385-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch6
-rw-r--r--Spigot-Server-Patches/0413-Prevent-teleporting-dead-entities.patch4
-rw-r--r--Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch8
-rw-r--r--Spigot-Server-Patches/0460-Implement-Brigadier-Mojang-API.patch6
-rw-r--r--Spigot-Server-Patches/0462-Validate-PickItem-Packet-and-kick-for-invalid.patch4
-rw-r--r--Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch4
-rw-r--r--Spigot-Server-Patches/0500-Prevent-position-desync-in-playerconnection-causing-.patch4
-rw-r--r--Spigot-Server-Patches/0504-Add-and-implement-PlayerRecipeBookClickEvent.patch4
-rw-r--r--Spigot-Server-Patches/0507-Add-permission-for-command-blocks.patch6
-rw-r--r--Spigot-Server-Patches/0510-Fix-Per-World-Difficulty-Remembering-Difficulty.patch4
-rw-r--r--Spigot-Server-Patches/0524-Add-PrepareResultEvent.patch12
-rw-r--r--Spigot-Server-Patches/0532-Move-range-check-for-block-placing-up.patch4
-rw-r--r--Spigot-Server-Patches/0547-Brand-support.patch10
-rw-r--r--Spigot-Server-Patches/0568-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch6
-rw-r--r--Spigot-Server-Patches/0581-Fix-for-large-move-vectors-crashing-server.patch8
-rw-r--r--Spigot-Server-Patches/0597-Add-API-for-quit-reason.patch4
-rw-r--r--Spigot-Server-Patches/0613-Limit-recipe-packets.patch8
-rw-r--r--Spigot-Server-Patches/0630-Fix-interact-event-not-being-called-in-adventure.patch6
-rw-r--r--Spigot-Server-Patches/0690-Allow-using-signs-inside-spawn-protection.patch4
-rw-r--r--Spigot-Server-Patches/0699-Don-t-ignore-result-of-PlayerEditBookEvent.patch4
m---------work/Bukkit0
m---------work/CraftBukkit0
51 files changed, 143 insertions, 168 deletions
diff --git a/Spigot-API-Patches/0199-Add-item-slot-convenience-methods.patch b/Spigot-API-Patches/0199-Add-item-slot-convenience-methods.patch
index 269799d878..3b3612713f 100644
--- a/Spigot-API-Patches/0199-Add-item-slot-convenience-methods.patch
+++ b/Spigot-API-Patches/0199-Add-item-slot-convenience-methods.patch
@@ -178,19 +178,13 @@ index 4a0c43acc2714e095973eb78536041bb1a179ddc..acf2244f77133df53eb5f862c8e713c8
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/SmithingInventory.java b/src/main/java/org/bukkit/inventory/SmithingInventory.java
-index 616495f8517a187a1eba4d03d5a25580fd0c8715..2b8f21cfce99b6caaedb48df4aa1e989644b88ff 100644
+index 96d526b7b153e56c9a97de42ce3270b6638510e4..a41ca6bd2672db2810dd70c4925b84a4f081af05 100644
--- a/src/main/java/org/bukkit/inventory/SmithingInventory.java
+++ b/src/main/java/org/bukkit/inventory/SmithingInventory.java
-@@ -1,6 +1,68 @@
- package org.bukkit.inventory;
-
-+import org.jetbrains.annotations.Nullable; // Paper
-+
- /**
- * Interface to the inventory of a Smithing table.
- */
--public interface SmithingInventory extends Inventory { }
-+public interface SmithingInventory extends Inventory {
+@@ -30,4 +30,44 @@ public interface SmithingInventory extends Inventory {
+ */
+ @Nullable
+ Recipe getRecipe();
+
+ // Paper start
+ /**
@@ -230,27 +224,8 @@ index 616495f8517a187a1eba4d03d5a25580fd0c8715..2b8f21cfce99b6caaedb48df4aa1e989
+ default void setInputMineral(@Nullable ItemStack itemStack) {
+ setItem(1, itemStack);
+ }
-+
-+ /**
-+ * Gets the result item.
-+ *
-+ * @return result
-+ */
-+ @Nullable
-+ default ItemStack getResult() {
-+ return getItem(2);
-+ }
-+
-+ /**
-+ * Sets the result item.
-+ *
-+ * @param itemStack item to set
-+ */
-+ default void setResult(@Nullable ItemStack itemStack) {
-+ setItem(2, itemStack);
-+ }
+ // Paper end
-+}
+ }
diff --git a/src/main/java/org/bukkit/inventory/StonecutterInventory.java b/src/main/java/org/bukkit/inventory/StonecutterInventory.java
index dbb034fae3b8bfaf40e6341460e274c21e321a3b..e7a8e7188bf8b9840de56dc80c2b79d64a9389cb 100644
--- a/src/main/java/org/bukkit/inventory/StonecutterInventory.java
diff --git a/Spigot-Server-Patches/0004-MC-Utils.patch b/Spigot-Server-Patches/0004-MC-Utils.patch
index 50b496ee6c..1d1965739b 100644
--- a/Spigot-Server-Patches/0004-MC-Utils.patch
+++ b/Spigot-Server-Patches/0004-MC-Utils.patch
@@ -3667,10 +3667,10 @@ index 634f34b8b88a1ef86cebf3126da9989a88707711..da53050c6c3d0a6ef3d5b96a88517e69
bufferedwriter.write(String.format("spawn_count.%s: %d\n", ((EnumCreatureType) it_unimi_dsi_fastutil_objects_object2intmap_entry.getKey()).b(), it_unimi_dsi_fastutil_objects_object2intmap_entry.getIntValue()));
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index fbb844c37de99a6e168df34097826e9dcb620084..f5e9758b051b5404297748e164917d18222ed723 100644
+index 1a8f4ed15f7df5c734efc83c91444a42041af978..bc9321e77c6b2f9ac17821413fa1357da2f26b05 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -218,9 +218,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -220,9 +220,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
private final MinecraftServer minecraftServer;
public EntityPlayer player;
private int e;
diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch
index b917bae172..e484a20644 100644
--- a/Spigot-Server-Patches/0009-Timings-v2.patch
+++ b/Spigot-Server-Patches/0009-Timings-v2.patch
@@ -1376,18 +1376,18 @@ index da53050c6c3d0a6ef3d5b96a88517e694536a268..4170743875d2fb16987e513713b2d141
// CraftBukkit start - moved from MinecraftServer.saveChunks
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index f5e9758b051b5404297748e164917d18222ed723..462461f3cfebe7a8217f6e341bfc2c7759b0b758 100644
+index bc9321e77c6b2f9ac17821413fa1357da2f26b05..4ed497ee04d9e9116e1f7d90bf975aeadd24aa93 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -209,6 +209,7 @@ import org.bukkit.inventory.CraftingInventory;
- import org.bukkit.inventory.EquipmentSlot;
+@@ -211,6 +211,7 @@ import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.InventoryView;
+ import org.bukkit.inventory.SmithingInventory;
import org.bukkit.util.NumberConversions;
+import co.aikar.timings.MinecraftTimings; // Paper
// CraftBukkit end
public class PlayerConnection implements PacketListenerPlayIn {
-@@ -291,7 +292,6 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -293,7 +294,6 @@ public class PlayerConnection implements PacketListenerPlayIn {
// CraftBukkit end
public void tick() {
@@ -1395,7 +1395,7 @@ index f5e9758b051b5404297748e164917d18222ed723..462461f3cfebe7a8217f6e341bfc2c77
this.syncPosition();
this.player.lastX = this.player.locX();
this.player.lastY = this.player.locY();
-@@ -367,7 +367,6 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -369,7 +369,6 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854
this.disconnect(new ChatMessage("multiplayer.disconnect.idling"));
}
@@ -1403,7 +1403,7 @@ index f5e9758b051b5404297748e164917d18222ed723..462461f3cfebe7a8217f6e341bfc2c77
}
-@@ -1914,7 +1913,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1916,7 +1915,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
// CraftBukkit end
private void handleCommand(String s) {
@@ -1412,7 +1412,7 @@ index f5e9758b051b5404297748e164917d18222ed723..462461f3cfebe7a8217f6e341bfc2c77
// CraftBukkit start - whole method
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getName() + " issued server command: " + s);
-@@ -1925,7 +1924,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1927,7 +1926,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.server.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -1421,7 +1421,7 @@ index f5e9758b051b5404297748e164917d18222ed723..462461f3cfebe7a8217f6e341bfc2c77
return;
}
-@@ -1938,7 +1937,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1940,7 +1939,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
java.util.logging.Logger.getLogger(PlayerConnection.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
} finally {
diff --git a/Spigot-Server-Patches/0010-Adventure.patch b/Spigot-Server-Patches/0010-Adventure.patch
index 227543e39d..e38239842f 100644
--- a/Spigot-Server-Patches/0010-Adventure.patch
+++ b/Spigot-Server-Patches/0010-Adventure.patch
@@ -1256,7 +1256,7 @@ index 2a96564c1656d42a74c331a6178e511cd5347a66..d219eda271a71f786808a6958b829fca
@Override
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 462461f3cfebe7a8217f6e341bfc2c7759b0b758..73a40378f434b09c91b6f45da8f7a7b9e37b1e6a 100644
+index 4ed497ee04d9e9116e1f7d90bf975aeadd24aa93..a39f58e0c60b5e3ccc3b725f1f4167d52b230e11 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -159,6 +159,8 @@ import org.apache.logging.log4j.LogManager;
@@ -1268,7 +1268,7 @@ index 462461f3cfebe7a8217f6e341bfc2c7759b0b758..73a40378f434b09c91b6f45da8f7a7b9
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import net.minecraft.network.protocol.game.PacketPlayOutAttachEntity;
-@@ -388,21 +390,24 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -390,21 +392,24 @@ public class PlayerConnection implements PacketListenerPlayIn {
return this.minecraftServer.a(this.player.getProfile());
}
@@ -1301,7 +1301,7 @@ index 462461f3cfebe7a8217f6e341bfc2c7759b0b758..73a40378f434b09c91b6f45da8f7a7b9
if (this.server.getServer().isRunning()) {
this.server.getPluginManager().callEvent(event);
-@@ -413,8 +418,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -415,8 +420,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
return;
}
// Send the possibly modified leave message
@@ -1311,7 +1311,7 @@ index 462461f3cfebe7a8217f6e341bfc2c7759b0b758..73a40378f434b09c91b6f45da8f7a7b9
// CraftBukkit end
this.networkManager.sendPacket(new PacketPlayOutKickDisconnect(ichatbasecomponent), (future) -> {
-@@ -1630,9 +1634,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1632,9 +1636,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
*/
this.player.p();
@@ -1326,7 +1326,7 @@ index 462461f3cfebe7a8217f6e341bfc2c7759b0b758..73a40378f434b09c91b6f45da8f7a7b9
}
// CraftBukkit end
ITextFilter itextfilter = this.player.Q();
-@@ -1848,8 +1854,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1850,8 +1856,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.handleCommand(s);
} else if (this.player.getChatFlags() == EnumChatVisibility.SYSTEM) {
// Do nothing, this is coming from a plugin
@@ -1342,7 +1342,7 @@ index 462461f3cfebe7a8217f6e341bfc2c7759b0b758..73a40378f434b09c91b6f45da8f7a7b9
AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, s, new LazyPlayerSet(minecraftServer));
this.server.getPluginManager().callEvent(event);
-@@ -2656,21 +2667,20 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2669,21 +2680,20 @@ public class PlayerConnection implements PacketListenerPlayIn {
return;
}
diff --git a/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch b/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch
index eb2bc5f6aa..f254df9967 100644
--- a/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch
+++ b/Spigot-Server-Patches/0045-Ensure-commands-are-not-ran-async.patch
@@ -14,10 +14,10 @@ big slowdown in execution but throwing an exception at same time to raise awaren
that it is happening so that plugin authors can fix their code to stop executing commands async.
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index c417250f66805788d63434e2c360349a39996176..a70fb56b0f44372cc62adbb9a263684224c264d2 100644
+index a39f58e0c60b5e3ccc3b725f1f4167d52b230e11..6a8567c355202560ee523c6dc68cac1ac3e562fd 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1851,6 +1851,29 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1853,6 +1853,29 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (!async && s.startsWith("/")) {
diff --git a/Spigot-Server-Patches/0059-Complete-resource-pack-API.patch b/Spigot-Server-Patches/0059-Complete-resource-pack-API.patch
index 26f3c0a622..9d33dc5a78 100644
--- a/Spigot-Server-Patches/0059-Complete-resource-pack-API.patch
+++ b/Spigot-Server-Patches/0059-Complete-resource-pack-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index a70fb56b0f44372cc62adbb9a263684224c264d2..98189c2f4c973427563c48a231bf8e6c21e0391d 100644
+index 6a8567c355202560ee523c6dc68cac1ac3e562fd..69dc4431a430461ce242de5c1a1c3023367c99b7 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1602,7 +1602,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1604,7 +1604,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
// CraftBukkit start
public void a(PacketPlayInResourcePackStatus packetplayinresourcepackstatus) {
PlayerConnectionUtils.ensureMainThread(packetplayinresourcepackstatus, this, this.player.getWorldServer());
diff --git a/Spigot-Server-Patches/0078-Add-PlayerUseUnknownEntityEvent.patch b/Spigot-Server-Patches/0078-Add-PlayerUseUnknownEntityEvent.patch
index 1f01d6599f..5401f07df1 100644
--- a/Spigot-Server-Patches/0078-Add-PlayerUseUnknownEntityEvent.patch
+++ b/Spigot-Server-Patches/0078-Add-PlayerUseUnknownEntityEvent.patch
@@ -18,10 +18,10 @@ index 9f3f8568ef9484ba226deaa6429f819c325b7a26..ce63f3e5ac4d1a4311c0ebeb7574d999
private Vec3D c;
private EnumHand d;
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 98189c2f4c973427563c48a231bf8e6c21e0391d..7aec9a349ea941153863d95eb8df4f8c884b5617 100644
+index 69dc4431a430461ce242de5c1a1c3023367c99b7..7cb946ff73de5171debe34b37a784b6ed4e09150 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2197,6 +2197,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2199,6 +2199,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
}
}
diff --git a/Spigot-Server-Patches/0110-Configurable-packet-in-spam-threshold.patch b/Spigot-Server-Patches/0110-Configurable-packet-in-spam-threshold.patch
index d7cd980ce7..febebcbdef 100644
--- a/Spigot-Server-Patches/0110-Configurable-packet-in-spam-threshold.patch
+++ b/Spigot-Server-Patches/0110-Configurable-packet-in-spam-threshold.patch
@@ -23,10 +23,10 @@ index c52dc0346f93527965ef29a0ccdc4bf3debe302e..64d7c9058ee757a6d3cf3b648596092a
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 7aec9a349ea941153863d95eb8df4f8c884b5617..d809984d4a0032a2e27d01524c662a09da9d5eab 100644
+index 7cb946ff73de5171debe34b37a784b6ed4e09150..702b06fac36f51bdb53d530e0c01bfe1dd67c527 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1462,13 +1462,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1464,13 +1464,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
// Spigot start - limit place/interactions
private int limitedPackets;
private long lastLimitedPacket = -1;
diff --git a/Spigot-Server-Patches/0111-Configurable-flying-kick-messages.patch b/Spigot-Server-Patches/0111-Configurable-flying-kick-messages.patch
index 90b523420c..62eca51bb7 100644
--- a/Spigot-Server-Patches/0111-Configurable-flying-kick-messages.patch
+++ b/Spigot-Server-Patches/0111-Configurable-flying-kick-messages.patch
@@ -21,10 +21,10 @@ index 64d7c9058ee757a6d3cf3b648596092a810e105c..4e2f243faa209925dcb7c3ef89df3ed8
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index d809984d4a0032a2e27d01524c662a09da9d5eab..010d4d33a2044bd54bf0bab055708711865b8d12 100644
+index 702b06fac36f51bdb53d530e0c01bfe1dd67c527..908d52f48b4bf2ddd638f2d718e1f6cb6148ce0a 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -305,7 +305,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -307,7 +307,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
if (this.B && !this.player.isSleeping()) {
if (++this.C > 80) {
PlayerConnection.LOGGER.warn("{} was kicked for floating too long!", this.player.getDisplayName().getString());
@@ -33,7 +33,7 @@ index d809984d4a0032a2e27d01524c662a09da9d5eab..010d4d33a2044bd54bf0bab055708711
return;
}
} else {
-@@ -324,7 +324,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -326,7 +326,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
if (this.D && this.player.getRootVehicle().getRidingPassenger() == this.player) {
if (++this.E > 80) {
PlayerConnection.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getDisplayName().getString());
diff --git a/Spigot-Server-Patches/0130-Properly-fix-item-duplication-bug.patch b/Spigot-Server-Patches/0130-Properly-fix-item-duplication-bug.patch
index 9d844fea6c..6d8014f95c 100644
--- a/Spigot-Server-Patches/0130-Properly-fix-item-duplication-bug.patch
+++ b/Spigot-Server-Patches/0130-Properly-fix-item-duplication-bug.patch
@@ -21,10 +21,10 @@ index fa315f10219dc340da4f51a8d4a78e1f33023bb3..afa87cf70ad978161853771c59f5a490
@Override
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 010d4d33a2044bd54bf0bab055708711865b8d12..bc0b1d0cc9c54d53c68ee59b0a707e0335297441 100644
+index 908d52f48b4bf2ddd638f2d718e1f6cb6148ce0a..8a5a1ca08073d1a4df949a53fbf7e75339bf2761 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2806,7 +2806,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2819,7 +2819,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
public final boolean isDisconnected() {
diff --git a/Spigot-Server-Patches/0144-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/Spigot-Server-Patches/0144-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
index 7642b6b25a..270c71d6d4 100644
--- a/Spigot-Server-Patches/0144-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
+++ b/Spigot-Server-Patches/0144-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
@@ -26,10 +26,10 @@ index c611b5a63498f5ad1f50a75ccd5d7299e27df7e3..9d1cddc6038f0fd0286e4a32013ae98f
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index bc0b1d0cc9c54d53c68ee59b0a707e0335297441..62fb502adf8cd7095e4826eb72ab39cf0bcc6d55 100644
+index 8a5a1ca08073d1a4df949a53fbf7e75339bf2761..bf3195eaf1fc7bdddafbb54d0ccf825e95b63210 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2050,6 +2050,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2052,6 +2052,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
switch (packetplayinentityaction.c()) {
case PRESS_SHIFT_KEY:
this.player.setSneaking(true);
diff --git a/Spigot-Server-Patches/0170-Add-PlayerJumpEvent.patch b/Spigot-Server-Patches/0170-Add-PlayerJumpEvent.patch
index fd8b8658a3..61478af206 100644
--- a/Spigot-Server-Patches/0170-Add-PlayerJumpEvent.patch
+++ b/Spigot-Server-Patches/0170-Add-PlayerJumpEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerJumpEvent
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 62fb502adf8cd7095e4826eb72ab39cf0bcc6d55..c096c461a2ffe8efdb02242f319a1612f7c2901d 100644
+index bf3195eaf1fc7bdddafbb54d0ccf825e95b63210..7af07ca8e1fa20361c95841b48dd70cdf46a18b5 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1166,7 +1166,34 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1168,7 +1168,34 @@ public class PlayerConnection implements PacketListenerPlayIn {
boolean flag = d8 > 0.0D;
if (this.player.isOnGround() && !packetplayinflying.b() && flag) {
diff --git a/Spigot-Server-Patches/0171-handle-PacketPlayInKeepAlive-async.patch b/Spigot-Server-Patches/0171-handle-PacketPlayInKeepAlive-async.patch
index a6326f5450..1d3d75d1c5 100644
--- a/Spigot-Server-Patches/0171-handle-PacketPlayInKeepAlive-async.patch
+++ b/Spigot-Server-Patches/0171-handle-PacketPlayInKeepAlive-async.patch
@@ -15,10 +15,10 @@ 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/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index c096c461a2ffe8efdb02242f319a1612f7c2901d..9b0d00220406cf20421607ae234f4c0d674681bb 100644
+index 7af07ca8e1fa20361c95841b48dd70cdf46a18b5..685415240d7be66fe968198b33c1865a906e18c9 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2765,14 +2765,18 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2778,14 +2778,18 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInKeepAlive packetplayinkeepalive) {
diff --git a/Spigot-Server-Patches/0173-revert-serverside-behavior-of-keepalives.patch b/Spigot-Server-Patches/0173-revert-serverside-behavior-of-keepalives.patch
index 7f338f3cb4..d054fdfc2b 100644
--- a/Spigot-Server-Patches/0173-revert-serverside-behavior-of-keepalives.patch
+++ b/Spigot-Server-Patches/0173-revert-serverside-behavior-of-keepalives.patch
@@ -17,10 +17,10 @@ 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/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 9b0d00220406cf20421607ae234f4c0d674681bb..54a5b988e5dc8eec35cf91d45f282926d81a0043 100644
+index 685415240d7be66fe968198b33c1865a906e18c9..3628965d2a18a367c2357b54b65786fb90c38205 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -221,7 +221,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -223,7 +223,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
private final MinecraftServer minecraftServer;
public EntityPlayer player;
private int e;
@@ -29,7 +29,7 @@ index 9b0d00220406cf20421607ae234f4c0d674681bb..54a5b988e5dc8eec35cf91d45f282926
private boolean awaitingKeepAlive; private void setPendingPing(boolean isPending) { this.awaitingKeepAlive = isPending;}; private boolean isPendingPing() { return this.awaitingKeepAlive;}; // Paper - OBFHELPER
private long h; private void setKeepAliveID(long keepAliveID) { this.h = keepAliveID;}; private long getKeepAliveID() {return this.h; }; // Paper - OBFHELPER
// CraftBukkit start - multithreaded fields
-@@ -252,6 +252,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -254,6 +254,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
private int E;
private int receivedMovePackets;
private int processedMovePackets;
@@ -37,7 +37,7 @@ index 9b0d00220406cf20421607ae234f4c0d674681bb..54a5b988e5dc8eec35cf91d45f282926
public PlayerConnection(MinecraftServer minecraftserver, NetworkManager networkmanager, EntityPlayer entityplayer) {
this.minecraftServer = minecraftserver;
-@@ -338,18 +339,25 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -340,18 +341,25 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
this.minecraftServer.getMethodProfiler().enter("keepAlive");
diff --git a/Spigot-Server-Patches/0180-AsyncTabCompleteEvent.patch b/Spigot-Server-Patches/0180-AsyncTabCompleteEvent.patch
index 4f0e4c6fab..cc3f304c43 100644
--- a/Spigot-Server-Patches/0180-AsyncTabCompleteEvent.patch
+++ b/Spigot-Server-Patches/0180-AsyncTabCompleteEvent.patch
@@ -14,10 +14,10 @@ completion, such as offline players.
Also adds isCommand and getLocation to the sync TabCompleteEvent
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 54a5b988e5dc8eec35cf91d45f282926d81a0043..cbffc7e1cf7ca7597517cdae12ec9be5efe97217 100644
+index 3628965d2a18a367c2357b54b65786fb90c38205..fc624315b156f450c1cbc87a81e9eeff5d31b4c2 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -711,10 +711,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -713,10 +713,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInTabComplete packetplayintabcomplete) {
@@ -30,7 +30,7 @@ index 54a5b988e5dc8eec35cf91d45f282926d81a0043..cbffc7e1cf7ca7597517cdae12ec9be5
return;
}
// CraftBukkit end
-@@ -724,12 +724,35 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -726,12 +726,35 @@ public class PlayerConnection implements PacketListenerPlayIn {
stringreader.skip();
}
@@ -85,7 +85,7 @@ index 7d2fc05ddb18369aed29595e3c0dcbf6db136309..f1d4e2ac2823e2246463350b21f28c6d
return tabEvent.isCancelled() ? Collections.EMPTY_LIST : tabEvent.getCompletions();
diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
-index 5510266fb114954322823b72e3199f33c4d7a9a7..a51202ed53d8ba99b364e8797fe32fa8aeb4fc87 100644
+index a957695457cf3252848ce6ef37069692841b8e28..c5e00bd9e2790992202aadf8eec2002fc88c78f1 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
@@ -28,6 +28,39 @@ public class ConsoleCommandCompleter implements Completer {
diff --git a/Spigot-Server-Patches/0209-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/Spigot-Server-Patches/0209-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
index dbcf3f4db5..e6e146f50d 100644
--- a/Spigot-Server-Patches/0209-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
+++ b/Spigot-Server-Patches/0209-Fix-exploit-that-allowed-colored-signs-to-be-created.patch
@@ -17,10 +17,10 @@ index b92975aa85fd79c70d6bec014284e8f55d0d3a4b..d5d6c545182b9b0b6aa5e52f1f985845
StringBuilder stringbuilder = new StringBuilder();
char[] achar = s.toCharArray();
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index cbffc7e1cf7ca7597517cdae12ec9be5efe97217..415f34109019e68638f76fefa52bd8d40c449e12 100644
+index fc624315b156f450c1cbc87a81e9eeff5d31b4c2..d4862a3a7f523c13c452e7b67072261556162437 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2774,7 +2774,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2787,7 +2787,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
List<net.kyori.adventure.text.Component> lines = new java.util.ArrayList<>();
for (int i = 0; i < list.size(); ++i) {
diff --git a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch
index 9740425422..c30ff41028 100644
--- a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch
+++ b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch
@@ -83,7 +83,7 @@ index 96d67fc3cbe61c1fb6e639b1838b2fd198c3f3d5..c7e54920b40bdf049f2192310bfdb9d1
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 2d04aa08c52dac8f0a30830500b8cc251b2b799e..b3a51bd3229e3d492286acd97f49a1e7cf2630c5 100644
+index d4862a3a7f523c13c452e7b67072261556162437..5c637fc653482e931fa6d0f5d0394d0b923b5ff8 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -190,6 +190,7 @@ import org.bukkit.event.inventory.ClickType;
@@ -93,8 +93,8 @@ index 2d04aa08c52dac8f0a30830500b8cc251b2b799e..b3a51bd3229e3d492286acd97f49a1e7
+import org.bukkit.event.inventory.InventoryCloseEvent; // Paper
import org.bukkit.event.inventory.InventoryCreativeEvent;
import org.bukkit.event.inventory.InventoryType.SlotType;
- import org.bukkit.event.player.AsyncPlayerChatEvent;
-@@ -2308,10 +2309,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
+ import org.bukkit.event.inventory.SmithItemEvent;
+@@ -2310,10 +2311,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInCloseWindow packetplayinclosewindow) {
diff --git a/Spigot-Server-Patches/0236-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/Spigot-Server-Patches/0236-Refresh-player-inventory-when-cancelling-PlayerInter.patch
index bdadbc4a03..619604e5af 100644
--- a/Spigot-Server-Patches/0236-Refresh-player-inventory-when-cancelling-PlayerInter.patch
+++ b/Spigot-Server-Patches/0236-Refresh-player-inventory-when-cancelling-PlayerInter.patch
@@ -16,10 +16,10 @@ Refresh the player inventory when PlayerInteractEntityEvent is
cancelled to avoid this problem.
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index c4f14fabc83a9cb13f8f82b651119e0ac7d8aa02..f727b6ffa0db33e59ce8e4ff64723c79b401ad70 100644
+index 5c637fc653482e931fa6d0f5d0394d0b923b5ff8..19763a27ad54866b7d1f6e2cfccd6bbe6e54637e 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2221,6 +2221,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2223,6 +2223,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (event.isCancelled()) {
diff --git a/Spigot-Server-Patches/0258-Break-up-and-make-tab-spam-limits-configurable.patch b/Spigot-Server-Patches/0258-Break-up-and-make-tab-spam-limits-configurable.patch
index 21290b9078..2ed97a27fd 100644
--- a/Spigot-Server-Patches/0258-Break-up-and-make-tab-spam-limits-configurable.patch
+++ b/Spigot-Server-Patches/0258-Break-up-and-make-tab-spam-limits-configurable.patch
@@ -45,10 +45,10 @@ index 77a03abd59db4a43f6f2d59d4c7ef176e782f205..bd508025b771424c942fd856c31d520b
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index f727b6ffa0db33e59ce8e4ff64723c79b401ad70..e24997fd0d43ff8293537e8fdefe66f1f3dadcdb 100644
+index 19763a27ad54866b7d1f6e2cfccd6bbe6e54637e..74942bf7641eafab85202fd6a521780ce4cc1f65 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -228,6 +228,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -230,6 +230,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
// CraftBukkit start - multithreaded fields
private volatile int chatThrottle;
private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle");
@@ -56,7 +56,7 @@ index f727b6ffa0db33e59ce8e4ff64723c79b401ad70..e24997fd0d43ff8293537e8fdefe66f1
// CraftBukkit end
private int j;
private final Int2ShortMap k = new Int2ShortOpenHashMap();
-@@ -363,6 +364,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -365,6 +366,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.minecraftServer.getMethodProfiler().exit();
// CraftBukkit start
for (int spam; (spam = this.chatThrottle) > 0 && !chatSpamField.compareAndSet(this, spam, spam - 1); ) ;
@@ -64,7 +64,7 @@ index f727b6ffa0db33e59ce8e4ff64723c79b401ad70..e24997fd0d43ff8293537e8fdefe66f1
/* Use thread-safe field access instead
if (this.chatThrottle > 0) {
--this.chatThrottle;
-@@ -714,7 +716,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -716,7 +718,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
public void a(PacketPlayInTabComplete packetplayintabcomplete) {
// PlayerConnectionUtils.ensureMainThread(packetplayintabcomplete, this, this.player.getWorldServer()); // Paper - run this async
// CraftBukkit start
diff --git a/Spigot-Server-Patches/0298-Call-player-spectator-target-events-and-improve-impl.patch b/Spigot-Server-Patches/0298-Call-player-spectator-target-events-and-improve-impl.patch
index a8f9fe1464..cca41e8c7a 100644
--- a/Spigot-Server-Patches/0298-Call-player-spectator-target-events-and-improve-impl.patch
+++ b/Spigot-Server-Patches/0298-Call-player-spectator-target-events-and-improve-impl.patch
@@ -19,7 +19,7 @@ spectate the target entity.
Co-authored-by: Spottedleaf <[email protected]>
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
-index b1e45c326b27d640337fc69bd0e107f5db3eb4cf..b63a8ac9bae50494fd8e093ff163df961d779c2d 100644
+index 1198de213b3809ddf7b7d6f1696d9f07bb4dc42e..d750c814ca3b7dc7df7f87de3e360235849c000b 100644
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
@@ -1810,15 +1810,59 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -88,10 +88,10 @@ index b1e45c326b27d640337fc69bd0e107f5db3eb4cf..b63a8ac9bae50494fd8e093ff163df96
@Override
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index e24997fd0d43ff8293537e8fdefe66f1f3dadcdb..933ccc459bba527739666d33b6399187f49d43c7 100644
+index 74942bf7641eafab85202fd6a521780ce4cc1f65..5ea1354fb9d1c570603fc6814198639a741a9e34 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1353,6 +1353,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1355,6 +1355,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
// CraftBukkit start - Delegate to teleport(Location)
diff --git a/Spigot-Server-Patches/0303-Add-option-to-prevent-players-from-moving-into-unloa.patch b/Spigot-Server-Patches/0303-Add-option-to-prevent-players-from-moving-into-unloa.patch
index ca79513910..7bf30d725c 100644
--- a/Spigot-Server-Patches/0303-Add-option-to-prevent-players-from-moving-into-unloa.patch
+++ b/Spigot-Server-Patches/0303-Add-option-to-prevent-players-from-moving-into-unloa.patch
@@ -20,10 +20,10 @@ index f280dbff4a09bc611a9ca565c6d697d08801f53b..fbf3ccfb347a5ba6e895339e9576629d
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 933ccc459bba527739666d33b6399187f49d43c7..0cdfc38c3f07b28e1db0ee28952494c1950a698d 100644
+index 5ea1354fb9d1c570603fc6814198639a741a9e34..69b27924b8f12b647133fedcfb0568698d19f413 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -541,6 +541,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -543,6 +543,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
speed *= 2f; // TODO: Get the speed of the vehicle instead of the player
@@ -37,7 +37,7 @@ index 933ccc459bba527739666d33b6399187f49d43c7..0cdfc38c3f07b28e1db0ee28952494c1
if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isExemptPlayer()) {
// CraftBukkit end
PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", entity.getDisplayName().getString(), this.player.getDisplayName().getString(), d6, d7, d8);
-@@ -1139,9 +1146,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1141,9 +1148,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
double d1 = this.player.locY();
double d2 = this.player.locZ();
double d3 = this.player.locY();
@@ -49,7 +49,7 @@ index 933ccc459bba527739666d33b6399187f49d43c7..0cdfc38c3f07b28e1db0ee28952494c1
float f = packetplayinflying.a(this.player.yaw);
float f1 = packetplayinflying.b(this.player.pitch);
double d7 = d4 - this.l;
-@@ -1180,6 +1187,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1182,6 +1189,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
} else {
speed = player.abilities.walkSpeed * 10f;
}
diff --git a/Spigot-Server-Patches/0311-Don-t-allow-digging-into-unloaded-chunks.patch b/Spigot-Server-Patches/0311-Don-t-allow-digging-into-unloaded-chunks.patch
index 557761c138..0dcfc5b688 100644
--- a/Spigot-Server-Patches/0311-Don-t-allow-digging-into-unloaded-chunks.patch
+++ b/Spigot-Server-Patches/0311-Don-t-allow-digging-into-unloaded-chunks.patch
@@ -51,10 +51,10 @@ index cea19f4aafb3d81bf0dfcdac9103c03786fd5fc2..e7f762dc131ae40e36ff5e70b0394e0d
this.world.a(this.player.getId(), blockposition, -1);
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 0cdfc38c3f07b28e1db0ee28952494c1950a698d..76bba793ea2afb52919bcf1cb430b9412fceb319 100644
+index 69b27924b8f12b647133fedcfb0568698d19f413..59617fceecb08edf665902f30ea7064e6333bb96 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1517,6 +1517,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1519,6 +1519,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
case START_DESTROY_BLOCK:
case ABORT_DESTROY_BLOCK:
case STOP_DESTROY_BLOCK:
diff --git a/Spigot-Server-Patches/0312-Book-Size-Limits.patch b/Spigot-Server-Patches/0312-Book-Size-Limits.patch
index a0085f4e5a..17535e7624 100644
--- a/Spigot-Server-Patches/0312-Book-Size-Limits.patch
+++ b/Spigot-Server-Patches/0312-Book-Size-Limits.patch
@@ -22,10 +22,10 @@ index 3139c194f9b1bc3510d51a81f13ae43d00a3dc29..13edb435b3fa65b4980bd7472aa5a519
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 76bba793ea2afb52919bcf1cb430b9412fceb319..a2413a4e1d16b856df9f74e42eb141f72b0893c6 100644
+index 59617fceecb08edf665902f30ea7064e6333bb96..7158d3e3a7e2912d8d170aca4096355d43645cfa 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -999,6 +999,52 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1001,6 +1001,52 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInBEdit packetplayinbedit) {
diff --git a/Spigot-Server-Patches/0326-Fix-sign-edit-memory-leak.patch b/Spigot-Server-Patches/0326-Fix-sign-edit-memory-leak.patch
index f63a89d598..d97a446a84 100644
--- a/Spigot-Server-Patches/0326-Fix-sign-edit-memory-leak.patch
+++ b/Spigot-Server-Patches/0326-Fix-sign-edit-memory-leak.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix sign edit memory leak
when a player edits a sign, a reference to their Entity is never cleand up.
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index a2413a4e1d16b856df9f74e42eb141f72b0893c6..593609ff38b01ae35e17dd65bf101e38d080dc3a 100644
+index 7158d3e3a7e2912d8d170aca4096355d43645cfa..e54c06b1214091985d9e360592a7759ff45efc75 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2838,7 +2838,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2851,7 +2851,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
TileEntitySign tileentitysign = (TileEntitySign) tileentity;
diff --git a/Spigot-Server-Patches/0327-Limit-Client-Sign-length-more.patch b/Spigot-Server-Patches/0327-Limit-Client-Sign-length-more.patch
index 3b6d5c751c..a6cd098200 100644
--- a/Spigot-Server-Patches/0327-Limit-Client-Sign-length-more.patch
+++ b/Spigot-Server-Patches/0327-Limit-Client-Sign-length-more.patch
@@ -22,10 +22,10 @@ it only impacts data sent from the client.
Set -DPaper.maxSignLength=XX to change limit or -1 to disable
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 593609ff38b01ae35e17dd65bf101e38d080dc3a..8f442eae6519c3d0658e6ed77ecfa7aa8161a0f2 100644
+index e54c06b1214091985d9e360592a7759ff45efc75..2c949e079e5de86c902b162dfdb6adffe0511448 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -254,6 +254,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -256,6 +256,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
private int E;
private int receivedMovePackets;
private int processedMovePackets;
@@ -33,7 +33,7 @@ index 593609ff38b01ae35e17dd65bf101e38d080dc3a..8f442eae6519c3d0658e6ed77ecfa7aa
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
public PlayerConnection(MinecraftServer minecraftserver, NetworkManager networkmanager, EntityPlayer entityplayer) {
-@@ -2848,7 +2849,17 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2861,7 +2862,17 @@ public class PlayerConnection implements PacketListenerPlayIn {
List<net.kyori.adventure.text.Component> lines = new java.util.ArrayList<>();
for (int i = 0; i < list.size(); ++i) {
diff --git a/Spigot-Server-Patches/0338-Update-entity-Metadata-for-all-tracked-players.patch b/Spigot-Server-Patches/0338-Update-entity-Metadata-for-all-tracked-players.patch
index 7f634c91d1..f05b82653c 100644
--- a/Spigot-Server-Patches/0338-Update-entity-Metadata-for-all-tracked-players.patch
+++ b/Spigot-Server-Patches/0338-Update-entity-Metadata-for-all-tracked-players.patch
@@ -22,10 +22,10 @@ index e3cdea3c85d762af6984f3dbe544fdfe101f6ff6..6110d7723b70df5380338a42b5cbff34
this.f.accept(packet);
if (this.tracker instanceof EntityPlayer) {
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 8f442eae6519c3d0658e6ed77ecfa7aa8161a0f2..5d4ab95ca7498671888580f68382667c2282d604 100644
+index 2c949e079e5de86c902b162dfdb6adffe0511448..02ae07db49d3793c0cc40ebe55cdc6b383f9b2e3 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2285,7 +2285,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2287,7 +2287,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
if (event.isCancelled() || this.player.inventory.getItemInHand() == null || this.player.inventory.getItemInHand().getItem() != origItem) {
// Refresh the current entity metadata
diff --git a/Spigot-Server-Patches/0347-Fix-CB-call-to-changed-postToMainThread-method.patch b/Spigot-Server-Patches/0347-Fix-CB-call-to-changed-postToMainThread-method.patch
index 870846c942..9d2ee3f627 100644
--- a/Spigot-Server-Patches/0347-Fix-CB-call-to-changed-postToMainThread-method.patch
+++ b/Spigot-Server-Patches/0347-Fix-CB-call-to-changed-postToMainThread-method.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix CB call to changed postToMainThread method
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index b207f4056a274d4115e96d88def3eea7fdf6c0d4..1cfa8a4066baaf86f10e3f709d9b1d60aba4dec5 100644
+index 02ae07db49d3793c0cc40ebe55cdc6b383f9b2e3..d84d87b0dd01b4d67e55f1b445928285c45a08ca 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -443,7 +443,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -445,7 +445,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.networkManager.getClass();
// CraftBukkit - Don't wait
diff --git a/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch
index e8a71e3b03..ca0c51178c 100644
--- a/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch
+++ b/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch
@@ -3192,10 +3192,10 @@ index 1b05d2394244d85a63ecd8336f7dd1d05f4fdffe..a68be9b72daca6353d51141a8771e002
}
public void removeTicketsForSpawn(int radiusInBlocks, BlockPosition spawn) {
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index eff63b82e69eef6921a6dc09e86cd045e7e2febb..97429dc047f8907fbbd1ba16a6d4721518433b02 100644
+index d84d87b0dd01b4d67e55f1b445928285c45a08ca..fa0b7edf42243d53d9dc897903b9b9e902b33cf7 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -728,6 +728,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -730,6 +730,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
minecraftServer.scheduleOnMain(() -> this.disconnect(new ChatMessage("disconnect.spam", new Object[0]))); // Paper
return;
}
diff --git a/Spigot-Server-Patches/0370-Use-getChunkIfLoadedImmediately-in-places.patch b/Spigot-Server-Patches/0370-Use-getChunkIfLoadedImmediately-in-places.patch
index 15f39d2fe8..29d310d326 100644
--- a/Spigot-Server-Patches/0370-Use-getChunkIfLoadedImmediately-in-places.patch
+++ b/Spigot-Server-Patches/0370-Use-getChunkIfLoadedImmediately-in-places.patch
@@ -8,7 +8,7 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk
load in that case).
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
-index 1ceff988080b47352edf9cdf3c4f8e69421765d2..a67462e10c6f8cb0eecb9a81fdc55f353c258368 100644
+index a68be9b72daca6353d51141a8771e00240375315..fe662ea8acb873aac2fc3b29addbef77854494ed 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -207,7 +207,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -21,10 +21,10 @@ index 1ceff988080b47352edf9cdf3c4f8e69421765d2..a67462e10c6f8cb0eecb9a81fdc55f35
// Paper start - Asynchronous IO
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 12d98c82b93658d1246bfe267bbfc87d3a56bbaa..bae1fb41b1559373f73d4ed3ba145d81a71cabeb 100644
+index fa0b7edf42243d53d9dc897903b9b9e902b33cf7..eee5b3e4645ae41f63aba8898c58f43402d31b73 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1242,7 +1242,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1244,7 +1244,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
speed = player.abilities.walkSpeed * 10f;
}
// Paper start - Prevent moving into unloaded chunks
diff --git a/Spigot-Server-Patches/0385-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch b/Spigot-Server-Patches/0385-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch
index bcf97dc96b..b2d5dc3587 100644
--- a/Spigot-Server-Patches/0385-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch
+++ b/Spigot-Server-Patches/0385-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch
@@ -7,10 +7,10 @@ Fixes an AssertionError when setting the player's item in hand to null or a new
Fixes GH-2718
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index bae1fb41b1559373f73d4ed3ba145d81a71cabeb..28106cc6acbdcd026c646c030491d74049306861 100644
+index eee5b3e4645ae41f63aba8898c58f43402d31b73..cfdfa3ea95a525af25c7aa830f8e31d5afe56d65 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1705,6 +1705,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1707,6 +1707,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.player.getBukkitEntity().updateInventory(); // SPIGOT-2524
return;
}
@@ -22,7 +22,7 @@ index bae1fb41b1559373f73d4ed3ba145d81a71cabeb..28106cc6acbdcd026c646c030491d740
if (enuminteractionresult.b()) {
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
-index 903c3cfdaae3dd1750aa2f32f6cdbb423909eb47..58cf4bb4c6267c4d8d71bbd29ed34575eb93aed3 100644
+index 06119a87338d48128ddd71fe8396e10b6e83744a..ec31585099c8376f61496f02f9454cb600104918 100644
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
@@ -2156,6 +2156,7 @@ public abstract class EntityLiving extends Entity {
diff --git a/Spigot-Server-Patches/0413-Prevent-teleporting-dead-entities.patch b/Spigot-Server-Patches/0413-Prevent-teleporting-dead-entities.patch
index 53573636c8..29dc1ca8f1 100644
--- a/Spigot-Server-Patches/0413-Prevent-teleporting-dead-entities.patch
+++ b/Spigot-Server-Patches/0413-Prevent-teleporting-dead-entities.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent teleporting dead entities
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index fef5b401a168c5b2be26c834e03b014d6231daf9..31fb6eda544568b14255aede0a981d065bdf3aee 100644
+index cfdfa3ea95a525af25c7aa830f8e31d5afe56d65..f02ddd53df4674a2b5e0bb142db756d1f153d69b 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1467,6 +1467,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1469,6 +1469,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
private void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<PacketPlayOutPosition.EnumPlayerTeleportFlags> set) {
diff --git a/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch b/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch
index 98f5997ec7..4a823b784a 100644
--- a/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch
+++ b/Spigot-Server-Patches/0453-Load-Chunks-for-Login-Asynchronously.patch
@@ -93,10 +93,10 @@ index 4dd2f7fb32b8618d752e0988acadcb41223c0e4c..78a8eb89e9113a1002ba6177f96d5734
if (entityplayer != null) {
this.g = LoginListener.EnumProtocolState.DELAY_ACCEPT;
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 3285a4248a7c5352454a64c6a84658f585932548..6a0e3bd8641c895decd83b80e3a715ea31a5cce7 100644
+index f02ddd53df4674a2b5e0bb142db756d1f153d69b..443247b03b8352c4dd453270dccdbd7eb5f0944b 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -220,6 +220,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -222,6 +222,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
private static final Logger LOGGER = LogManager.getLogger();
public final NetworkManager networkManager;
private final MinecraftServer minecraftServer;
@@ -104,7 +104,7 @@ index 3285a4248a7c5352454a64c6a84658f585932548..6a0e3bd8641c895decd83b80e3a715ea
public EntityPlayer player;
private int e;
private long lastKeepAlive = SystemUtils.getMonotonicMillis(); private void setLastPing(long lastPing) { this.lastKeepAlive = lastPing;}; private long getLastPing() { return this.lastKeepAlive;}; // Paper - OBFHELPER
-@@ -298,6 +299,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -300,6 +301,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
// CraftBukkit end
public void tick() {
@@ -120,7 +120,7 @@ index 3285a4248a7c5352454a64c6a84658f585932548..6a0e3bd8641c895decd83b80e3a715ea
this.syncPosition();
this.player.lastX = this.player.locX();
this.player.lastY = this.player.locY();
-@@ -339,7 +349,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -341,7 +351,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.r = null;
this.D = false;
this.E = 0;
diff --git a/Spigot-Server-Patches/0460-Implement-Brigadier-Mojang-API.patch b/Spigot-Server-Patches/0460-Implement-Brigadier-Mojang-API.patch
index 8f34e27183..09d52a49dc 100644
--- a/Spigot-Server-Patches/0460-Implement-Brigadier-Mojang-API.patch
+++ b/Spigot-Server-Patches/0460-Implement-Brigadier-Mojang-API.patch
@@ -69,10 +69,10 @@ index eb2c9d2248a8647beee9960c5016a83f35aa1247..b5ee789c8dfb7f413ab60902ff3d2ef0
public boolean hasPermission(int i) {
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 6a0e3bd8641c895decd83b80e3a715ea31a5cce7..839eb6a294a696c5abd0d5e005b70d9bdbf25f9b 100644
+index 443247b03b8352c4dd453270dccdbd7eb5f0944b..b6d326ea30a806240e4a87c277b3cd73a04c805c 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -768,8 +768,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -770,8 +770,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
ParseResults<CommandListenerWrapper> parseresults = this.minecraftServer.getCommandDispatcher().a().parse(stringreader, this.player.getCommandListener());
this.minecraftServer.getCommandDispatcher().a().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> {
@@ -87,7 +87,7 @@ index 6a0e3bd8641c895decd83b80e3a715ea31a5cce7..839eb6a294a696c5abd0d5e005b70d9b
});
});
}
-@@ -778,7 +782,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -780,7 +784,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
builder = builder.createOffset(builder.getInput().lastIndexOf(' ') + 1);
completions.forEach(builder::suggest);
diff --git a/Spigot-Server-Patches/0462-Validate-PickItem-Packet-and-kick-for-invalid.patch b/Spigot-Server-Patches/0462-Validate-PickItem-Packet-and-kick-for-invalid.patch
index 078445f5a4..37c6dde53b 100644
--- a/Spigot-Server-Patches/0462-Validate-PickItem-Packet-and-kick-for-invalid.patch
+++ b/Spigot-Server-Patches/0462-Validate-PickItem-Packet-and-kick-for-invalid.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 839eb6a294a696c5abd0d5e005b70d9bdbf25f9b..41d4c3533119cc80cb4c93771db344531c8dd106 100644
+index b6d326ea30a806240e4a87c277b3cd73a04c805c..6db70005ebc99b19185b8efca550a0783ea05cad 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -881,7 +881,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -883,7 +883,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInPickItem packetplayinpickitem) {
PlayerConnectionUtils.ensureMainThread(packetplayinpickitem, this, this.player.getWorldServer());
diff --git a/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
index 69268f3576..dfabc6dd54 100644
--- a/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
+++ b/Spigot-Server-Patches/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
@@ -1220,10 +1220,10 @@ index 2c932d36f982e7f8713aabff9a6c631055810366..f5d18834e0e2ee0e3bcf55810456766d
public static <T> TicketType<T> a(String s, Comparator<T> comparator) {
return new TicketType<>(s, comparator, 0L);
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 6bf12a4c930d35d0998382aef98e19c057b6826e..8a905851a903fc45da6a5cf4bbd2fe5a7139a6dd 100644
+index 6db70005ebc99b19185b8efca550a0783ea05cad..42190a8c6c2eadf05f57df50e3ca997384327b67 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1527,6 +1527,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1529,6 +1529,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.A = this.e;
this.player.setLocation(d0, d1, d2, f, f1);
diff --git a/Spigot-Server-Patches/0500-Prevent-position-desync-in-playerconnection-causing-.patch b/Spigot-Server-Patches/0500-Prevent-position-desync-in-playerconnection-causing-.patch
index 55b59f368a..4422c552fe 100644
--- a/Spigot-Server-Patches/0500-Prevent-position-desync-in-playerconnection-causing-.patch
+++ b/Spigot-Server-Patches/0500-Prevent-position-desync-in-playerconnection-causing-.patch
@@ -14,10 +14,10 @@ behaviour, we need to move all of this dangerous logic outside
of the move call and into an appropriate place in the tick method.
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index d8be5ff9620da8d96a0d157fb99145d3b43299df..caabb6c831ba280ef6b74ba8aee94c9c3375f38b 100644
+index 42190a8c6c2eadf05f57df50e3ca997384327b67..dd26d1ad34600250de7572c09bd4d74331142ad9 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1324,6 +1324,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1326,6 +1326,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.player.move(EnumMoveType.PLAYER, new Vec3D(d7, d8, d9));
this.player.setOnGround(packetplayinflying.b()); // CraftBukkit - SPIGOT-5810, SPIGOT-5835: reset by this.player.move
diff --git a/Spigot-Server-Patches/0504-Add-and-implement-PlayerRecipeBookClickEvent.patch b/Spigot-Server-Patches/0504-Add-and-implement-PlayerRecipeBookClickEvent.patch
index 950092d449..554173a965 100644
--- a/Spigot-Server-Patches/0504-Add-and-implement-PlayerRecipeBookClickEvent.patch
+++ b/Spigot-Server-Patches/0504-Add-and-implement-PlayerRecipeBookClickEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add and implement PlayerRecipeBookClickEvent
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index caabb6c831ba280ef6b74ba8aee94c9c3375f38b..2f61d5fcaff10d2e5514f60a8a6430aa3949a077 100644
+index dd26d1ad34600250de7572c09bd4d74331142ad9..20c6a61101e40b09babf0ce6ad05a889d9fdfe46 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -2758,9 +2758,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2771,9 +2771,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
PlayerConnectionUtils.ensureMainThread(packetplayinautorecipe, this, this.player.getWorldServer());
this.player.resetIdleTimer();
if (!this.player.isSpectator() && this.player.activeContainer.windowId == packetplayinautorecipe.b() && this.player.activeContainer.c(this.player) && this.player.activeContainer instanceof ContainerRecipeBook) {
diff --git a/Spigot-Server-Patches/0507-Add-permission-for-command-blocks.patch b/Spigot-Server-Patches/0507-Add-permission-for-command-blocks.patch
index 7786a8cda6..951fc435d5 100644
--- a/Spigot-Server-Patches/0507-Add-permission-for-command-blocks.patch
+++ b/Spigot-Server-Patches/0507-Add-permission-for-command-blocks.patch
@@ -18,10 +18,10 @@ index 37e436c28c3c71c73fb0e7bf06a417739a318e47..831bc83cdbf15f08961cc8703be348b4
return false;
} else if (this.player.a((World) this.world, blockposition, this.gamemode)) {
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 2f61d5fcaff10d2e5514f60a8a6430aa3949a077..134f1f811d7d822e1871d306129ae0cbb1d1c8b2 100644
+index 20c6a61101e40b09babf0ce6ad05a889d9fdfe46..eecf23aa41c8b21fce58ff33a3124186a4fdccd1 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -796,7 +796,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -798,7 +798,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
PlayerConnectionUtils.ensureMainThread(packetplayinsetcommandblock, this, this.player.getWorldServer());
if (!this.minecraftServer.getEnableCommandBlock()) {
this.player.sendMessage(new ChatMessage("advMode.notEnabled"), SystemUtils.b);
@@ -30,7 +30,7 @@ index 2f61d5fcaff10d2e5514f60a8a6430aa3949a077..134f1f811d7d822e1871d306129ae0cb
this.player.sendMessage(new ChatMessage("advMode.notAllowed"), SystemUtils.b);
} else {
CommandBlockListenerAbstract commandblocklistenerabstract = null;
-@@ -859,7 +859,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -861,7 +861,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
PlayerConnectionUtils.ensureMainThread(packetplayinsetcommandminecart, this, this.player.getWorldServer());
if (!this.minecraftServer.getEnableCommandBlock()) {
this.player.sendMessage(new ChatMessage("advMode.notEnabled"), SystemUtils.b);
diff --git a/Spigot-Server-Patches/0510-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/Spigot-Server-Patches/0510-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index 958d99c94f..a56d7e3a6a 100644
--- a/Spigot-Server-Patches/0510-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/Spigot-Server-Patches/0510-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -72,10 +72,10 @@ index ec1f36736d79d4054ad7ff4da4e3659f35c811d6..c4df472050622eb2469b2ddb4d2ed917
@Override
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 1b399bcd366f66d6b5e0d54e3a5e34f9e96f5a41..dc3f874b2a19d2d2c3890b7e1125cd1ec14cf673 100644
+index eecf23aa41c8b21fce58ff33a3124186a4fdccd1..74cb85a424703e40a869568bf9c30d26a440b477 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -3027,7 +3027,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -3040,7 +3040,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
public void a(PacketPlayInDifficultyChange packetplayindifficultychange) {
PlayerConnectionUtils.ensureMainThread(packetplayindifficultychange, this, this.player.getWorldServer());
if (this.player.k(2) || this.isExemptPlayer()) {
diff --git a/Spigot-Server-Patches/0524-Add-PrepareResultEvent.patch b/Spigot-Server-Patches/0524-Add-PrepareResultEvent.patch
index 95a7088ee9..58aa8cd289 100644
--- a/Spigot-Server-Patches/0524-Add-PrepareResultEvent.patch
+++ b/Spigot-Server-Patches/0524-Add-PrepareResultEvent.patch
@@ -32,10 +32,10 @@ index ff618bbb3fc4acfce51f5e5e6a504a63e9ad77cd..ae5674ae9c539720a657838a640050cd
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/inventory/ContainerAnvilAbstract.java b/src/main/java/net/minecraft/world/inventory/ContainerAnvilAbstract.java
-index 949042d4e4a1a63c0477704265fe32c371543e8c..9d47f2253a8adbcecbbe3d8a0a42e62f1dac1408 100644
+index 5f176b1a02b217cf907f3a41d637e9059c43e928..8d6a23beb44cce2e4e13a814047da5f84d35830d 100644
--- a/src/main/java/net/minecraft/world/inventory/ContainerAnvilAbstract.java
+++ b/src/main/java/net/minecraft/world/inventory/ContainerAnvilAbstract.java
-@@ -71,6 +71,7 @@ public abstract class ContainerAnvilAbstract extends Container {
+@@ -74,6 +74,7 @@ public abstract class ContainerAnvilAbstract extends Container {
super.a(iinventory);
if (iinventory == this.repairInventory) {
this.e();
@@ -82,11 +82,11 @@ index 350a9b6525a95a00e72e836f1cc9e1a6b99fdd7a..7980930cc712e37a788f894bf2d2ee2b
@Override
diff --git a/src/main/java/net/minecraft/world/inventory/ContainerSmithing.java b/src/main/java/net/minecraft/world/inventory/ContainerSmithing.java
-index 1fc73bba0be98721ceebfc1e6b8b50000751ecd2..b6be0763a0e345e78e1e6faeaad1bbede698131a 100644
+index 3791a8c2b4b5879e4ee331b7e427c9c1c1e4a623..a51280e5affbe399d276b4ee409b196dddfd40ac 100644
--- a/src/main/java/net/minecraft/world/inventory/ContainerSmithing.java
+++ b/src/main/java/net/minecraft/world/inventory/ContainerSmithing.java
-@@ -77,6 +77,7 @@ public class ContainerSmithing extends ContainerAnvilAbstract {
- org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareSmithingEvent(getBukkitView(), itemstack); // CraftBukkit
+@@ -80,6 +80,7 @@ public class ContainerSmithing extends ContainerAnvilAbstract {
+ // CraftBukkit end
}
+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, 2); // Paper
@@ -106,7 +106,7 @@ index cfcb2469569edd51bbb74ca8d7a35a1ec0ecb434..1589d9ca201d386d11d9fd57fa8ba684
private void a(IInventory iinventory, ItemStack itemstack) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 4fc9d8af25808a53bf479b085c82047ede6c5360..be2aa53a45b98d6d6de0c464653264399510d630 100644
+index 0b6ce7a3c077982a5f341baf3049e6ce66eaa194..2e4dc2fb42b10243ddacbf5af606910a5769ea01 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1512,19 +1512,44 @@ public class CraftEventFactory {
diff --git a/Spigot-Server-Patches/0532-Move-range-check-for-block-placing-up.patch b/Spigot-Server-Patches/0532-Move-range-check-for-block-placing-up.patch
index 999f89b394..097afc0b77 100644
--- a/Spigot-Server-Patches/0532-Move-range-check-for-block-placing-up.patch
+++ b/Spigot-Server-Patches/0532-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/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 316cb57870a6a3f568bb3d353540283b9d785976..bd6f3e9d321abcf039875dd5c9f7ccc59afd2dd2 100644
+index 74cb85a424703e40a869568bf9c30d26a440b477..92d5a58f7d18aebf06e3cb868abf3f41825f2f84 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1660,15 +1660,19 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1662,15 +1662,19 @@ public class PlayerConnection implements PacketListenerPlayIn {
BlockPosition blockposition = movingobjectpositionblock.getBlockPosition();
EnumDirection enumdirection = movingobjectpositionblock.getDirection();
diff --git a/Spigot-Server-Patches/0547-Brand-support.patch b/Spigot-Server-Patches/0547-Brand-support.patch
index 0b85e68ef4..80ab9fd4d4 100644
--- a/Spigot-Server-Patches/0547-Brand-support.patch
+++ b/Spigot-Server-Patches/0547-Brand-support.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index bd6f3e9d321abcf039875dd5c9f7ccc59afd2dd2..0d65ffcad016a5f3fa9ddf616bc549087bf1335b 100644
+index 92d5a58f7d18aebf06e3cb868abf3f41825f2f84..1d154ef60fd979340cf925748251669e860d4094 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -5,6 +5,7 @@ import com.google.common.primitives.Doubles;
@@ -24,7 +24,7 @@ index bd6f3e9d321abcf039875dd5c9f7ccc59afd2dd2..0d65ffcad016a5f3fa9ddf616bc54908
import net.minecraft.network.chat.ChatComponentText;
import net.minecraft.network.chat.ChatMessage;
import net.minecraft.network.chat.ChatMessageType;
-@@ -258,6 +260,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -260,6 +262,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80);
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
@@ -33,7 +33,7 @@ index bd6f3e9d321abcf039875dd5c9f7ccc59afd2dd2..0d65ffcad016a5f3fa9ddf616bc54908
public PlayerConnection(MinecraftServer minecraftserver, NetworkManager networkmanager, EntityPlayer entityplayer) {
this.minecraftServer = minecraftserver;
this.networkManager = networkmanager;
-@@ -2986,6 +2990,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2999,6 +3003,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
private static final MinecraftKey CUSTOM_REGISTER = new MinecraftKey("register");
private static final MinecraftKey CUSTOM_UNREGISTER = new MinecraftKey("unregister");
@@ -42,7 +42,7 @@ index bd6f3e9d321abcf039875dd5c9f7ccc59afd2dd2..0d65ffcad016a5f3fa9ddf616bc54908
@Override
public void a(PacketPlayInCustomPayload packetplayincustompayload) {
PlayerConnectionUtils.ensureMainThread(packetplayincustompayload, this, this.player.getWorldServer());
-@@ -3013,6 +3019,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -3026,6 +3032,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
try {
byte[] data = new byte[packetplayincustompayload.data.readableBytes()];
packetplayincustompayload.data.readBytes(data);
@@ -59,7 +59,7 @@ index bd6f3e9d321abcf039875dd5c9f7ccc59afd2dd2..0d65ffcad016a5f3fa9ddf616bc54908
server.getMessenger().dispatchIncomingMessage(player.getBukkitEntity(), packetplayincustompayload.tag.toString(), data);
} catch (Exception ex) {
PlayerConnection.LOGGER.error("Couldn\'t dispatch custom payload", ex);
-@@ -3022,6 +3038,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -3035,6 +3051,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
diff --git a/Spigot-Server-Patches/0568-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/Spigot-Server-Patches/0568-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index 9e7d861f99..b9cb472b5a 100644
--- a/Spigot-Server-Patches/0568-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/Spigot-Server-Patches/0568-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
@@ -9,10 +9,10 @@ as this is how Vanilla teleports entities.
Cancel any pending motion when teleported.
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 0d65ffcad016a5f3fa9ddf616bc549087bf1335b..acbb629345d09f6ea9b18d20ab3e334c039e3191 100644
+index 1d154ef60fd979340cf925748251669e860d4094..68f8a7f227c4d683d4c13d634ccfbabe759e82b3 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -691,7 +691,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -693,7 +693,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
public void a(PacketPlayInTeleportAccept packetplayinteleportaccept) {
PlayerConnectionUtils.ensureMainThread(packetplayinteleportaccept, this, this.player.getWorldServer());
if (packetplayinteleportaccept.b() == this.teleportAwait && this.teleportPos != null) { // CraftBukkit
@@ -21,7 +21,7 @@ index 0d65ffcad016a5f3fa9ddf616bc549087bf1335b..acbb629345d09f6ea9b18d20ab3e334c
this.o = this.teleportPos.x;
this.p = this.teleportPos.y;
this.q = this.teleportPos.z;
-@@ -1535,7 +1535,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1537,7 +1537,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
// CraftBukkit end
this.A = this.e;
diff --git a/Spigot-Server-Patches/0581-Fix-for-large-move-vectors-crashing-server.patch b/Spigot-Server-Patches/0581-Fix-for-large-move-vectors-crashing-server.patch
index 7fb46146f6..03994e2ff1 100644
--- a/Spigot-Server-Patches/0581-Fix-for-large-move-vectors-crashing-server.patch
+++ b/Spigot-Server-Patches/0581-Fix-for-large-move-vectors-crashing-server.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix for large move vectors crashing server
Check movement distance also based on current position.
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index acbb629345d09f6ea9b18d20ab3e334c039e3191..d44f3d1dea2a52c8a82fc1551663e125594432ea 100644
+index 68f8a7f227c4d683d4c13d634ccfbabe759e82b3..8ffc98faecca616005fc56031718a7a10de40102 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -516,19 +516,24 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -518,19 +518,24 @@ public class PlayerConnection implements PacketListenerPlayIn {
if (entity != this.player && entity.getRidingPassenger() == this.player && entity == this.r) {
WorldServer worldserver = this.player.getWorldServer();
@@ -41,7 +41,7 @@ index acbb629345d09f6ea9b18d20ab3e334c039e3191..d44f3d1dea2a52c8a82fc1551663e125
// CraftBukkit start - handle custom speeds and skipped ticks
-@@ -1230,7 +1235,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1232,7 +1237,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
double d2 = this.player.locZ();
double d3 = this.player.locY();
double d4 = packetplayinflying.a(this.player.locX());double toX = d4; // Paper - OBFHELPER
@@ -50,7 +50,7 @@ index acbb629345d09f6ea9b18d20ab3e334c039e3191..d44f3d1dea2a52c8a82fc1551663e125
double d6 = packetplayinflying.c(this.player.locZ());double toZ = d6; // Paper - OBFHELPER
float f = packetplayinflying.a(this.player.yaw);
float f1 = packetplayinflying.b(this.player.pitch);
-@@ -1238,7 +1243,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1240,7 +1245,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
double d8 = d5 - this.m;
double d9 = d6 - this.n;
double d10 = this.player.getMot().g();
diff --git a/Spigot-Server-Patches/0597-Add-API-for-quit-reason.patch b/Spigot-Server-Patches/0597-Add-API-for-quit-reason.patch
index 44e79aa894..4dade570ed 100644
--- a/Spigot-Server-Patches/0597-Add-API-for-quit-reason.patch
+++ b/Spigot-Server-Patches/0597-Add-API-for-quit-reason.patch
@@ -37,10 +37,10 @@ index c4f2c164927db4917f85a8bd65fdbf00e9b062a3..b420e93590d0f109ad13b8ddaa5cd093
public EntityPlayer(MinecraftServer minecraftserver, WorldServer worldserver, GameProfile gameprofile, PlayerInteractManager playerinteractmanager) {
super(worldserver, worldserver.getSpawn(), worldserver.v(), gameprofile);
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index d44f3d1dea2a52c8a82fc1551663e125594432ea..9ec4316c8d517f8af9f36f586e833b5a3ad30895 100644
+index 8ffc98faecca616005fc56031718a7a10de40102..d00c17210b3c0aff40b37ff11f8e9dc6ae1ba948 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -447,6 +447,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -449,6 +449,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
final IChatBaseComponent ichatbasecomponent = PaperAdventure.asVanilla(event.reason()); // Paper - Adventure
// CraftBukkit end
diff --git a/Spigot-Server-Patches/0613-Limit-recipe-packets.patch b/Spigot-Server-Patches/0613-Limit-recipe-packets.patch
index 4e2b6b0fdb..9964fcfeeb 100644
--- a/Spigot-Server-Patches/0613-Limit-recipe-packets.patch
+++ b/Spigot-Server-Patches/0613-Limit-recipe-packets.patch
@@ -23,7 +23,7 @@ index 7d50aded88f5b7dfebaea1aebc86231f7b5c4e25..652d87fc5d566dba8018c81676329f0e
public static boolean velocityOnlineMode;
public static byte[] velocitySecretKey;
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 2380b7c82d012e466172b32b04601f5c691ca0c5..25eaad51bc7a8593d47804ea2774382d4dd55080 100644
+index d00c17210b3c0aff40b37ff11f8e9dc6ae1ba948..79c0ef65f3a1d28de73afb3f1891cfc1a0a3dd90 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1,5 +1,6 @@
@@ -41,7 +41,7 @@ index 2380b7c82d012e466172b32b04601f5c691ca0c5..25eaad51bc7a8593d47804ea2774382d
import org.bukkit.Location;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.event.CraftEventFactory;
-@@ -232,6 +234,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -234,6 +236,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
private volatile int chatThrottle;
private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle");
private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits
@@ -49,7 +49,7 @@ index 2380b7c82d012e466172b32b04601f5c691ca0c5..25eaad51bc7a8593d47804ea2774382d
// CraftBukkit end
private int j;
private final Int2ShortMap k = new Int2ShortOpenHashMap();
-@@ -380,6 +383,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -382,6 +385,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
// CraftBukkit start
for (int spam; (spam = this.chatThrottle) > 0 && !chatSpamField.compareAndSet(this, spam, spam - 1); ) ;
if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - split to seperate variable
@@ -57,7 +57,7 @@ index 2380b7c82d012e466172b32b04601f5c691ca0c5..25eaad51bc7a8593d47804ea2774382d
/* Use thread-safe field access instead
if (this.chatThrottle > 0) {
--this.chatThrottle;
-@@ -2774,6 +2778,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2787,6 +2791,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInAutoRecipe packetplayinautorecipe) {
diff --git a/Spigot-Server-Patches/0630-Fix-interact-event-not-being-called-in-adventure.patch b/Spigot-Server-Patches/0630-Fix-interact-event-not-being-called-in-adventure.patch
index ce4dab1947..e0ef42968c 100644
--- a/Spigot-Server-Patches/0630-Fix-interact-event-not-being-called-in-adventure.patch
+++ b/Spigot-Server-Patches/0630-Fix-interact-event-not-being-called-in-adventure.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix interact event not being called in adventure
Call PlayerInteractEvent when left-clicking on a block in adventure mode
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 25eaad51bc7a8593d47804ea2774382d4dd55080..8009055a7c178dac97364e32d2e689539e45a412 100644
+index 79c0ef65f3a1d28de73afb3f1891cfc1a0a3dd90..358d1095b219fce6b308ec0362f22db7cfc85251 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1700,7 +1700,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1702,7 +1702,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
IChatMutableComponent ichatmutablecomponent = (new ChatMessage("build.tooHigh", new Object[]{this.minecraftServer.getMaxBuildHeight()})).a(EnumChatFormat.RED);
this.player.playerConnection.sendPacket(new PacketPlayOutChat(ichatmutablecomponent, ChatMessageType.GAME_INFO, SystemUtils.b));
@@ -18,7 +18,7 @@ index 25eaad51bc7a8593d47804ea2774382d4dd55080..8009055a7c178dac97364e32d2e68953
this.player.swingHand(enumhand, true);
}
}
-@@ -2201,7 +2201,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -2203,7 +2203,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
Vec3D vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3);
MovingObjectPosition movingobjectposition = this.player.world.rayTrace(new RayTrace(vec3d, vec3d1, RayTrace.BlockCollisionOption.OUTLINE, RayTrace.FluidCollisionOption.NONE, player));
diff --git a/Spigot-Server-Patches/0690-Allow-using-signs-inside-spawn-protection.patch b/Spigot-Server-Patches/0690-Allow-using-signs-inside-spawn-protection.patch
index 3d38f6e851..070f1d7f72 100644
--- a/Spigot-Server-Patches/0690-Allow-using-signs-inside-spawn-protection.patch
+++ b/Spigot-Server-Patches/0690-Allow-using-signs-inside-spawn-protection.patch
@@ -19,7 +19,7 @@ index 3e6132211912d29e34c94042b0819f11a3bd123e..921253a06daa414aed7dc6824effc65d
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 8009055a7c178dac97364e32d2e689539e45a412..5ee56f3636b299280a7c2bc5a210c63250a47fb3 100644
+index 358d1095b219fce6b308ec0362f22db7cfc85251..c6a65467d2d096d471ce5c4d761dc69d60644b75 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -143,6 +143,7 @@ import net.minecraft.world.level.GameRules;
@@ -30,7 +30,7 @@ index 8009055a7c178dac97364e32d2e689539e45a412..5ee56f3636b299280a7c2bc5a210c632
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.TileEntity;
import net.minecraft.world.level.block.entity.TileEntityCommand;
-@@ -1689,7 +1690,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1691,7 +1692,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.player.resetIdleTimer();
if (blockposition.getY() < this.minecraftServer.getMaxBuildHeight()) {
diff --git a/Spigot-Server-Patches/0699-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/Spigot-Server-Patches/0699-Don-t-ignore-result-of-PlayerEditBookEvent.patch
index b92c8f1094..cc90371c8f 100644
--- a/Spigot-Server-Patches/0699-Don-t-ignore-result-of-PlayerEditBookEvent.patch
+++ b/Spigot-Server-Patches/0699-Don-t-ignore-result-of-PlayerEditBookEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't ignore result of PlayerEditBookEvent
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-index 5ee56f3636b299280a7c2bc5a210c63250a47fb3..e6ea84ba098b4d77bc68e99862992a10ef4585b5 100644
+index c6a65467d2d096d471ce5c4d761dc69d60644b75..6ad075907d56a8f41ca3a7b82ff90a6d3ad9f1d4 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
-@@ -1144,7 +1144,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
+@@ -1146,7 +1146,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
list.stream().map(NBTTagString::a).forEach(nbttaglist::add);
ItemStack old = itemstack.cloneItemStack(); // CraftBukkit
itemstack.a("pages", (NBTBase) nbttaglist);
diff --git a/work/Bukkit b/work/Bukkit
-Subproject 9477fa26f2d29dba3250b1486cd2b353d697b01
+Subproject 14883d6b17f7cbf695a154266fa23372a4381eb
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject 28d72c4bd8c22f568384560459d0d703c2d0fef
+Subproject 115244c744b1ef289d97d4e6cc777e60f185ff6