diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch
index 25d1c82bb2..1fa6ca4e57 100644
--- a/patches/api/0005-Adventure.patch
+++ b/patches/api/0005-Adventure.patch
@@ -753,10 +753,10 @@ index 0000000000000000000000000000000000000000..6e94562d79206d88b74b53814f9423f1
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad749c8579 100644
+index ff86f4f5d7f460e8986c4a4fa483f5b5a1d3a1b6..cd9566aeace9e2e1e01fb014b0c50ba93af305d7 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -379,7 +379,9 @@ public final class Bukkit {
+@@ -388,7 +388,9 @@ public final class Bukkit {
*
* @param message the message
* @return the number of players
@@ -766,7 +766,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static int broadcastMessage(@NotNull String message) {
return server.broadcastMessage(message);
}
-@@ -1095,6 +1097,19 @@ public final class Bukkit {
+@@ -1104,6 +1106,19 @@ public final class Bukkit {
server.shutdown();
}
@@ -786,7 +786,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Broadcasts the specified message to every user with the given
* permission name.
-@@ -1104,6 +1119,21 @@ public final class Bukkit {
+@@ -1113,6 +1128,21 @@ public final class Bukkit {
* permissibles} must have to receive the broadcast
* @return number of message recipients
*/
@@ -808,7 +808,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static int broadcast(@NotNull String message, @NotNull String permission) {
return server.broadcast(message, permission);
}
-@@ -1342,6 +1372,7 @@ public final class Bukkit {
+@@ -1351,6 +1381,7 @@ public final class Bukkit {
return server.createInventory(owner, type);
}
@@ -816,7 +816,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Creates an empty inventory with the specified type and title. If the type
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -1367,6 +1398,38 @@ public final class Bukkit {
+@@ -1376,6 +1407,38 @@ public final class Bukkit {
* @see InventoryType#isCreatable()
*/
@NotNull
@@ -855,7 +855,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) {
return server.createInventory(owner, type, title);
}
-@@ -1385,6 +1448,7 @@ public final class Bukkit {
+@@ -1394,6 +1457,7 @@ public final class Bukkit {
return server.createInventory(owner, size);
}
@@ -863,7 +863,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -1397,10 +1461,30 @@ public final class Bukkit {
+@@ -1406,10 +1470,30 @@ public final class Bukkit {
* @throws IllegalArgumentException if the size is not a multiple of 9
*/
@NotNull
@@ -894,7 +894,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Creates an empty merchant.
*
-@@ -1408,7 +1492,20 @@ public final class Bukkit {
+@@ -1417,7 +1501,20 @@ public final class Bukkit {
* when the merchant inventory is viewed
* @return a new merchant
*/
@@ -915,7 +915,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static Merchant createMerchant(@Nullable String title) {
return server.createMerchant(title);
}
-@@ -1525,22 +1622,47 @@ public final class Bukkit {
+@@ -1534,12 +1631,43 @@ public final class Bukkit {
return server.isPrimaryThread();
}
@@ -928,6 +928,24 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
+ @NotNull public static net.kyori.adventure.text.Component motd() {
+ return server.motd();
+ }
++
++ /**
++ * Set the message that is displayed on the server list.
++ *
++ * @param motd The message to be displayed
++ */
++ public static void motd(final net.kyori.adventure.text.@NotNull Component motd) {
++ server.motd(motd);
++ }
++
++ /**
++ * Gets the default message that is displayed when the server is stopped.
++ *
++ * @return the shutdown message
++ */
++ public static net.kyori.adventure.text.@Nullable Component shutdownMessage() {
++ return server.shutdownMessage();
++ }
+ // Paper end
+
/**
@@ -941,18 +959,17 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static String getMotd() {
return server.getMotd();
}
-
-+ // Paper start
-+ /**
-+ * Gets the default message that is displayed when the server is stopped.
-+ *
-+ * @return the shutdown message
-+ */
-+ public static net.kyori.adventure.text.@Nullable Component shutdownMessage() {
-+ return server.shutdownMessage();
-+ }
-+ // Paper end
- /**
+@@ -1548,7 +1676,9 @@ public final class Bukkit {
+ * Set the message that is displayed on the server list.
+ *
+ * @param motd The message to be displayed
++ * @deprecated in favour of {@link #motd(net.kyori.adventure.text.Component)}
+ */
++ @Deprecated // Paper
+ public static void setMotd(@NotNull String motd) {
+ server.setMotd(motd);
+ }
+@@ -1557,8 +1687,10 @@ public final class Bukkit {
* Gets the default message that is displayed when the server is stopped.
*
* @return the shutdown message
@@ -1132,7 +1149,7 @@ index c559f38fdb92cfee9f2e0ffb7088d1cf74a7f73d..a42f1d53340e4073038d46b7fabf5d44
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca7bfedba7 100644
+index d3684494b81d06b82eab72c6cfbd76d36dfc0e97..e359bc68007fbe62270ee62be762f844cbafe2d9 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -60,13 +60,13 @@ import org.jetbrains.annotations.Nullable;
@@ -1160,7 +1177,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
*/
public static final String BROADCAST_CHANNEL_USERS = "bukkit.broadcast.user";
-@@ -320,7 +320,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -327,7 +327,9 @@ public interface Server extends PluginMessageRecipient {
*
* @param message the message
* @return the number of players
@@ -1170,7 +1187,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
public int broadcastMessage(@NotNull String message);
/**
-@@ -938,8 +940,33 @@ public interface Server extends PluginMessageRecipient {
+@@ -945,8 +947,33 @@ public interface Server extends PluginMessageRecipient {
* @param permission the required permission {@link Permissible
* permissibles} must have to receive the broadcast
* @return number of message recipients
@@ -1204,21 +1221,11 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
/**
* Gets the player by the given name, regardless if they are offline or
-@@ -1137,6 +1164,7 @@ public interface Server extends PluginMessageRecipient {
+@@ -1144,6 +1171,35 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type);
+ // Paper start
- /**
- * Creates an empty inventory with the specified type and title. If the type
- * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -1162,6 +1190,36 @@ public interface Server extends PluginMessageRecipient {
- * @see InventoryType#isCreatable()
- */
- @NotNull
-+ Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, net.kyori.adventure.text.@NotNull Component title);
-+ // Paper end
-+
+ /**
+ * Creates an empty inventory with the specified type and title. If the type
+ * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
@@ -1240,16 +1247,29 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
+ * @return The new inventory.
+ * @throws IllegalArgumentException if the {@link InventoryType} cannot be
+ * viewed.
-+ * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)}
+ *
+ * @see InventoryType#isCreatable()
+ */
-+ @Deprecated // Paper
+ @NotNull
++ Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, net.kyori.adventure.text.@NotNull Component title);
++ // Paper end
++
+ /**
+ * Creates an empty inventory with the specified type and title. If the type
+ * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
+@@ -1165,9 +1221,11 @@ public interface Server extends PluginMessageRecipient {
+ * @return The new inventory.
+ * @throws IllegalArgumentException if the {@link InventoryType} cannot be
+ * viewed.
++ * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)}
+ *
+ * @see InventoryType#isCreatable()
+ */
++ @Deprecated // Paper
+ @NotNull
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title);
- /**
-@@ -1176,6 +1234,22 @@ public interface Server extends PluginMessageRecipient {
+@@ -1183,6 +1241,22 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, int size) throws IllegalArgumentException;
@@ -1272,7 +1292,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -1186,10 +1260,13 @@ public interface Server extends PluginMessageRecipient {
+@@ -1193,18 +1267,32 @@ public interface Server extends PluginMessageRecipient {
* viewed
* @return a new inventory
* @throws IllegalArgumentException if the size is not a multiple of 9
@@ -1282,15 +1302,6 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException;
-+ // Paper start
- /**
- * Creates an empty merchant.
- *
-@@ -1197,7 +1274,18 @@ public interface Server extends PluginMessageRecipient {
- * when the merchant inventory is viewed
- * @return a new merchant
- */
-+ @NotNull Merchant createMerchant(net.kyori.adventure.text.@Nullable Component title);
+ // Paper start
+ /**
+ * Creates an empty merchant.
@@ -1298,14 +1309,23 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
+ * @param title the title of the corresponding merchant inventory, displayed
+ * when the merchant inventory is viewed
+ * @return a new merchant
-+ * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)}
+ */
++ @NotNull Merchant createMerchant(net.kyori.adventure.text.@Nullable Component title);
++ // Paper start
+ /**
+ * Creates an empty merchant.
+ *
+ * @param title the title of the corresponding merchant inventory, displayed
+ * when the merchant inventory is viewed
+ * @return a new merchant
++ * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)}
+ */
@NotNull
+ @Deprecated // Paper
Merchant createMerchant(@Nullable String title);
/**
-@@ -1293,20 +1381,41 @@ public interface Server extends PluginMessageRecipient {
+@@ -1300,27 +1388,56 @@ public interface Server extends PluginMessageRecipient {
*/
boolean isPrimaryThread();
@@ -1316,6 +1336,20 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
+ * @return the server's MOTD
+ */
+ net.kyori.adventure.text.@NotNull Component motd();
++
++ /**
++ * Set the message that is displayed on the server list.
++ *
++ * @param motd The message to be displayed
++ */
++ void motd(final net.kyori.adventure.text.@NotNull Component motd);
++
++ /**
++ * Gets the default message that is displayed when the server is stopped.
++ *
++ * @return the shutdown message
++ */
++ net.kyori.adventure.text.@Nullable Component shutdownMessage();
+ // Paper end
+
/**
@@ -1328,14 +1362,15 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
+ @Deprecated // Paper
String getMotd();
-+ // Paper start
-+ /**
-+ * Gets the default message that is displayed when the server is stopped.
-+ *
-+ * @return the shutdown message
-+ */
-+ net.kyori.adventure.text.@Nullable Component shutdownMessage();
-+ // Paper end
+ /**
+ * Set the message that is displayed on the server list.
+ *
+ * @param motd The message to be displayed
++ * @deprecated in favour of {@link #motd(net.kyori.adventure.text.Component)}
+ */
++ @Deprecated // Paper
+ void setMotd(@NotNull String motd);
+
/**
* Gets the default message that is displayed when the server is stopped.
*
@@ -1347,7 +1382,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
String getShutdownMessage();
/**
-@@ -1688,7 +1797,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1702,7 +1819,9 @@ public interface Server extends PluginMessageRecipient {
* Sends the component to the player
*
* @param component the components to send
@@ -1357,7 +1392,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
public void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
-@@ -1697,7 +1808,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1711,7 +1830,9 @@ public interface Server extends PluginMessageRecipient {
* Sends an array of components as a single message to the player
*
* @param components the components to send
diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0010-Timings-v2.patch
index f93edb3393..ac048d78e1 100644
--- a/patches/api/0010-Timings-v2.patch
+++ b/patches/api/0010-Timings-v2.patch
@@ -2854,10 +2854,10 @@ index 0000000000000000000000000000000000000000..3e61a926620a67daec3af54b72a1b911
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index fe86d25bfc444ad7143fb60e88bc46ad749c8579..ffacdd168e2b68663becfcfc5c917a41f8ec817d 100644
+index cd9566aeace9e2e1e01fb014b0c50ba93af305d7..1f4df6984a8b8bd3e72a5eb7fb1c66b6bfddfbf5 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -823,7 +823,6 @@ public final class Bukkit {
+@@ -832,7 +832,6 @@ public final class Bukkit {
*/
public static void reload() {
server.reload();
@@ -2866,10 +2866,10 @@ index fe86d25bfc444ad7143fb60e88bc46ad749c8579..ffacdd168e2b68663becfcfc5c917a41
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b516021b6772d8266ed72b73170510ca7bfedba7..cadf590c7e597a503078892b3d5671642a80eb3f 100644
+index e359bc68007fbe62270ee62be762f844cbafe2d9..e773b40ff5fa9890c72e45e5c75a155bd7d02954 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1793,6 +1793,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1815,6 +1815,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/patches/api/0013-Add-getTPS-method.patch b/patches/api/0013-Add-getTPS-method.patch
index e49e4e2edf..f5bdf29597 100644
--- a/patches/api/0013-Add-getTPS-method.patch
+++ b/patches/api/0013-Add-getTPS-method.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getTPS method
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 003d1613fb1b5a24146fb3eeba0be7bf5a4eb8b8..ad7ab68bb2cb4516217984c1c8c07f7a892734a0 100644
+index d77a7acb3ea82a331cb773bfda3e66d26a2bbd68..b2effed0281997a64dd0fdc965bce2a54af0cf4d 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1912,6 +1912,17 @@ public final class Bukkit {
+@@ -1940,6 +1940,17 @@ public final class Bukkit {
return server.getEntity(uuid);
}
@@ -27,10 +27,10 @@ index 003d1613fb1b5a24146fb3eeba0be7bf5a4eb8b8..ad7ab68bb2cb4516217984c1c8c07f7a
* Get the advancement specified by this key.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 15b07d05d948d5df21591dc9e1b0fc0232c984ec..1f09705726d9114821eeb8321805cac0f7966944 100644
+index 76d28815a51d73fc79ef8bb5abe8fc7758e6fd23..04f5191398dcfac02eb6553d549e77207c06e550 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1630,6 +1630,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1652,6 +1652,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
Entity getEntity(@NotNull UUID uuid);
diff --git a/patches/api/0020-Expose-server-CommandMap.patch b/patches/api/0020-Expose-server-CommandMap.patch
index 804b176eb2..f64662cba3 100644
--- a/patches/api/0020-Expose-server-CommandMap.patch
+++ b/patches/api/0020-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ad7ab68bb2cb4516217984c1c8c07f7a892734a0..b28d196a810e121d0502e0035b16d2c6ed2efe2d 100644
+index b2effed0281997a64dd0fdc965bce2a54af0cf4d..f3a976ea2d7433623202c1d7cbf777608b0ba457 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2113,6 +2113,19 @@ public final class Bukkit {
+@@ -2141,6 +2141,19 @@ public final class Bukkit {
return server.getUnsafe();
}
@@ -29,10 +29,10 @@ index ad7ab68bb2cb4516217984c1c8c07f7a892734a0..b28d196a810e121d0502e0035b16d2c6
public static Server.Spigot spigot() {
return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 1f09705726d9114821eeb8321805cac0f7966944..b6ff3a80fcb5c0e843caa1cfdb165cf2cadb8bd2 100644
+index 04f5191398dcfac02eb6553d549e77207c06e550..c0c67866014940a1331cd714d5c6eb50256ae143 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1640,6 +1640,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1662,6 +1662,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
public double[] getTPS();
// Paper end
diff --git a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
index 4f056b16b8..d11eb796ca 100644
--- a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
+++ b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses
Change Javadoc to be accurate
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index b28d196a810e121d0502e0035b16d2c6ed2efe2d..61734532c341dcbc0565189b63fd05f53b041039 100644
+index f3a976ea2d7433623202c1d7cbf777608b0ba457..77b267c50523433eee0fa35c6c5b8a9e121c0862 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -400,6 +400,30 @@ public final class Bukkit {
+@@ -409,6 +409,30 @@ public final class Bukkit {
return server.broadcastMessage(message);
}
@@ -41,10 +41,10 @@ index b28d196a810e121d0502e0035b16d2c6ed2efe2d..61734532c341dcbc0565189b63fd05f5
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b6ff3a80fcb5c0e843caa1cfdb165cf2cadb8bd2..f24bb5b22975bcbdce1bf1e80cf7a1b338ad12a5 100644
+index c0c67866014940a1331cd714d5c6eb50256ae143..0e63d438a74b96075d7d8fb51ddbd21be3447377 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -337,6 +337,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -344,6 +344,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Deprecated // Paper
public int broadcastMessage(@NotNull String message);
diff --git a/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch b/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
index e73aa3393f..94d7e38e7d 100644
--- a/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
+++ b/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 61734532c341dcbc0565189b63fd05f53b041039..cb021ea553f7330473f8e8bcc47803f8c544971a 100644
+index 77b267c50523433eee0fa35c6c5b8a9e121c0862..0b9b28b7a07a8176142b18cfa767c81f5035d52d 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2148,6 +2148,13 @@ public final class Bukkit {
+@@ -2176,6 +2176,13 @@ public final class Bukkit {
public static org.bukkit.command.CommandMap getCommandMap() {
return server.getCommandMap();
}
@@ -24,10 +24,10 @@ index 61734532c341dcbc0565189b63fd05f53b041039..cb021ea553f7330473f8e8bcc47803f8
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index f24bb5b22975bcbdce1bf1e80cf7a1b338ad12a5..ecd0b92f487b9c2d1f7fed1e98e10c8c0946ab9e 100644
+index 0e63d438a74b96075d7d8fb51ddbd21be3447377..e76c11688760a24f8395f562108b4c5fd7139b42 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1901,4 +1901,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1923,4 +1923,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
Spigot spigot();
// Spigot end
diff --git a/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch b/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
index 1b4a34b2e9..7e19f95ecf 100644
--- a/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cb021ea553f7330473f8e8bcc47803f8c544971a..7f5da77075a8c180848312d85e554a0e309fa3e5 100644
+index 0b9b28b7a07a8176142b18cfa767c81f5035d52d..22d9538abe61ccb3e5d3ae407d54446fa172fa39 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2155,6 +2155,15 @@ public final class Bukkit {
+@@ -2183,6 +2183,15 @@ public final class Bukkit {
public static void reloadPermissions() {
server.reloadPermissions();
}
@@ -26,10 +26,10 @@ index cb021ea553f7330473f8e8bcc47803f8c544971a..7f5da77075a8c180848312d85e554a0e
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index ecd0b92f487b9c2d1f7fed1e98e10c8c0946ab9e..b2d13b1e31a09aad903f0c24b14641f911cfaee5 100644
+index e76c11688760a24f8395f562108b4c5fd7139b42..26516ae5519675dac359b578d0f06ea2c0745ab3 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1903,4 +1903,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1925,4 +1925,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Spigot end
void reloadPermissions(); // Paper
diff --git a/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
index 6a08ac19e0..2013c6f360 100644
--- a/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 7f5da77075a8c180848312d85e554a0e309fa3e5..8bc4615fd1e227de53d18c3ad6172f62fd38893b 100644
+index 22d9538abe61ccb3e5d3ae407d54446fa172fa39..68a79316cec0c4ab83c6f986e3a9561440994319 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2164,6 +2164,16 @@ public final class Bukkit {
+@@ -2192,6 +2192,16 @@ public final class Bukkit {
public static boolean reloadCommandAliases() {
return server.reloadCommandAliases();
}
@@ -27,10 +27,10 @@ index 7f5da77075a8c180848312d85e554a0e309fa3e5..8bc4615fd1e227de53d18c3ad6172f62
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b2d13b1e31a09aad903f0c24b14641f911cfaee5..3f307c4e1f9231164f146d7d44a7327aee0293bd 100644
+index 26516ae5519675dac359b578d0f06ea2c0745ab3..0cf214c45078d83d678f12f6cb350e50fc5f1e94 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1905,4 +1905,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1927,4 +1927,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper
diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch
index 525e38db78..13aa3bf13d 100644
--- a/patches/api/0055-Fix-upstream-javadocs.patch
+++ b/patches/api/0055-Fix-upstream-javadocs.patch
@@ -53,10 +53,10 @@ index 96ef22fe879c7be4f67bbb4d60c45ad11764dd5b..5dc9f9ede98d93925c99ee382e93f15f
* @param target the target to remove from this list
*/
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 8bc4615fd1e227de53d18c3ad6172f62fd38893b..a0faa4ef90086bfb7b49bd59e566c01fa9ec380d 100644
+index 68a79316cec0c4ab83c6f986e3a9561440994319..316fc8348445b99af7ffc7c4ad24948a1115dfe6 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1290,10 +1290,7 @@ public final class Bukkit {
+@@ -1299,10 +1299,7 @@ public final class Bukkit {
}
/**
@@ -68,7 +68,7 @@ index 8bc4615fd1e227de53d18c3ad6172f62fd38893b..a0faa4ef90086bfb7b49bd59e566c01f
*
* @param type the type of list to fetch, cannot be null
* @return a ban list of the specified type
-@@ -1355,6 +1352,8 @@ public final class Bukkit {
+@@ -1364,6 +1361,8 @@ public final class Bukkit {
/**
* Gets every player that has ever played on this server.
@@ -130,10 +130,10 @@ index 43f5aab2fe70af5f570de1f21eca83905f1e2f57..05c29cbd2ae1ca0434a90f8389479bd6
* @param statePredicate The predicate which should get used to test if a block should be set or not.
* @return true if the tree was created successfully, otherwise false
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 3f307c4e1f9231164f146d7d44a7327aee0293bd..8f64461f8c05143e8e8e10c0efbb6d6b8f71fd83 100644
+index 0cf214c45078d83d678f12f6cb350e50fc5f1e94..d7b081ac72d7d2aa3b675c6cbb8fb66f73facc99 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -535,13 +535,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -542,13 +542,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
*
* Note: If set to 0, {@link SpawnCategory} mobs spawning will be disabled.
@@ -148,7 +148,7 @@ index 3f307c4e1f9231164f146d7d44a7327aee0293bd..8f64461f8c05143e8e8e10c0efbb6d6b
*/
public int getTicksPerSpawns(@NotNull SpawnCategory spawnCategory);
-@@ -1101,10 +1098,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1108,10 +1105,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
public Set getBannedPlayers();
/**
@@ -160,7 +160,7 @@ index 3f307c4e1f9231164f146d7d44a7327aee0293bd..8f64461f8c05143e8e8e10c0efbb6d6b
*
* @param type the type of list to fetch, cannot be null
* @return a ban list of the specified type
-@@ -1154,6 +1148,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1161,6 +1155,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
* Gets every player that has ever played on this server.
diff --git a/patches/api/0059-Basic-PlayerProfile-API.patch b/patches/api/0059-Basic-PlayerProfile-API.patch
index 4b1765e69f..13200b1ca2 100644
--- a/patches/api/0059-Basic-PlayerProfile-API.patch
+++ b/patches/api/0059-Basic-PlayerProfile-API.patch
@@ -321,10 +321,10 @@ index 0000000000000000000000000000000000000000..7b3b6ef533d32169fbeca389bd61cfc6
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index a0faa4ef90086bfb7b49bd59e566c01fa9ec380d..cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2 100644
+index 316fc8348445b99af7ffc7c4ad24948a1115dfe6..10eeb288ef41dfc6bd70fc8f6ec218dabc60b2a4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2173,6 +2173,83 @@ public final class Bukkit {
+@@ -2201,6 +2201,83 @@ public final class Bukkit {
public static boolean suggestPlayerNamesWhenNullTabCompletions() {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -409,10 +409,10 @@ index a0faa4ef90086bfb7b49bd59e566c01fa9ec380d..cbd89729d1ba4866fdb9b72b7f0a4fbd
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 8f64461f8c05143e8e8e10c0efbb6d6b8f71fd83..7f6400c58530d4827c197f3d1fbabfa34554010f 100644
+index d7b081ac72d7d2aa3b675c6cbb8fb66f73facc99..1487b5de4fba5304b7e2105c6f88872923aa7974 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1910,5 +1910,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1932,5 +1932,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if player names should be suggested
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0091-Player.setPlayerProfile-API.patch
index 0b50ab4d3c..9cb130248a 100644
--- a/patches/api/0091-Player.setPlayerProfile-API.patch
+++ b/patches/api/0091-Player.setPlayerProfile-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Player.setPlayerProfile API
This can be useful for changing name or skins after a player has logged in.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2..551948a83965b38bf29aeb8daafc25bde05a5a1c 100644
+index 10eeb288ef41dfc6bd70fc8f6ec218dabc60b2a4..ace8904541fb4571cb03f14e6e3baa02ae460d1e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1220,8 +1220,10 @@ public final class Bukkit {
+@@ -1229,8 +1229,10 @@ public final class Bukkit {
* @return the new PlayerProfile
* @throws IllegalArgumentException if both the unique id is
* null
and the name is null
or blank
@@ -20,7 +20,7 @@ index cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2..551948a83965b38bf29aeb8daafc25bd
public static PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name) {
return server.createPlayerProfile(uniqueId, name);
}
-@@ -1232,8 +1234,10 @@ public final class Bukkit {
+@@ -1241,8 +1243,10 @@ public final class Bukkit {
* @param uniqueId the unique id
* @return the new PlayerProfile
* @throws IllegalArgumentException if the unique id is null
@@ -31,7 +31,7 @@ index cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2..551948a83965b38bf29aeb8daafc25bd
public static PlayerProfile createPlayerProfile(@NotNull UUID uniqueId) {
return server.createPlayerProfile(uniqueId);
}
-@@ -1245,8 +1249,10 @@ public final class Bukkit {
+@@ -1254,8 +1258,10 @@ public final class Bukkit {
* @return the new PlayerProfile
* @throws IllegalArgumentException if the name is null
or
* blank
@@ -56,10 +56,10 @@ index 5acb0d36a008cf5ad332c867e9303d35235b4028..b1ded556a1ce4e1d3c873ab9d7f799b6
/**
* Checks if this player is banned or not
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 7f6400c58530d4827c197f3d1fbabfa34554010f..e4c85e67713c5ed4b8b1fcc3c4231327e987a460 100644
+index 1487b5de4fba5304b7e2105c6f88872923aa7974..e4f8031ab979ba7e3fd7242b788e41974f490565 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1042,8 +1042,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1049,8 +1049,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return the new PlayerProfile
* @throws IllegalArgumentException if both the unique id is
* null
and the name is null
or blank
@@ -70,7 +70,7 @@ index 7f6400c58530d4827c197f3d1fbabfa34554010f..e4c85e67713c5ed4b8b1fcc3c4231327
PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name);
/**
-@@ -1052,8 +1054,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1059,8 +1061,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param uniqueId the unique id
* @return the new PlayerProfile
* @throws IllegalArgumentException if the unique id is null
@@ -81,7 +81,7 @@ index 7f6400c58530d4827c197f3d1fbabfa34554010f..e4c85e67713c5ed4b8b1fcc3c4231327
PlayerProfile createPlayerProfile(@NotNull UUID uniqueId);
/**
-@@ -1063,8 +1067,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1070,8 +1074,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return the new PlayerProfile
* @throws IllegalArgumentException if the name is null
or
* blank
diff --git a/patches/api/0092-getPlayerUniqueId-API.patch b/patches/api/0092-getPlayerUniqueId-API.patch
index 0cf3122de1..ad0e12f4d8 100644
--- a/patches/api/0092-getPlayerUniqueId-API.patch
+++ b/patches/api/0092-getPlayerUniqueId-API.patch
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 551948a83965b38bf29aeb8daafc25bde05a5a1c..7113f38eac400bc86a427972e501b0ca5653dae6 100644
+index ace8904541fb4571cb03f14e6e3baa02ae460d1e..36c5294e6169c3aa4517cd2c945b5dfb7a2a0c51 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -678,6 +678,20 @@ public final class Bukkit {
+@@ -687,6 +687,20 @@ public final class Bukkit {
return server.getPlayer(id);
}
@@ -34,10 +34,10 @@ index 551948a83965b38bf29aeb8daafc25bde05a5a1c..7113f38eac400bc86a427972e501b0ca
* Gets the plugin manager for interfacing with plugins.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index e4c85e67713c5ed4b8b1fcc3c4231327e987a460..878b3ff92be8fcb977240824ae404fb5bed42d48 100644
+index e4f8031ab979ba7e3fd7242b788e41974f490565..2ac191185e4dabb2f39b05a56548b0d97daa2979 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -584,6 +584,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -591,6 +591,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public Player getPlayer(@NotNull UUID id);
diff --git a/patches/api/0160-Make-the-default-permission-message-configurable.patch b/patches/api/0160-Make-the-default-permission-message-configurable.patch
index 83e5645e29..fdedf8eed1 100644
--- a/patches/api/0160-Make-the-default-permission-message-configurable.patch
+++ b/patches/api/0160-Make-the-default-permission-message-configurable.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make the default permission message configurable
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 733b537d4236e5cb06efc188183ad876db31c0ff..71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd 100644
+index 36a127864be2a75a38bcc6eacafde5109e5c6c69..8649a3453bd3c3ee5f2bf5b706b125cb70d3bb1b 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2213,6 +2213,28 @@ public final class Bukkit {
+@@ -2241,6 +2241,28 @@ public final class Bukkit {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -38,10 +38,10 @@ index 733b537d4236e5cb06efc188183ad876db31c0ff..71cd6f405c35e1e1a02c1bac64b509ae
* Creates a PlayerProfile for the specified uuid, with name as null.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 878b3ff92be8fcb977240824ae404fb5bed42d48..43c14b492879d56993586a7b64eb374654ca67a6 100644
+index 2ac191185e4dabb2f39b05a56548b0d97daa2979..771a504a6f64644f434e2a6d20d285d338b5dff4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1929,6 +1929,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1951,6 +1951,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
index 9ffda1d027..a7a3aec004 100644
--- a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
@@ -9,10 +9,10 @@ a ton of noise to plugin developers.
These do not help plugin developers if they bring moise noise than value.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd..a5b792d94a2357f0536def00e80430d00a0b4fa7 100644
+index 8649a3453bd3c3ee5f2bf5b706b125cb70d3bb1b..ef7445fc5c169e64a73dce4f71a2885fb976caf3 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -827,9 +827,8 @@ public final class Bukkit {
+@@ -836,9 +836,8 @@ public final class Bukkit {
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
@@ -23,7 +23,7 @@ index 71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd..a5b792d94a2357f0536def00e80430d0
@Nullable
public static MapView getMap(int id) {
return server.getMap(id);
-@@ -1221,10 +1220,8 @@ public final class Bukkit {
+@@ -1230,10 +1229,8 @@ public final class Bukkit {
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
@@ -35,7 +35,7 @@ index 71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd..a5b792d94a2357f0536def00e80430d0
@NotNull
public static OfflinePlayer getOfflinePlayer(@NotNull String name) {
return server.getOfflinePlayer(name);
-@@ -1770,7 +1767,7 @@ public final class Bukkit {
+@@ -1798,7 +1795,7 @@ public final class Bukkit {
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@@ -203,10 +203,10 @@ index 6277451c3c6c551078c237cd767b6d70c4f585ea..10f5cfb1885833a1d2c1027c03974da4
CRACKED(0x0),
GLYPHED(0x1),
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 43c14b492879d56993586a7b64eb374654ca67a6..38eb76e9f0dc8dd377bb82990eea0c598bdb1000 100644
+index 771a504a6f64644f434e2a6d20d285d338b5dff4..5edef1114f1c94e921656972141d62a9d6338105 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -695,9 +695,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -702,9 +702,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
@@ -217,7 +217,7 @@ index 43c14b492879d56993586a7b64eb374654ca67a6..38eb76e9f0dc8dd377bb82990eea0c59
@Nullable
public MapView getMap(int id);
-@@ -1026,10 +1025,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1033,10 +1032,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
@@ -229,7 +229,7 @@ index 43c14b492879d56993586a7b64eb374654ca67a6..38eb76e9f0dc8dd377bb82990eea0c59
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
-@@ -1492,7 +1489,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1514,7 +1511,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
diff --git a/patches/api/0176-Mob-Spawner-API-Enhancements.patch b/patches/api/0176-Mob-Spawner-API-Enhancements.patch
index 2bbe92cbe9..4928839428 100644
--- a/patches/api/0176-Mob-Spawner-API-Enhancements.patch
+++ b/patches/api/0176-Mob-Spawner-API-Enhancements.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Mob Spawner API Enhancements
diff --git a/src/main/java/org/bukkit/block/CreatureSpawner.java b/src/main/java/org/bukkit/block/CreatureSpawner.java
-index cb447a4ad5a9dce7c98999a5d7fcd6111fc9b10e..5bbae759ce39d42886994e500fd9454ec328f804 100644
+index 8dae9611e702d93b202563597c50752c5f5b77d4..3dcab76632c4f8646d7ae62bb8de287eb6ef55b5 100644
--- a/src/main/java/org/bukkit/block/CreatureSpawner.java
+++ b/src/main/java/org/bukkit/block/CreatureSpawner.java
@@ -199,4 +199,30 @@ public interface CreatureSpawner extends TileState {
@@ -36,6 +36,6 @@ index cb447a4ad5a9dce7c98999a5d7fcd6111fc9b10e..5bbae759ce39d42886994e500fd9454e
+ * @param itemStack The item to spawn. Must not {@link org.bukkit.Material#isAir be air}.
+ * @see #setSpawnedType(EntityType)
+ */
-+ void setSpawnedItem(@NotNull org.bukkit.inventory.ItemStack itemStack);
++ void setSpawnedItem(org.bukkit.inventory.@org.jetbrains.annotations.NotNull ItemStack itemStack);
+ // Paper end
}
diff --git a/patches/api/0180-Expose-the-internal-current-tick.patch b/patches/api/0180-Expose-the-internal-current-tick.patch
index 8966f3b1ca..401df320b5 100644
--- a/patches/api/0180-Expose-the-internal-current-tick.patch
+++ b/patches/api/0180-Expose-the-internal-current-tick.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index a5b792d94a2357f0536def00e80430d00a0b4fa7..e32094b8e7710158f75450c477c91110d83ba71b 100644
+index ef7445fc5c169e64a73dce4f71a2885fb976caf3..d39c6b5d3fef5fe9727868175cf266fd68c2efa4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2308,6 +2308,10 @@ public final class Bukkit {
+@@ -2336,6 +2336,10 @@ public final class Bukkit {
public static com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name) {
return server.createProfileExact(uuid, name);
}
@@ -20,10 +20,10 @@ index a5b792d94a2357f0536def00e80430d00a0b4fa7..e32094b8e7710158f75450c477c91110
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 38eb76e9f0dc8dd377bb82990eea0c598bdb1000..fc8a6468c61a84a1fe719505adb274d48e24e8f4 100644
+index 5edef1114f1c94e921656972141d62a9d6338105..e02bd7323e117e9977275b3a5d3e070ff891fdbd 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2011,5 +2011,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2033,5 +2033,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name);
diff --git a/patches/api/0186-Add-tick-times-API.patch b/patches/api/0186-Add-tick-times-API.patch
index c6d8b2838a..491be377a9 100644
--- a/patches/api/0186-Add-tick-times-API.patch
+++ b/patches/api/0186-Add-tick-times-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add tick times API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index e32094b8e7710158f75450c477c91110d83ba71b..82940fa20f5f958e6473f318ee2c5da3647e0228 100644
+index d39c6b5d3fef5fe9727868175cf266fd68c2efa4..354fa01b30ec26f78f874a06e57a89f14ef13ef4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1980,6 +1980,25 @@ public final class Bukkit {
+@@ -2008,6 +2008,25 @@ public final class Bukkit {
public static double[] getTPS() {
return server.getTPS();
}
@@ -35,10 +35,10 @@ index e32094b8e7710158f75450c477c91110d83ba71b..82940fa20f5f958e6473f318ee2c5da3
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index fc8a6468c61a84a1fe719505adb274d48e24e8f4..ffd1f47690083b40aa349ed0f92d6fc2fdc56609 100644
+index e02bd7323e117e9977275b3a5d3e070ff891fdbd..edceaefe5e46515300c819351aebe0fce576d599 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1673,6 +1673,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1695,6 +1695,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
public double[] getTPS();
diff --git a/patches/api/0187-Expose-MinecraftServer-isRunning.patch b/patches/api/0187-Expose-MinecraftServer-isRunning.patch
index fa313e183e..5e8b1257f3 100644
--- a/patches/api/0187-Expose-MinecraftServer-isRunning.patch
+++ b/patches/api/0187-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 82940fa20f5f958e6473f318ee2c5da3647e0228..39fdcada6aa98058491aa6b5e5b9943c8a57a59d 100644
+index 354fa01b30ec26f78f874a06e57a89f14ef13ef4..725de23dc102e3b63da5e49bb1eafca96e33fc4c 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2331,6 +2331,15 @@ public final class Bukkit {
+@@ -2359,6 +2359,15 @@ public final class Bukkit {
public static int getCurrentTick() {
return server.getCurrentTick();
}
@@ -26,10 +26,10 @@ index 82940fa20f5f958e6473f318ee2c5da3647e0228..39fdcada6aa98058491aa6b5e5b9943c
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index ffd1f47690083b40aa349ed0f92d6fc2fdc56609..65daa359f000cf1acc3067af62e3210ced378519 100644
+index edceaefe5e46515300c819351aebe0fce576d599..960fc19a04bc3475bd81301ec283c9bb32f62821 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2033,5 +2033,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2055,5 +2055,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return Current tick
*/
int getCurrentTick();
diff --git a/patches/api/0195-Add-Mob-Goal-API.patch b/patches/api/0195-Add-Mob-Goal-API.patch
index a80c726ba2..a9605fb0bc 100644
--- a/patches/api/0195-Add-Mob-Goal-API.patch
+++ b/patches/api/0195-Add-Mob-Goal-API.patch
@@ -525,10 +525,10 @@ index 0000000000000000000000000000000000000000..c9837c7c47314b5bdf6c7973e6bc962d
+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey UNIVERSAL_ANGER_RESET = GoalKey.of(Mob.class, NamespacedKey.minecraft("universal_anger_reset"));
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index e1a9a0ec6036133aa8fb195d22611df221bf5661..ce409a88b1f7fc519b2d7795005752b4349e4176 100644
+index dfeaddc2d71f8569c349740c00c96868f9a56a12..4e5e29251b713885eee562091ea4f253f027bdbb 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2352,6 +2352,16 @@ public final class Bukkit {
+@@ -2380,6 +2380,16 @@ public final class Bukkit {
public static boolean isStopping() {
return server.isStopping();
}
@@ -546,10 +546,10 @@ index e1a9a0ec6036133aa8fb195d22611df221bf5661..ce409a88b1f7fc519b2d7795005752b4
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 357f59f07387d3de75a0792e7e883cb82aafa2e2..d080d535275b28400471265315e0d70bf806cbb8 100644
+index ccec37c00f8ab318d41350907b40a64118e4fab1..9634d82d603426979cab978f9474cc041e1cb701 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2050,5 +2050,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2072,5 +2072,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if server is in the process of being shutdown
*/
boolean isStopping();
diff --git a/patches/api/0208-Add-BellRingEvent.patch b/patches/api/0207-Add-BellRingEvent.patch
similarity index 100%
rename from patches/api/0208-Add-BellRingEvent.patch
rename to patches/api/0207-Add-BellRingEvent.patch
diff --git a/patches/api/0207-Add-setMaxPlayers-API.patch b/patches/api/0207-Add-setMaxPlayers-API.patch
deleted file mode 100644
index 5170c3b9a5..0000000000
--- a/patches/api/0207-Add-setMaxPlayers-API.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Mariell Hoversholm
-Date: Sat, 22 Aug 2020 23:59:25 +0200
-Subject: [PATCH] Add #setMaxPlayers API
-
-
-diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ce409a88b1f7fc519b2d7795005752b4349e4176..bae2ef297ba585c916ea06c4316e9511696000da 100644
---- a/src/main/java/org/bukkit/Bukkit.java
-+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -209,6 +209,17 @@ public final class Bukkit {
- return server.getMaxPlayers();
- }
-
-+ // Paper start
-+ /**
-+ * Set the maximum amount of players which can login to this server.
-+ *
-+ * @param maxPlayers the amount of players this server allows
-+ */
-+ public static void setMaxPlayers(int maxPlayers) {
-+ server.setMaxPlayers(maxPlayers);
-+ }
-+ // Paper end
-+
- /**
- * Get the game port that the server runs on.
- *
-diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index d080d535275b28400471265315e0d70bf806cbb8..31e8a002f9b0641f16bc4cf330e6022b13942321 100644
---- a/src/main/java/org/bukkit/Server.java
-+++ b/src/main/java/org/bukkit/Server.java
-@@ -161,6 +161,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
- */
- public int getMaxPlayers();
-
-+ // Paper start
-+ /**
-+ * Set the maximum amount of players which can login to this server.
-+ *
-+ * @param maxPlayers the amount of players this server allows
-+ */
-+ public void setMaxPlayers(int maxPlayers);
-+ // Paper end
-+
- /**
- * Get the game port that the server runs on.
- *
diff --git a/patches/api/0209-Add-moon-phase-API.patch b/patches/api/0208-Add-moon-phase-API.patch
similarity index 100%
rename from patches/api/0209-Add-moon-phase-API.patch
rename to patches/api/0208-Add-moon-phase-API.patch
diff --git a/patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch
similarity index 100%
rename from patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch
rename to patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch
diff --git a/patches/api/0211-Add-more-Evoker-API.patch b/patches/api/0210-Add-more-Evoker-API.patch
similarity index 100%
rename from patches/api/0211-Add-more-Evoker-API.patch
rename to patches/api/0210-Add-more-Evoker-API.patch
diff --git a/patches/api/0212-Add-methods-to-get-translation-keys.patch b/patches/api/0211-Add-methods-to-get-translation-keys.patch
similarity index 100%
rename from patches/api/0212-Add-methods-to-get-translation-keys.patch
rename to patches/api/0211-Add-methods-to-get-translation-keys.patch
diff --git a/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch
similarity index 100%
rename from patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch
rename to patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch
diff --git a/patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch
similarity index 100%
rename from patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch
rename to patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch
diff --git a/patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
similarity index 100%
rename from patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
rename to patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
diff --git a/patches/api/0216-Entity-isTicking.patch b/patches/api/0215-Entity-isTicking.patch
similarity index 100%
rename from patches/api/0216-Entity-isTicking.patch
rename to patches/api/0215-Entity-isTicking.patch
diff --git a/patches/api/0217-Villager-resetOffers.patch b/patches/api/0216-Villager-resetOffers.patch
similarity index 100%
rename from patches/api/0217-Villager-resetOffers.patch
rename to patches/api/0216-Villager-resetOffers.patch
diff --git a/patches/api/0218-Player-elytra-boost-API.patch b/patches/api/0217-Player-elytra-boost-API.patch
similarity index 100%
rename from patches/api/0218-Player-elytra-boost-API.patch
rename to patches/api/0217-Player-elytra-boost-API.patch
diff --git a/patches/api/0219-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
similarity index 88%
rename from patches/api/0219-Add-getOfflinePlayerIfCached-String.patch
rename to patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
index 4812d992db..6d5e161e24 100644
--- a/patches/api/0219-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index bae2ef297ba585c916ea06c4316e9511696000da..0bc59cd1b27303dff7f13f79087b13097606ae65 100644
+index 4e5e29251b713885eee562091ea4f253f027bdbb..6d5423f6b6b1aa013a1f77d368058e4cdf2cbe84 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1250,6 +1250,27 @@ public final class Bukkit {
+@@ -1248,6 +1248,27 @@ public final class Bukkit {
return server.getOfflinePlayer(name);
}
@@ -37,10 +37,10 @@ index bae2ef297ba585c916ea06c4316e9511696000da..0bc59cd1b27303dff7f13f79087b1309
* Gets the player by the given UUID, regardless if they are offline or
* online.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 31e8a002f9b0641f16bc4cf330e6022b13942321..247bd6d2101d280a00727cacdeb8f40a7d7c4dcb 100644
+index 9634d82d603426979cab978f9474cc041e1cb701..f8ef98c9d266e12a3a3f69647cf4d7a9bc633419 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1049,6 +1049,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1047,6 +1047,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
diff --git a/patches/api/0220-Add-ignore-discounts-API.patch b/patches/api/0219-Add-ignore-discounts-API.patch
similarity index 100%
rename from patches/api/0220-Add-ignore-discounts-API.patch
rename to patches/api/0219-Add-ignore-discounts-API.patch
diff --git a/patches/api/0221-Item-no-age-no-player-pickup.patch b/patches/api/0220-Item-no-age-no-player-pickup.patch
similarity index 100%
rename from patches/api/0221-Item-no-age-no-player-pickup.patch
rename to patches/api/0220-Item-no-age-no-player-pickup.patch
diff --git a/patches/api/0222-Beacon-API-custom-effect-ranges.patch b/patches/api/0221-Beacon-API-custom-effect-ranges.patch
similarity index 100%
rename from patches/api/0222-Beacon-API-custom-effect-ranges.patch
rename to patches/api/0221-Beacon-API-custom-effect-ranges.patch
diff --git a/patches/api/0223-Add-API-for-quit-reason.patch b/patches/api/0222-Add-API-for-quit-reason.patch
similarity index 100%
rename from patches/api/0223-Add-API-for-quit-reason.patch
rename to patches/api/0222-Add-API-for-quit-reason.patch
diff --git a/patches/api/0224-Add-Destroy-Speed-API.patch b/patches/api/0223-Add-Destroy-Speed-API.patch
similarity index 100%
rename from patches/api/0224-Add-Destroy-Speed-API.patch
rename to patches/api/0223-Add-Destroy-Speed-API.patch
diff --git a/patches/api/0225-Add-LivingEntity-clearActiveItem.patch b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch
similarity index 100%
rename from patches/api/0225-Add-LivingEntity-clearActiveItem.patch
rename to patches/api/0224-Add-LivingEntity-clearActiveItem.patch
diff --git a/patches/api/0226-Add-PlayerItemCooldownEvent.patch b/patches/api/0225-Add-PlayerItemCooldownEvent.patch
similarity index 100%
rename from patches/api/0226-Add-PlayerItemCooldownEvent.patch
rename to patches/api/0225-Add-PlayerItemCooldownEvent.patch
diff --git a/patches/api/0227-More-lightning-API.patch b/patches/api/0226-More-lightning-API.patch
similarity index 100%
rename from patches/api/0227-More-lightning-API.patch
rename to patches/api/0226-More-lightning-API.patch
diff --git a/patches/api/0228-Add-PlayerShearBlockEvent.patch b/patches/api/0227-Add-PlayerShearBlockEvent.patch
similarity index 100%
rename from patches/api/0228-Add-PlayerShearBlockEvent.patch
rename to patches/api/0227-Add-PlayerShearBlockEvent.patch
diff --git a/patches/api/0229-Player-Chunk-Load-Unload-Events.patch b/patches/api/0228-Player-Chunk-Load-Unload-Events.patch
similarity index 100%
rename from patches/api/0229-Player-Chunk-Load-Unload-Events.patch
rename to patches/api/0228-Player-Chunk-Load-Unload-Events.patch
diff --git a/patches/api/0230-Expose-LivingEntity-hurt-direction.patch b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch
similarity index 100%
rename from patches/api/0230-Expose-LivingEntity-hurt-direction.patch
rename to patches/api/0229-Expose-LivingEntity-hurt-direction.patch
diff --git a/patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
similarity index 100%
rename from patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
rename to patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
diff --git a/patches/api/0232-Added-PlayerTradeEvent.patch b/patches/api/0231-Added-PlayerTradeEvent.patch
similarity index 100%
rename from patches/api/0232-Added-PlayerTradeEvent.patch
rename to patches/api/0231-Added-PlayerTradeEvent.patch
diff --git a/patches/api/0233-Add-TargetHitEvent-API.patch b/patches/api/0232-Add-TargetHitEvent-API.patch
similarity index 100%
rename from patches/api/0233-Add-TargetHitEvent-API.patch
rename to patches/api/0232-Add-TargetHitEvent-API.patch
diff --git a/patches/api/0234-Additional-Block-Material-API-s.patch b/patches/api/0233-Additional-Block-Material-API-s.patch
similarity index 100%
rename from patches/api/0234-Additional-Block-Material-API-s.patch
rename to patches/api/0233-Additional-Block-Material-API-s.patch
diff --git a/patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
similarity index 100%
rename from patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
rename to patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
diff --git a/patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch b/patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch
similarity index 100%
rename from patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch
rename to patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch
diff --git a/patches/api/0237-Zombie-API-breaking-doors.patch b/patches/api/0236-Zombie-API-breaking-doors.patch
similarity index 100%
rename from patches/api/0237-Zombie-API-breaking-doors.patch
rename to patches/api/0236-Zombie-API-breaking-doors.patch
diff --git a/patches/api/0238-Add-EntityLoadCrossbowEvent.patch b/patches/api/0237-Add-EntityLoadCrossbowEvent.patch
similarity index 100%
rename from patches/api/0238-Add-EntityLoadCrossbowEvent.patch
rename to patches/api/0237-Add-EntityLoadCrossbowEvent.patch
diff --git a/patches/api/0239-Added-WorldGameRuleChangeEvent.patch b/patches/api/0238-Added-WorldGameRuleChangeEvent.patch
similarity index 100%
rename from patches/api/0239-Added-WorldGameRuleChangeEvent.patch
rename to patches/api/0238-Added-WorldGameRuleChangeEvent.patch
diff --git a/patches/api/0240-Added-ServerResourcesReloadedEvent.patch b/patches/api/0239-Added-ServerResourcesReloadedEvent.patch
similarity index 100%
rename from patches/api/0240-Added-ServerResourcesReloadedEvent.patch
rename to patches/api/0239-Added-ServerResourcesReloadedEvent.patch
diff --git a/patches/api/0241-Add-BlockFailedDispenseEvent.patch b/patches/api/0240-Add-BlockFailedDispenseEvent.patch
similarity index 100%
rename from patches/api/0241-Add-BlockFailedDispenseEvent.patch
rename to patches/api/0240-Add-BlockFailedDispenseEvent.patch
diff --git a/patches/api/0242-Added-PlayerLecternPageChangeEvent.patch b/patches/api/0241-Added-PlayerLecternPageChangeEvent.patch
similarity index 100%
rename from patches/api/0242-Added-PlayerLecternPageChangeEvent.patch
rename to patches/api/0241-Added-PlayerLecternPageChangeEvent.patch
diff --git a/patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch b/patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch
similarity index 100%
rename from patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch
rename to patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch
diff --git a/patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch b/patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch
similarity index 100%
rename from patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch
rename to patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch
diff --git a/patches/api/0245-Add-sendOpLevel-API.patch b/patches/api/0244-Add-sendOpLevel-API.patch
similarity index 100%
rename from patches/api/0245-Add-sendOpLevel-API.patch
rename to patches/api/0244-Add-sendOpLevel-API.patch
diff --git a/patches/api/0246-Add-PaperRegistry.patch b/patches/api/0245-Add-PaperRegistry.patch
similarity index 100%
rename from patches/api/0246-Add-PaperRegistry.patch
rename to patches/api/0245-Add-PaperRegistry.patch
diff --git a/patches/api/0247-Add-StructuresLocateEvent.patch b/patches/api/0246-Add-StructuresLocateEvent.patch
similarity index 100%
rename from patches/api/0247-Add-StructuresLocateEvent.patch
rename to patches/api/0246-Add-StructuresLocateEvent.patch
diff --git a/patches/api/0248-Add-BlockPreDispenseEvent.patch b/patches/api/0247-Add-BlockPreDispenseEvent.patch
similarity index 100%
rename from patches/api/0248-Add-BlockPreDispenseEvent.patch
rename to patches/api/0247-Add-BlockPreDispenseEvent.patch
diff --git a/patches/api/0249-Added-missing-vanilla-tags.patch b/patches/api/0248-Added-missing-vanilla-tags.patch
similarity index 100%
rename from patches/api/0249-Added-missing-vanilla-tags.patch
rename to patches/api/0248-Added-missing-vanilla-tags.patch
diff --git a/patches/api/0250-Added-PlayerChangeBeaconEffectEvent.patch b/patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch
similarity index 100%
rename from patches/api/0250-Added-PlayerChangeBeaconEffectEvent.patch
rename to patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch
diff --git a/patches/api/0251-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch
similarity index 100%
rename from patches/api/0251-Added-PlayerStonecutterRecipeSelectEvent.patch
rename to patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch
diff --git a/patches/api/0252-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch
similarity index 100%
rename from patches/api/0252-Add-dropLeash-variable-to-EntityUnleashEvent.patch
rename to patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch
diff --git a/patches/api/0253-add-DragonEggFormEvent.patch b/patches/api/0252-add-DragonEggFormEvent.patch
similarity index 100%
rename from patches/api/0253-add-DragonEggFormEvent.patch
rename to patches/api/0252-add-DragonEggFormEvent.patch
diff --git a/patches/api/0254-EntityMoveEvent.patch b/patches/api/0253-EntityMoveEvent.patch
similarity index 100%
rename from patches/api/0254-EntityMoveEvent.patch
rename to patches/api/0253-EntityMoveEvent.patch
diff --git a/patches/api/0255-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch
similarity index 100%
rename from patches/api/0255-Allow-adding-items-to-BlockDropItemEvent.patch
rename to patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch
diff --git a/patches/api/0256-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch
similarity index 100%
rename from patches/api/0256-Add-getMainThreadExecutor-to-BukkitScheduler.patch
rename to patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch
diff --git a/patches/api/0257-living-entity-allow-attribute-registration.patch b/patches/api/0256-living-entity-allow-attribute-registration.patch
similarity index 100%
rename from patches/api/0257-living-entity-allow-attribute-registration.patch
rename to patches/api/0256-living-entity-allow-attribute-registration.patch
diff --git a/patches/api/0258-Add-missing-effects.patch b/patches/api/0257-Add-missing-effects.patch
similarity index 100%
rename from patches/api/0258-Add-missing-effects.patch
rename to patches/api/0257-Add-missing-effects.patch
diff --git a/patches/api/0259-Expose-Tracked-Players.patch b/patches/api/0258-Expose-Tracked-Players.patch
similarity index 100%
rename from patches/api/0259-Expose-Tracked-Players.patch
rename to patches/api/0258-Expose-Tracked-Players.patch
diff --git a/patches/api/0260-Cache-the-result-of-Material-isBlock.patch b/patches/api/0259-Cache-the-result-of-Material-isBlock.patch
similarity index 100%
rename from patches/api/0260-Cache-the-result-of-Material-isBlock.patch
rename to patches/api/0259-Cache-the-result-of-Material-isBlock.patch
diff --git a/patches/api/0261-Add-worldborder-events.patch b/patches/api/0260-Add-worldborder-events.patch
similarity index 100%
rename from patches/api/0261-Add-worldborder-events.patch
rename to patches/api/0260-Add-worldborder-events.patch
diff --git a/patches/api/0262-added-PlayerNameEntityEvent.patch b/patches/api/0261-added-PlayerNameEntityEvent.patch
similarity index 100%
rename from patches/api/0262-added-PlayerNameEntityEvent.patch
rename to patches/api/0261-added-PlayerNameEntityEvent.patch
diff --git a/patches/api/0263-Add-recipe-to-cook-events.patch b/patches/api/0262-Add-recipe-to-cook-events.patch
similarity index 100%
rename from patches/api/0263-Add-recipe-to-cook-events.patch
rename to patches/api/0262-Add-recipe-to-cook-events.patch
diff --git a/patches/api/0264-Add-Block-isValidTool.patch b/patches/api/0263-Add-Block-isValidTool.patch
similarity index 100%
rename from patches/api/0264-Add-Block-isValidTool.patch
rename to patches/api/0263-Add-Block-isValidTool.patch
diff --git a/patches/api/0265-Expand-world-key-API.patch b/patches/api/0264-Expand-world-key-API.patch
similarity index 95%
rename from patches/api/0265-Expand-world-key-API.patch
rename to patches/api/0264-Expand-world-key-API.patch
index bfe79e8921..1908ecc58e 100644
--- a/patches/api/0265-Expand-world-key-API.patch
+++ b/patches/api/0264-Expand-world-key-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expand world key API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 0bc59cd1b27303dff7f13f79087b13097606ae65..cda896b2278dfb71f1fac8665397a01abcc0d096 100644
+index 6d5423f6b6b1aa013a1f77d368058e4cdf2cbe84..be32ddb8ad5d6290b76cb520d159d456ed16f1b1 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -832,6 +832,18 @@ public final class Bukkit {
+@@ -830,6 +830,18 @@ public final class Bukkit {
public static World getWorld(@NotNull UUID uid) {
return server.getWorld(uid);
}
@@ -56,10 +56,10 @@ index 501dd5a26c27294420821b3d75f8938596afb1a8..71ef9b479888aa83455757560b607455
// Paper end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 247bd6d2101d280a00727cacdeb8f40a7d7c4dcb..1044ffa10c12b645e2e82431ba809641048e757f 100644
+index f8ef98c9d266e12a3a3f69647cf4d7a9bc633419..d1d035ee86264b38b6bb50135d031946daf25a00 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -696,6 +696,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -694,6 +694,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public World getWorld(@NotNull UUID uid);
diff --git a/patches/api/0266-Item-Rarity-API.patch b/patches/api/0265-Item-Rarity-API.patch
similarity index 100%
rename from patches/api/0266-Item-Rarity-API.patch
rename to patches/api/0265-Item-Rarity-API.patch
diff --git a/patches/api/0267-Expose-protocol-version.patch b/patches/api/0266-Expose-protocol-version.patch
similarity index 100%
rename from patches/api/0267-Expose-protocol-version.patch
rename to patches/api/0266-Expose-protocol-version.patch
diff --git a/patches/api/0268-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch
similarity index 100%
rename from patches/api/0268-add-isDeeplySleeping-to-HumanEntity.patch
rename to patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch
diff --git a/patches/api/0269-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch
similarity index 100%
rename from patches/api/0269-add-consumeFuel-to-FurnaceBurnEvent.patch
rename to patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch
diff --git a/patches/api/0270-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch
similarity index 100%
rename from patches/api/0270-add-get-set-drop-chance-to-EntityEquipment.patch
rename to patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch
diff --git a/patches/api/0271-Added-PlayerDeepSleepEvent.patch b/patches/api/0270-Added-PlayerDeepSleepEvent.patch
similarity index 100%
rename from patches/api/0271-Added-PlayerDeepSleepEvent.patch
rename to patches/api/0270-Added-PlayerDeepSleepEvent.patch
diff --git a/patches/api/0272-More-World-API.patch b/patches/api/0271-More-World-API.patch
similarity index 100%
rename from patches/api/0272-More-World-API.patch
rename to patches/api/0271-More-World-API.patch
diff --git a/patches/api/0273-Added-PlayerBedFailEnterEvent.patch b/patches/api/0272-Added-PlayerBedFailEnterEvent.patch
similarity index 100%
rename from patches/api/0273-Added-PlayerBedFailEnterEvent.patch
rename to patches/api/0272-Added-PlayerBedFailEnterEvent.patch
diff --git a/patches/api/0274-Introduce-beacon-activation-deactivation-events.patch b/patches/api/0273-Introduce-beacon-activation-deactivation-events.patch
similarity index 100%
rename from patches/api/0274-Introduce-beacon-activation-deactivation-events.patch
rename to patches/api/0273-Introduce-beacon-activation-deactivation-events.patch
diff --git a/patches/api/0275-PlayerMoveEvent-Improvements.patch b/patches/api/0274-PlayerMoveEvent-Improvements.patch
similarity index 100%
rename from patches/api/0275-PlayerMoveEvent-Improvements.patch
rename to patches/api/0274-PlayerMoveEvent-Improvements.patch
diff --git a/patches/api/0276-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch
similarity index 100%
rename from patches/api/0276-add-RespawnFlags-to-PlayerRespawnEvent.patch
rename to patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch
diff --git a/patches/api/0277-Add-more-WanderingTrader-API.patch b/patches/api/0276-Add-more-WanderingTrader-API.patch
similarity index 100%
rename from patches/api/0277-Add-more-WanderingTrader-API.patch
rename to patches/api/0276-Add-more-WanderingTrader-API.patch
diff --git a/patches/api/0278-Add-EntityBlockStorage-clearEntities.patch b/patches/api/0277-Add-EntityBlockStorage-clearEntities.patch
similarity index 100%
rename from patches/api/0278-Add-EntityBlockStorage-clearEntities.patch
rename to patches/api/0277-Add-EntityBlockStorage-clearEntities.patch
diff --git a/patches/api/0279-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
similarity index 100%
rename from patches/api/0279-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
rename to patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
diff --git a/patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0279-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
similarity index 100%
rename from patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
rename to patches/api/0279-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/api/0281-Inventory-close.patch b/patches/api/0280-Inventory-close.patch
similarity index 100%
rename from patches/api/0281-Inventory-close.patch
rename to patches/api/0280-Inventory-close.patch
diff --git a/patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
similarity index 100%
rename from patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
rename to patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
diff --git a/patches/api/0283-Add-basic-Datapack-API.patch b/patches/api/0282-Add-basic-Datapack-API.patch
similarity index 91%
rename from patches/api/0283-Add-basic-Datapack-API.patch
rename to patches/api/0282-Add-basic-Datapack-API.patch
index 98cb3fedc1..0582d74ff9 100644
--- a/patches/api/0283-Add-basic-Datapack-API.patch
+++ b/patches/api/0282-Add-basic-Datapack-API.patch
@@ -70,10 +70,10 @@ index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f7
+
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cda896b2278dfb71f1fac8665397a01abcc0d096..ce47379dec112f204062092e2e056a2e219c7405 100644
+index be32ddb8ad5d6290b76cb520d159d456ed16f1b1..a6fef51a8435eced8c2981588ae98046c42d8ed4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -318,9 +318,11 @@ public final class Bukkit {
+@@ -316,9 +316,11 @@ public final class Bukkit {
/**
* Get the DataPack Manager.
*
@@ -85,7 +85,7 @@ index cda896b2278dfb71f1fac8665397a01abcc0d096..ce47379dec112f204062092e2e056a2e
public static DataPackManager getDataPackManager() {
return server.getDataPackManager();
}
-@@ -2406,6 +2408,14 @@ public final class Bukkit {
+@@ -2423,6 +2425,14 @@ public final class Bukkit {
public static com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return server.getMobGoals();
}
@@ -101,10 +101,10 @@ index cda896b2278dfb71f1fac8665397a01abcc0d096..ce47379dec112f204062092e2e056a2e
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 1044ffa10c12b645e2e82431ba809641048e757f..7f289d358480806b6af3a02b88a0f632a5b5681c 100644
+index d1d035ee86264b38b6bb50135d031946daf25a00..529054834865813520ebe6784894e759c22ec4f4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -256,9 +256,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -254,9 +254,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
* Get the DataPack Manager.
*
@@ -116,7 +116,7 @@ index 1044ffa10c12b645e2e82431ba809641048e757f..7f289d358480806b6af3a02b88a0f632
public DataPackManager getDataPackManager();
/**
-@@ -2097,5 +2099,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2110,5 +2112,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.entity.ai.MobGoals getMobGoals();
diff --git a/patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch b/patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch
similarity index 100%
rename from patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch
rename to patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch
diff --git a/patches/api/0285-ItemStack-repair-check-API.patch b/patches/api/0284-ItemStack-repair-check-API.patch
similarity index 100%
rename from patches/api/0285-ItemStack-repair-check-API.patch
rename to patches/api/0284-ItemStack-repair-check-API.patch
diff --git a/patches/api/0286-More-Enchantment-API.patch b/patches/api/0285-More-Enchantment-API.patch
similarity index 100%
rename from patches/api/0286-More-Enchantment-API.patch
rename to patches/api/0285-More-Enchantment-API.patch
diff --git a/patches/api/0287-Add-Mob-lookAt-API.patch b/patches/api/0286-Add-Mob-lookAt-API.patch
similarity index 100%
rename from patches/api/0287-Add-Mob-lookAt-API.patch
rename to patches/api/0286-Add-Mob-lookAt-API.patch
diff --git a/patches/api/0288-ItemStack-editMeta.patch b/patches/api/0287-ItemStack-editMeta.patch
similarity index 100%
rename from patches/api/0288-ItemStack-editMeta.patch
rename to patches/api/0287-ItemStack-editMeta.patch
diff --git a/patches/api/0289-Add-EntityInsideBlockEvent.patch b/patches/api/0288-Add-EntityInsideBlockEvent.patch
similarity index 100%
rename from patches/api/0289-Add-EntityInsideBlockEvent.patch
rename to patches/api/0288-Add-EntityInsideBlockEvent.patch
diff --git a/patches/api/0290-Attributes-API-for-item-defaults.patch b/patches/api/0289-Attributes-API-for-item-defaults.patch
similarity index 100%
rename from patches/api/0290-Attributes-API-for-item-defaults.patch
rename to patches/api/0289-Attributes-API-for-item-defaults.patch
diff --git a/patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch
similarity index 100%
rename from patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch
rename to patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch
diff --git a/patches/api/0292-More-Lidded-Block-API.patch b/patches/api/0291-More-Lidded-Block-API.patch
similarity index 100%
rename from patches/api/0292-More-Lidded-Block-API.patch
rename to patches/api/0291-More-Lidded-Block-API.patch
diff --git a/patches/api/0293-Add-PlayerKickEvent-causes.patch b/patches/api/0292-Add-PlayerKickEvent-causes.patch
similarity index 100%
rename from patches/api/0293-Add-PlayerKickEvent-causes.patch
rename to patches/api/0292-Add-PlayerKickEvent-causes.patch
diff --git a/patches/api/0294-Add-PufferFishStateChangeEvent.patch b/patches/api/0293-Add-PufferFishStateChangeEvent.patch
similarity index 100%
rename from patches/api/0294-Add-PufferFishStateChangeEvent.patch
rename to patches/api/0293-Add-PufferFishStateChangeEvent.patch
diff --git a/patches/api/0295-Add-BellRevealRaiderEvent.patch b/patches/api/0294-Add-BellRevealRaiderEvent.patch
similarity index 100%
rename from patches/api/0295-Add-BellRevealRaiderEvent.patch
rename to patches/api/0294-Add-BellRevealRaiderEvent.patch
diff --git a/patches/api/0296-Add-ElderGuardianAppearanceEvent.patch b/patches/api/0295-Add-ElderGuardianAppearanceEvent.patch
similarity index 100%
rename from patches/api/0296-Add-ElderGuardianAppearanceEvent.patch
rename to patches/api/0295-Add-ElderGuardianAppearanceEvent.patch
diff --git a/patches/api/0297-Add-more-line-of-sight-methods.patch b/patches/api/0296-Add-more-line-of-sight-methods.patch
similarity index 100%
rename from patches/api/0297-Add-more-line-of-sight-methods.patch
rename to patches/api/0296-Add-more-line-of-sight-methods.patch
diff --git a/patches/api/0298-Add-WaterBottleSplashEvent.patch b/patches/api/0297-Add-WaterBottleSplashEvent.patch
similarity index 100%
rename from patches/api/0298-Add-WaterBottleSplashEvent.patch
rename to patches/api/0297-Add-WaterBottleSplashEvent.patch
diff --git a/patches/api/0299-Add-more-LimitedRegion-API.patch b/patches/api/0298-Add-more-LimitedRegion-API.patch
similarity index 100%
rename from patches/api/0299-Add-more-LimitedRegion-API.patch
rename to patches/api/0298-Add-more-LimitedRegion-API.patch
diff --git a/patches/api/0300-Missing-Entity-Behavior-API.patch b/patches/api/0299-Missing-Entity-Behavior-API.patch
similarity index 100%
rename from patches/api/0300-Missing-Entity-Behavior-API.patch
rename to patches/api/0299-Missing-Entity-Behavior-API.patch
diff --git a/patches/api/0301-Adds-PlayerArmSwingEvent.patch b/patches/api/0300-Adds-PlayerArmSwingEvent.patch
similarity index 100%
rename from patches/api/0301-Adds-PlayerArmSwingEvent.patch
rename to patches/api/0300-Adds-PlayerArmSwingEvent.patch
diff --git a/patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch b/patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch
similarity index 100%
rename from patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch
rename to patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch
diff --git a/patches/api/0303-fix-empty-array-elements-in-command-arguments.patch b/patches/api/0302-fix-empty-array-elements-in-command-arguments.patch
similarity index 100%
rename from patches/api/0303-fix-empty-array-elements-in-command-arguments.patch
rename to patches/api/0302-fix-empty-array-elements-in-command-arguments.patch
diff --git a/patches/api/0304-Stinger-API.patch b/patches/api/0303-Stinger-API.patch
similarity index 100%
rename from patches/api/0304-Stinger-API.patch
rename to patches/api/0303-Stinger-API.patch
diff --git a/patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
similarity index 100%
rename from patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
rename to patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
diff --git a/patches/api/0306-Add-PlayerSetSpawnEvent.patch b/patches/api/0305-Add-PlayerSetSpawnEvent.patch
similarity index 100%
rename from patches/api/0306-Add-PlayerSetSpawnEvent.patch
rename to patches/api/0305-Add-PlayerSetSpawnEvent.patch
diff --git a/patches/api/0307-Added-EntityDamageItemEvent.patch b/patches/api/0306-Added-EntityDamageItemEvent.patch
similarity index 100%
rename from patches/api/0307-Added-EntityDamageItemEvent.patch
rename to patches/api/0306-Added-EntityDamageItemEvent.patch
diff --git a/patches/api/0308-Make-EntityUnleashEvent-cancellable.patch b/patches/api/0307-Make-EntityUnleashEvent-cancellable.patch
similarity index 100%
rename from patches/api/0308-Make-EntityUnleashEvent-cancellable.patch
rename to patches/api/0307-Make-EntityUnleashEvent-cancellable.patch
diff --git a/patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch b/patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch
similarity index 100%
rename from patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch
rename to patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch
diff --git a/patches/api/0310-Add-BlockBreakBlockEvent.patch b/patches/api/0309-Add-BlockBreakBlockEvent.patch
similarity index 100%
rename from patches/api/0310-Add-BlockBreakBlockEvent.patch
rename to patches/api/0309-Add-BlockBreakBlockEvent.patch
diff --git a/patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch b/patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch
similarity index 100%
rename from patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch
rename to patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch
diff --git a/patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
similarity index 100%
rename from patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
rename to patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
diff --git a/patches/api/0313-More-CommandBlock-API.patch b/patches/api/0312-More-CommandBlock-API.patch
similarity index 100%
rename from patches/api/0313-More-CommandBlock-API.patch
rename to patches/api/0312-More-CommandBlock-API.patch
diff --git a/patches/api/0314-Add-missing-team-sidebar-display-slots.patch b/patches/api/0313-Add-missing-team-sidebar-display-slots.patch
similarity index 100%
rename from patches/api/0314-Add-missing-team-sidebar-display-slots.patch
rename to patches/api/0313-Add-missing-team-sidebar-display-slots.patch
diff --git a/patches/api/0315-add-back-EntityPortalExitEvent.patch b/patches/api/0314-add-back-EntityPortalExitEvent.patch
similarity index 100%
rename from patches/api/0315-add-back-EntityPortalExitEvent.patch
rename to patches/api/0314-add-back-EntityPortalExitEvent.patch
diff --git a/patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch
similarity index 100%
rename from patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch
rename to patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch
diff --git a/patches/api/0317-Get-entity-default-attributes.patch b/patches/api/0316-Get-entity-default-attributes.patch
similarity index 100%
rename from patches/api/0317-Get-entity-default-attributes.patch
rename to patches/api/0316-Get-entity-default-attributes.patch
diff --git a/patches/api/0318-Left-handed-API.patch b/patches/api/0317-Left-handed-API.patch
similarity index 100%
rename from patches/api/0318-Left-handed-API.patch
rename to patches/api/0317-Left-handed-API.patch
diff --git a/patches/api/0319-Add-more-advancement-API.patch b/patches/api/0318-Add-more-advancement-API.patch
similarity index 100%
rename from patches/api/0319-Add-more-advancement-API.patch
rename to patches/api/0318-Add-more-advancement-API.patch
diff --git a/patches/api/0320-Add-ItemFactory-getSpawnEgg-API.patch b/patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch
similarity index 100%
rename from patches/api/0320-Add-ItemFactory-getSpawnEgg-API.patch
rename to patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch
diff --git a/patches/api/0321-Add-critical-damage-API.patch b/patches/api/0320-Add-critical-damage-API.patch
similarity index 100%
rename from patches/api/0321-Add-critical-damage-API.patch
rename to patches/api/0320-Add-critical-damage-API.patch
diff --git a/patches/api/0322-Fix-issues-with-mob-conversion.patch b/patches/api/0321-Fix-issues-with-mob-conversion.patch
similarity index 100%
rename from patches/api/0322-Fix-issues-with-mob-conversion.patch
rename to patches/api/0321-Fix-issues-with-mob-conversion.patch
diff --git a/patches/api/0323-Add-isCollidable-methods-to-various-places.patch b/patches/api/0322-Add-isCollidable-methods-to-various-places.patch
similarity index 100%
rename from patches/api/0323-Add-isCollidable-methods-to-various-places.patch
rename to patches/api/0322-Add-isCollidable-methods-to-various-places.patch
diff --git a/patches/api/0324-Goat-ram-API.patch b/patches/api/0323-Goat-ram-API.patch
similarity index 100%
rename from patches/api/0324-Goat-ram-API.patch
rename to patches/api/0323-Goat-ram-API.patch
diff --git a/patches/api/0325-Add-API-for-resetting-a-single-score.patch b/patches/api/0324-Add-API-for-resetting-a-single-score.patch
similarity index 100%
rename from patches/api/0325-Add-API-for-resetting-a-single-score.patch
rename to patches/api/0324-Add-API-for-resetting-a-single-score.patch
diff --git a/patches/api/0326-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch
similarity index 100%
rename from patches/api/0326-Add-Raw-Byte-Entity-Serialization.patch
rename to patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch
diff --git a/patches/api/0327-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0326-Add-PlayerItemFrameChangeEvent.patch
similarity index 100%
rename from patches/api/0327-Add-PlayerItemFrameChangeEvent.patch
rename to patches/api/0326-Add-PlayerItemFrameChangeEvent.patch
diff --git a/patches/api/0328-Add-player-health-update-API.patch b/patches/api/0327-Add-player-health-update-API.patch
similarity index 100%
rename from patches/api/0328-Add-player-health-update-API.patch
rename to patches/api/0327-Add-player-health-update-API.patch
diff --git a/patches/api/0329-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0328-Allow-delegation-to-vanilla-chunk-gen.patch
similarity index 92%
rename from patches/api/0329-Allow-delegation-to-vanilla-chunk-gen.patch
rename to patches/api/0328-Allow-delegation-to-vanilla-chunk-gen.patch
index 23ce352ffc..f31c8284f6 100644
--- a/patches/api/0329-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/api/0328-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ce47379dec112f204062092e2e056a2e219c7405..d4b522ee3d44ec755046cc406708086b5f5cf625 100644
+index a6fef51a8435eced8c2981588ae98046c42d8ed4..e75da4494582594dfa8f21e6abd36fb345558127 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1926,6 +1926,24 @@ public final class Bukkit {
+@@ -1943,6 +1943,24 @@ public final class Bukkit {
return server.createChunkData(world);
}
@@ -34,10 +34,10 @@ index ce47379dec112f204062092e2e056a2e219c7405..d4b522ee3d44ec755046cc406708086b
* Creates a boss bar instance to display to players. The progress
* defaults to 1.0
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 7f289d358480806b6af3a02b88a0f632a5b5681c..feb2c76bd20c1146d22ec1988943e5b94a982de9 100644
+index 529054834865813520ebe6784894e759c22ec4f4..b6e8dd95cc58f53e3e6ca64dd796ed6633630cf4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1625,6 +1625,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1638,6 +1638,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public ChunkGenerator.ChunkData createChunkData(@NotNull World world);
diff --git a/patches/api/0330-Add-more-Campfire-API.patch b/patches/api/0329-Add-more-Campfire-API.patch
similarity index 100%
rename from patches/api/0330-Add-more-Campfire-API.patch
rename to patches/api/0329-Add-more-Campfire-API.patch
diff --git a/patches/api/0331-Move-VehicleCollisionEvent-HandlerList-up.patch b/patches/api/0330-Move-VehicleCollisionEvent-HandlerList-up.patch
similarity index 100%
rename from patches/api/0331-Move-VehicleCollisionEvent-HandlerList-up.patch
rename to patches/api/0330-Move-VehicleCollisionEvent-HandlerList-up.patch
diff --git a/patches/api/0332-Improve-scoreboard-entries.patch b/patches/api/0331-Improve-scoreboard-entries.patch
similarity index 100%
rename from patches/api/0332-Improve-scoreboard-entries.patch
rename to patches/api/0331-Improve-scoreboard-entries.patch
diff --git a/patches/api/0333-Entity-powdered-snow-API.patch b/patches/api/0332-Entity-powdered-snow-API.patch
similarity index 100%
rename from patches/api/0333-Entity-powdered-snow-API.patch
rename to patches/api/0332-Entity-powdered-snow-API.patch
diff --git a/patches/api/0334-Add-API-for-item-entity-health.patch b/patches/api/0333-Add-API-for-item-entity-health.patch
similarity index 100%
rename from patches/api/0334-Add-API-for-item-entity-health.patch
rename to patches/api/0333-Add-API-for-item-entity-health.patch
diff --git a/patches/api/0335-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0334-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
similarity index 100%
rename from patches/api/0335-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
rename to patches/api/0334-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
diff --git a/patches/api/0336-Bucketable-API.patch b/patches/api/0335-Bucketable-API.patch
similarity index 100%
rename from patches/api/0336-Bucketable-API.patch
rename to patches/api/0335-Bucketable-API.patch
diff --git a/patches/api/0337-System-prop-for-default-config-comment-parsing.patch b/patches/api/0336-System-prop-for-default-config-comment-parsing.patch
similarity index 100%
rename from patches/api/0337-System-prop-for-default-config-comment-parsing.patch
rename to patches/api/0336-System-prop-for-default-config-comment-parsing.patch
diff --git a/patches/api/0338-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0337-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
similarity index 100%
rename from patches/api/0338-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
rename to patches/api/0337-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
diff --git a/patches/api/0339-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/api/0338-Add-new-overload-to-PersistentDataContainer-has.patch
similarity index 100%
rename from patches/api/0339-Add-new-overload-to-PersistentDataContainer-has.patch
rename to patches/api/0338-Add-new-overload-to-PersistentDataContainer-has.patch
diff --git a/patches/api/0340-Multiple-Entries-with-Scoreboards.patch b/patches/api/0339-Multiple-Entries-with-Scoreboards.patch
similarity index 100%
rename from patches/api/0340-Multiple-Entries-with-Scoreboards.patch
rename to patches/api/0339-Multiple-Entries-with-Scoreboards.patch
diff --git a/patches/api/0341-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0340-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
similarity index 100%
rename from patches/api/0341-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
rename to patches/api/0340-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/api/0342-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0341-Warn-on-strange-EventHandler-return-types.patch
similarity index 100%
rename from patches/api/0342-Warn-on-strange-EventHandler-return-types.patch
rename to patches/api/0341-Warn-on-strange-EventHandler-return-types.patch
diff --git a/patches/api/0343-Multi-Block-Change-API.patch b/patches/api/0342-Multi-Block-Change-API.patch
similarity index 100%
rename from patches/api/0343-Multi-Block-Change-API.patch
rename to patches/api/0342-Multi-Block-Change-API.patch
diff --git a/patches/api/0344-Fix-NotePlayEvent.patch b/patches/api/0343-Fix-NotePlayEvent.patch
similarity index 100%
rename from patches/api/0344-Fix-NotePlayEvent.patch
rename to patches/api/0343-Fix-NotePlayEvent.patch
diff --git a/patches/api/0345-Freeze-Tick-Lock-API.patch b/patches/api/0344-Freeze-Tick-Lock-API.patch
similarity index 100%
rename from patches/api/0345-Freeze-Tick-Lock-API.patch
rename to patches/api/0344-Freeze-Tick-Lock-API.patch
diff --git a/patches/api/0346-Dolphin-API.patch b/patches/api/0345-Dolphin-API.patch
similarity index 100%
rename from patches/api/0346-Dolphin-API.patch
rename to patches/api/0345-Dolphin-API.patch
diff --git a/patches/api/0347-More-PotionEffectType-API.patch b/patches/api/0346-More-PotionEffectType-API.patch
similarity index 100%
rename from patches/api/0347-More-PotionEffectType-API.patch
rename to patches/api/0346-More-PotionEffectType-API.patch
diff --git a/patches/api/0348-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0347-API-for-creating-command-sender-which-forwards-feedb.patch
similarity index 87%
rename from patches/api/0348-API-for-creating-command-sender-which-forwards-feedb.patch
rename to patches/api/0347-API-for-creating-command-sender-which-forwards-feedb.patch
index 967c5e198e..d9bb4574b2 100644
--- a/patches/api/0348-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/api/0347-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] API for creating command sender which forwards feedback
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index d4b522ee3d44ec755046cc406708086b5f5cf625..3c7cedf0f2654d68fc7fa9fb32a17d362bba459e 100644
+index e75da4494582594dfa8f21e6abd36fb345558127..43f93aa0efc35488fab44cb55081cfc486c319f5 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1434,6 +1434,20 @@ public final class Bukkit {
+@@ -1432,6 +1432,20 @@ public final class Bukkit {
return server.getConsoleSender();
}
@@ -30,10 +30,10 @@ index d4b522ee3d44ec755046cc406708086b5f5cf625..3c7cedf0f2654d68fc7fa9fb32a17d36
* Gets the folder that contains all of the various {@link World}s.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index feb2c76bd20c1146d22ec1988943e5b94a982de9..57e117583ba6d562e2ffd308e058e5ea7de90b24 100644
+index b6e8dd95cc58f53e3e6ca64dd796ed6633630cf4..693e07b7e4aeef2ebc7fba5d20d6c6071762896c 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1204,6 +1204,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1202,6 +1202,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public ConsoleCommandSender getConsoleSender();
diff --git a/patches/api/0349-Implement-regenerateChunk.patch b/patches/api/0348-Implement-regenerateChunk.patch
similarity index 100%
rename from patches/api/0349-Implement-regenerateChunk.patch
rename to patches/api/0348-Implement-regenerateChunk.patch
diff --git a/patches/api/0350-Add-GameEvent-tags.patch b/patches/api/0349-Add-GameEvent-tags.patch
similarity index 100%
rename from patches/api/0350-Add-GameEvent-tags.patch
rename to patches/api/0349-Add-GameEvent-tags.patch
diff --git a/patches/api/0351-Furnace-RecipesUsed-API.patch b/patches/api/0350-Furnace-RecipesUsed-API.patch
similarity index 100%
rename from patches/api/0351-Furnace-RecipesUsed-API.patch
rename to patches/api/0350-Furnace-RecipesUsed-API.patch
diff --git a/patches/api/0352-Configurable-sculk-sensor-listener-range.patch b/patches/api/0351-Configurable-sculk-sensor-listener-range.patch
similarity index 100%
rename from patches/api/0352-Configurable-sculk-sensor-listener-range.patch
rename to patches/api/0351-Configurable-sculk-sensor-listener-range.patch
diff --git a/patches/api/0353-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0352-Add-missing-block-data-mins-and-maxes.patch
similarity index 100%
rename from patches/api/0353-Add-missing-block-data-mins-and-maxes.patch
rename to patches/api/0352-Add-missing-block-data-mins-and-maxes.patch
diff --git a/patches/api/0354-Custom-Potion-Mixes.patch b/patches/api/0353-Custom-Potion-Mixes.patch
similarity index 94%
rename from patches/api/0354-Custom-Potion-Mixes.patch
rename to patches/api/0353-Custom-Potion-Mixes.patch
index ddea78ba36..a8c7167526 100644
--- a/patches/api/0354-Custom-Potion-Mixes.patch
+++ b/patches/api/0353-Custom-Potion-Mixes.patch
@@ -102,10 +102,10 @@ index 0000000000000000000000000000000000000000..cb6d93526b637946aec311bef103ad30
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 3c7cedf0f2654d68fc7fa9fb32a17d362bba459e..7c2f5f1e3ce496d55471027cc069d7f1863dc7e6 100644
+index 43f93aa0efc35488fab44cb55081cfc486c319f5..ac6a49e39790aa9f12c7d98990f4cac297200cb0 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2448,6 +2448,15 @@ public final class Bukkit {
+@@ -2465,6 +2465,15 @@ public final class Bukkit {
public static io.papermc.paper.datapack.DatapackManager getDatapackManager() {
return server.getDatapackManager();
}
@@ -122,10 +122,10 @@ index 3c7cedf0f2654d68fc7fa9fb32a17d362bba459e..7c2f5f1e3ce496d55471027cc069d7f1
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 57e117583ba6d562e2ffd308e058e5ea7de90b24..474835e0a0d174a97ad25406d4a13a43d7a3644e 100644
+index 693e07b7e4aeef2ebc7fba5d20d6c6071762896c..18f4ae463f0e1406842c451b91f333a1bfabae69 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2133,5 +2133,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2146,5 +2146,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
io.papermc.paper.datapack.DatapackManager getDatapackManager();
diff --git a/patches/api/0355-Expose-furnace-minecart-push-values.patch b/patches/api/0354-Expose-furnace-minecart-push-values.patch
similarity index 100%
rename from patches/api/0355-Expose-furnace-minecart-push-values.patch
rename to patches/api/0354-Expose-furnace-minecart-push-values.patch
diff --git a/patches/api/0356-More-Projectile-API.patch b/patches/api/0355-More-Projectile-API.patch
similarity index 100%
rename from patches/api/0356-More-Projectile-API.patch
rename to patches/api/0355-More-Projectile-API.patch
diff --git a/patches/api/0357-Add-getComputedBiome-API.patch b/patches/api/0356-Add-getComputedBiome-API.patch
similarity index 100%
rename from patches/api/0357-Add-getComputedBiome-API.patch
rename to patches/api/0356-Add-getComputedBiome-API.patch
diff --git a/patches/api/0358-Add-enchantWithLevels-API.patch b/patches/api/0357-Add-enchantWithLevels-API.patch
similarity index 100%
rename from patches/api/0358-Add-enchantWithLevels-API.patch
rename to patches/api/0357-Add-enchantWithLevels-API.patch
diff --git a/patches/api/0359-Add-TameableDeathMessageEvent.patch b/patches/api/0358-Add-TameableDeathMessageEvent.patch
similarity index 100%
rename from patches/api/0359-Add-TameableDeathMessageEvent.patch
rename to patches/api/0358-Add-TameableDeathMessageEvent.patch
diff --git a/patches/api/0360-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0359-Allow-to-change-the-podium-of-the-EnderDragon.patch
similarity index 100%
rename from patches/api/0360-Allow-to-change-the-podium-of-the-EnderDragon.patch
rename to patches/api/0359-Allow-to-change-the-podium-of-the-EnderDragon.patch
diff --git a/patches/api/0361-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
similarity index 100%
rename from patches/api/0361-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
rename to patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
diff --git a/patches/api/0362-WorldCreator-keepSpawnLoaded.patch b/patches/api/0361-WorldCreator-keepSpawnLoaded.patch
similarity index 100%
rename from patches/api/0362-WorldCreator-keepSpawnLoaded.patch
rename to patches/api/0361-WorldCreator-keepSpawnLoaded.patch
diff --git a/patches/api/0363-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch
similarity index 100%
rename from patches/api/0363-Add-EntityDyeEvent-and-CollarColorable-interface.patch
rename to patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff --git a/patches/api/0364-Add-PlayerStopUsingItemEvent.patch b/patches/api/0363-Add-PlayerStopUsingItemEvent.patch
similarity index 100%
rename from patches/api/0364-Add-PlayerStopUsingItemEvent.patch
rename to patches/api/0363-Add-PlayerStopUsingItemEvent.patch
diff --git a/patches/api/0365-FallingBlock-auto-expire-setting.patch b/patches/api/0364-FallingBlock-auto-expire-setting.patch
similarity index 100%
rename from patches/api/0365-FallingBlock-auto-expire-setting.patch
rename to patches/api/0364-FallingBlock-auto-expire-setting.patch
diff --git a/patches/api/0366-Keyed-Cat-Type.patch b/patches/api/0365-Keyed-Cat-Type.patch
similarity index 100%
rename from patches/api/0366-Keyed-Cat-Type.patch
rename to patches/api/0365-Keyed-Cat-Type.patch
diff --git a/patches/api/0367-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch
similarity index 91%
rename from patches/api/0367-Add-method-isTickingWorlds-to-Bukkit.patch
rename to patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch
index a1c72f1d3f..57225f80c3 100644
--- a/patches/api/0367-Add-method-isTickingWorlds-to-Bukkit.patch
+++ b/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add method isTickingWorlds() to Bukkit.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53f003eda1 100644
+index ac6a49e39790aa9f12c7d98990f4cac297200cb0..ef36d793ab77c7b7208f8f5994815599cff470d1 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -776,12 +776,26 @@ public final class Bukkit {
+@@ -774,12 +774,26 @@ public final class Bukkit {
return server.getWorlds();
}
@@ -35,7 +35,7 @@ index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53
*
* @param creator the options to use when creating the world
* @return newly created or loaded world
-@@ -793,6 +807,9 @@ public final class Bukkit {
+@@ -791,6 +805,9 @@ public final class Bukkit {
/**
* Unloads a world with the given name.
@@ -45,7 +45,7 @@ index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53
*
* @param name Name of the world to unload
* @param save whether to save the chunks before unloading
-@@ -804,6 +821,9 @@ public final class Bukkit {
+@@ -802,6 +819,9 @@ public final class Bukkit {
/**
* Unloads the given world.
@@ -56,10 +56,10 @@ index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53
* @param world the world to unload
* @param save whether to save the chunks before unloading
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 474835e0a0d174a97ad25406d4a13a43d7a3644e..1d1a1d087dabc9794e0062a064da2cced4062309 100644
+index 18f4ae463f0e1406842c451b91f333a1bfabae69..5b225bbb128893d67251a96ab318035802a0cf76 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -649,34 +649,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -647,34 +647,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public List getWorlds();
diff --git a/patches/api/0368-Add-WardenAngerChangeEvent.patch b/patches/api/0367-Add-WardenAngerChangeEvent.patch
similarity index 100%
rename from patches/api/0368-Add-WardenAngerChangeEvent.patch
rename to patches/api/0367-Add-WardenAngerChangeEvent.patch
diff --git a/patches/api/0369-Nameable-Banner-API.patch b/patches/api/0368-Nameable-Banner-API.patch
similarity index 100%
rename from patches/api/0369-Nameable-Banner-API.patch
rename to patches/api/0368-Nameable-Banner-API.patch
diff --git a/patches/api/0370-Add-Player-getFishHook.patch b/patches/api/0369-Add-Player-getFishHook.patch
similarity index 100%
rename from patches/api/0370-Add-Player-getFishHook.patch
rename to patches/api/0369-Add-Player-getFishHook.patch
diff --git a/patches/api/0371-More-Teleport-API.patch b/patches/api/0370-More-Teleport-API.patch
similarity index 100%
rename from patches/api/0371-More-Teleport-API.patch
rename to patches/api/0370-More-Teleport-API.patch
diff --git a/patches/api/0372-Add-EntityPortalReadyEvent.patch b/patches/api/0371-Add-EntityPortalReadyEvent.patch
similarity index 100%
rename from patches/api/0372-Add-EntityPortalReadyEvent.patch
rename to patches/api/0371-Add-EntityPortalReadyEvent.patch
diff --git a/patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch
similarity index 100%
rename from patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch
rename to patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch
diff --git a/patches/api/0374-Collision-API.patch b/patches/api/0373-Collision-API.patch
similarity index 100%
rename from patches/api/0374-Collision-API.patch
rename to patches/api/0373-Collision-API.patch
diff --git a/patches/api/0375-Block-Ticking-API.patch b/patches/api/0374-Block-Ticking-API.patch
similarity index 100%
rename from patches/api/0375-Block-Ticking-API.patch
rename to patches/api/0374-Block-Ticking-API.patch
diff --git a/patches/api/0376-Add-NamespacedKey-biome-methods.patch b/patches/api/0375-Add-NamespacedKey-biome-methods.patch
similarity index 100%
rename from patches/api/0376-Add-NamespacedKey-biome-methods.patch
rename to patches/api/0375-Add-NamespacedKey-biome-methods.patch
diff --git a/patches/api/0377-Also-load-resources-from-LibraryLoader.patch b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch
similarity index 100%
rename from patches/api/0377-Also-load-resources-from-LibraryLoader.patch
rename to patches/api/0376-Also-load-resources-from-LibraryLoader.patch
diff --git a/patches/api/0378-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch
similarity index 100%
rename from patches/api/0378-Added-byte-array-serialization-deserialization-for-P.patch
rename to patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch
diff --git a/patches/api/0379-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
similarity index 100%
rename from patches/api/0379-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
rename to patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
diff --git a/patches/api/0380-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch
similarity index 100%
rename from patches/api/0380-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch
rename to patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch
diff --git a/patches/api/0381-Add-getDrops-to-BlockState.patch b/patches/api/0380-Add-getDrops-to-BlockState.patch
similarity index 100%
rename from patches/api/0381-Add-getDrops-to-BlockState.patch
rename to patches/api/0380-Add-getDrops-to-BlockState.patch
diff --git a/patches/api/0382-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch
similarity index 100%
rename from patches/api/0382-Add-PlayerInventorySlotChangeEvent.patch
rename to patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch
diff --git a/patches/api/0383-Elder-Guardian-appearance-API.patch b/patches/api/0382-Elder-Guardian-appearance-API.patch
similarity index 100%
rename from patches/api/0383-Elder-Guardian-appearance-API.patch
rename to patches/api/0382-Elder-Guardian-appearance-API.patch
diff --git a/patches/api/0384-Allow-changing-bed-s-occupied-property.patch b/patches/api/0383-Allow-changing-bed-s-occupied-property.patch
similarity index 100%
rename from patches/api/0384-Allow-changing-bed-s-occupied-property.patch
rename to patches/api/0383-Allow-changing-bed-s-occupied-property.patch
diff --git a/patches/api/0385-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch
similarity index 100%
rename from patches/api/0385-Add-EquipmentSlot-convenience-methods.patch
rename to patches/api/0384-Add-EquipmentSlot-convenience-methods.patch
diff --git a/patches/api/0386-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch
similarity index 100%
rename from patches/api/0386-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch
rename to patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch
diff --git a/patches/api/0387-Add-entity-knockback-API.patch b/patches/api/0386-Add-entity-knockback-API.patch
similarity index 100%
rename from patches/api/0387-Add-entity-knockback-API.patch
rename to patches/api/0386-Add-entity-knockback-API.patch
diff --git a/patches/api/0388-Added-EntityToggleSitEvent.patch b/patches/api/0387-Added-EntityToggleSitEvent.patch
similarity index 100%
rename from patches/api/0388-Added-EntityToggleSitEvent.patch
rename to patches/api/0387-Added-EntityToggleSitEvent.patch
diff --git a/patches/api/0389-Add-Moving-Piston-API.patch b/patches/api/0388-Add-Moving-Piston-API.patch
similarity index 100%
rename from patches/api/0389-Add-Moving-Piston-API.patch
rename to patches/api/0388-Add-Moving-Piston-API.patch
diff --git a/patches/api/0390-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch
similarity index 100%
rename from patches/api/0390-Add-PrePlayerAttackEntityEvent.patch
rename to patches/api/0389-Add-PrePlayerAttackEntityEvent.patch
diff --git a/patches/api/0391-Add-Player-Warden-Warning-API.patch b/patches/api/0390-Add-Player-Warden-Warning-API.patch
similarity index 100%
rename from patches/api/0391-Add-Player-Warden-Warning-API.patch
rename to patches/api/0390-Add-Player-Warden-Warning-API.patch
diff --git a/patches/api/0392-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch
similarity index 100%
rename from patches/api/0392-More-vanilla-friendly-methods-to-update-trades.patch
rename to patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch
diff --git a/patches/api/0393-Add-paper-dumplisteners-command.patch b/patches/api/0392-Add-paper-dumplisteners-command.patch
similarity index 100%
rename from patches/api/0393-Add-paper-dumplisteners-command.patch
rename to patches/api/0392-Add-paper-dumplisteners-command.patch
diff --git a/patches/api/0394-ItemStack-damage-API.patch b/patches/api/0393-ItemStack-damage-API.patch
similarity index 100%
rename from patches/api/0394-ItemStack-damage-API.patch
rename to patches/api/0393-ItemStack-damage-API.patch
diff --git a/patches/api/0395-Add-Tick-TemporalUnit.patch b/patches/api/0394-Add-Tick-TemporalUnit.patch
similarity index 100%
rename from patches/api/0395-Add-Tick-TemporalUnit.patch
rename to patches/api/0394-Add-Tick-TemporalUnit.patch
diff --git a/patches/api/0396-Friction-API.patch b/patches/api/0395-Friction-API.patch
similarity index 100%
rename from patches/api/0396-Friction-API.patch
rename to patches/api/0395-Friction-API.patch
diff --git a/patches/api/0397-Player-Entity-Tracking-Events.patch b/patches/api/0396-Player-Entity-Tracking-Events.patch
similarity index 100%
rename from patches/api/0397-Player-Entity-Tracking-Events.patch
rename to patches/api/0396-Player-Entity-Tracking-Events.patch
diff --git a/patches/api/0398-Add-missing-Fluid-type.patch b/patches/api/0397-Add-missing-Fluid-type.patch
similarity index 100%
rename from patches/api/0398-Add-missing-Fluid-type.patch
rename to patches/api/0397-Add-missing-Fluid-type.patch
diff --git a/patches/api/0399-fix-Instruments.patch b/patches/api/0398-fix-Instruments.patch
similarity index 100%
rename from patches/api/0399-fix-Instruments.patch
rename to patches/api/0398-fix-Instruments.patch
diff --git a/patches/api/0400-Add-BlockLockCheckEvent.patch b/patches/api/0399-Add-BlockLockCheckEvent.patch
similarity index 100%
rename from patches/api/0400-Add-BlockLockCheckEvent.patch
rename to patches/api/0399-Add-BlockLockCheckEvent.patch
diff --git a/patches/api/0401-Add-Sneaking-API-for-Entities.patch b/patches/api/0400-Add-Sneaking-API-for-Entities.patch
similarity index 100%
rename from patches/api/0401-Add-Sneaking-API-for-Entities.patch
rename to patches/api/0400-Add-Sneaking-API-for-Entities.patch
diff --git a/patches/api/0402-Improve-PortalEvents.patch b/patches/api/0401-Improve-PortalEvents.patch
similarity index 100%
rename from patches/api/0402-Improve-PortalEvents.patch
rename to patches/api/0401-Improve-PortalEvents.patch
diff --git a/patches/api/0403-Add-exploded-block-state-to-BlockExplodeEvent.patch b/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch
similarity index 100%
rename from patches/api/0403-Add-exploded-block-state-to-BlockExplodeEvent.patch
rename to patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch
diff --git a/patches/api/0404-Flying-Fall-Damage-API.patch b/patches/api/0403-Flying-Fall-Damage-API.patch
similarity index 100%
rename from patches/api/0404-Flying-Fall-Damage-API.patch
rename to patches/api/0403-Flying-Fall-Damage-API.patch
diff --git a/patches/api/0405-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
similarity index 100%
rename from patches/api/0405-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
rename to patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
diff --git a/patches/api/0406-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
similarity index 100%
rename from patches/api/0406-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
rename to patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
diff --git a/patches/api/0407-Win-Screen-API.patch b/patches/api/0406-Win-Screen-API.patch
similarity index 100%
rename from patches/api/0407-Win-Screen-API.patch
rename to patches/api/0406-Win-Screen-API.patch
diff --git a/patches/api/0408-Add-Entity-Body-Yaw-API.patch b/patches/api/0407-Add-Entity-Body-Yaw-API.patch
similarity index 100%
rename from patches/api/0408-Add-Entity-Body-Yaw-API.patch
rename to patches/api/0407-Add-Entity-Body-Yaw-API.patch
diff --git a/patches/api/0409-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
similarity index 100%
rename from patches/api/0409-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
rename to patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
diff --git a/patches/api/0410-Add-EntityFertilizeEggEvent.patch b/patches/api/0409-Add-EntityFertilizeEggEvent.patch
similarity index 100%
rename from patches/api/0410-Add-EntityFertilizeEggEvent.patch
rename to patches/api/0409-Add-EntityFertilizeEggEvent.patch
diff --git a/patches/api/0411-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
similarity index 100%
rename from patches/api/0411-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
rename to patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/api/0412-Add-Shearable-API.patch b/patches/api/0411-Add-Shearable-API.patch
similarity index 100%
rename from patches/api/0412-Add-Shearable-API.patch
rename to patches/api/0411-Add-Shearable-API.patch
diff --git a/patches/api/0413-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch
similarity index 100%
rename from patches/api/0413-Fix-SpawnEggMeta-get-setSpawnedType.patch
rename to patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch
diff --git a/patches/api/0414-Add-Mob-Experience-reward-API.patch b/patches/api/0413-Add-Mob-Experience-reward-API.patch
similarity index 100%
rename from patches/api/0414-Add-Mob-Experience-reward-API.patch
rename to patches/api/0413-Add-Mob-Experience-reward-API.patch
diff --git a/patches/api/0415-Expand-PlayerItemMendEvent.patch b/patches/api/0414-Expand-PlayerItemMendEvent.patch
similarity index 100%
rename from patches/api/0415-Expand-PlayerItemMendEvent.patch
rename to patches/api/0414-Expand-PlayerItemMendEvent.patch
diff --git a/patches/api/0416-Add-transient-modifier-API.patch b/patches/api/0415-Add-transient-modifier-API.patch
similarity index 100%
rename from patches/api/0416-Add-transient-modifier-API.patch
rename to patches/api/0415-Add-transient-modifier-API.patch
diff --git a/patches/api/0417-Add-API-for-waxed-signs.patch b/patches/api/0416-Add-API-for-waxed-signs.patch
similarity index 100%
rename from patches/api/0417-Add-API-for-waxed-signs.patch
rename to patches/api/0416-Add-API-for-waxed-signs.patch
diff --git a/patches/api/0418-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0417-Properly-remove-the-experimental-smithing-inventory-.patch
similarity index 100%
rename from patches/api/0418-Properly-remove-the-experimental-smithing-inventory-.patch
rename to patches/api/0417-Properly-remove-the-experimental-smithing-inventory-.patch
diff --git a/patches/server/0002-Remap-fixes.patch b/patches/server/0002-Remap-fixes.patch
index 22510b7636..dc9145fd2d 100644
--- a/patches/server/0002-Remap-fixes.patch
+++ b/patches/server/0002-Remap-fixes.patch
@@ -103,6 +103,31 @@ index ad52c3fc6210939a39ef77a382c640a24ee44838..6b7dd01778f0a5d3a96d2d04af4b525d
assertThat(color, is(Color.fromRGB(nmsColor)));
}
}
+diff --git a/src/test/java/org/bukkit/RegistryConstantsTest.java b/src/test/java/org/bukkit/RegistryConstantsTest.java
+index 34e6b84c63e50972c650c0e4bc17bc0749e1b7c3..cd96cbba4d495c18f984dec6f861f75baf4300cc 100644
+--- a/src/test/java/org/bukkit/RegistryConstantsTest.java
++++ b/src/test/java/org/bukkit/RegistryConstantsTest.java
+@@ -19,17 +19,17 @@ public class RegistryConstantsTest extends AbstractTestingBase {
+
+ @Test
+ public void testTrimMaterial() {
+- this.testExcessConstants(TrimMaterial.class, Registry.TRIM_MATERIAL);
++ this.testExcessConstants(TrimMaterial.class, org.bukkit.Registry.TRIM_MATERIAL); // Paper - remap fix
+ this.testMissingConstants(TrimMaterial.class, Registries.TRIM_MATERIAL);
+ }
+
+ @Test
+ public void testTrimPattern() {
+- this.testExcessConstants(TrimPattern.class, Registry.TRIM_PATTERN);
++ this.testExcessConstants(TrimPattern.class, org.bukkit.Registry.TRIM_PATTERN); // Paper - remap fix
+ this.testMissingConstants(TrimPattern.class, Registries.TRIM_PATTERN);
+ }
+
+- private void testExcessConstants(Class clazz, Registry registry) {
++ private void testExcessConstants(Class clazz, org.bukkit.Registry registry) { // Paper - remap fix
+ List excessKeys = new ArrayList<>();
+
+ for (Field field : clazz.getFields()) {
diff --git a/src/test/java/org/bukkit/entity/EntityTypesTest.java b/src/test/java/org/bukkit/entity/EntityTypesTest.java
index b1de312e902c83a2f95d80040abb9255e64431a9..aafa6f472c82f851fe7f5ae3111488bb732d0bcc 100644
--- a/src/test/java/org/bukkit/entity/EntityTypesTest.java
diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch
index 0c3c77d746..7fbde73ffb 100644
--- a/patches/server/0005-Paper-config-files.patch
+++ b/patches/server/0005-Paper-config-files.patch
@@ -4571,10 +4571,10 @@ index cda55e481ddbcc1de5478125c5db20ebba168e7d..bacd4d875642cd93c3185f788745dd73
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c1c575593b2470aeaf73ce6f9f45f4f7f9b16c04..9c82e4d2f5676808bb57c5e7dd19d0e7615ca884 100644
+index 56ad43d30f5dfec7564edab364328d32313501db..84c9a7f5ecb47f6a95ca89ecfcdba663fef803ae 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -903,6 +903,7 @@ public final class CraftServer implements Server {
+@@ -910,6 +910,7 @@ public final class CraftServer implements Server {
}
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch
index 66aad2fa8a..013b5023df 100644
--- a/patches/server/0008-CB-fixes.patch
+++ b/patches/server/0008-CB-fixes.patch
@@ -83,11 +83,11 @@ index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd
this.registryAccess = registryManager;
this.structureTemplateManager = structureTemplateManager;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9c82e4d2f5676808bb57c5e7dd19d0e7615ca884..9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0 100644
+index 84c9a7f5ecb47f6a95ca89ecfcdba663fef803ae..c3c30cbb74062fc25c1daf9b17c8956857766306 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2324,7 +2324,13 @@ public final class CraftServer implements Server {
- Validate.notNull(key, "NamespacedKey cannot be null");
+@@ -2340,7 +2340,13 @@ public final class CraftServer implements Server {
+ Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null");
LootDataManager registry = this.getServer().getLootData();
- return new CraftLootTable(key, registry.getLootTable(CraftNamespacedKey.toMinecraft(key)));
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index f729fe9a55..27baee9eca 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -6530,7 +6530,7 @@ index ebae711991a3ae35e35c2cffa8d928677c205492..7be97441aed66fa3a21d13ad2211b3e0
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) {
// IRegistryCustom.Dimension iregistrycustom_dimension = minecraftserver.registryAccess(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e1a8dc23249c04de66289fbf157d349e7fae606d..931955a7f5b20f04350ec91b3bc95146e8e219a3 100644
+index 4a2205fca9b9487b92b120ece69f1548bf764056..ba89c0d7ae99e53350249365d0e035e6f14e1c5f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -255,6 +255,8 @@ public class ServerPlayer extends Player {
@@ -6595,7 +6595,7 @@ index a63d5ba706a5b8e430aedc045bdeb3a410bd0eef..e96a0ca47e4701ba187555bd92c96834
public BlockState getBlockState(BlockPos pos) {
return this.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ())).getBlockState(pos);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 1413df83d5dad892a505850fd863d49148c185f0..5d572a56d7926a849af73f5335a749f30f250026 100644
+index d1a94a7de19b0c46454040f7459a492e30265e9c..edf629f2e810eebf014b1565021888f96def92a1 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -185,6 +185,7 @@ public abstract class PlayerList {
@@ -6625,7 +6625,7 @@ index 337e0a7b3c14e1b1a28744920e0dc0a69e0c5a87..f5829ae484d93b547a5437b85a962134
@Override
public void tell(R runnable) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index cb3354c5ec73ef7c2c2b4af5dbaf994836d6ef7d..18b019aa5908bbc02caa162accbf088abcefc2e2 100644
+index ff52a7319c6d80528a44389178b947cf4d8f48dc..a4e5961991a6debff959d63d70b71b1ded76e72a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -323,6 +323,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -7291,10 +7291,10 @@ index 25156be63f91a1c41ef41154f675d04eb97459a8..47bab513feec217d875192afef61f3af
return false;
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337846c75ac 100644
+index ee22b5419098834c3b388bbf78d6bd6d7951964a..379b8a7d94c784db54ada01ad6bd04a54f8a089f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -243,8 +243,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -242,8 +242,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Chunk[] getLoadedChunks() {
@@ -7305,7 +7305,7 @@ index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337
}
@Override
-@@ -319,7 +319,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -318,7 +318,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean refreshChunk(int x, int z) {
@@ -7314,7 +7314,7 @@ index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337
if (playerChunk == null) return false;
playerChunk.getTickingChunkFuture().thenAccept(either -> {
-@@ -1963,4 +1963,32 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1970,4 +1970,32 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.spigot;
}
// Spigot end
@@ -7348,10 +7348,10 @@ index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337
+ // 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 2c824ead41389bc7d2085536ecb8d0d2b6515ddb..6807507017bbb171657ba230223f281b083da28a 100644
+index bcf8d0316386cbf4d90b73f7530acbcf554be55d..61304b316985462e898a1b80f872b716a33207c6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1182,4 +1182,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1175,4 +1175,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.spigot;
}
// Spigot end
@@ -7390,7 +7390,7 @@ index 2c824ead41389bc7d2085536ecb8d0d2b6515ddb..6807507017bbb171657ba230223f281b
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index 2f52148f36e56c503e619634eedd3d46d9f44938..054fcc3713f02e358dfe049491c8d1689ccc750b 100644
+index 07249989e6f0f76f8408363d7f20e7335b7a8e06..4d94c3a19f98f78476ecc403f410d75a6ea57c2d 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -44,6 +44,7 @@ import org.bukkit.scheduler.BukkitWorker;
@@ -7612,7 +7612,7 @@ index 0000000000000000000000000000000000000000..909b2c98e7a9117d2f737245e4661792
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 141f7c287252ae319e88d8c279e5661524baa1bf..381cfd86fc1158dc9a7c1e76c3ada962b0964373 100644
+index 9026e98b6b03de7a51e853d6ca4a3d20584740d4..fee5c6809ea3d4ebe1b17fb8da580f3b058d7363 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -104,8 +104,17 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -7677,10 +7677,10 @@ index d2026d218405a40a6949c5f491c04704811b72b5..629178347039893fb9de710810fe8112
public WorldBorder getWorldBorder() {
throw new UnsupportedOperationException("Not supported yet.");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java b/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java
-index d40c0d8be1b0153d62021b8bcb6e8b37fd0acb4e..e38e57b1f9ef27020de35d7ddcb36a663140f880 100644
+index aced43492a32d603690e75d0d9877667770fc6db..40d6bf127d288340e9c2500732d1e0963c186ebd 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java
-@@ -119,6 +119,32 @@ public class UnsafeList extends AbstractList implements List, RandomAcc
+@@ -120,6 +120,32 @@ public class UnsafeList extends AbstractList implements List, RandomAcc
return this.indexOf(o) >= 0;
}
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 0a667b0dd0..c1a071f638 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -2169,7 +2169,7 @@ index 5f051cb22ae77f4d8994b07ac5b963bd0ff05673..7952635a963e28cb670c8f4869664103
list.forEach((loader) -> {
Registry> registry = loader.getFirst();
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 9b34e401040a45393afbb9e984ff421a89f744a0..2d35572157b28f2e637d9b47a82c5e7adecde96e 100644
+index 9b34e401040a45393afbb9e984ff421a89f744a0..3250a9310b57351d6d832a8ef42837d990cf6c99 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -194,6 +194,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot
@@ -2180,15 +2180,26 @@ index 9b34e401040a45393afbb9e984ff421a89f744a0..2d35572157b28f2e637d9b47a82c5e7a
public static final String VANILLA_BRAND = "vanilla";
private static final float AVERAGE_TICK_TIME_SMOOTHING = 0.8F;
private static final int TICK_STATS_SPAN = 100;
-@@ -244,6 +245,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop {
-@@ -1783,9 +1788,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1786,9 +1791,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
*/
this.player.disconnect();
@@ -2463,7 +2477,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
}
// CraftBukkit end
this.player.getTextFilter().leave();
-@@ -1882,11 +1889,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1885,11 +1892,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
CompletableFuture completablefuture = this.filterTextPacket(playerchatmessage.signedContent());
@@ -2477,7 +2491,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
this.broadcastChatMessage(playerchatmessage1);
}, this.server.chatExecutor); // CraftBukkit - async chat
-@@ -1992,7 +1999,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1995,7 +2002,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
Optional optional = this.unpackAndApplyLastSeen(acknowledgment);
if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
@@ -2486,7 +2500,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
return Optional.empty();
} else {
this.player.resetLastActionTime();
-@@ -2050,7 +2057,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2053,7 +2060,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
@@ -2500,7 +2514,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
Player player = this.getCraftPlayer();
AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, s, new LazyPlayerSet(this.server));
String originalFormat = event.getFormat(), originalMessage = event.getMessage();
-@@ -2180,7 +2192,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2183,7 +2195,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
});
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Re-add "Command Only" flag check
@@ -2551,7 +2565,7 @@ index 1cb95db25a20d38faacd99a5805630c1598e9db3..d99b2235038eb1aba8cda474c4aa51e2
@Override
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 5d572a56d7926a849af73f5335a749f30f250026..645bee9a926d71c3730a23391d21d48418444e9a 100644
+index edf629f2e810eebf014b1565021888f96def92a1..d3dc7752aadf36985660d04dcb4377a69dfeddff 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -8,6 +8,7 @@ import com.mojang.logging.LogUtils;
@@ -2862,7 +2876,7 @@ index 614e567eb1ef10ac7514909a8425e29ac3627d3d..60596c4ac2ebb8caf19d65591624275b
}
collection = icons;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c163c5065ec 100644
+index c3c30cbb74062fc25c1daf9b17c8956857766306..85867893da6bb4f24e86c32ea9fd5ff5b5684dbb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -608,8 +608,10 @@ public final class CraftServer implements Server {
@@ -2876,7 +2890,7 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
}
@Override
-@@ -1460,7 +1462,15 @@ public final class CraftServer implements Server {
+@@ -1465,7 +1467,15 @@ public final class CraftServer implements Server {
return this.configuration.getInt("settings.spawn-radius", -1);
}
@@ -2892,7 +2906,7 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
public String getShutdownMessage() {
return this.configuration.getString("settings.shutdown-message");
}
-@@ -1628,7 +1638,20 @@ public final class CraftServer implements Server {
+@@ -1633,7 +1643,20 @@ public final class CraftServer implements Server {
}
@Override
@@ -2913,7 +2927,7 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
Set recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
-@@ -1636,14 +1659,14 @@ public final class CraftServer implements Server {
+@@ -1641,14 +1664,14 @@ public final class CraftServer implements Server {
}
}
@@ -2930,36 +2944,36 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
for (CommandSender recipient : recipients) {
recipient.sendMessage(message);
-@@ -1894,6 +1917,14 @@ public final class CraftServer implements Server {
+@@ -1900,6 +1923,14 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, type);
}
+ // Paper start
+ @Override
+ public Inventory createInventory(InventoryHolder owner, InventoryType type, net.kyori.adventure.text.Component title) {
-+ Validate.isTrue(type.isCreatable(), "Cannot open an inventory of type ", type);
++ Preconditions.checkArgument(type.isCreatable(), "Cannot open an inventory of type ", type);
+ return CraftInventoryCreator.INSTANCE.createInventory(owner, type, title);
+ }
+ // Paper end
+
@Override
public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) {
- Validate.isTrue(type.isCreatable(), "Cannot open an inventory of type ", type);
-@@ -1906,13 +1937,28 @@ public final class CraftServer implements Server {
+ Preconditions.checkArgument(type != null, "InventoryType cannot be null");
+@@ -1914,13 +1945,28 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, size);
}
+ // Paper start
+ @Override
+ public Inventory createInventory(InventoryHolder owner, int size, net.kyori.adventure.text.Component title) throws IllegalArgumentException {
-+ Validate.isTrue(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got " + size + ")");
++ Preconditions.checkArgument(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got " + size + ")");
+ return CraftInventoryCreator.INSTANCE.createInventory(owner, size, title);
+ }
+ // Paper end
+
@Override
public Inventory createInventory(InventoryHolder owner, int size, String title) throws IllegalArgumentException {
- Validate.isTrue(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got " + size + ")");
+ Preconditions.checkArgument(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got %s)", size);
return CraftInventoryCreator.INSTANCE.createInventory(owner, size, title);
}
@@ -2974,20 +2988,25 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
public Merchant createMerchant(String title) {
return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title);
}
-@@ -1977,6 +2023,12 @@ public final class CraftServer implements Server {
+@@ -1985,6 +2031,17 @@ public final class CraftServer implements Server {
return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog)
}
-+ // Paper start
++ // Paper start - Adventure
+ @Override
+ public net.kyori.adventure.text.Component motd() {
-+ return console.getComponentMotd();
++ return this.console.motd();
++ }
++ @Override
++ public void motd(final net.kyori.adventure.text.Component motd) {
++ this.console.motd(motd);
+ }
+ // Paper end
++
@Override
public String getMotd() {
return this.console.getMotd();
-@@ -2403,4 +2455,53 @@ public final class CraftServer implements Server {
+@@ -2419,4 +2476,53 @@ public final class CraftServer implements Server {
return this.spigot;
}
// Spigot end
@@ -3042,10 +3061,10 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 29ef66be12ec2a2765a76eb3d419c337846c75ac..711dbf6e5cf9b4ffabaab2bcf10f13711683a61e 100644
+index 379b8a7d94c784db54ada01ad6bd04a54f8a089f..73f61f2b0c0aeefabb7b7bba7ca37914751dcc42 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -153,6 +153,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -152,6 +152,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private final BlockMetadataStore blockMetadata = new BlockMetadataStore(this);
private final Object2IntOpenHashMap spawnCategoryLimit = new Object2IntOpenHashMap<>();
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY);
@@ -3053,7 +3072,7 @@ index 29ef66be12ec2a2765a76eb3d419c337846c75ac..711dbf6e5cf9b4ffabaab2bcf10f1371
private static final Random rand = new Random();
-@@ -1597,6 +1598,39 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1603,6 +1604,39 @@ public class CraftWorld extends CraftRegionAccessor implements World {
entityTracker.broadcastAndSend(packet);
}
}
@@ -3093,7 +3112,7 @@ index 29ef66be12ec2a2765a76eb3d419c337846c75ac..711dbf6e5cf9b4ffabaab2bcf10f1371
private static Map> gamerules;
public static synchronized Map> getGameRulesNMS() {
-@@ -1990,5 +2024,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1997,5 +2031,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return ret;
}
@@ -3517,7 +3536,7 @@ index f6c614bb1184f9c79121f64a2a030bf3f094b671..e8334e2264510f5101e80b4f130e7ae1
public net.minecraft.world.item.enchantment.Enchantment getHandle() {
return this.target;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229bd43485d 100644
+index 61304b316985462e898a1b80f872b716a33207c6..11645e01924b4a66aa4f425c8962a000be761912 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -202,6 +202,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -3528,7 +3547,7 @@ index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229
public CraftEntity(final CraftServer server, final Entity entity) {
this.server = server;
-@@ -860,6 +861,32 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -853,6 +854,32 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.getHandle().getVehicle().getBukkitEntity();
}
@@ -3561,7 +3580,7 @@ index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229
@Override
public void setCustomName(String name) {
// sane limit for name length
-@@ -939,6 +966,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -932,6 +959,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public String getName() {
return CraftChatMessage.fromComponent(this.getHandle().getName());
}
@@ -3580,10 +3599,10 @@ index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229
@Override
public boolean isPermissionSet(String name) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 32e1b60876482035c9fbd0dfc5d1a47947eabb38..d39869056d0ac57279e0e9e479ace4a7d402a941 100644
+index 3421498e8e5fe2e22d6b31d9cf6b3337553e1c5f..abe978078270a45f7e77eb2b8a99309f12ca51ee 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -322,9 +322,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -320,9 +320,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null) return;
@@ -3598,7 +3617,7 @@ index 32e1b60876482035c9fbd0dfc5d1a47947eabb38..d39869056d0ac57279e0e9e479ace4a7
player.containerMenu = container;
player.initMenu(container);
}
-@@ -393,8 +396,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -391,8 +394,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// Now open the window
MenuType> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
@@ -3632,10 +3651,10 @@ index 446fdca49a5a6999626a7ee3a1d5c168b15a09dd..f9863e138994f6c7a7975a852f106faa
public boolean isOp() {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac792ebb8d19 100644
+index bab41176551656947be4bea4fec3ec82e51146e2..e37f69880c4b439245d7edb4c35418ed3da27a5f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -285,14 +285,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -282,14 +282,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getDisplayName() {
@@ -3675,7 +3694,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
@Override
public String getPlayerListName() {
return this.getHandle().listName == null ? getName() : CraftChatMessage.fromComponent(this.getHandle().listName);
-@@ -311,42 +336,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -308,42 +333,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@@ -3727,7 +3746,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
this.getHandle().connection.send(packet);
}
-@@ -378,6 +403,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -375,6 +400,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.disconnect(message == null ? "" : message);
}
@@ -3750,8 +3769,8 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
+
@Override
public void setCompassTarget(Location loc) {
- if (this.getHandle().connection == null) return;
-@@ -711,6 +753,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ Preconditions.checkArgument(loc != null, "Location cannot be null");
+@@ -669,6 +711,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
@@ -3764,8 +3783,8 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
+ if (lines == null) {
+ lines = new java.util.ArrayList<>(4);
+ }
-+ Validate.notNull(loc, "Location cannot be null");
-+ Validate.notNull(dyeColor, "DyeColor cannot be null");
++ Preconditions.checkArgument(loc != null, "Location cannot be null");
++ Preconditions.checkArgument(dyeColor != null, "DyeColor cannot be null");
+ if (lines.size() < 4) {
+ throw new IllegalArgumentException("Must have at least 4 lines");
+ }
@@ -3776,8 +3795,8 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
@Override
public void sendSignChange(Location loc, String[] lines) {
this.sendSignChange(loc, lines, DyeColor.BLACK);
-@@ -738,6 +798,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- }
+@@ -692,6 +752,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ if (this.getHandle().connection == null) return;
Component[] components = CraftSign.sanitizeLines(lines);
+ // Paper start - adventure
@@ -3788,7 +3807,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
SignText text = sign.getFrontText();
text.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData()));
-@@ -746,7 +811,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -700,7 +765,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
text.setMessage(i, components[i]);
}
@@ -3798,7 +3817,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
}
@Override
-@@ -1639,7 +1705,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1590,7 +1656,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url) {
@@ -3807,7 +3826,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
}
@Override
-@@ -1654,7 +1720,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1605,7 +1671,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url, byte[] hash, boolean force) {
@@ -3816,17 +3835,17 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
}
@Override
-@@ -1670,6 +1736,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1621,6 +1687,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
+ // Paper start
+ @Override
+ public void setResourcePack(String url, byte[] hashBytes, net.kyori.adventure.text.Component prompt, boolean force) {
-+ Validate.notNull(url, "Resource pack URL cannot be null");
++ Preconditions.checkArgument(url != null, "Resource pack URL cannot be null");
+ final String hash;
+ if (hashBytes != null) {
-+ Validate.isTrue(hashBytes.length == 20, "Resource pack hash should be 20 bytes long but was " + hashBytes.length);
++ Preconditions.checkArgument(hashBytes.length == 20, "Resource pack hash should be 20 bytes long but was " + hashBytes.length);
+ hash = BaseEncoding.base16().lowerCase().encode(hashBytes);
+ } else {
+ hash = "";
@@ -3838,7 +3857,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
public void addChannel(String channel) {
Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel);
channel = StandardMessenger.validateAndCorrectChannel(channel);
-@@ -2074,6 +2155,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2012,6 +2093,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().clientViewDistance == null) ? Bukkit.getViewDistance() : this.getHandle().clientViewDistance;
}
@@ -3851,7 +3870,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
@Override
public int getPing() {
return this.getHandle().latency;
-@@ -2124,6 +2211,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2062,6 +2149,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().allowsListing();
}
@@ -4127,7 +4146,7 @@ index 2becf197a5c2d94f23f72a9b20cb2cd05a0807df..99096c1e3f045e4a99335faedfb8e77e
@Override
public int getLineWidth() {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 3c3d5a527604d6f14abb1815816153747fcc0839..1b9a08098199f305606289724ee047e8075ffcea 100644
+index 5f994a64bf29545a528b91604c1f2e19bcfd9b2f..e0bb58d92e47516138261a673b56c5f8ce68a59c 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -838,9 +838,9 @@ public class CraftEventFactory {
@@ -4170,7 +4189,7 @@ index 7cd70d53e5816938beab9019db40cd7faedba745..8ea031537c27b219c22316bff191670c
public String getTitle() {
return title;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
-index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c632cc782f7 100644
+index c9cc23757a9fcc58d30b2915d4c5cfbc7d1c767a..fc0e1212022d1aa3506699b60ef338196eb54eba 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
@@ -19,6 +19,12 @@ public class CraftInventoryCustom extends CraftInventory {
@@ -4218,7 +4237,7 @@ index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c63
this(owner, type.getDefaultSize(), type.getDefaultTitle());
this.type = type;
@@ -57,11 +77,24 @@ public class CraftInventoryCustom extends CraftInventory {
- Validate.notNull(title, "Title cannot be null");
+ Preconditions.checkArgument(title != null, "title cannot be null");
this.items = NonNullList.withSize(size, ItemStack.EMPTY);
this.title = title;
+ this.adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(title);
@@ -4229,7 +4248,7 @@ index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c63
+ // Paper start
+ public MinecraftInventory(final InventoryHolder owner, final int size, final net.kyori.adventure.text.Component title) {
-+ Validate.notNull(title, "Title cannot be null");
++ Preconditions.checkArgument(title != null, "Title cannot be null");
+ this.items = NonNullList.withSize(size, ItemStack.EMPTY);
+ this.title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(title);
+ this.adventure$title = title;
@@ -4274,10 +4293,10 @@ index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec
public String getTitle() {
return this.title;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 4f9be48ebe8ec71272b19c9ab43c293cc069011f..6e050a5cbb877c85595fc97a569c2aafb272ad41 100644
+index fb58cfd68c8ababbf9486c9a5a1795b1ac9d5817..b187c4f436ac44a529675869dbf5bfddc4fac86f 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -442,4 +442,17 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -437,4 +437,17 @@ public final class CraftItemFactory implements ItemFactory {
public Material updateMaterial(ItemMeta meta, Material material) throws IllegalArgumentException {
return ((CraftMetaItem) meta).updateMaterial(material);
}
@@ -4296,7 +4315,7 @@ index 4f9be48ebe8ec71272b19c9ab43c293cc069011f..6e050a5cbb877c85595fc97a569c2aaf
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
-index a0334ec0a80dfc4f1e68c2e338aa486faaefb29e..257776a12ca26c1e75be22a67c94b0aa012fd687 100644
+index 9e05a8515c5f6f340182e91150fcad8bbf80a22b..adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
@@ -13,10 +13,17 @@ import org.bukkit.craftbukkit.util.CraftChatMessage;
@@ -4323,12 +4342,12 @@ index a0334ec0a80dfc4f1e68c2e338aa486faaefb29e..257776a12ca26c1e75be22a67c94b0aa
+ @Deprecated // Paper - Adventure
public MinecraftMerchant(String title) {
- Validate.notNull(title, "Title cannot be null");
+ Preconditions.checkArgument(title != null, "Title cannot be null");
this.title = CraftChatMessage.fromString(title)[0];
}
+ // Paper start
+ public MinecraftMerchant(net.kyori.adventure.text.Component title) {
-+ Validate.notNull(title, "Title cannot be null");
++ Preconditions.checkArgument(title != null, "Title cannot be null");
+ this.title = io.papermc.paper.adventure.PaperAdventure.asVanilla(title);
+ }
+ // Paper end
@@ -4336,12 +4355,12 @@ index a0334ec0a80dfc4f1e68c2e338aa486faaefb29e..257776a12ca26c1e75be22a67c94b0aa
@Override
public CraftMerchant getCraftMerchant() {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-index 4154b4489be172f1ef1693b54368b7ffc8629c31..e8413ad360e9b6c4eef13edf9dd0095e7e64bce2 100644
+index bd4524fd987877a287680cfa5744ce12045ebfbd..cf928745c36af0e6fa0a95e177395c5fb1aa821a 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-@@ -1,8 +1,9 @@
- package org.bukkit.craftbukkit.inventory;
+@@ -2,8 +2,9 @@ package org.bukkit.craftbukkit.inventory;
+ import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Lists;
@@ -4379,7 +4398,7 @@ index 4154b4489be172f1ef1693b54368b7ffc8629c31..e8413ad360e9b6c4eef13edf9dd0095e
+
+ @Override
+ public net.kyori.adventure.text.Component page(final int page) {
-+ Validate.isTrue(isValidPage(page), "Invalid page number");
++ Preconditions.checkArgument(isValidPage(page), "Invalid page number");
+ return this instanceof CraftMetaBookSigned ? net.kyori.adventure.text.serializer.gson.GsonComponentSerializer.gson().deserialize(pages.get(page - 1)) : net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(pages.get(page - 1));
+ }
+
@@ -4495,8 +4514,8 @@ index 4154b4489be172f1ef1693b54368b7ffc8629c31..e8413ad360e9b6c4eef13edf9dd0095e
+ // Paper end
@Override
public String getPage(final int page) {
- Validate.isTrue(this.isValidPage(page), "Invalid page number");
-@@ -405,7 +545,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
+ Preconditions.checkArgument(this.isValidPage(page), "Invalid page number (%s)", page);
+@@ -402,7 +542,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
}
@Override
@@ -4549,10 +4568,10 @@ index 507fa96a3fb904b74429df5756c9a6378ec8c5b7..abb9e88abc74135284b941e040d40586
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 5fab8014b0ae3d56610aeaaa21a8c1ba6f7f1bfd..16dd61b832d7b6519786072e41cdde9df3ab8e7f 100644
+index 02856de529023f4d63440e2f2cef28e41f2103a7..b01c268d179591a0113e4bfb46f3d6d22933efaf 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -750,6 +750,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -749,6 +749,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return !(this.hasDisplayName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isUnbreakable() || this.hasDamage() || this.hasAttributeModifiers());
}
@@ -4571,7 +4590,7 @@ index 5fab8014b0ae3d56610aeaaa21a8c1ba6f7f1bfd..16dd61b832d7b6519786072e41cdde9d
@Override
public String getDisplayName() {
return CraftChatMessage.fromJSONComponent(displayName);
-@@ -785,6 +797,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -784,6 +796,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.lore != null && !this.lore.isEmpty();
}
@@ -4734,7 +4753,7 @@ index b47f18b1e448807a17ca9f2ae9609680233da837..9683d7d103af66fffd68c11abc38fb4f
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
-index 0d25c7c03f7ac21a4b21bb95b5bd921c43430cf9..b7f0277b50a0f45c32b818bf9fe1218874aa8533 100644
+index b49cc2880fbecfd48d07c2e390c9e2aa2e09b848..de5f382656f9fd08f6ae1795c69743c604d62d5c 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
@@ -31,6 +31,21 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective
@@ -4758,12 +4777,12 @@ index 0d25c7c03f7ac21a4b21bb95b5bd921c43430cf9..b7f0277b50a0f45c32b818bf9fe12188
+ // Paper end
@Override
public String getDisplayName() throws IllegalStateException {
- CraftScoreboard scoreboard = this.checkState();
+ this.checkState();
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce481c6effbb 100644
+index f978617eaa74ff1fa0ab0acec3b6ccd14e2db55d..2471a6d0b7a8086cf4c0a41b10c05ed50d790d11 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-@@ -28,6 +28,34 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
+@@ -27,6 +27,33 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
public CraftObjective registerNewObjective(String name, String criteria) throws IllegalArgumentException {
return this.registerNewObjective(name, criteria, name);
}
@@ -4785,12 +4804,11 @@ index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce48
+ if (displayName == null) {
+ displayName = net.kyori.adventure.text.Component.empty();
+ }
-+ Validate.notNull(name, "Objective name cannot be null");
-+ Validate.notNull(criteria, "Criteria cannot be null");
-+ Validate.notNull(displayName, "Display name cannot be null");
-+ Validate.notNull(renderType, "RenderType cannot be null");
-+ Validate.isTrue(name.length() <= Short.MAX_VALUE, "The name '" + name + "' is longer than the limit of 32767 characters");
-+ Validate.isTrue(board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
++ Preconditions.checkArgument(name != null, "Objective name cannot be null");
++ Preconditions.checkArgument(criteria != null, "Criteria cannot be null");
++ Preconditions.checkArgument(renderType != null, "RenderType cannot be null");
++ Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length());
++ Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name);
+ net.minecraft.world.scores.Objective objective = board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType));
+ return new CraftObjective(this, objective);
+ }
@@ -4798,17 +4816,17 @@ index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce48
@Override
public CraftObjective registerNewObjective(String name, String criteria, String displayName) throws IllegalArgumentException {
-@@ -46,16 +74,7 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
+@@ -45,16 +72,7 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
@Override
public CraftObjective registerNewObjective(String name, Criteria criteria, String displayName, RenderType renderType) throws IllegalArgumentException {
-- Validate.notNull(name, "Objective name cannot be null");
-- Validate.notNull(criteria, "Criteria cannot be null");
-- Validate.notNull(displayName, "Display name cannot be null");
-- Validate.notNull(renderType, "RenderType cannot be null");
-- Validate.isTrue(name.length() <= Short.MAX_VALUE, "The name '" + name + "' is longer than the limit of 32767 characters");
-- Validate.isTrue(displayName.length() <= 128, "The display name '" + displayName + "' is longer than the limit of 128 characters");
-- Validate.isTrue(this.board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
+- Preconditions.checkArgument(name != null, "Objective name cannot be null");
+- Preconditions.checkArgument(criteria != null, "Criteria cannot be null");
+- Preconditions.checkArgument(displayName != null, "Display name cannot be null");
+- Preconditions.checkArgument(renderType != null, "RenderType cannot be null");
+- Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length());
+- Preconditions.checkArgument(displayName.length() <= 128, "The display name '%s' is longer than the limit of 128 characters (%s)", displayName, displayName.length());
+- Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name);
-
- net.minecraft.world.scores.Objective objective = this.board.addObjective(name, ((CraftCriteria) criteria).criteria, CraftChatMessage.fromStringOrNull(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType));
- return new CraftObjective(this, objective);
@@ -4817,10 +4835,10 @@ index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce48
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 81f16dc1ed6e102af298600db75cab21a09bc00f..18d5a26c34c848241c306241b3ad9825b5a0b9a9 100644
+index 4de9d57559e3787089a542fd912e5b28973fe73e..772206a43950db2726bd79911438e2aec2d7189c 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-@@ -28,6 +28,63 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
+@@ -26,6 +26,63 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
return this.team.getName();
}
@@ -4897,7 +4915,7 @@ index 78ea79b66cc9e90402ef5cdc2e5e04e0c74b1c26..4fede2161792ba3e7cdf0cc5a1f53318
boolean hadFormat = false;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 381cfd86fc1158dc9a7c1e76c3ada962b0964373..0137b414a75894cb8b8413f96eba4f591453f61b 100644
+index fee5c6809ea3d4ebe1b17fb8da580f3b058d7363..a3cb26b4ba108b3c621f74034480a522492fdf2f 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -74,6 +74,43 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -4958,18 +4976,16 @@ index 62c66e3179b9557cdba46242df0fb15bce7e7710..73a37638abacdffbff8274291a64ea6c
public boolean isLazy() {
return this.reference == null;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java b/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
-index 838d5b877c01be3ef353f434d98e27b46c0a3fb4..5c4c0ba05f10d2d83b22d3e86805cfa85c3b50a9 100644
+index 75bc9ea10d80270217e4c75da98257a217b20097..673ab940fb53d42f6b6dbfe048d0281c4f508b0d 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
-@@ -15,11 +15,17 @@ public class LazyPlayerSet extends LazyHashSet {
+@@ -16,9 +16,15 @@ public class LazyPlayerSet extends LazyHashSet {
}
@Override
- HashSet makeReference() {
+ protected HashSet makeReference() { // Paper - protected
- if (reference != null) {
- throw new IllegalStateException("Reference already created!");
- }
+ Preconditions.checkState(reference == null, "Reference already created!");
List players = this.server.getPlayerList().players;
+ // Paper start
+ return makePlayerSet(this.server);
diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch
index 8bd8dd2e52..145c4b9074 100644
--- a/patches/server/0011-Paper-command.patch
+++ b/patches/server/0011-Paper-command.patch
@@ -615,10 +615,10 @@ index 2ac30ef2dd72582f2b7f6a05b1f94b12b44fafc9..a01d423f44b3e547b4fa4d6654f9df63
this.setPvpAllowed(dedicatedserverproperties.pvp);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7d95f4e919f46fd415a3cf88b1bb7c163c5065ec..182c3a3852726172dfe97f2b989323001c6efad8 100644
+index 85867893da6bb4f24e86c32ea9fd5ff5b5684dbb..de9e4fd6a11b06e685804e43657d8b6589c6ca1c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -927,6 +927,7 @@ public final class CraftServer implements Server {
+@@ -934,6 +934,7 @@ public final class CraftServer implements Server {
this.commandMap.clearCommands();
this.reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
@@ -626,7 +626,7 @@ index 7d95f4e919f46fd415a3cf88b1bb7c163c5065ec..182c3a3852726172dfe97f2b98932300
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
-@@ -2495,6 +2496,34 @@ public final class CraftServer implements Server {
+@@ -2516,6 +2517,34 @@ public final class CraftServer implements Server {
// Paper end
// Paper start
diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch
index 263bebcb9a..f2fac081cc 100644
--- a/patches/server/0013-Paper-Plugins.patch
+++ b/patches/server/0013-Paper-Plugins.patch
@@ -6973,10 +6973,10 @@ index 35e7f8e7b19c217fa5f3f55abb0f8b9cd6b16f18..72c2f0bf9434e09a0dd51294d3a2200f
Bootstrap.validate();
Util.startTimerHackThread();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea7228aa59 100644
+index de9e4fd6a11b06e685804e43657d8b6589c6ca1c..5efe98cbcb44727fbbb195ff7007d01c823372b6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -269,7 +269,8 @@ public final class CraftServer implements Server {
+@@ -268,7 +268,8 @@ public final class CraftServer implements Server {
private final CraftCommandMap commandMap = new CraftCommandMap(this);
private final SimpleHelpMap helpMap = new SimpleHelpMap(this);
private final StandardMessenger messenger = new StandardMessenger();
@@ -6986,7 +6986,7 @@ index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea
private final StructureManager structureManager;
protected final DedicatedServer console;
protected final DedicatedPlayerList playerList;
-@@ -419,24 +420,7 @@ public final class CraftServer implements Server {
+@@ -418,24 +419,7 @@ public final class CraftServer implements Server {
}
public void loadPlugins() {
@@ -7012,7 +7012,7 @@ index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea
}
public void enablePlugins(PluginLoadOrder type) {
-@@ -525,15 +509,17 @@ public final class CraftServer implements Server {
+@@ -524,15 +508,17 @@ public final class CraftServer implements Server {
private void enablePlugin(Plugin plugin) {
try {
List perms = plugin.getDescription().getPermissions();
@@ -7036,7 +7036,7 @@ index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea
this.pluginManager.enablePlugin(plugin);
} catch (Throwable ex) {
-@@ -951,6 +937,7 @@ public final class CraftServer implements Server {
+@@ -958,6 +944,7 @@ public final class CraftServer implements Server {
"This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin"
));
}
@@ -7062,10 +7062,10 @@ index 909b2c98e7a9117d2f737245e4661792ffafb744..d96399e9bf1a58db5a4a22e58abb99e7
@Override
public FileConfiguration getConfig() {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 0137b414a75894cb8b8413f96eba4f591453f61b..39a9a47ce7150445e1b00a32152c0429b3114302 100644
+index a3cb26b4ba108b3c621f74034480a522492fdf2f..23d594d7e24389e99f7c589d4cd7d6f3987d42c4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -439,6 +439,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -437,6 +437,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack);
return nmsItemStack.getItem().getDescriptionId(nmsItemStack);
}
diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch
index c3a9827a13..ac01109fe4 100644
--- a/patches/server/0014-Timings-v2.patch
+++ b/patches/server/0014-Timings-v2.patch
@@ -732,7 +732,7 @@ index fc4dcd801480fe6d89a985de411baa9a3a66f6ef..4a1148a76020089caf01f888f87afdbb
} catch (Exception exception) {
if (listener.shouldPropagateHandlingExceptions()) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af205e309c 100644
+index 3250a9310b57351d6d832a8ef42837d990cf6c99..f0cd94f877a83485ab8e96e1c4e00bf658f227b7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -189,7 +189,7 @@ import org.bukkit.event.player.AsyncPlayerChatPreviewEvent;
@@ -744,7 +744,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements CommandSource, AutoCloseable {
-@@ -863,6 +863,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 5000000000L) {
-@@ -1209,15 +1230,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % this.autosavePeriod == 0) { // CraftBukkit
@@ -826,7 +826,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
this.profiler.push("tallying");
long j = this.tickTimes[this.tickCount % 100] = Util.getNanos() - i;
-@@ -1227,8 +1251,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index b7abac39ea685db1672dc7ba527bce8bfe025f8b..3e5d541d3d7fc3956b2fc68da9f22a0ab0367ce9 100644
+index 7cdfd82fdef19d5732ebc2126e2c377b441de596..ebd48f9977553174b14bdc7429c07d8352f5a297 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -27,7 +27,7 @@ import net.minecraft.world.entity.projectile.ThrownTrident;
diff --git a/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch
index dbe45b6367..61c2c430d5 100644
--- a/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch
+++ b/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the
ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e982442204972e140f0e5ebac777a931ea7394e2..7912cf0e4cab7d6c99106d43b2cdc4f4e80aebac 100644
+index 3338b424ca228693c199d022c01a81f9e2f9af0b..e9c2d5fad36e38ff1f0b34cacb9ea32516667948 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -423,6 +423,35 @@ public final class CraftServer implements Server {
+@@ -422,6 +422,35 @@ public final class CraftServer implements Server {
io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.INSTANCE.enter(io.papermc.paper.plugin.entrypoint.Entrypoint.PLUGIN); // Paper - replace implementation
}
diff --git a/patches/server/0019-Rewrite-chunk-system.patch b/patches/server/0019-Rewrite-chunk-system.patch
index 8821599536..68ccf237b6 100644
--- a/patches/server/0019-Rewrite-chunk-system.patch
+++ b/patches/server/0019-Rewrite-chunk-system.patch
@@ -16798,10 +16798,10 @@ index 72c2f0bf9434e09a0dd51294d3a2200f1e0ed1b1..5d56c35d6d3478dbc53e4f5c3547d4dc
DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, worldLoader.get(), thread, convertable_conversionsession, resourcepackrepository, worldstem, dedicatedserversettings, DataFixers.getDataFixer(), services, LoggerChunkProgressListener::new);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e856464589 100644
+index f0cd94f877a83485ab8e96e1c4e00bf658f227b7..bea4e947577ee2f5fd680eb932409283f8504ee7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -302,7 +302,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) {
AtomicReference atomicreference = new AtomicReference();
@@ -16810,7 +16810,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
((MinecraftServer) atomicreference.get()).runServer();
}, "Server thread");
-@@ -585,7 +585,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 5000L && this.nextTickTime - this.lastOverloadWarning >= 30000L) { // CraftBukkit
-@@ -1101,6 +1090,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getPluginChunkTickets(int x, int z) {
DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager;
@@ -22699,7 +22699,7 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
}
@Override
-@@ -433,7 +423,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -432,7 +422,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
Map> ret = new HashMap<>();
DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager;
@@ -22708,7 +22708,7 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
long chunkKey = chunkTickets.getLongKey();
SortedArraySet> tickets = chunkTickets.getValue();
-@@ -1957,14 +1947,53 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1964,14 +1954,53 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Spigot start
@Override
public int getViewDistance() {
@@ -22765,10 +22765,10 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
// Spigot start
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 11aebe27875a30dfc6bd82d486d0d79bfe2e77a1..977011bd42a5b2ffe4cd6567c058860a7f3fd48b 100644
+index 3c6617170c618800940d5826c7e73a3ac7f32e19..6894e5b29b4c59cdb46cfd8862709087cb97b923 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -184,6 +184,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -183,6 +183,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.firstPlayed = System.currentTimeMillis();
}
@@ -22856,7 +22856,7 @@ index 629178347039893fb9de710810fe8112499bb91c..d5861dfa771c4eb217e082e3c832c3a6
+ // Paper end
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index 3e5d541d3d7fc3956b2fc68da9f22a0ab0367ce9..b47b740186c200c420dcb4d1537a93c743a887c1 100644
+index ebd48f9977553174b14bdc7429c07d8352f5a297..6606a118e7bff01aa51440aea7540ec9feec6cc5 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -132,7 +132,13 @@ public class ActivationRange
diff --git a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
index b97c0d5e4c..7b02cfa772 100644
--- a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
+++ b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 164ce278f2696d4be6b57404648cb0e856464589..4d5a8c051ab7746ed40d5b79558e86238618827c 100644
+index bea4e947577ee2f5fd680eb932409283f8504ee7..b9a49f92e38daf4f80b6d3bf465eb9d249606976 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1460,7 +1460,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop processQueue = new java.util.concurrent.ConcurrentLinkedQueue();
public int autosavePeriod;
public Commands vanillaCommandDispatcher;
-@@ -294,7 +294,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 5000L && this.nextTickTime - this.lastOverloadWarning >= 30000L) { // CraftBukkit
long j = i / 50L;
-@@ -990,12 +1042,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f6846cc11cbc 100644
+index 023482c1662e42305cc4ca12ffdff1e36397ed15..95d84f9a524ef0705875987c3781a0d73189dfbb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2041,7 +2041,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2044,7 +2044,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return true;
}
@@ -33,7 +33,7 @@ index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f684
for (int i = 0; i < message.length(); ++i) {
if (!SharedConstants.isAllowedChatCharacter(message.charAt(i))) {
return true;
-@@ -2058,7 +2058,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2061,7 +2061,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
OutgoingChatMessage outgoing = OutgoingChatMessage.create(original);
@@ -42,7 +42,7 @@ index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f684
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
-@@ -2148,7 +2148,29 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2151,7 +2151,29 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
@@ -74,11 +74,11 @@ index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f684
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index fb6ea46609489d802ed4b76b4074734dd3e3886f..dd3935eeceba456b37a5fbcb874c1073bb76d473 100644
+index 9da9b5b4b92996240cc93be2db82bf3a931e76c1..c84e32f53783b2e00b829ce839894c0a3a73325e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -875,6 +875,28 @@ public final class CraftServer implements Server {
- Validate.notNull(commandLine, "CommandLine cannot be null");
+@@ -882,6 +882,28 @@ public final class CraftServer implements Server {
+ Preconditions.checkArgument(commandLine != null, "commandLine cannot be null");
org.spigotmc.AsyncCatcher.catchOp("command dispatch"); // Spigot
+ // Paper Start
@@ -107,11 +107,11 @@ index fb6ea46609489d802ed4b76b4074734dd3e3886f..dd3935eeceba456b37a5fbcb874c1073
return true;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f18fa546bf9a045f7b10e8eb898339b2adf8d4a0..15c6c3a6e9d4e371425604667af7cc2b24fae021 100644
+index e67b8e85ae8ad7aba8eabcbcbef0b59b2837e60a..3290e6197e60ed2e9a667ce22a14127bc1ba3f97 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -479,7 +479,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- public void chat(String msg) {
+@@ -480,7 +480,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+
if (this.getHandle().connection == null) return;
- this.getHandle().connection.chat(msg, PlayerChatMessage.system(msg), false);
diff --git a/patches/server/0054-Expose-server-CommandMap.patch b/patches/server/0054-Expose-server-CommandMap.patch
index b64c141857..a937de8515 100644
--- a/patches/server/0054-Expose-server-CommandMap.patch
+++ b/patches/server/0054-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dd3935eeceba456b37a5fbcb874c1073bb76d473..9c80c55e8c15aa847aea134dd8121ee9d0c24d1c 100644
+index c84e32f53783b2e00b829ce839894c0a3a73325e..3d47994c861f70fc560a42dc524a773d9c15cfe0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2012,6 +2012,7 @@ public final class CraftServer implements Server {
+@@ -2020,6 +2020,7 @@ public final class CraftServer implements Server {
return this.helpMap;
}
diff --git a/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch b/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
index 59b0315e79..1d2852b0ba 100644
--- a/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
+++ b/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
@@ -5,18 +5,20 @@ Subject: [PATCH] Be a bit more informative in maxHealth exception
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index f6b795ad57aec40231e262549839fa049458c634..1f67ac4484e3ee2e0a25030e0080a671f34e1a58 100644
+index 92831e64cc5f93a13dfede82d44172b3b34a57e3..a112ee18b272e2d5a61ddbb2c884169b6c6d0aec 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -102,7 +102,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -100,7 +100,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+ @Override
public void setHealth(double health) {
health = (float) health;
- if ((health < 0) || (health > this.getMaxHealth())) {
-- throw new IllegalArgumentException("Health must be between 0 and " + this.getMaxHealth() + "(" + health + ")");
-+ // Paper - Be more informative
-+ throw new IllegalArgumentException("Health must be between 0 and " + getMaxHealth() + ", but was " + health
-+ + ". (attribute base value: " + this.getHandle().getAttribute(Attributes.MAX_HEALTH).getBaseValue()
-+ + (this instanceof CraftPlayer ? ", player: " + this.getName() + ')' : ')'));
- }
+- Preconditions.checkArgument(health >= 0 && health <= this.getMaxHealth(), "Health value (%s) must be between 0 and %s", health, this.getMaxHealth());
++ // Paper start - Be more informative
++ Preconditions.checkArgument(health >= 0 && health <= this.getMaxHealth(),
++ "Health value (%s) must be between 0 and %s. (attribute base value: %s%s)",
++ health, this.getMaxHealth(), this.getHandle().getAttribute(Attributes.MAX_HEALTH).getBaseValue(), this instanceof CraftPlayer ? ", player: " + this.getName() : ""
++ );
++ // Paper end
// during world generation, we don't want to run logic for dropping items and xp
+ if (this.getHandle().generation && health == 0) {
diff --git a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
index 48800a1b12..b223c5106e 100644
--- a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
+++ b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
@@ -63,7 +63,7 @@ index bd808eb312ade7122973a47f4b96505829511da5..bf0f9cab7c66c089f35b851e799ba4a4
// Paper end
buf.writeComponent(this.text);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 15c6c3a6e9d4e371425604667af7cc2b24fae021..73dfea8999a0536e9319a9bfe8d5940dad760709 100644
+index 3290e6197e60ed2e9a667ce22a14127bc1ba3f97..0d8337e5b591cd4d7ba946f01990d7c562bba72a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1,5 +1,6 @@
@@ -73,7 +73,7 @@ index 15c6c3a6e9d4e371425604667af7cc2b24fae021..73dfea8999a0536e9319a9bfe8d5940d
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.BaseEncoding;
-@@ -325,6 +326,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -322,6 +323,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
diff --git a/patches/server/0058-Add-velocity-warnings.patch b/patches/server/0058-Add-velocity-warnings.patch
index 604f376234..1440922180 100644
--- a/patches/server/0058-Add-velocity-warnings.patch
+++ b/patches/server/0058-Add-velocity-warnings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add velocity warnings
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9c80c55e8c15aa847aea134dd8121ee9d0c24d1c..1cca43506306994e740278a581b0d33924d08491 100644
+index 3d47994c861f70fc560a42dc524a773d9c15cfe0..bf9d7ae4366e44938306e3f8e94376796284a263 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -296,6 +296,7 @@ public final class CraftServer implements Server {
+@@ -295,6 +295,7 @@ public final class CraftServer implements Server {
public boolean ignoreVanillaPermissions = false;
private final List playerView;
public int reloadCount;
@@ -17,7 +17,7 @@ index 9c80c55e8c15aa847aea134dd8121ee9d0c24d1c..1cca43506306994e740278a581b0d339
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 0a6926f9b6be67d4d710d2fbc6bd2b1fcb0677a0..c9275f73be7332f79312037954f9685f6c1f800f 100644
+index 003690e2f347821d28517b816115cc92ea5d0bd6..fa2a6f44a1c25fb6c9a19e83e7eddb2c8d28a320 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -465,10 +465,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
index b68e131508..55a718bc60 100644
--- a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
+++ b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
@@ -16,10 +16,10 @@ The wanted destination was on top of the emerald block however the player ended
This only is the case if the player is teleporting between worlds.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 73dfea8999a0536e9319a9bfe8d5940dad760709..2a7a7c5e1490c2922c01c5c397793aa03364bbaf 100644
+index 0d8337e5b591cd4d7ba946f01990d7c562bba72a..5b7ac9efd45009142dd5da6987e2e9dad5cbba7f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1182,7 +1182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1136,7 +1136,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
entity.connection.teleport(to);
} else {
// The respawn reason should never be used if the passed location is non null.
diff --git a/patches/server/0060-Add-exception-reporting-event.patch b/patches/server/0060-Add-exception-reporting-event.patch
index 3e5da0abe4..9fa56529a0 100644
--- a/patches/server/0060-Add-exception-reporting-event.patch
+++ b/patches/server/0060-Add-exception-reporting-event.patch
@@ -192,34 +192,24 @@ index e68205fe7169c7c5b7c6fdada2ee97d86107ca97..aa8972fd1a1fade05d60ab69efb8ff24
try {
filechannel.close();
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index 07c4d9cd5081378e1b903518f7174fca959cd9e3..dfc2789009fcaa08baa8054bdac915590b8701d6 100644
+index fcbf32a233c240dd45f75ee736bd102ce9f79332..833240d2a4936343710a60876a66d01112e15a2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -17,6 +17,9 @@ import java.util.concurrent.atomic.AtomicReference;
- import java.util.function.Consumer;
- import java.util.function.IntUnaryOperator;
- import java.util.logging.Level;
-+import com.destroystokyo.paper.ServerSchedulerReportingWrapper;
-+import com.destroystokyo.paper.event.server.ServerExceptionEvent;
-+import com.destroystokyo.paper.exception.ServerSchedulerException;
- import org.apache.commons.lang.Validate;
- import org.bukkit.plugin.IllegalPluginAccessException;
- import org.bukkit.plugin.Plugin;
-@@ -434,6 +437,8 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -434,6 +434,8 @@ public class CraftScheduler implements BukkitScheduler {
msg,
throwable);
}
+ org.bukkit.Bukkit.getServer().getPluginManager().callEvent(
-+ new ServerExceptionEvent(new ServerSchedulerException(msg, throwable, task)));
++ new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerSchedulerException(msg, throwable, task)));
// Paper end
} finally {
this.currentTask = null;
-@@ -441,7 +446,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -441,7 +443,7 @@ public class CraftScheduler implements BukkitScheduler {
this.parsePending();
} else {
this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass()));
- this.executor.execute(task);
-+ this.executor.execute(new ServerSchedulerReportingWrapper(task)); // Paper
++ this.executor.execute(new com.destroystokyo.paper.ServerSchedulerReportingWrapper(task)); // Paper
// We don't need to parse pending
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
diff --git a/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
index ea0e8d4bb9..99be07e3cc 100644
--- a/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
+++ b/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
@@ -7,10 +7,10 @@ Upstream added methods for this, original methods are now
deprecated
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 1f67ac4484e3ee2e0a25030e0080a671f34e1a58..3084fa8000b36f06e8d432bff124a5af4ea675ea 100644
+index a112ee18b272e2d5a61ddbb2c884169b6c6d0aec..fcb07a5f8cac994b731e3345ba9e971faa482fa1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -266,9 +266,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -265,9 +265,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
@Override
@@ -27,7 +27,7 @@ index 1f67ac4484e3ee2e0a25030e0080a671f34e1a58..3084fa8000b36f06e8d432bff124a5af
}
@Override
-@@ -764,4 +770,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -761,4 +767,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
this.getHandle().persistentInvisibility = invisible;
this.getHandle().setSharedFlag(5, invisible);
}
diff --git a/patches/server/0065-Complete-resource-pack-API.patch b/patches/server/0065-Complete-resource-pack-API.patch
index 30a9942957..58a10f7d75 100644
--- a/patches/server/0065-Complete-resource-pack-API.patch
+++ b/patches/server/0065-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/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ddd437906801973e11386294e7e3f6846cc11cbc..a91cc53f9d601bbc51988b2b7855c6ebcc68d780 100644
+index 95d84f9a524ef0705875987c3781a0d73189dfbb..e60d8689e7bec90cb4b8787ff252eb7da39d6a8f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1755,8 +1755,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1758,8 +1758,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName());
this.disconnect(Component.translatable("multiplayer.requiredTexturePrompt.disconnect"));
}
@@ -23,10 +23,10 @@ index ddd437906801973e11386294e7e3f6846cc11cbc..a91cc53f9d601bbc51988b2b7855c6eb
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2a7a7c5e1490c2922c01c5c397793aa03364bbaf..0fdc0ecbaeff775359fd192f4be7e20c8c1339f9 100644
+index 5b7ac9efd45009142dd5da6987e2e9dad5cbba7f..c1ad517b8925ee19b3e251a45816e8a7ecc5e3b8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -178,6 +178,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -177,6 +177,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private double healthScale = 20;
private CraftWorldBorder clientWorldBorder = null;
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
@@ -37,7 +37,7 @@ index 2a7a7c5e1490c2922c01c5c397793aa03364bbaf..0fdc0ecbaeff775359fd192f4be7e20c
public CraftPlayer(CraftServer server, ServerPlayer entity) {
super(server, entity);
-@@ -2334,6 +2338,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2272,6 +2276,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean getAffectsSpawning() {
return this.getHandle().affectsSpawning;
}
@@ -54,8 +54,8 @@ index 2a7a7c5e1490c2922c01c5c397793aa03364bbaf..0fdc0ecbaeff775359fd192f4be7e20c
+
+ @Override
+ public void setResourcePack(@NotNull String url, @NotNull String hash, boolean required, net.kyori.adventure.text.Component resourcePackPrompt) {
-+ Validate.notNull(url, "Resource pack URL cannot be null");
-+ Validate.notNull(hash, "Hash cannot be null");
++ Preconditions.checkArgument(url != null, "Resource pack URL cannot be null");
++ Preconditions.checkArgument(hash != null, "Hash cannot be null");
+ net.minecraft.network.chat.Component promptComponent = resourcePackPrompt != null ?
+ io.papermc.paper.adventure.PaperAdventure.asVanilla(resourcePackPrompt) :
+ null;
diff --git a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
index 2e6260b395..ca99eb9d9e 100644
--- a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
+++ b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
@@ -16,10 +16,10 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe
A config option has been added for those who depend on the previous behavior, but I don't expect that.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1cca43506306994e740278a581b0d33924d08491..e509ab35bf8ffba3c1e04f1236f98c24c1e010f4 100644
+index bf9d7ae4366e44938306e3f8e94376796284a263..43c2e3f0db683022179ae4c85703390be5bdb759 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -457,6 +457,7 @@ public final class CraftServer implements Server {
+@@ -456,6 +456,7 @@ public final class CraftServer implements Server {
if (type == PluginLoadOrder.STARTUP) {
this.helpMap.clear();
this.helpMap.initializeGeneralTopics();
@@ -27,7 +27,7 @@ index 1cca43506306994e740278a581b0d33924d08491..e509ab35bf8ffba3c1e04f1236f98c24
}
Plugin[] plugins = this.pluginManager.getPlugins();
-@@ -476,7 +477,7 @@ public final class CraftServer implements Server {
+@@ -475,7 +476,7 @@ public final class CraftServer implements Server {
this.commandMap.registerServerAliases();
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
diff --git a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
index 2c35743bdb..a30ddc19c4 100644
--- a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
+++ b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions
https://github.com/PaperMC/Paper/issues/49
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e509ab35bf8ffba3c1e04f1236f98c24c1e010f4..dea53897919d46b90c99577fbb1985b2d0c65b5e 100644
+index 43c2e3f0db683022179ae4c85703390be5bdb759..22d11ee1d782ba1218357ee16b05de3414924aeb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2603,5 +2603,23 @@ public final class CraftServer implements Server {
+@@ -2624,5 +2624,23 @@ public final class CraftServer implements Server {
}
return this.adventure$audiences;
}
diff --git a/patches/server/0068-Remove-Metadata-on-reload.patch b/patches/server/0068-Remove-Metadata-on-reload.patch
index 6bff5918c0..2f5734a37c 100644
--- a/patches/server/0068-Remove-Metadata-on-reload.patch
+++ b/patches/server/0068-Remove-Metadata-on-reload.patch
@@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive
This will remove metadata on reload so it does not crash everything if a plugin uses it.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dea53897919d46b90c99577fbb1985b2d0c65b5e..dbad9e72121562d22f8476bade4032661e280066 100644
+index 22d11ee1d782ba1218357ee16b05de3414924aeb..83119de3ae3e38ba4bb77abf005043cfa82c4670 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -962,8 +962,16 @@ public final class CraftServer implements Server {
+@@ -969,8 +969,16 @@ public final class CraftServer implements Server {
world.spigotConfig.init(); // Spigot
}
diff --git a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
index 8e3b84a6df..b52904d516 100644
--- a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
+++ b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
@@ -70,20 +70,12 @@ index 2e948330c4951e3df7091fa870573f163d2af286..4b19057fba6c6645dc79f6572a3fb01c
public boolean isEnchanted() {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index ae55364f6c33687361c053d90ad47c6192a1e62b..bdfce4a49cc6fed46de5864d1c443038f44027fb 100644
+index 34a54a99e7484b2934e1d174c1b55f0472ff3812..7fd9a3a7f4cb98d89b7c4cbfda756d581963e5bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -6,7 +6,6 @@ import java.util.Map;
- import net.minecraft.nbt.CompoundTag;
- import net.minecraft.nbt.ListTag;
- import net.minecraft.world.item.Item;
--import net.minecraft.world.item.enchantment.EnchantmentHelper;
- import org.apache.commons.lang.Validate;
- import org.bukkit.Material;
- import org.bukkit.NamespacedKey;
-@@ -178,28 +177,11 @@ public final class CraftItemStack extends ItemStack {
+@@ -178,28 +178,11 @@ public final class CraftItemStack extends ItemStack {
public void addUnsafeEnchantment(Enchantment ench, int level) {
- Validate.notNull(ench, "Cannot add null enchantment");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
- if (!CraftItemStack.makeTag(this.handle)) {
- return;
@@ -115,17 +107,9 @@ index ae55364f6c33687361c053d90ad47c6192a1e62b..bdfce4a49cc6fed46de5864d1c443038
}
static boolean makeTag(net.minecraft.world.item.ItemStack item) {
-@@ -225,57 +207,29 @@ public final class CraftItemStack extends ItemStack {
- if (this.handle == null) {
- return 0;
- }
-- return EnchantmentHelper.getItemEnchantmentLevel(CraftEnchantment.getRaw(ench), handle);
-+ return net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(CraftEnchantment.getRaw(ench), handle); // Paper
- }
-
- @Override
+@@ -232,50 +215,22 @@ public final class CraftItemStack extends ItemStack {
public int removeEnchantment(Enchantment ench) {
- Validate.notNull(ench, "Cannot remove null enchantment");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
- ListTag list = CraftItemStack.getEnchantmentList(this.handle), listCopy;
- if (list == null) {
@@ -184,7 +168,7 @@ index ae55364f6c33687361c053d90ad47c6192a1e62b..bdfce4a49cc6fed46de5864d1c443038
static Map getEnchantments(net.minecraft.world.item.ItemStack item) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f02693fee 100644
+index b01c268d179591a0113e4bfb46f3d6d22933efaf..bfd5661d55a6ed767cb3bed2d9bb24535c1f7335 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList;
@@ -211,7 +195,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Nonnull;
-@@ -276,7 +279,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -275,7 +278,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
private List lore; // null and empty are two different states internally
private Integer customModelData;
private CompoundTag blockData;
@@ -220,7 +204,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
private Multimap attributeModifiers;
private int repairCost;
private int hideFlag;
-@@ -287,7 +290,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -286,7 +289,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
private CompoundTag internalTag;
@@ -229,7 +213,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY);
private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only
-@@ -308,7 +311,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -307,7 +310,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.blockData = meta.blockData;
if (meta.enchantments != null) { // Spigot
@@ -238,7 +222,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
}
if (meta.hasAttributeModifiers()) {
-@@ -391,13 +394,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -390,13 +393,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -254,7 +238,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
for (int i = 0; i < ench.size(); i++) {
String id = ((CompoundTag) ench.get(i)).getString(ENCHANTMENTS_ID.NBT);
-@@ -550,13 +553,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -549,13 +552,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -270,7 +254,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
for (Map.Entry, ?> entry : ench.entrySet()) {
// Doctor older enchants
String enchantKey = entry.getKey().toString();
-@@ -832,14 +835,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -831,14 +834,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public Map getEnchants() {
@@ -280,14 +264,14 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
@Override
public boolean addEnchant(Enchantment ench, int level, boolean ignoreRestrictions) {
- Validate.notNull(ench, "Enchantment cannot be null");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
if (this.enchantments == null) {
- this.enchantments = new LinkedHashMap(4);
+ this.enchantments = new EnchantmentMap(); // Paper
}
if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) {
-@@ -1228,7 +1231,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1227,7 +1230,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.customModelData = this.customModelData;
clone.blockData = this.blockData;
if (this.enchantments != null) {
@@ -296,7 +280,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
}
if (this.hasAttributeModifiers()) {
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
-@@ -1467,4 +1470,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1464,4 +1467,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return CraftMetaItem.HANDLED_TAGS;
}
}
diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index 3fc589185e..c3861ff441 100644
--- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -44,10 +44,10 @@ index 1238da8b035a0b0dd3d00557ca0de7a82f5fdf53..5e40ee2695b7ed50fddc0e8226f0b1b4
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0fdc0ecbaeff775359fd192f4be7e20c8c1339f9..a47334fbef1056f644b588453666039f4daa3e33 100644
+index c1ad517b8925ee19b3e251a45816e8a7ecc5e3b8..10a42c5c69ea99bc90d08b51bc9f342504d1da7d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2138,6 +2138,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2076,6 +2076,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setRealHealth(double health) {
diff --git a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
index 42404327c2..d2397e8813 100644
--- a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
+++ b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener
Saves on some object allocation and processing when no plugin listens to this
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 821725460b62ebadedb789f4408ef172416c2092..81abb732e2bb3bca683028d505e7485052c0ec8d 100644
+index 3ff9a5a8f4b9a91958f6d846a7a5337a01dbb803..1af6a1ed4111e5e1feaede68be2783070ed90c76 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1367,6 +1367,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop {
-@@ -2326,9 +2328,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop pendingBlockEntityTickers = Lists.newArrayList();
private boolean tickingBlockEntities;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 7b6673c18d77dc03038924008775f73bf8261658..f7938024605e61cdeee5668190abbf336611f425 100644
+index 4a3593f24fc844a6a8b1b6c28ad2dc9c609c29ad..04a12be27ea3f7b8c0dd2bb2c8f4f0a4b90de1b2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -155,6 +155,56 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -154,6 +154,56 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY);
private net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
diff --git a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index c1fa57b321..ce55e169ff 100644
--- a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
@@ -324,10 +324,10 @@ index 9113fd7070596ecf504837f335022d5eb4ef9a77..d56a64b058d8848e405e33d9884a61ea
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index e6eb4a903a43572cfda72db52a1d9c6a6fd46dee..101dac0fcabc5fd696f58ec52ad1fc93a2d0afeb 100644
+index 6a4e30365f015b6aaf7ca18d7b31ff1523ebdf0c..002875dc5ee549c5d192d90c6e4daf59c1f7c0ff 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -946,7 +946,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -942,7 +942,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
} else if (TNTPrimed.class.isAssignableFrom(clazz)) {
entity = new PrimedTnt(world, x, y, z, null);
} else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
diff --git a/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch b/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch
index eacad1fb97..bec7645bbb 100644
--- a/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch
+++ b/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch
@@ -9,19 +9,19 @@ One report of a suspected memory leak with the system.
This adds additional overhead to asynchronous task dispatching
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index dfc2789009fcaa08baa8054bdac915590b8701d6..d96292052633941102c052894bef747817b2998f 100644
+index 833240d2a4936343710a60876a66d01112e15a2c..ef4fdfa3fbe8216a0a020949347bc992cd5c0c60 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -445,7 +445,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -442,7 +442,7 @@ public class CraftScheduler implements BukkitScheduler {
}
this.parsePending();
} else {
- this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass()));
-+ //this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
- this.executor.execute(new ServerSchedulerReportingWrapper(task)); // Paper
++ // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
+ this.executor.execute(new com.destroystokyo.paper.ServerSchedulerReportingWrapper(task)); // Paper
// We don't need to parse pending
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
-@@ -462,7 +462,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -459,7 +459,7 @@ public class CraftScheduler implements BukkitScheduler {
this.pending.addAll(temp);
temp.clear();
MinecraftTimings.bukkitSchedulerFinishTimer.stopTiming(); // Paper
@@ -30,7 +30,7 @@ index dfc2789009fcaa08baa8054bdac915590b8701d6..d96292052633941102c052894bef7478
}
private void addTask(final CraftTask task) {
-@@ -527,10 +527,15 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -523,10 +523,15 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public String toString() {
diff --git a/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch
index 4d422108dd..737dc557e9 100644
--- a/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch
+++ b/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch
@@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result
in corruption/dataloss.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 14edacfd5cc77cc85dc84e3fdad94be8c8932dc6..79b4139b653a09142e1b624849ad7c529c35450d 100644
+index 006289473c03c8484b26264c61eaf6a5e73658c0..72161fef4ff8a469e028d136f71dda86e6220d0a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -237,6 +237,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop processQueue = new java.util.concurrent.ConcurrentLinkedQueue();
public int autosavePeriod;
-@@ -370,7 +370,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a9cab02b97f85fec31ad636f7a340066d409be36..03ea44619bc3445956f3e4539fc0e2923a29a92d 100644
+index bc96f426d488d2a206b763dccdc4034fe24f269d..82db70c548336ada2af556251b8ae8d189417024 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -169,8 +169,7 @@ public abstract class PlayerList {
@@ -369,7 +369,7 @@ index a9cab02b97f85fec31ad636f7a340066d409be36..03ea44619bc3445956f3e4539fc0e292
this.bans = new UserBanList(PlayerList.USERBANLIST_FILE);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a147ca79e6c4a5c8d4aeb6a76c82eaae3491f51d..50ed2032d2cb285f24e93d246f6c42207e1213ad 100644
+index 85b8ae9b40d0f631c91e00a59ce6347fd915bcb5..b91a06359b163b49c506d64b3da2e616e3d9fa40 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -42,7 +42,6 @@ import java.util.logging.Level;
@@ -380,7 +380,7 @@ index a147ca79e6c4a5c8d4aeb6a76c82eaae3491f51d..50ed2032d2cb285f24e93d246f6c4220
import net.minecraft.advancements.Advancement;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
-@@ -1303,9 +1302,13 @@ public final class CraftServer implements Server {
+@@ -1308,9 +1307,13 @@ public final class CraftServer implements Server {
return this.logger;
}
diff --git a/patches/server/0140-Add-UnknownCommandEvent.patch b/patches/server/0140-Add-UnknownCommandEvent.patch
index 4d4669d657..489953e61a 100644
--- a/patches/server/0140-Add-UnknownCommandEvent.patch
+++ b/patches/server/0140-Add-UnknownCommandEvent.patch
@@ -83,10 +83,10 @@ index 2fdfc17ef3daf9fb5cc32c807292c71e256d5356..e3394864e29357fec036f9e616472aea
b1 = 0;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 50ed2032d2cb285f24e93d246f6c42207e1213ad..c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd 100644
+index b91a06359b163b49c506d64b3da2e616e3d9fa40..2e076affd9ee7e407e86586536d02cb8f6f20805 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -523,6 +523,7 @@ public final class CraftServer implements Server {
+@@ -522,6 +522,7 @@ public final class CraftServer implements Server {
}
node = clone;
}
@@ -94,7 +94,7 @@ index 50ed2032d2cb285f24e93d246f6c42207e1213ad..c3e273b7d2f7d0c059f8efbf95e4234c
dispatcher.getDispatcher().getRoot().addChild(node);
} else {
-@@ -904,7 +905,13 @@ public final class CraftServer implements Server {
+@@ -911,7 +912,13 @@ public final class CraftServer implements Server {
// Spigot start
if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) {
diff --git a/patches/server/0141-Basic-PlayerProfile-API.patch b/patches/server/0141-Basic-PlayerProfile-API.patch
index bffd309f82..79e093ddea 100644
--- a/patches/server/0141-Basic-PlayerProfile-API.patch
+++ b/patches/server/0141-Basic-PlayerProfile-API.patch
@@ -631,10 +631,10 @@ index 4038bb76339d43f18770624bd7fecc79b8d7f2a9..2456edc11b29a92b1648937cd3dd6a9a
String s1 = name.toLowerCase(Locale.ROOT);
GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0ad8b5ec64 100644
+index 2e076affd9ee7e407e86586536d02cb8f6f20805..bdee52f1bd2bb34fd0292d35b8b1e7194d7df716 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -258,6 +258,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -257,6 +257,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
@@ -644,7 +644,7 @@ index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0a
public final class CraftServer implements Server {
private final String serverName = "Paper"; // Paper
private final String serverVersion;
-@@ -300,6 +303,7 @@ public final class CraftServer implements Server {
+@@ -299,6 +302,7 @@ public final class CraftServer implements Server {
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
@@ -652,7 +652,7 @@ index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0a
CraftItemFactory.instance();
}
-@@ -2663,5 +2667,37 @@ public final class CraftServer implements Server {
+@@ -2684,5 +2688,37 @@ public final class CraftServer implements Server {
public boolean suggestPlayerNamesWhenNullTabCompletions() {
return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions;
}
@@ -691,7 +691,7 @@ index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0a
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
-index 3e40d47f504248cd7caeef6b841a8aa6f1976170..6ca6467a47c6658d3a2e2029821aa727599a6f74 100644
+index 2375b0bac17dd73d6ee12a94b9e4a4143a2e1c65..d1aab4742b605e8807b0e4ca148abe0ed95039f4 100644
--- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
+++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
@@ -27,7 +27,7 @@ import org.bukkit.profile.PlayerProfile;
@@ -737,7 +737,7 @@ index 3e40d47f504248cd7caeef6b841a8aa6f1976170..6ca6467a47c6658d3a2e2029821aa727
UUID uniqueId = ConfigSerializationUtil.getUuid(map, "uniqueId", true);
String name = ConfigSerializationUtil.getString(map, "name", true);
-@@ -270,7 +275,7 @@ public final class CraftPlayerProfile implements PlayerProfile {
+@@ -268,7 +273,7 @@ public final class CraftPlayerProfile implements PlayerProfile {
profile.properties.put(property.getName(), property);
}
}
diff --git a/patches/server/0142-Shoulder-Entities-Release-API.patch b/patches/server/0142-Shoulder-Entities-Release-API.patch
index b3bbf8aa8a..6795e8e96d 100644
--- a/patches/server/0142-Shoulder-Entities-Release-API.patch
+++ b/patches/server/0142-Shoulder-Entities-Release-API.patch
@@ -59,10 +59,10 @@ index 8ef1798fe9dc42d9f09449ecc7578f4bddff1ed8..85488adc9c822c89ab5778bc1d48c58e
@Override
public abstract boolean isSpectator();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index d39869056d0ac57279e0e9e479ace4a7d402a941..c6b2f1b90735ec75492daf64031d9d33226cdac6 100644
+index abe978078270a45f7e77eb2b8a99309f12ca51ee..2f5704b19148f390402c0823030806ba96860286 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -518,6 +518,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -516,6 +516,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
this.getHandle().getCooldowns().addCooldown(CraftMagicNumbers.getItem(material), ticks);
}
diff --git a/patches/server/0145-Entity-fromMobSpawner.patch b/patches/server/0145-Entity-fromMobSpawner.patch
index b377025343..ca0e39dd5e 100644
--- a/patches/server/0145-Entity-fromMobSpawner.patch
+++ b/patches/server/0145-Entity-fromMobSpawner.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity#fromMobSpawner()
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5c616afddc9a0403787fd2ea2467220d81253541..7232c22ca7f0ed995934db3937861e562525e906 100644
+index 875516b17452968e53efda9d777676ec4bee0f79..16658764ddced4c8e5af6b9f86ad6e99a2b1adee 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -388,6 +388,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -37,22 +37,22 @@ index 5c616afddc9a0403787fd2ea2467220d81253541..7232c22ca7f0ed995934db3937861e56
} catch (Throwable throwable) {
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index 64bd7d265a45575ce46c1a792f90cadc76763871..0f5a5168d168b39f0da3ed12389b11b586d168e6 100644
+index 7ae0465091db8e8061737bf93884afa3db49feeb..5d6403fa27521860a69a707dc4358b013adfafd7 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-@@ -164,6 +164,7 @@ public abstract class BaseSpawner {
- }
+@@ -165,6 +165,7 @@ public abstract class BaseSpawner {
// Spigot End
}
+
+ entity.spawnedViaMobSpawner = true; // Paper
- // Spigot Start
+ // CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) {
- Entity vehicle = entity.getVehicle();
+ continue;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index c9275f73be7332f79312037954f9685f6c1f800f..f1a382d26f6a64b1c3f81fd2f2d5a35c51a63fdb 100644
+index fa2a6f44a1c25fb6c9a19e83e7eddb2c8d28a320..83bde3f87e0861fdfd01f843ccae285b1748619a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1297,5 +1297,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1290,5 +1290,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
//noinspection ConstantConditions
return originVector.toLocation(world);
}
diff --git a/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch b/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch
index ccd3b7baf4..dc38a3b16d 100644
--- a/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch
+++ b/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch
@@ -7,18 +7,18 @@ Not all horses with Saddles have armor. This lets us break up the horses with sa
and access their saddle state separately from an interface shared with Armor.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index d74c9eeb7f622f0a7265fec51d851ffd3de1c69b..a5202ee012034678efbbd5ca1eccf2fd72a315bd 100644
+index 349bc3becee3f878fe8f6bc589cc9fbecf7dd17a..4bb5e953ec0ad6a2e068cb26237bc59e68c13699 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-@@ -5,6 +5,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
- import org.apache.commons.lang.Validate;
+@@ -5,6 +5,7 @@ import java.util.UUID;
+ import net.minecraft.world.entity.ai.attributes.Attributes;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventoryAbstractHorse;
+import org.bukkit.craftbukkit.inventory.CraftSaddledInventory;
import org.bukkit.entity.AbstractHorse;
import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.Horse;
-@@ -108,6 +109,6 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
+@@ -107,6 +108,6 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
@Override
public AbstractHorseInventory getInventory() {
diff --git a/patches/server/0147-Implement-ensureServerConversions-API.patch b/patches/server/0147-Implement-ensureServerConversions-API.patch
index f34ea3e72b..439122668f 100644
--- a/patches/server/0147-Implement-ensureServerConversions-API.patch
+++ b/patches/server/0147-Implement-ensureServerConversions-API.patch
@@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr
to ensure it meets latest minecraft expectations.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 6e050a5cbb877c85595fc97a569c2aafb272ad41..ed9a956b0d88ddcf6c453757bf72287616b81fe2 100644
+index b187c4f436ac44a529675869dbf5bfddc4fac86f..878f69460aed825d5d3204030af2aaa731a99875 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -454,5 +454,11 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -449,5 +449,11 @@ public final class CraftItemFactory implements ItemFactory {
public net.kyori.adventure.text.@org.jetbrains.annotations.NotNull Component displayName(@org.jetbrains.annotations.NotNull ItemStack itemStack) {
return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName());
}
diff --git a/patches/server/0148-Implement-getI18NDisplayName.patch b/patches/server/0148-Implement-getI18NDisplayName.patch
index ddbf2ab85c..4f1cfccf20 100644
--- a/patches/server/0148-Implement-getI18NDisplayName.patch
+++ b/patches/server/0148-Implement-getI18NDisplayName.patch
@@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index ed9a956b0d88ddcf6c453757bf72287616b81fe2..f81ed24f624ff6f99ccad8361209cc409c6b9187 100644
+index 878f69460aed825d5d3204030af2aaa731a99875..f8475390d69bef6f3eca5a57d5f44021fabf4942 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -460,5 +460,18 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -455,5 +455,18 @@ public final class CraftItemFactory implements ItemFactory {
public ItemStack ensureServerConversions(ItemStack item) {
return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item));
}
diff --git a/patches/server/0151-LivingEntity-setKiller.patch b/patches/server/0151-LivingEntity-setKiller.patch
index 0612bec621..e6e7fff121 100644
--- a/patches/server/0151-LivingEntity-setKiller.patch
+++ b/patches/server/0151-LivingEntity-setKiller.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] LivingEntity#setKiller
public net.minecraft.world.entity.LivingEntity lastHurtByPlayerTime
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 3084fa8000b36f06e8d432bff124a5af4ea675ea..31f31f0a3dcd5764fffb710111b47359f793b9a2 100644
+index fcb07a5f8cac994b731e3345ba9e971faa482fa1..0fb61f37da9ef3e33803b41bd72e0bda5425eceb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -353,6 +353,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -352,6 +352,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return this.getHandle().lastHurtByPlayer == null ? null : (Player) this.getHandle().lastHurtByPlayer.getBukkitEntity();
}
diff --git a/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
index 65092a2a40..71cdedc8fa 100644
--- a/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
+++ b/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
@@ -5,18 +5,18 @@ Subject: [PATCH] Reset spawner timer when spawner event is cancelled
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index 0f5a5168d168b39f0da3ed12389b11b586d168e6..8540905242fc84ab8a26cf0a8e875ef252bc3d5d 100644
+index 5d6403fa27521860a69a707dc4358b013adfafd7..20c39481bcf05e0d43c97b7e841ec9f5f6a0d45d 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-@@ -165,6 +165,7 @@ public abstract class BaseSpawner {
- // Spigot End
+@@ -166,6 +166,7 @@ public abstract class BaseSpawner {
}
+
entity.spawnedViaMobSpawner = true; // Paper
+ flag = true; // Paper
- // Spigot Start
+ // CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) {
- Entity vehicle = entity.getVehicle();
-@@ -189,7 +190,7 @@ public abstract class BaseSpawner {
+ continue;
+@@ -182,7 +183,7 @@ public abstract class BaseSpawner {
((Mob) entity).spawnAnim();
}
diff --git a/patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch
index df49cf655e..55f6c51623 100644
--- a/patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch
+++ b/patches/server/0158-handle-ServerboundKeepAlivePacket-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/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 6928d2fb7493206ab84bedc39434285f45d9dc38..95256c095626f429315b80df86876b18112989bc 100644
+index 38227e58773a4e47b2bd71daec7ce479892a19f3..cb8b31c34fe4d3ee6f383ff9d32cf13552879332 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3108,14 +3108,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3111,14 +3111,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
diff --git a/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
index c50124bbc4..1e8e7329f9 100644
--- a/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
+++ b/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
@@ -90,10 +90,10 @@ index 77d7f070cce1a47e41b5d4f5a1cc8c778352a126..a3b610cb1ed97a635677bc46ccdf0463
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6de07ae1c6d2130eb7feef6f169a288d0fdfd77b..bc920ff2bfcdb7ecad3b57ebca6d3ed94771a55a 100644
+index 79d061d07569207fde3bb4b959589ba3f0cba981..55a934e2fc4facd47eede4c95fe76a61105e7582 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -275,6 +275,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -274,6 +274,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
diff --git a/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
index 9257eaaacf..aeae614ac2 100644
--- a/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
+++ b/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
@@ -51,10 +51,10 @@ index 63acd109a79ed752a05df3d4f1b99309297c2055..d156f7cc71050f13b2feca00c52ca6b6
return null;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 0c2a2b69eed7022f6636ced634a1d31d1fa99ad7..d6b44134781007d29f4042d5ab707188c965331b 100644
+index e5750b2459e5a7513b34d644f672f3e06181172d..3205d86a63f8fcf3ccd13c6be0e0eefc27beb62a 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -333,6 +333,13 @@ public class CraftBlock implements Block {
+@@ -332,6 +332,13 @@ public class CraftBlock implements Block {
return CraftBlockStates.getBlockState(this);
}
@@ -149,7 +149,7 @@ index a69a03a7954b03a0aeca7a74d89756dd38ca6faf..17e1131c79ad140c0803a914621ce792
public static BlockState getBlockState(Material material, @Nullable CompoundTag blockEntityTag) {
diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
-index 3fc3907172f12ee24ea70bd6a1ffbbc6084ed971..2c59f09a9261a1690951161fd856a5848d9885b7 100644
+index 6c559b0d7b3d8b95276d16a6af4975fd44de3334..a94389eebe51bb368f759b3f99f0b9ed08ae2bdd 100644
--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
@@ -156,4 +156,10 @@ public class CraftPersistentDataContainer implements PersistentDataContainer {
diff --git a/patches/server/0167-AsyncTabCompleteEvent.patch b/patches/server/0167-AsyncTabCompleteEvent.patch
index a8c75391d6..5986f9ed82 100644
--- a/patches/server/0167-AsyncTabCompleteEvent.patch
+++ b/patches/server/0167-AsyncTabCompleteEvent.patch
@@ -16,7 +16,7 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent
Co-authored-by: Aikar
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 575ecae47633e7a30c8bca57d686dcfc0b31a0df..5d1875b11d4768afc184416e38a0bd3e3334a9ce 100644
+index b4c0e41b1d6e6c9411e1bbf6af07533b8dbb68f7..c66209a33d6bdfda559e16cbc59c66e7a9f4c4de 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -788,12 +788,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -91,10 +91,10 @@ index 575ecae47633e7a30c8bca57d686dcfc0b31a0df..5d1875b11d4768afc184416e38a0bd3e
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c29973de83e827a2f372590a43948b0ad8b5ec64..141bba5e92044437b199b5aa701ded049737c509 100644
+index bdee52f1bd2bb34fd0292d35b8b1e7194d7df716..40090372a983b7064530e982a8ee1a9bc4913dfd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2116,7 +2116,7 @@ public final class CraftServer implements Server {
+@@ -2134,7 +2134,7 @@ public final class CraftServer implements Server {
offers = this.tabCompleteChat(player, message);
}
diff --git a/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
index 8adaef1d34..99231f6ac8 100644
--- a/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
@@ -14,10 +14,10 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I
public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index bc920ff2bfcdb7ecad3b57ebca6d3ed94771a55a..fd7e9909875961a1a7288f235ef73de518467f25 100644
+index 55a934e2fc4facd47eede4c95fe76a61105e7582..77e5c017cef9809bf60c5aa77b245d76a1982a9f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1509,7 +1509,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1460,7 +1460,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
@Override
diff --git a/patches/server/0175-Add-ArmorStand-Item-Meta.patch b/patches/server/0175-Add-ArmorStand-Item-Meta.patch
index 3745b7372a..382ebbe746 100644
--- a/patches/server/0175-Add-ArmorStand-Item-Meta.patch
+++ b/patches/server/0175-Add-ArmorStand-Item-Meta.patch
@@ -255,10 +255,10 @@ index 4017933f2244fca32cf9d39444f3a4f550e8af01..e721517ce7b52a1aa10d039aa9f309eb
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 5d892f76f42486ce1890fe0507b19b2f02693fee..134c91f69f5b532ed67428c097d93b38a83df01a 100644
+index bfd5661d55a6ed767cb3bed2d9bb24535c1f7335..01e09dfc00b2ae9ecd39bea37f229ad826de121c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -1460,6 +1460,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1457,6 +1457,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CraftMetaCrossbow.CHARGED.NBT,
CraftMetaCrossbow.CHARGED_PROJECTILES.NBT,
CraftMetaSuspiciousStew.EFFECTS.NBT,
diff --git a/patches/server/0177-Tameable-getOwnerUniqueId-API.patch b/patches/server/0177-Tameable-getOwnerUniqueId-API.patch
index 7fca628e8a..3cdc82d136 100644
--- a/patches/server/0177-Tameable-getOwnerUniqueId-API.patch
+++ b/patches/server/0177-Tameable-getOwnerUniqueId-API.patch
@@ -7,10 +7,10 @@ This is faster if all you need is the UUID, as .getOwner() will cause
an OfflinePlayer to be loaded from disk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index a5202ee012034678efbbd5ca1eccf2fd72a315bd..254d4f2e45d7c8f572a4368eccd84560d4d0d836 100644
+index 4bb5e953ec0ad6a2e068cb26237bc59e68c13699..3f1f4d65525562b3117fdc21c8a7f535b12c3c46 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-@@ -89,6 +89,10 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
+@@ -88,6 +88,10 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
}
}
diff --git a/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch
index 335ada6c02..da614a11a7 100644
--- a/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch
+++ b/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch
@@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603
+
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index bc96a5c546c01b092f513f202e833b7b5f320e72..a003144fb74c9e7314b24216bc0e506e3d2bde0f 100644
+index a6d6652fab0dcb490b4229cbf6a7a63112cbfa26..010318abbb6fadbadade8926793786eced6775d3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -3,6 +3,9 @@ package net.minecraft.server;
@@ -194,7 +194,7 @@ index bc96a5c546c01b092f513f202e833b7b5f320e72..a003144fb74c9e7314b24216bc0e506e
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
-@@ -1347,7 +1350,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop() {
@Override
public int compare(final CraftTask o1, final CraftTask o2) {
-@@ -95,12 +95,13 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -92,12 +92,13 @@ public class CraftScheduler implements BukkitScheduler {
/**
* These are tasks that are currently active. It's provided for 'viewing' the current state.
*/
@@ -187,7 +187,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
private final Executor executor = Executors.newCachedThreadPool(new ThreadFactoryBuilder().setNameFormat("Craft Scheduler Thread - %d").build());
private CraftAsyncDebugger debugHead = new CraftAsyncDebugger(-1, null, null) {
@Override
-@@ -109,12 +110,31 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -106,12 +107,31 @@ public class CraftScheduler implements BukkitScheduler {
}
};
private CraftAsyncDebugger debugTail = this.debugHead;
@@ -219,7 +219,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
@Override
public int scheduleSyncDelayedTask(final Plugin plugin, final Runnable task) {
return this.scheduleSyncDelayedTask(plugin, task, 0L);
-@@ -237,7 +257,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -234,7 +254,7 @@ public class CraftScheduler implements BukkitScheduler {
} else if (period < CraftTask.NO_REPEATING) {
period = CraftTask.NO_REPEATING;
}
@@ -228,7 +228,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
}
@Override
-@@ -253,6 +273,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -250,6 +270,11 @@ public class CraftScheduler implements BukkitScheduler {
if (taskId <= 0) {
return;
}
@@ -240,10 +240,10 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
CraftTask task = this.runners.get(taskId);
if (task != null) {
task.cancel0();
-@@ -295,6 +320,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -292,6 +317,11 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public void cancelTasks(final Plugin plugin) {
- Validate.notNull(plugin, "Cannot cancel tasks of null plugin");
+ Preconditions.checkArgument(plugin != null, "Cannot cancel tasks of null plugin");
+ // Paper start
+ if (!this.isAsyncScheduler) {
+ this.asyncScheduler.cancelTasks(plugin);
@@ -252,7 +252,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final CraftTask task = new CraftTask(
new Runnable() {
@Override
-@@ -334,6 +364,13 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -331,6 +361,13 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public boolean isCurrentlyRunning(final int taskId) {
@@ -266,7 +266,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final CraftTask task = this.runners.get(taskId);
if (task == null) {
return false;
-@@ -352,6 +389,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -349,6 +386,11 @@ public class CraftScheduler implements BukkitScheduler {
if (taskId <= 0) {
return false;
}
@@ -278,7 +278,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
for (CraftTask task = this.head.getNext(); task != null; task = task.getNext()) {
if (task.getTaskId() == taskId) {
return task.getPeriod() >= CraftTask.NO_REPEATING; // The task will run
-@@ -363,6 +405,12 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -360,6 +402,12 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public List getActiveWorkers() {
@@ -291,7 +291,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final ArrayList workers = new ArrayList();
for (final CraftTask taskObj : this.runners.values()) {
// Iterator will be a best-effort (may fail to grab very new values) if called from an async thread
-@@ -400,6 +448,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -397,6 +445,11 @@ public class CraftScheduler implements BukkitScheduler {
pending.add(task);
}
}
@@ -303,7 +303,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
return pending;
}
-@@ -407,6 +460,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -404,6 +457,11 @@ public class CraftScheduler implements BukkitScheduler {
* This method is designed to never block or wait for locks; an immediate execution of all current tasks.
*/
public void mainThreadHeartbeat(final int currentTick) {
@@ -315,16 +315,16 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
this.currentTick = currentTick;
final List temp = this.temp;
this.parsePending();
-@@ -446,7 +504,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -443,7 +501,7 @@ public class CraftScheduler implements BukkitScheduler {
this.parsePending();
} else {
- //this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
-- this.executor.execute(new ServerSchedulerReportingWrapper(task)); // Paper
+ // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
+- this.executor.execute(new com.destroystokyo.paper.ServerSchedulerReportingWrapper(task)); // Paper
+ task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Paper"); // Paper
// We don't need to parse pending
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
-@@ -465,7 +523,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -462,7 +520,7 @@ public class CraftScheduler implements BukkitScheduler {
//this.debugHead = this.debugHead.getNextHead(currentTick); // Paper
}
@@ -333,7 +333,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final AtomicReference tail = this.tail;
CraftTask tailTask = tail.get();
while (!tail.compareAndSet(tailTask, task)) {
-@@ -474,7 +532,13 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -471,7 +529,13 @@ public class CraftScheduler implements BukkitScheduler {
tailTask.setNext(task);
}
@@ -348,7 +348,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
task.setNextRun(this.currentTick + delay);
this.addTask(task);
return task;
-@@ -498,8 +562,8 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -494,8 +558,8 @@ public class CraftScheduler implements BukkitScheduler {
return id;
}
@@ -359,7 +359,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
CraftTask head = this.head;
CraftTask task = head.getNext();
CraftTask lastTask = head;
-@@ -518,7 +582,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -514,7 +578,7 @@ public class CraftScheduler implements BukkitScheduler {
task.setNext(null);
}
this.head = lastTask;
diff --git a/patches/server/0187-Flag-to-disable-the-channel-limit.patch b/patches/server/0187-Flag-to-disable-the-channel-limit.patch
index a46d383e60..890c01d404 100644
--- a/patches/server/0187-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0187-Flag-to-disable-the-channel-limit.patch
@@ -9,10 +9,10 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 26e89e7c9d648b9b1ce33714da8503122f100a9f..529812295ee99b4425ef95d0c5a972ba27c6f2b1 100644
+index a8930679d566fcbd0557b3023248ded393754c8d..62d04140dec79c108e38754e69b60ecaf36dc3c5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -181,6 +181,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper start
private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus;
private String resourcePackHash;
@@ -20,7 +20,7 @@ index 26e89e7c9d648b9b1ce33714da8503122f100a9f..529812295ee99b4425ef95d0c5a972ba
// Paper end
public CraftPlayer(CraftServer server, ServerPlayer entity) {
-@@ -2034,7 +2035,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1985,7 +1986,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
public void addChannel(String channel) {
diff --git a/patches/server/0188-Add-openSign-method-to-HumanEntity.patch b/patches/server/0188-Add-openSign-method-to-HumanEntity.patch
index b91d3c8b72..45ac3fe3c6 100644
--- a/patches/server/0188-Add-openSign-method-to-HumanEntity.patch
+++ b/patches/server/0188-Add-openSign-method-to-HumanEntity.patch
@@ -28,10 +28,10 @@ index cc6aab5341365f9b4ec3cb23e2a4f5006aa75cd7..78b57aa3120f8526b4bff2ca90d77358
// Paper start
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index c6b2f1b90735ec75492daf64031d9d33226cdac6..4f2a15ff2d4381765c608260c54494f6a11a66cf 100644
+index 2f5704b19148f390402c0823030806ba96860286..f59733b6918dcbbb2190f76d8b8841a2d8818cdf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -628,6 +628,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -626,6 +626,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
}
}
diff --git a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
index 39416db812..cd8a1df970 100644
--- a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -34,20 +34,21 @@ index f2eefdeab44ad4f7c0abd0e55e688e74a83abfff..68257f257dd3b167e237482c8d149590
if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f7938024605e61cdeee5668190abbf336611f425..fbbabae86ebca984c975b64a78a05354697b658f 100644
+index 04a12be27ea3f7b8c0dd2bb2c8f4f0a4b90de1b2..5f8ce418d0a906f576622c3387d15c3969812611 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1856,11 +1856,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1863,11 +1863,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
+- if (data != null) {
+ // Paper start - Particle API Expansion
+ spawnParticle(particle, null, null, x, y, z, count, offsetX, offsetY, offsetZ, extra, data, force);
+ }
+ public void spawnParticle(Particle particle, List receivers, Player sender, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
+ // Paper end
- if (data != null && !particle.getDataType().isInstance(data)) {
- throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass());
++ if (data != null && !particle.getDataType().isInstance(data)) {
+ Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
}
this.getHandle().sendParticles(
- null, // Sender
diff --git a/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
index 154d72d6fe..5d2bb7facd 100644
--- a/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
+++ b/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
@@ -8,10 +8,10 @@ This API has more capabilities than .dropItem with the Consumer function
Item can be set inside of the Consumer pre spawn function.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 101dac0fcabc5fd696f58ec52ad1fc93a2d0afeb..cb6f5fc352aff449173825d4e7fad9fccb9df915 100644
+index 002875dc5ee549c5d192d90c6e4daf59c1f7c0ff..bdc752631136a4abe903e7a8f182e9eda480fcb6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -593,6 +593,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -592,6 +592,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
entity = net.minecraft.world.entity.EntityType.BOAT.create(world);
}
entity.moveTo(x, y, z, yaw, pitch);
diff --git a/patches/server/0201-ItemStack-getMaxItemUseDuration.patch b/patches/server/0201-ItemStack-getMaxItemUseDuration.patch
index 7248ef4436..3dc9b55c1f 100644
--- a/patches/server/0201-ItemStack-getMaxItemUseDuration.patch
+++ b/patches/server/0201-ItemStack-getMaxItemUseDuration.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration
Allows you to determine how long it takes to use a usable/consumable item
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index bdfce4a49cc6fed46de5864d1c443038f44027fb..e9ea9c85544a895dcf4220d907744996e6e077d4 100644
+index 7fd9a3a7f4cb98d89b7c4cbfda756d581963e5bf..0ac686e880f0f87ab3f6dbed77e553d7568b3305 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -173,6 +173,13 @@ public final class CraftItemStack extends ItemStack {
+@@ -174,6 +174,13 @@ public final class CraftItemStack extends ItemStack {
return (this.handle == null) ? Material.AIR.getMaxStackSize() : this.handle.getItem().getMaxStackSize();
}
@@ -22,4 +22,4 @@ index bdfce4a49cc6fed46de5864d1c443038f44027fb..e9ea9c85544a895dcf4220d907744996
+
@Override
public void addUnsafeEnchantment(Enchantment ench, int level) {
- Validate.notNull(ench, "Cannot add null enchantment");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
diff --git a/patches/server/0204-Fix-CraftEntity-hashCode.patch b/patches/server/0204-Fix-CraftEntity-hashCode.patch
index 71ae889ef4..a1ed33d54c 100644
--- a/patches/server/0204-Fix-CraftEntity-hashCode.patch
+++ b/patches/server/0204-Fix-CraftEntity-hashCode.patch
@@ -21,10 +21,10 @@ check is essentially the same as this.getHandle() == other.getHandle()
However, replaced it too to make it clearer of intent.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index f1a382d26f6a64b1c3f81fd2f2d5a35c51a63fdb..18967257c5c217868a5356369e3e3b200044aa39 100644
+index 83bde3f87e0861fdfd01f843ccae285b1748619a..9614a0bd83139e8d62f60fe04f017e0cb0f828c9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -837,14 +837,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -830,14 +830,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return false;
}
final CraftEntity other = (CraftEntity) obj;
diff --git a/patches/server/0207-Make-shield-blocking-delay-configurable.patch b/patches/server/0207-Make-shield-blocking-delay-configurable.patch
index 690f9ca964..5d4a6a2ef0 100644
--- a/patches/server/0207-Make-shield-blocking-delay-configurable.patch
+++ b/patches/server/0207-Make-shield-blocking-delay-configurable.patch
@@ -35,10 +35,10 @@ index c3ad63e1882d53f4207f4f08b55088d175360e8d..f894ffb7c9575d7337353ab8aaaf0b96
return this.isShiftKeyDown();
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 31f31f0a3dcd5764fffb710111b47359f793b9a2..104be41126252f9cdde3b961f2593b1348a38799 100644
+index 0fb61f37da9ef3e33803b41bd72e0bda5425eceb..b02d668243478c2cdc3d0212cec6f2e12a80414f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -791,5 +791,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -788,5 +788,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setArrowsStuck(final int arrows) {
this.getHandle().setArrowCount(arrows);
}
diff --git a/patches/server/0211-Expand-Explosions-API.patch b/patches/server/0211-Expand-Explosions-API.patch
index 77911f2f86..98ca885cf2 100644
--- a/patches/server/0211-Expand-Explosions-API.patch
+++ b/patches/server/0211-Expand-Explosions-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API
Add Entity as a Source capability, and add more API choices, and on Location.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index fbbabae86ebca984c975b64a78a05354697b658f..1e4c89c1e0a01650711986310314ef342a2afbb4 100644
+index 5f8ce418d0a906f576622c3387d15c3969812611..4a64fda12ef5e5d07fe0b28c755a5b9fd96358e6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -711,6 +711,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -716,6 +716,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) {
return !this.world.explode(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? net.minecraft.world.level.Level.ExplosionInteraction.MOB : net.minecraft.world.level.Level.ExplosionInteraction.NONE).wasCanceled;
}
diff --git a/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
index aaaa299a9a..4d12e9763e 100644
--- a/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
+++ b/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] LivingEntity Hand Raised/Item Use API
How long an entity has raised hands to charge an attack or use an item
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 104be41126252f9cdde3b961f2593b1348a38799..a9642e95cde4dc1c3cb9da50c921171c47665536 100644
+index b02d668243478c2cdc3d0212cec6f2e12a80414f..6c4ff1acbf09987f8d6a4b4b2c62fce264430706 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -801,5 +801,30 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -798,5 +798,30 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setShieldBlockingDelay(int delay) {
getHandle().setShieldBlockingDelay(delay);
}
diff --git a/patches/server/0215-Implement-World.getEntity-UUID-API.patch b/patches/server/0215-Implement-World.getEntity-UUID-API.patch
index f13d5bbabe..91b154cf4e 100644
--- a/patches/server/0215-Implement-World.getEntity-UUID-API.patch
+++ b/patches/server/0215-Implement-World.getEntity-UUID-API.patch
@@ -5,17 +5,17 @@ Subject: [PATCH] Implement World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 1e4c89c1e0a01650711986310314ef342a2afbb4..3e14eb63d57d8a9801185549deeafc6c5e09b50c 100644
+index 4a64fda12ef5e5d07fe0b28c755a5b9fd96358e6..b003de51df51bbe31c76289dcdf1f52051b20d35 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1035,6 +1035,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1040,6 +1040,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return list;
}
+ // Paper start - getEntity by UUID API
+ @Override
+ public Entity getEntity(UUID uuid) {
-+ Validate.notNull(uuid, "UUID cannot be null");
++ Preconditions.checkArgument(uuid != null, "UUID cannot be null");
+ net.minecraft.world.entity.Entity entity = world.getEntity(uuid);
+ return entity == null ? null : entity.getBukkitEntity();
+ }
diff --git a/patches/server/0216-InventoryCloseEvent-Reason-API.patch b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
index 82678d216b..3d1f8d1b17 100644
--- a/patches/server/0216-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
@@ -29,7 +29,7 @@ index 68257f257dd3b167e237482c8d149590103896b2..33ce550ea68d4862e0966ed827200cf4
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 8b5b66c8f55660085ff3af824b8bf0c455be79bc..0578d72681a0d45b6c8d1d6d04208eb14fb60083 100644
+index dda3b911fcaa294ec7b8e9d696880fcb8325f69c..8e2340ca473c8cacfe9d888091834986bad101ce 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -682,7 +682,7 @@ public class ServerPlayer extends Player {
@@ -75,7 +75,7 @@ index 8b5b66c8f55660085ff3af824b8bf0c455be79bc..0578d72681a0d45b6c8d1d6d04208eb1
this.doCloseContainer();
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e7d2bd1b2ee80c5cc68048f2d90dcf21e50f04d2..3a3c21132b2a843de642490c7a256e53e2e90453 100644
+index 391295bf6898320421272ad5dfb14e4c5e2d2be0..92d359cfbe6fc5ae6be4931754cdf48ccd92ba13 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -220,6 +220,7 @@ import org.bukkit.event.inventory.ClickType;
@@ -86,7 +86,7 @@ index e7d2bd1b2ee80c5cc68048f2d90dcf21e50f04d2..3a3c21132b2a843de642490c7a256e53
import org.bukkit.event.inventory.InventoryCreativeEvent;
import org.bukkit.event.inventory.InventoryType.SlotType;
import org.bukkit.event.inventory.SmithItemEvent;
-@@ -2679,10 +2680,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2682,10 +2683,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleContainerClose(ServerboundContainerClosePacket packet) {
@@ -104,7 +104,7 @@ index e7d2bd1b2ee80c5cc68048f2d90dcf21e50f04d2..3a3c21132b2a843de642490c7a256e53
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 493099d1a1df085ec909ed6cd65a250c24f28bd1..233e79c71e2c46f4220dd7423ac421be9742f53e 100644
+index 875b08503fbbac256fad1b3f3d9c742bf1cdced2..e00c1916202a4e0550cc19c9cb279448a9fcdd1e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -533,7 +533,7 @@ public abstract class PlayerList {
@@ -144,10 +144,10 @@ index 734d00e84ec0bcef91a12546873de64e33e14d0c..c7bcbc3f0542a74c30e29bded3bfc0e9
this.containerMenu = this.inventoryMenu;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 4f2a15ff2d4381765c608260c54494f6a11a66cf..16381beba53725651a92748f9521bdcb078a489e 100644
+index f59733b6918dcbbb2190f76d8b8841a2d8818cdf..ba6105a970381d642cd7955754cc47135207027a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -378,7 +378,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -376,7 +376,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
if (((ServerPlayer) this.getHandle()).connection == null) return;
if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) {
// fire INVENTORY_CLOSE if one already open
@@ -156,7 +156,7 @@ index 4f2a15ff2d4381765c608260c54494f6a11a66cf..16381beba53725651a92748f9521bdcb
}
ServerPlayer player = (ServerPlayer) this.getHandle();
AbstractContainerMenu container;
-@@ -448,8 +448,14 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -446,8 +446,14 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public void closeInventory() {
@@ -173,10 +173,10 @@ index 4f2a15ff2d4381765c608260c54494f6a11a66cf..16381beba53725651a92748f9521bdcb
@Override
public boolean isBlocking() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 529812295ee99b4425ef95d0c5a972ba27c6f2b1..8c31faad675edffedf8abfa0bc383ecb2fe6ddad 100644
+index 62d04140dec79c108e38754e69b60ecaf36dc3c5..42a1592e6f5a0d60718cb1f8682025bc4be48708 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1212,7 +1212,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1166,7 +1166,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Close any foreign inventory
if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) {
@@ -186,10 +186,10 @@ index 529812295ee99b4425ef95d0c5a972ba27c6f2b1..8c31faad675edffedf8abfa0bc383ecb
// Check if the fromWorld and toWorld are the same.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index beacc9af36eface8cf855ee15fb7bcf7e08f9439..116d3af618351cfec7dc172ba8e5170453b7226d 100644
+index f882b007756edc2f25e913393b7e8b400ccbe50e..1a0a4f2d94b65179426d7b5715847e5ed19489b5 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1261,7 +1261,7 @@ public class CraftEventFactory {
+@@ -1265,7 +1265,7 @@ public class CraftEventFactory {
public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) {
if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open
@@ -198,7 +198,7 @@ index beacc9af36eface8cf855ee15fb7bcf7e08f9439..116d3af618351cfec7dc172ba8e51704
}
CraftServer server = player.level().getCraftServer();
-@@ -1435,8 +1435,18 @@ public class CraftEventFactory {
+@@ -1439,8 +1439,18 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
index eec31863d4..4057901dbd 100644
--- a/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
+++ b/patches/server/0218-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/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3a3c21132b2a843de642490c7a256e53e2e90453..8a2f8b48b23ddfc86746696021e62b96016afa2f 100644
+index 92d359cfbe6fc5ae6be4931754cdf48ccd92ba13..bd608e7ad27fd409442b524600c7a290320c40a7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2561,6 +2561,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2564,6 +2564,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
if (event.isCancelled()) {
diff --git a/patches/server/0226-Vanished-players-don-t-have-rights.patch b/patches/server/0226-Vanished-players-don-t-have-rights.patch
index c75ae55f78..957e9557c2 100644
--- a/patches/server/0226-Vanished-players-don-t-have-rights.patch
+++ b/patches/server/0226-Vanished-players-don-t-have-rights.patch
@@ -89,10 +89,10 @@ index 1beff41c02fb4c22b5474da7c514be2f50f16055..8a53284a5846b25864352e18a5e6b2de
public boolean isClientSide() {
return this.isClientSide;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 116d3af618351cfec7dc172ba8e5170453b7226d..b77fefc9cf30fd438f557e5b56efb4c0251cb17a 100644
+index 1a0a4f2d94b65179426d7b5715847e5ed19489b5..2bb2c3ae7584d45ab9e32f1b9d0fa848e8667fc0 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1298,6 +1298,14 @@ public class CraftEventFactory {
+@@ -1302,6 +1302,14 @@ public class CraftEventFactory {
Projectile projectile = (Projectile) entity.getBukkitEntity();
org.bukkit.entity.Entity collided = position.getEntity().getBukkitEntity();
com.destroystokyo.paper.event.entity.ProjectileCollideEvent event = new com.destroystokyo.paper.event.entity.ProjectileCollideEvent(projectile, collided);
diff --git a/patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch
index 840fa83aff..ce7d42bc7a 100644
--- a/patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch
+++ b/patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch
@@ -11,10 +11,10 @@ Returns true if getDamage() == 0 or has damage tag or other tag is set.
Check the `ItemMetaTest#testTaggedButNotMeta` method to see how this method behaves.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index e9ea9c85544a895dcf4220d907744996e6e077d4..5388a07fd8b5c8a4ea604996fb41e526e0d7c16c 100644
+index 0ac686e880f0f87ab3f6dbed77e553d7568b3305..6775b432e17b09aaa21af5713fa0ffdf7fdbf8a9 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -656,7 +656,7 @@ public final class CraftItemStack extends ItemStack {
+@@ -657,7 +657,7 @@ public final class CraftItemStack extends ItemStack {
@Override
public boolean hasItemMeta() {
diff --git a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
index 4954cf36ff..dff466e366 100644
--- a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
+++ b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
@@ -9,10 +9,10 @@ thread dumps at an interval until the point of crash.
This will help diagnose what was going on in that time before the crash.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index a003144fb74c9e7314b24216bc0e506e3d2bde0f..c7f665cd6879603ee58c85f04c7ae85737e3fc35 100644
+index 010318abbb6fadbadade8926793786eced6775d3..9cd0e389deda8d0bc7a551ff9e8b6bcd51184476 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1050,6 +1050,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop removeItem(ItemStack... items) {
@@ -41,7 +41,7 @@ index 82bc5e0c8d31e07bd48a729ca937367876be0a37..41c6bb644749b350c2e3552bbd0913b1
+
+ private HashMap removeItem(boolean searchEntire, ItemStack... items) {
+ // Paper end
- Validate.notNull(items, "Items cannot be null");
+ Preconditions.checkArgument(items != null, "items cannot be null");
HashMap leftover = new HashMap();
@@ -361,7 +378,10 @@ public class CraftInventory implements Inventory {
diff --git a/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
index 3f1c15ddd6..1f243711dc 100644
--- a/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
+++ b/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 3e14eb63d57d8a9801185549deeafc6c5e09b50c..c5209c25602d32003b0681d55f9b2a428e1a8e2e 100644
+index b003de51df51bbe31c76289dcdf1f52051b20d35..e7aa0e6d78765836a31965ef9c518bfef17e2b03 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -401,7 +401,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -400,7 +400,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
diff --git a/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
index 9d64c920f0..dc6af195b8 100644
--- a/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
+++ b/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
@@ -30,10 +30,10 @@ index 221fa0ca2f1c6e099da5b47ba42548262132d6de..f3af1c540b59819375f70ffbda613560
public int getShieldBlockingDelay() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index a9642e95cde4dc1c3cb9da50c921171c47665536..8601639fd5dfb7ce68d6bd7803efd10438338483 100644
+index 6c4ff1acbf09987f8d6a4b4b2c62fce264430706..bc40c64f8c9ace7dec8f966193f41c626ac14e22 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -200,6 +200,33 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -199,6 +199,33 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return blocks.get(0);
}
diff --git a/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
index 3a3432b77e..118752835b 100644
--- a/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 755aa5e3840f2b8b513351954ae035ad56f23cbb..875ac85307b3a1515aa101892010532a2f9cf4e1 100644
+index 42a1592e6f5a0d60718cb1f8682025bc4be48708..42c0012633f25b432ba2df0db412287bd00a5f5b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2794,6 +2794,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2732,6 +2732,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.adventure$pointers;
}
diff --git a/patches/server/0253-Improve-death-events.patch b/patches/server/0253-Improve-death-events.patch
index 229f8c261b..ea8c552270 100644
--- a/patches/server/0253-Improve-death-events.patch
+++ b/patches/server/0253-Improve-death-events.patch
@@ -19,7 +19,7 @@ public net.minecraft.world.entity.LivingEntity getDeathSound()Lnet/minecraft/sou
public net.minecraft.world.entity.LivingEntity getSoundVolume()F
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 0578d72681a0d45b6c8d1d6d04208eb14fb60083..2b4c0042b1971a9d922c8d32aa74c7f2e4c43341 100644
+index 8e2340ca473c8cacfe9d888091834986bad101ce..0282a467268564c55d9d6e10b0602f952b2ca7ae 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -243,6 +243,10 @@ public class ServerPlayer extends Player {
@@ -357,10 +357,10 @@ index 719f68f96e58ddcdd3592131c691d21263c81915..4413b609f1250cf9477fcb3fecd7b67a
this.gameEvent(GameEvent.ENTITY_DIE);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a825805c4c1506628550864b8d1566727b15a10c..d5631eaed68b6745d8ee43751f6953094adc2c5e 100644
+index 42c0012633f25b432ba2df0db412287bd00a5f5b..cce52883b3ddb9bbf007ed701b291ee548225339 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2294,7 +2294,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2232,7 +2232,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void sendHealthUpdate() {
@@ -377,7 +377,7 @@ index a825805c4c1506628550864b8d1566727b15a10c..d5631eaed68b6745d8ee43751f695309
public void injectScaledMaxHealth(Collection collection, boolean force) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index b77fefc9cf30fd438f557e5b56efb4c0251cb17a..68b1e24a497c052c8e20b946b5b5dabc59e7f539 100644
+index 2bb2c3ae7584d45ab9e32f1b9d0fa848e8667fc0..e8783b2c7083c847770e9f08e796b58e9f8ea6ec 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -824,9 +824,16 @@ public class CraftEventFactory {
diff --git a/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
index 826206d16e..5b6a8a9f46 100644
--- a/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
+++ b/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c078852b251d3 100644
+index 01e09dfc00b2ae9ecd39bea37f229ad826de121c..7c803a928f41938c03b0239cf04e2ee765ecefb8 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -84,6 +84,12 @@ import org.bukkit.persistence.PersistentDataContainer;
+@@ -83,6 +83,12 @@ import org.bukkit.persistence.PersistentDataContainer;
import static org.spigotmc.ValidateUtils.*;
// Spigot end
@@ -21,7 +21,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
/**
* Children must include the following:
*
-@@ -272,6 +278,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -271,6 +277,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Specific(Specific.To.NBT)
static final ItemMetaKey BLOCK_DATA = new ItemMetaKey("BlockStateTag");
static final ItemMetaKey BUKKIT_CUSTOM_TAG = new ItemMetaKey("PublicBukkitValues");
@@ -32,7 +32,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
// We store the raw original JSON representation of all text data. See SPIGOT-5063, SPIGOT-5656, SPIGOT-5304
private String displayName;
-@@ -285,6 +295,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -284,6 +294,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
private int hideFlag;
private boolean unbreakable;
private int damage;
@@ -43,7 +43,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
private static final Set HANDLED_TAGS = Sets.newHashSet();
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
-@@ -322,6 +336,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -321,6 +335,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.hideFlag = meta.hideFlag;
this.unbreakable = meta.unbreakable;
this.damage = meta.damage;
@@ -59,7 +59,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
this.unhandledTags.putAll(meta.unhandledTags);
this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw());
-@@ -385,6 +408,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -384,6 +407,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.persistentDataContainer.put(key, compound.get(key).copy());
}
}
@@ -91,7 +91,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
Set keys = tag.getAllKeys();
for (String key : keys) {
-@@ -523,6 +571,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -522,6 +570,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.setDamage(damage);
}
@@ -126,7 +126,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
String internal = SerializableMeta.getString(map, "internal", true);
if (internal != null) {
ByteArrayInputStream buf = new ByteArrayInputStream(Base64.getDecoder().decode(internal));
-@@ -651,6 +727,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -650,6 +726,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
if (this.hasDamage()) {
itemTag.putInt(DAMAGE.NBT, damage);
}
@@ -150,7 +150,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
for (Map.Entry e : this.unhandledTags.entrySet()) {
itemTag.put(e.getKey(), e.getValue());
-@@ -667,6 +760,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -666,6 +759,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -172,7 +172,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
ListTag createStringList(List list) {
if (list == null) {
return null;
-@@ -750,7 +858,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -749,7 +857,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Overridden
boolean isEmpty() {
@@ -181,7 +181,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
}
// Paper start
-@@ -1182,7 +1290,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1181,7 +1289,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
&& (this.hideFlag == that.hideFlag)
&& (this.isUnbreakable() == that.isUnbreakable())
&& (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage())
@@ -194,7 +194,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
}
/**
-@@ -1217,6 +1329,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1216,6 +1328,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
hash = 61 * hash + (this.hasDamage() ? this.damage : 0);
hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0);
hash = 61 * hash + this.version;
@@ -205,7 +205,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
return hash;
}
-@@ -1241,6 +1357,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1240,6 +1356,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.unbreakable = this.unbreakable;
clone.damage = this.damage;
clone.version = this.version;
@@ -220,7 +220,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
return clone;
} catch (CloneNotSupportedException e) {
throw new Error(e);
-@@ -1298,6 +1422,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1297,6 +1421,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
builder.put(DAMAGE.BUKKIT, damage);
}
@@ -244,7 +244,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
final Map internalTags = new HashMap(this.unhandledTags);
this.serializeInternal(internalTags);
if (!internalTags.isEmpty()) {
-@@ -1467,6 +1608,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1464,6 +1605,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CraftMetaArmorStand.SHOW_ARMS.NBT,
CraftMetaArmorStand.SMALL.NBT,
CraftMetaArmorStand.MARKER.NBT,
@@ -253,7 +253,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
// Paper end
CraftMetaCompass.LODESTONE_DIMENSION.NBT,
CraftMetaCompass.LODESTONE_POS.NBT,
-@@ -1496,4 +1639,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1493,4 +1636,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
// Paper end
@@ -267,7 +267,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+ @Override
+ @SuppressWarnings("deprecation")
+ public void setCanDestroy(Set canDestroy) {
-+ Validate.notNull(canDestroy, "Cannot replace with null set!");
++ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null set!");
+ legacyClearAndReplaceKeys(this.destroyableKeys, canDestroy);
+ }
+
@@ -280,7 +280,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+ @Override
+ @SuppressWarnings("deprecation")
+ public void setCanPlaceOn(Set canPlaceOn) {
-+ Validate.notNull(canPlaceOn, "Cannot replace with null set!");
++ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null set!");
+ legacyClearAndReplaceKeys(this.placeableKeys, canPlaceOn);
+ }
+
@@ -291,8 +291,8 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+
+ @Override
+ public void setDestroyableKeys(Collection canDestroy) {
-+ Validate.notNull(canDestroy, "Cannot replace with null collection!");
-+ Validate.isTrue(ofAcceptableType(canDestroy), "Can only use NamespacedKey or NamespacedTag objects!");
++ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null collection!");
++ Preconditions.checkArgument(ofAcceptableType(canDestroy), "Can only use NamespacedKey or NamespacedTag objects!");
+ this.destroyableKeys.clear();
+ this.destroyableKeys.addAll(canDestroy);
+ }
@@ -304,8 +304,8 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+
+ @Override
+ public void setPlaceableKeys(Collection canPlaceOn) {
-+ Validate.notNull(canPlaceOn, "Cannot replace with null collection!");
-+ Validate.isTrue(ofAcceptableType(canPlaceOn), "Can only use NamespacedKey or NamespacedTag objects!");
++ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null collection!");
++ Preconditions.checkArgument(ofAcceptableType(canPlaceOn), "Can only use NamespacedKey or NamespacedTag objects!");
+ this.placeableKeys.clear();
+ this.placeableKeys.addAll(canPlaceOn);
+ }
diff --git a/patches/server/0265-Add-LivingEntity-getTargetEntity.patch b/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
index 8fb810f286..e82a8ec813 100644
--- a/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
+++ b/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
@@ -56,7 +56,7 @@ index b712f505fd092e0366ffc74ff59345a7f8c701be..6718b4159b1c670e0a15020ee5dba675
public int getShieldBlockingDelay() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 8601639fd5dfb7ce68d6bd7803efd10438338483..b19185c16f8fecbefef697017e8dcfd249306fe3 100644
+index bc40c64f8c9ace7dec8f966193f41c626ac14e22..0c3ac380b9092ff961bce761ddfc835f4bd66544 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -1,5 +1,6 @@
@@ -66,7 +66,7 @@ index 8601639fd5dfb7ce68d6bd7803efd10438338483..b19185c16f8fecbefef697017e8dcfd2
import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
import java.util.ArrayList;
-@@ -225,6 +226,39 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -224,6 +225,39 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
return null;
}
diff --git a/patches/server/0266-Add-sun-related-API.patch b/patches/server/0266-Add-sun-related-API.patch
index da9ff3dfbd..c1cdee93e6 100644
--- a/patches/server/0266-Add-sun-related-API.patch
+++ b/patches/server/0266-Add-sun-related-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add sun related API
public net.minecraft.world.entity.Mob isSunBurnTick()Z
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c5209c25602d32003b0681d55f9b2a428e1a8e2e..81a2f407673eba0943bd7c514561d452197ec85f 100644
+index e7aa0e6d78765836a31965ef9c518bfef17e2b03..b005c956311612bc16b57e0ec9a4f832d9243dce 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -687,6 +687,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -692,6 +692,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
}
}
diff --git a/patches/server/0274-Reset-players-airTicks-on-respawn.patch b/patches/server/0274-Reset-players-airTicks-on-respawn.patch
index 398dc5e797..7c1b5965f6 100644
--- a/patches/server/0274-Reset-players-airTicks-on-respawn.patch
+++ b/patches/server/0274-Reset-players-airTicks-on-respawn.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Reset players airTicks on respawn
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 323ed570882a3cd9b7e8bfdc1390f02e155c2448..698c28b425b82ec024cbdf9e00b15b02b3cab860 100644
+index c151777af839ef237c004a1dd1cd0e849e402f5b..56a9cfdb9dc24bd5bda2818b9f59d1a31dfe9265 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2454,6 +2454,7 @@ public class ServerPlayer extends Player {
@@ -13,6 +13,6 @@ index 323ed570882a3cd9b7e8bfdc1390f02e155c2448..698c28b425b82ec024cbdf9e00b15b02
this.setHealth(this.getMaxHealth());
this.stopUsingItem(); // CraftBukkit - SPIGOT-6682: Clear active item on reset
+ this.setAirSupply(this.getMaxAirSupply()); // Paper
- this.remainingFireTicks = 0;
+ this.setRemainingFireTicks(0);
this.fallDistance = 0;
this.foodData = new FoodData(this);
diff --git a/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
index d3cd6525a9..9afa6988bd 100644
--- a/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
+++ b/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
@@ -79,10 +79,10 @@ index 0f05d26248d8c999048a88796df227a6a1e3755f..7354711e194ab58b11b68f447c1fc795
return executorService;
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index c7f665cd6879603ee58c85f04c7ae85737e3fc35..fb9bc736bddcc992677b8dff5295a4df843f50c4 100644
+index 9cd0e389deda8d0bc7a551ff9e8b6bcd51184476..ed66f20b38fb6cea0dab020d8ffdde894da86113 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -321,6 +321,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -1) {
+ return inactiveWakeUpImmunity;
+ }
-+ if (entity.remainingFireTicks > 0) {
++ if (entity.getRemainingFireTicks() > 0) {
+ return 2;
+ }
+ if (entity.activatedImmunityTick >= MinecraftServer.currentTick) {
@@ -588,7 +588,7 @@ index 0bdd57e214a8652c2ce7c923c28fc17e52624fb5..d0092fa0595bcf3876dec4ef58516089
+ long inactiveFor = MinecraftServer.currentTick - entity.activatedTick;
+ // Paper end
// quick checks.
-- if ( entity.wasTouchingWater || entity.remainingFireTicks > 0 )
+- if ( entity.wasTouchingWater || entity.getRemainingFireTicks() > 0 )
+ if ( (entity.activationType != ActivationType.WATER && entity.wasTouchingWater && entity.isPushedByFluid()) ) // Paper
{
- return true;
diff --git a/patches/server/0343-Anti-Xray.patch b/patches/server/0343-Anti-Xray.patch
index 0b0c374f76..266d228c20 100644
--- a/patches/server/0343-Anti-Xray.patch
+++ b/patches/server/0343-Anti-Xray.patch
@@ -1573,12 +1573,12 @@ index b738e1f7debac7d70910d5ac908ca9d4f60640d5..269ebe8e8826a0c89e471cb59b503900
public CraftChunk(net.minecraft.world.level.chunk.LevelChunk chunk) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a0976fd1b142ac7f26da71720ce40b303e1daabe..d7fe84932e25a76105aa7637247fd4d034985efe 100644
+index 9d477eaa1015b6337a644f1baafd7cba67bb0e4a..f7d2193f7e182e64cd51d3f909e4f0505a388f48 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2264,7 +2264,7 @@ public final class CraftServer implements Server {
+@@ -2280,7 +2280,7 @@ public final class CraftServer implements Server {
public ChunkGenerator.ChunkData createChunkData(World world) {
- Validate.notNull(world, "World cannot be null");
+ Preconditions.checkArgument(world != null, "World cannot be null");
ServerLevel handle = ((CraftWorld) world).getHandle();
- return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME));
+ return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters
@@ -1586,10 +1586,10 @@ index a0976fd1b142ac7f26da71720ce40b303e1daabe..d7fe84932e25a76105aa7637247fd4d0
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f16ab24c0ff5b51432a8cbf9b5e7274c6b99ede6..62a3e2819510a056707dadf79a8e4fc5a9772fd9 100644
+index ad272693251141f60ef68c50cf27f3f005b0acbd..e3308c3e93abf80022a16166c3cc522da8221f34 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -419,11 +419,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -418,11 +418,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
List playersInRange = playerChunk.playerProvider.getPlayers(playerChunk.getPos(), false);
if (playersInRange.isEmpty()) return true; // Paper - rewrite player chunk loader
diff --git a/patches/server/0345-Improve-Block-breakNaturally-API.patch b/patches/server/0345-Improve-Block-breakNaturally-API.patch
index 6750acb88f..4de6b7c5eb 100644
--- a/patches/server/0345-Improve-Block-breakNaturally-API.patch
+++ b/patches/server/0345-Improve-Block-breakNaturally-API.patch
@@ -34,10 +34,10 @@ index 6f9cb55491da718cd6564425748ab3852fda9b68..5fbdc96f29e29dfc092b9e84a988032d
if (world.dimensionType().ultraWarm()) {
world.removeBlock(pos, false);
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 90ec90acd6cfe0dcc677c7f26493fc8184cacca8..c67de2f3bb8b048b8432add4adcb9e6042fb65ad 100644
+index 93bf6b8e30e5e28fa9261b8b927081d85547e400..5534348ddb3ac42b6b8a687816c2c8c1858e3b3e 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -479,6 +479,18 @@ public class CraftBlock implements Block {
+@@ -477,6 +477,18 @@ public class CraftBlock implements Block {
@Override
public boolean breakNaturally(ItemStack item) {
@@ -56,7 +56,7 @@ index 90ec90acd6cfe0dcc677c7f26493fc8184cacca8..c67de2f3bb8b048b8432add4adcb9e60
// Order matters here, need to drop before setting to air so skulls can get their data
net.minecraft.world.level.block.state.BlockState iblockdata = this.getNMS();
net.minecraft.world.level.block.Block block = iblockdata.getBlock();
-@@ -488,11 +500,35 @@ public class CraftBlock implements Block {
+@@ -486,11 +498,35 @@ public class CraftBlock implements Block {
// Modelled off EntityHuman#hasBlock
if (block != Blocks.AIR && (item == null || !iblockdata.requiresCorrectToolForDrops() || nmsItem.isCorrectToolForDrops(iblockdata))) {
net.minecraft.world.level.block.Block.dropResources(iblockdata, this.world.getMinecraftWorld(), position, this.world.getBlockEntity(position), null, nmsItem);
diff --git a/patches/server/0350-Entity-Jump-API.patch b/patches/server/0350-Entity-Jump-API.patch
index 29fd5fcc9a..4c1f5f0426 100644
--- a/patches/server/0350-Entity-Jump-API.patch
+++ b/patches/server/0350-Entity-Jump-API.patch
@@ -48,10 +48,10 @@ index 243397de3b0a843ec95c6b721d7fc654bfc78448..aad1fb5cf231b400dc8c192871aa4429
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index b19185c16f8fecbefef697017e8dcfd249306fe3..c5784574f584a5588020b16776f01faf6902cbe8 100644
+index 0c3ac380b9092ff961bce761ddfc835f4bd66544..6bf1b3a9ee029feafa054f40291078c79f28c5f4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -887,5 +887,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -884,5 +884,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public org.bukkit.inventory.EquipmentSlot getHandRaised() {
return getHandle().getUsedItemHand() == net.minecraft.world.InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND;
}
diff --git a/patches/server/0359-Add-tick-times-API-and-mspt-command.patch b/patches/server/0359-Add-tick-times-API-and-mspt-command.patch
index ee4a71dad9..80ac508d51 100644
--- a/patches/server/0359-Add-tick-times-API-and-mspt-command.patch
+++ b/patches/server/0359-Add-tick-times-API-and-mspt-command.patch
@@ -125,11 +125,11 @@ index d44d0074446c1c54e87dc8078dff7fef1d92f343..bbb8b1933ef33a3b91f69545f69dd3cf
public static void registerCommands(final MinecraftServer server) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 798a9083d78d49bc7c9e1d3dfb70c30e63e79a48..b2b7f5f30b3967a9f8a32e27557639da7d408152 100644
+index cd57953e31c1f0f51553be113d84760f24b061b0..36112a1ab7306deb3cc38b103f22f7c1b8f89206 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -253,6 +253,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop processQueue = new java.util.concurrent.ConcurrentLinkedQueue();
public int autosavePeriod;
public Commands vanillaCommandDispatcher;
@@ -83,7 +83,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
// CraftBukkit end
// Spigot start
public static final int TPS = 20;
-@@ -310,6 +310,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) {
AtomicReference atomicreference = new AtomicReference();
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
-@@ -886,6 +889,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop set) { // Paper
diff --git a/patches/server/0393-Implement-Mob-Goal-API.patch b/patches/server/0393-Implement-Mob-Goal-API.patch
index 5781049a4c..591df060da 100644
--- a/patches/server/0393-Implement-Mob-Goal-API.patch
+++ b/patches/server/0393-Implement-Mob-Goal-API.patch
@@ -792,10 +792,10 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31
LOOK,
JUMP,
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ec0d03aedac540f67552a5a8371518d673519d87..095ee082f73c24a8b1d311e15eed49048c6646d9 100644
+index 1b5197752992ed7c7a8ea6d01e5efa90347e8ddd..057a7df7daba35debe470116c28a5984e4e8132f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2758,5 +2758,11 @@ public final class CraftServer implements Server {
+@@ -2779,5 +2779,11 @@ public final class CraftServer implements Server {
public boolean isStopping() {
return net.minecraft.server.MinecraftServer.getServer().hasStopped();
}
diff --git a/patches/server/0394-Add-villager-reputation-API.patch b/patches/server/0394-Add-villager-reputation-API.patch
index a84e9e01ee..0b402ed019 100644
--- a/patches/server/0394-Add-villager-reputation-API.patch
+++ b/patches/server/0394-Add-villager-reputation-API.patch
@@ -57,10 +57,10 @@ index a28f359202e6502c6ea5e9c918ec0b3e9a3fca61..76dffb2705e5207db96895f82f1c7c56
static record GossipEntry(UUID target, GossipType type, int value) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index 350cfc1526894f4dac56832a6d1dfbbc9b25123c..e6fcdbabde66f4707627fc8c3012aa20de8e34e3 100644
+index 0c92bbe9900a9d598ad90f2ba12808c776ba8f04..6f7977b492ce01e7cda7872c42bd7f2386d3e745 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -18,6 +18,13 @@ import org.bukkit.entity.Villager;
+@@ -17,6 +17,13 @@ import org.bukkit.entity.Villager;
import org.bukkit.entity.ZombieVillager;
import org.bukkit.event.entity.CreatureSpawnEvent;
@@ -74,7 +74,7 @@ index 350cfc1526894f4dac56832a6d1dfbbc9b25123c..e6fcdbabde66f4707627fc8c3012aa20
public class CraftVillager extends CraftAbstractVillager implements Villager {
public CraftVillager(CraftServer server, net.minecraft.world.entity.npc.Villager entity) {
-@@ -147,4 +154,45 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+@@ -146,4 +153,45 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
public static VillagerProfession bukkitToNmsProfession(Profession bukkit) {
return BuiltInRegistries.VILLAGER_PROFESSION.get(CraftNamespacedKey.toMinecraft(bukkit.getKey()));
}
diff --git a/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch
index cd3de7681e..296215abfc 100644
--- a/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch
+++ b/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix PotionEffect ignores icon flag
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index c5784574f584a5588020b16776f01faf6902cbe8..658d4dbb45d17e7064f69b10af8fbfa473a8dffe 100644
+index 6bf1b3a9ee029feafa054f40291078c79f28c5f4..2f6ba5525a014dfb3ce2efae765e501e8cd1c1c1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -431,7 +431,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -430,7 +430,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
diff --git a/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch
index 59a602c961..fe1354b419 100644
--- a/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch
+++ b/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch
@@ -10,10 +10,10 @@ Adds a 5 second grace period for any async tasks to finish and warns
if any are still running after that delay just as reload does.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 56574a625fb4378997bcc79915dbb083e2c59f70..f6b8426ddc50363991c78ae731898d1a323ef5a1 100644
+index f4ad35b55cacd5c1c3e4d81d4a9cf9675349ce79..53876c0d957e2d151e93744eff60606096f02e66 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -930,6 +930,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop task, long delay, long period) throws IllegalArgumentException {
diff --git a/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch b/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch
index 3e77f8a1c6..a15244c105 100644
--- a/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch
+++ b/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Inventory getHolder method without block snapshot
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-index 8018ad8e5952c714f1bd445c91b4d5c846b9ba7a..015fc140db9162865f33cd6577cf758091a663c7 100644
+index 7bdb2e52d36feb9e0ce517ae95f5edb28ddc67d6..01b38b5a515c7dd0f0c79141c270d618bf3c56eb 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -540,6 +540,13 @@ public class CraftInventory implements Inventory {
@@ -23,10 +23,10 @@ index 8018ad8e5952c714f1bd445c91b4d5c846b9ba7a..015fc140db9162865f33cd6577cf7580
public int getMaxStackSize() {
return this.inventory.getMaxStackSize();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java
-index 01d425d359f2d6d87b6c01b435a9cfcfe11caa20..4707a651dc80086efa852bcfba38a534e7f1f3d0 100644
+index d5defc82aec2279463e14029e213cfb8c3a40ce1..83712cc8da9751b6d4cc1f34a1cc0798bf848ae1 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java
-@@ -64,6 +64,13 @@ public class CraftInventoryDoubleChest extends CraftInventory implements DoubleC
+@@ -63,6 +63,13 @@ public class CraftInventoryDoubleChest extends CraftInventory implements DoubleC
return new DoubleChest(this);
}
diff --git a/patches/server/0416-Improve-Arrow-API.patch b/patches/server/0416-Improve-Arrow-API.patch
index 47bb897a5a..b2c31e3793 100644
--- a/patches/server/0416-Improve-Arrow-API.patch
+++ b/patches/server/0416-Improve-Arrow-API.patch
@@ -9,10 +9,10 @@ to set the arrow's "noclip" status
Co-authored-by: Jake Potrebic
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-index 376885c8148da619a3b203145d315ebaf44994fb..15abd085eeb0a31a925c1a8d6de903c9d4625a29 100644
+index ce6291f2ccfb1ea3c069dd9f053446413894d743..d443b171191d150eed62d000a1079ede6bcf9052 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-@@ -102,6 +102,23 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
+@@ -100,6 +100,23 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
this.getHandle().pickup = net.minecraft.world.entity.projectile.AbstractArrow.Pickup.byOrdinal(status.ordinal());
}
diff --git a/patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch
index e5980d0369..0891d484ac 100644
--- a/patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch
+++ b/patches/server/0417-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/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 23d576cebf10bc0f35b9fb99df7b323a744dd111..4f43f6ff06ab3b68631b8e9c8dd1e9d4a5e76880 100644
+index bc05121fcda77b1672901fa9bf05ba68af51c77c..4181eaef05589eb1f54c6a3cf76ca98a71bcfed3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3114,9 +3114,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3117,9 +3117,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (!this.player.containerMenu.stillValid(this.player)) {
ServerGamePacketListenerImpl.LOGGER.debug("Player {} interacted with invalid menu {}", this.player, this.player.containerMenu);
} else {
diff --git a/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index 0b50c2a29f..1ac808bf27 100644
--- a/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -8,10 +8,10 @@ makes it so that the server keeps the last difficulty used instead
of restoring the server.properties every single load.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index f6b8426ddc50363991c78ae731898d1a323ef5a1..2a55f9e0ab6fa07ba913203bb62acd54add450a0 100644
+index 53876c0d957e2d151e93744eff60606096f02e66..53c0246acda9fe1242710260e250429ae51eceb8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -800,7 +800,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop {
net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> {
net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk)c;
diff --git a/patches/server/0426-incremental-chunk-and-player-saving.patch b/patches/server/0426-incremental-chunk-and-player-saving.patch
index e6627af798..391666870e 100644
--- a/patches/server/0426-incremental-chunk-and-player-saving.patch
+++ b/patches/server/0426-incremental-chunk-and-player-saving.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] incremental chunk and player saving
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 2a55f9e0ab6fa07ba913203bb62acd54add450a0..7bd02abf039f7e047b6b6b1de0bc478884f5afa4 100644
+index 53c0246acda9fe1242710260e250429ae51eceb8..56e98ea2964c2779537ac607b7c4677bc695d92a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -873,7 +873,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lists.transform(this.lore, CraftChatMessage::fromJSONComponent));
}
@@ -47,7 +47,7 @@ index bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98c
@Override
public void setLore(List lore) {
if (lore == null || lore.isEmpty()) {
-@@ -1039,6 +1059,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1038,6 +1058,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -69,7 +69,7 @@ index bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98c
@Override
public boolean hasCustomModelData() {
return this.customModelData != null;
-@@ -1507,6 +1542,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1506,6 +1541,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
for (Object object : addFrom) {
@@ -79,5 +79,5 @@ index bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98c
+ } else
+ // Paper end
if (!(object instanceof String)) {
- if (object != null) {
- throw new IllegalArgumentException(addFrom + " cannot contain non-string " + object.getClass().getName());
+ Preconditions.checkArgument(object == null, "%s cannot contain non-string %s", addFrom, object.getClass().getName());
+
diff --git a/patches/server/0434-Add-entity-liquid-API.patch b/patches/server/0434-Add-entity-liquid-API.patch
index 471592096c..b9499300da 100644
--- a/patches/server/0434-Add-entity-liquid-API.patch
+++ b/patches/server/0434-Add-entity-liquid-API.patch
@@ -8,10 +8,10 @@ public net.minecraft.world.entity.Entity isInRain()Z
public net.minecraft.world.entity.Entity isInBubbleColumn()Z
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 5d8532bc2c4253aa3941ff8c4d48cc8c3860b3b0..5d01b33df41ecc51e2c2b44bad34a65e823d69ce 100644
+index e237320b2703a1281fab47f24516e8b7d83677be..c480cddf693ec9f42b0e8a8aec3cc7828e337312 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1308,5 +1308,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1301,5 +1301,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason() {
return getHandle().spawnReason;
}
diff --git a/patches/server/0437-Add-PrepareResultEvent.patch b/patches/server/0437-Add-PrepareResultEvent.patch
index 2d660c5c5e..b01a35ac4d 100644
--- a/patches/server/0437-Add-PrepareResultEvent.patch
+++ b/patches/server/0437-Add-PrepareResultEvent.patch
@@ -94,10 +94,10 @@ index 8734a129244271b370f965fcbf488a14ce04684a..00f01ab2eff69c18b50ec07b7623af66
private void setupRecipeList(Container input, ItemStack stack) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7af0710c40c1453bd0bd8ecb4ea7606bbe76c20f..2502da6e68f97a7c37f1756d6845e531da1663c3 100644
+index f35cba8f45f96cd9504ccce73fea592532c36702..019a486f40256771341358509a5abe0b1284d248 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1624,26 +1624,53 @@ public class CraftEventFactory {
+@@ -1628,26 +1628,53 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0449-Brand-support.patch b/patches/server/0449-Brand-support.patch
index b8829974eb..f67a62f7fe 100644
--- a/patches/server/0449-Brand-support.patch
+++ b/patches/server/0449-Brand-support.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00647dfc66 100644
+index a7429a2efb6100033552d5bf2d7731d1d5c6c7df..5fb375ac652029441147ffefd3305683288ee058 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -302,6 +302,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -17,7 +17,7 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) {
this.lastChatTimeStamp = new AtomicReference(Instant.EPOCH);
this.lastSeenMessages = new LastSeenMessagesValidator(20);
-@@ -3307,6 +3309,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3310,6 +3312,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private static final ResourceLocation CUSTOM_REGISTER = new ResourceLocation("register");
private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister");
@@ -26,7 +26,7 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
-@@ -3334,6 +3338,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3337,6 +3341,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
try {
byte[] data = new byte[packet.data.readableBytes()];
packet.data.readBytes(data);
@@ -42,7 +42,7 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data);
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
-@@ -3343,6 +3356,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3346,6 +3359,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
@@ -56,10 +56,10 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 60ae0913501dd9c2d28685c7b50709a5e572dfec..fec01a106a6210db04600c29737294370baa04d1 100644
+index ef2476afc452c83be28c97d9860e27368ded5254..9cfd26baef0fa878e8e0420750cd512bdff12ac5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2958,6 +2958,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2896,6 +2896,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
};
diff --git a/patches/server/0451-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0450-Add-playPickupItemAnimation-to-LivingEntity.patch
similarity index 83%
rename from patches/server/0451-Add-playPickupItemAnimation-to-LivingEntity.patch
rename to patches/server/0450-Add-playPickupItemAnimation-to-LivingEntity.patch
index 7b471758ee..c2a653b423 100644
--- a/patches/server/0451-Add-playPickupItemAnimation-to-LivingEntity.patch
+++ b/patches/server/0450-Add-playPickupItemAnimation-to-LivingEntity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 658d4dbb45d17e7064f69b10af8fbfa473a8dffe..fb783efc63e8c782e34380ff98d92b644ea2665c 100644
+index 2f6ba5525a014dfb3ce2efae765e501e8cd1c1c1..97286605e33436f3e4a7b7ad319d2b2870d7029a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -901,5 +901,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -898,5 +898,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
((Mob) getHandle()).getJumpControl().jump();
}
}
diff --git a/patches/server/0450-Add-setMaxPlayers-API.patch b/patches/server/0450-Add-setMaxPlayers-API.patch
deleted file mode 100644
index d9d32089c2..0000000000
--- a/patches/server/0450-Add-setMaxPlayers-API.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Mariell Hoversholm
-Date: Sat, 22 Aug 2020 23:59:30 +0200
-Subject: [PATCH] Add #setMaxPlayers API
-
-
-diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 36715e8bc9047962a2ced70d6838672159665771..b810ae5536cc1a64d44266f2158db0f6930429ff 100644
---- a/src/main/java/net/minecraft/server/players/PlayerList.java
-+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -155,7 +155,7 @@ public abstract class PlayerList {
- private boolean doWhiteList;
- private final LayeredRegistryAccess registries;
- private final RegistryAccess.Frozen synchronizedRegistries;
-- protected final int maxPlayers;
-+ protected int maxPlayers; public final void setMaxPlayers(int maxPlayers) { this.maxPlayers = maxPlayers; } // Paper - remove final and add setter
- private int viewDistance;
- private int simulationDistance;
- private boolean allowCheatsForAllPlayers;
-diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 5cb5b71894597eb59201cfd1d5489d516cb7dbd0..371b3af8cb76b9fffecf0a38dbf3687ac1bdf826 100644
---- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -672,6 +672,13 @@ public final class CraftServer implements Server {
- return this.playerList.getMaxPlayers();
- }
-
-+ // Paper start
-+ @Override
-+ public void setMaxPlayers(int maxPlayers) {
-+ this.playerList.setMaxPlayers(maxPlayers);
-+ }
-+ // Paper end
-+
- // NOTE: These are dependent on the corresponding call in MinecraftServer
- // so if that changes this will need to as well
- @Override
diff --git a/patches/server/0452-Don-t-require-FACING-data.patch b/patches/server/0451-Don-t-require-FACING-data.patch
similarity index 100%
rename from patches/server/0452-Don-t-require-FACING-data.patch
rename to patches/server/0451-Don-t-require-FACING-data.patch
diff --git a/patches/server/0453-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0452-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
similarity index 94%
rename from patches/server/0453-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
rename to patches/server/0452-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
index 92c638424c..f2e60fe1de 100644
--- a/patches/server/0453-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
+++ b/patches/server/0452-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
@@ -21,10 +21,10 @@ index 02ba7e25c649832aba2e742cb76be9d2b6b6f954..babc90ed1a85756545ac2b7631853d09
// if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add
this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a70ba15318f70798e5c3d1c458d52ca13193acee..7fc85b00fa2c9caa832247e2e95de231e8377ec2 100644
+index c00a76408b6c800bf81b2de9565c95111940c365..133a5b30b4cdca091f7eae9fccc5bb7d03ace432 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -260,12 +260,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -259,12 +259,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean setSpawnLocation(int x, int y, int z, float angle) {
try {
diff --git a/patches/server/0454-Add-moon-phase-API.patch b/patches/server/0453-Add-moon-phase-API.patch
similarity index 83%
rename from patches/server/0454-Add-moon-phase-API.patch
rename to patches/server/0453-Add-moon-phase-API.patch
index 0ed4a4e540..4fb9522173 100644
--- a/patches/server/0454-Add-moon-phase-API.patch
+++ b/patches/server/0453-Add-moon-phase-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add moon phase API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index cb6f5fc352aff449173825d4e7fad9fccb9df915..5f9c3c237b65986f8c425bbc691ac301f8fdebbc 100644
+index bdc752631136a4abe903e7a8f182e9eda480fcb6..a9cad569f9c71f9818d1b831983f71aae367d98e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -984,4 +984,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -980,4 +980,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
throw new IllegalArgumentException("Cannot spawn an entity for " + clazz.getName());
}
diff --git a/patches/server/0455-Prevent-headless-pistons-from-being-created.patch b/patches/server/0454-Prevent-headless-pistons-from-being-created.patch
similarity index 100%
rename from patches/server/0455-Prevent-headless-pistons-from-being-created.patch
rename to patches/server/0454-Prevent-headless-pistons-from-being-created.patch
diff --git a/patches/server/0456-Add-BellRingEvent.patch b/patches/server/0455-Add-BellRingEvent.patch
similarity index 93%
rename from patches/server/0456-Add-BellRingEvent.patch
rename to patches/server/0455-Add-BellRingEvent.patch
index ca9b774a3d..f9865e6e0b 100644
--- a/patches/server/0456-Add-BellRingEvent.patch
+++ b/patches/server/0455-Add-BellRingEvent.patch
@@ -7,7 +7,7 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a
village bell. Passes along the bell block and the player who rang it.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 2502da6e68f97a7c37f1756d6845e531da1663c3..6528757c99c55c1d9926da89efed468def758af3 100644
+index 019a486f40256771341358509a5abe0b1284d248..9761302bb1ca66242ae46d26001837dd881cb9fa 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -332,10 +332,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0457-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0456-Add-zombie-targets-turtle-egg-config.patch
similarity index 100%
rename from patches/server/0457-Add-zombie-targets-turtle-egg-config.patch
rename to patches/server/0456-Add-zombie-targets-turtle-egg-config.patch
diff --git a/patches/server/0458-Buffer-joins-to-world.patch b/patches/server/0457-Buffer-joins-to-world.patch
similarity index 100%
rename from patches/server/0458-Buffer-joins-to-world.patch
rename to patches/server/0457-Buffer-joins-to-world.patch
diff --git a/patches/server/0459-Eigencraft-redstone-implementation.patch b/patches/server/0458-Eigencraft-redstone-implementation.patch
similarity index 100%
rename from patches/server/0459-Eigencraft-redstone-implementation.patch
rename to patches/server/0458-Eigencraft-redstone-implementation.patch
diff --git a/patches/server/0460-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0459-Fix-hex-colors-not-working-in-some-kick-messages.patch
similarity index 100%
rename from patches/server/0460-Fix-hex-colors-not-working-in-some-kick-messages.patch
rename to patches/server/0459-Fix-hex-colors-not-working-in-some-kick-messages.patch
diff --git a/patches/server/0461-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0460-PortalCreateEvent-needs-to-know-its-entity.patch
similarity index 100%
rename from patches/server/0461-PortalCreateEvent-needs-to-know-its-entity.patch
rename to patches/server/0460-PortalCreateEvent-needs-to-know-its-entity.patch
diff --git a/patches/server/0463-Add-more-Evoker-API.patch b/patches/server/0461-Add-more-Evoker-API.patch
similarity index 100%
rename from patches/server/0463-Add-more-Evoker-API.patch
rename to patches/server/0461-Add-more-Evoker-API.patch
diff --git a/patches/server/0464-Add-methods-to-get-translation-keys.patch b/patches/server/0462-Add-methods-to-get-translation-keys.patch
similarity index 97%
rename from patches/server/0464-Add-methods-to-get-translation-keys.patch
rename to patches/server/0462-Add-methods-to-get-translation-keys.patch
index b75c005413..f0730a4081 100644
--- a/patches/server/0464-Add-methods-to-get-translation-keys.patch
+++ b/patches/server/0462-Add-methods-to-get-translation-keys.patch
@@ -10,10 +10,10 @@ public org.bukkit.craftbukkit.inventory.CraftMetaFirework getNBT(Lorg/bukkit/Fir
Co-authored-by: MeFisto94
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index c67de2f3bb8b048b8432add4adcb9e6042fb65ad..f92b0151d9e2655191a3a7a009c5da66022dddc1 100644
+index 5534348ddb3ac42b6b8a687816c2c8c1858e3b3e..d2d5a43cfdf294ccc9353258250f5a990e205b88 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -696,5 +696,10 @@ public class CraftBlock implements Block {
+@@ -694,5 +694,10 @@ public class CraftBlock implements Block {
public org.bukkit.SoundGroup getBlockSoundGroup() {
return org.bukkit.craftbukkit.CraftSoundGroup.getSoundGroup(this.getNMS().getSoundType());
}
diff --git a/patches/server/0462-Fix-CraftTeam-null-check.patch b/patches/server/0462-Fix-CraftTeam-null-check.patch
deleted file mode 100644
index fc8ca37076..0000000000
--- a/patches/server/0462-Fix-CraftTeam-null-check.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: foss-mc <69294560+foss-mc@users.noreply.github.com>
-Date: Sun, 30 Aug 2020 15:30:29 +0800
-Subject: [PATCH] Fix CraftTeam null check
-
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 18d5a26c34c848241c306241b3ad9825b5a0b9a9..60b1cffdccde4715832546d6edbf206fbab4e82f 100644
---- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-@@ -261,7 +261,7 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
-
- @Override
- public boolean hasEntry(String entry) throws IllegalArgumentException, IllegalStateException {
-- Validate.notNull("Entry cannot be null");
-+ Validate.notNull(entry, "Entry cannot be null"); // Paper
-
- CraftScoreboard scoreboard = this.checkState();
-
diff --git a/patches/server/0465-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0463-Create-HoverEvent-from-ItemStack-Entity.patch
similarity index 94%
rename from patches/server/0465-Create-HoverEvent-from-ItemStack-Entity.patch
rename to patches/server/0463-Create-HoverEvent-from-ItemStack-Entity.patch
index bfa68eb6cf..042efb92e7 100644
--- a/patches/server/0465-Create-HoverEvent-from-ItemStack-Entity.patch
+++ b/patches/server/0463-Create-HoverEvent-from-ItemStack-Entity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index f81ed24f624ff6f99ccad8361209cc409c6b9187..f5610d0746b67dfe69dc79d71c4d082c083f2ee4 100644
+index f8475390d69bef6f3eca5a57d5f44021fabf4942..21f5c0f2fc10b5f5752e214a08e858227bdcf2ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -473,5 +473,40 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -468,5 +468,40 @@ public final class CraftItemFactory implements ItemFactory {
return nms != null ? net.minecraft.locale.Language.getInstance().getOrDefault(nms.getItem().getDescriptionId(nms)) : null;
}
diff --git a/patches/server/0466-Cache-block-data-strings.patch b/patches/server/0464-Cache-block-data-strings.patch
similarity index 95%
rename from patches/server/0466-Cache-block-data-strings.patch
rename to patches/server/0464-Cache-block-data-strings.patch
index bc9070803a..061e7147d7 100644
--- a/patches/server/0466-Cache-block-data-strings.patch
+++ b/patches/server/0464-Cache-block-data-strings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Cache block data strings
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 7bd02abf039f7e047b6b6b1de0bc478884f5afa4..5ae2fbc6db0bcffe46669f1d73f8b4347165bd0a 100644
+index 56e98ea2964c2779537ac607b7c4677bc695d92a..0ed8add0a2acec7d109f9687b7d77967a7ccdf3e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2051,6 +2051,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a4233fa223bdf9b29a3d75b84ef38640331d7fb8..2f0cb4d692631f6485b3a70c6e15e7d9ed0c3ac7 100644
+index 8ea12aee6283ef8771009056135f878c01bd3a29..d0d53f068f8c58f7376008e2e13942ecb3637765 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -507,6 +507,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -49,7 +49,7 @@ index a4233fa223bdf9b29a3d75b84ef38640331d7fb8..2f0cb4d692631f6485b3a70c6e15e7d9
this.connection.disconnect(ichatbasecomponent);
}));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index b810ae5536cc1a64d44266f2158db0f6930429ff..b5d39d5ec89150e71cab1efe087c5254f2b4ba97 100644
+index 31e6da864b0ddf2f65ecc43ce8ef74d6c4e9d0aa..4d04cb528044d1e09687b80f9c6c7280bd2624ae 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -573,7 +573,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0494-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0492-Add-Wandering-Trader-spawn-rate-config-options.patch
similarity index 100%
rename from patches/server/0494-Add-Wandering-Trader-spawn-rate-config-options.patch
rename to patches/server/0492-Add-Wandering-Trader-spawn-rate-config-options.patch
diff --git a/patches/server/0495-Expose-world-spawn-angle.patch b/patches/server/0493-Expose-world-spawn-angle.patch
similarity index 91%
rename from patches/server/0495-Expose-world-spawn-angle.patch
rename to patches/server/0493-Expose-world-spawn-angle.patch
index 708708f33c..b2ae742217 100644
--- a/patches/server/0495-Expose-world-spawn-angle.patch
+++ b/patches/server/0493-Expose-world-spawn-angle.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expose world spawn angle
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index b5d39d5ec89150e71cab1efe087c5254f2b4ba97..db5902a97e46213c162fc2a5a0f94d2e2d53fa5a 100644
+index 4d04cb528044d1e09687b80f9c6c7280bd2624ae..a474db28f74b698621342510d01bf38775794a8e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -837,7 +837,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0496-Add-Destroy-Speed-API.patch b/patches/server/0494-Add-Destroy-Speed-API.patch
similarity index 91%
rename from patches/server/0496-Add-Destroy-Speed-API.patch
rename to patches/server/0494-Add-Destroy-Speed-API.patch
index 76e967d4a5..067919e248 100644
--- a/patches/server/0496-Add-Destroy-Speed-API.patch
+++ b/patches/server/0494-Add-Destroy-Speed-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add Destroy Speed API
Co-authored-by: Jake Potrebic
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index cd39ec0e87974be616f10321d953fd2f3af194f7..6c6867c007cec2b8364c875fbfc25c372b39351c 100644
+index 2749f81fd74e466fa6b7c1c5f08d8defc5203b3e..d035ff8390f2181fb81baec1b0287ead6da0a912 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -701,5 +701,26 @@ public class CraftBlock implements Block {
+@@ -699,5 +699,26 @@ public class CraftBlock implements Block {
public String translationKey() {
return this.getNMS().getBlock().getDescriptionId();
}
diff --git a/patches/server/0497-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0495-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
similarity index 76%
rename from patches/server/0497-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
rename to patches/server/0495-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
index 343d62a18d..15c419aac9 100644
--- a/patches/server/0497-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
+++ b/patches/server/0495-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 7ed8b5accb01973a5e6aea20c40522da16fe6d59..aa1be644a7fddee56310be9f94a25c97bfd46302 100644
+index 18a2ea9b00257de057c326f6a350b9ab281ab696..0ecd7b1bad69ab74f44effd4e4d552b3a5ba7e0a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2487,7 +2487,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- if (data != null && !particle.getDataType().isInstance(data)) {
- throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass());
+@@ -2425,7 +2425,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ if (data != null) {
+ Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
}
- ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(CraftParticle.toNMS(particle, data), true, (float) x, (float) y, (float) z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count);
+ ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(CraftParticle.toNMS(particle, data), true, x, y, z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count); // Paper - Fix x/y/z coordinate precision loss
diff --git a/patches/server/0498-Add-LivingEntity-clearActiveItem.patch b/patches/server/0496-Add-LivingEntity-clearActiveItem.patch
similarity index 84%
rename from patches/server/0498-Add-LivingEntity-clearActiveItem.patch
rename to patches/server/0496-Add-LivingEntity-clearActiveItem.patch
index 98b742f015..3fc9e55552 100644
--- a/patches/server/0498-Add-LivingEntity-clearActiveItem.patch
+++ b/patches/server/0496-Add-LivingEntity-clearActiveItem.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index fb783efc63e8c782e34380ff98d92b644ea2665c..a95825e88ba31c255292451532d18a23c8d502cb 100644
+index 97286605e33436f3e4a7b7ad319d2b2870d7029a..4bdb06c18824c99475ea7a9cc4237b0879e705a8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -868,6 +868,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -865,6 +865,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return getHandle().getUseItem().asBukkitMirror();
}
diff --git a/patches/server/0499-Add-PlayerItemCooldownEvent.patch b/patches/server/0497-Add-PlayerItemCooldownEvent.patch
similarity index 100%
rename from patches/server/0499-Add-PlayerItemCooldownEvent.patch
rename to patches/server/0497-Add-PlayerItemCooldownEvent.patch
diff --git a/patches/server/0500-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0498-Significantly-improve-performance-of-the-end-generat.patch
similarity index 100%
rename from patches/server/0500-Significantly-improve-performance-of-the-end-generat.patch
rename to patches/server/0498-Significantly-improve-performance-of-the-end-generat.patch
diff --git a/patches/server/0501-More-lightning-API.patch b/patches/server/0499-More-lightning-API.patch
similarity index 100%
rename from patches/server/0501-More-lightning-API.patch
rename to patches/server/0499-More-lightning-API.patch
diff --git a/patches/server/0502-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0500-Climbing-should-not-bypass-cramming-gamerule.patch
similarity index 98%
rename from patches/server/0502-Climbing-should-not-bypass-cramming-gamerule.patch
rename to patches/server/0500-Climbing-should-not-bypass-cramming-gamerule.patch
index a71e3571a3..fadf118f7b 100644
--- a/patches/server/0502-Climbing-should-not-bypass-cramming-gamerule.patch
+++ b/patches/server/0500-Climbing-should-not-bypass-cramming-gamerule.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 13459fec2555049dccc9b0437d42fd28f823dc46..75c54f74290d98606661b74b14757c5731cdf848 100644
+index 30c955cb8b1cb767e62964fea897870a88b4f310..2e5a20e65a7475d39c789b89955dfa06d5923b53 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2049,6 +2049,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0503-Added-missing-default-perms-for-commands.patch b/patches/server/0501-Added-missing-default-perms-for-commands.patch
similarity index 100%
rename from patches/server/0503-Added-missing-default-perms-for-commands.patch
rename to patches/server/0501-Added-missing-default-perms-for-commands.patch
diff --git a/patches/server/0504-Add-PlayerShearBlockEvent.patch b/patches/server/0502-Add-PlayerShearBlockEvent.patch
similarity index 100%
rename from patches/server/0504-Add-PlayerShearBlockEvent.patch
rename to patches/server/0502-Add-PlayerShearBlockEvent.patch
diff --git a/patches/server/0505-Fix-curing-zombie-villager-discount-exploit.patch b/patches/server/0503-Fix-curing-zombie-villager-discount-exploit.patch
similarity index 100%
rename from patches/server/0505-Fix-curing-zombie-villager-discount-exploit.patch
rename to patches/server/0503-Fix-curing-zombie-villager-discount-exploit.patch
diff --git a/patches/server/0506-Limit-recipe-packets.patch b/patches/server/0504-Limit-recipe-packets.patch
similarity index 94%
rename from patches/server/0506-Limit-recipe-packets.patch
rename to patches/server/0504-Limit-recipe-packets.patch
index 2db889004b..8fa525198b 100644
--- a/patches/server/0506-Limit-recipe-packets.patch
+++ b/patches/server/0504-Limit-recipe-packets.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 2f0cb4d692631f6485b3a70c6e15e7d9ed0c3ac7..904a442e28077da74d4de994d21347a50faa6ba2 100644
+index d0d53f068f8c58f7376008e2e13942ecb3637765..04bf1a4b5c36c9b4acb5ae12b67f7e28c5e73f37 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -266,6 +266,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -24,7 +24,7 @@ index 2f0cb4d692631f6485b3a70c6e15e7d9ed0c3ac7..904a442e28077da74d4de994d21347a5
/* Use thread-safe field access instead
if (this.chatSpamTickCount > 0) {
--this.chatSpamTickCount;
-@@ -3133,6 +3135,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3136,6 +3138,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) {
diff --git a/patches/server/0507-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0505-Fix-CraftSound-backwards-compatibility.patch
similarity index 100%
rename from patches/server/0507-Fix-CraftSound-backwards-compatibility.patch
rename to patches/server/0505-Fix-CraftSound-backwards-compatibility.patch
diff --git a/patches/server/0508-Player-Chunk-Load-Unload-Events.patch b/patches/server/0506-Player-Chunk-Load-Unload-Events.patch
similarity index 94%
rename from patches/server/0508-Player-Chunk-Load-Unload-Events.patch
rename to patches/server/0506-Player-Chunk-Load-Unload-Events.patch
index 1ee144bf08..06e072f1b0 100644
--- a/patches/server/0508-Player-Chunk-Load-Unload-Events.patch
+++ b/patches/server/0506-Player-Chunk-Load-Unload-Events.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player Chunk Load/Unload Events
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index a5901bedc5f74f76fa9be2668cb2b6988981fad9..92c48e991c014f1f6bbbd1f3157ed68df6e66a76 100644
+index abde8074da754667d65f3894097ad2255c97f3f0..fa9c1f323ef372c8a8210118eae0558da58c3c4e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2232,11 +2232,21 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0509-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0507-Optimize-Dynamic-get-Missing-Keys.patch
similarity index 100%
rename from patches/server/0509-Optimize-Dynamic-get-Missing-Keys.patch
rename to patches/server/0507-Optimize-Dynamic-get-Missing-Keys.patch
diff --git a/patches/server/0510-Expose-LivingEntity-hurt-direction.patch b/patches/server/0508-Expose-LivingEntity-hurt-direction.patch
similarity index 90%
rename from patches/server/0510-Expose-LivingEntity-hurt-direction.patch
rename to patches/server/0508-Expose-LivingEntity-hurt-direction.patch
index 510e241406..bb3e6f8b6b 100644
--- a/patches/server/0510-Expose-LivingEntity-hurt-direction.patch
+++ b/patches/server/0508-Expose-LivingEntity-hurt-direction.patch
@@ -18,7 +18,7 @@ index a8731cf957da9aad7ed6f5d372500bc34afd32ca..b36492efc3d6338e0099988c1ff31e72
public boolean affectsSpawning = true;
// Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index c9ddfde5f9774f96731e86fa57ee002e8db62c0f..8d21ca6b822dd20574d408e46ed0737642129a54 100644
+index b0d2038cf2622c8ee7f810026ed735ff954d7ad0..a8aa176b8afd45fada9529d4d0b92000299faf1b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -126,6 +126,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -36,10 +36,10 @@ index c9ddfde5f9774f96731e86fa57ee002e8db62c0f..8d21ca6b822dd20574d408e46ed07376
public int getSleepTicks() {
return this.getHandle().sleepCounter;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index a95825e88ba31c255292451532d18a23c8d502cb..7204d2b542d8454fe12cce1ff049363045d4f5e5 100644
+index 4bdb06c18824c99475ea7a9cc4237b0879e705a8..c74a6df6a9c3c7745daae4c0558948ea4a31d7a6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -913,5 +913,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -910,5 +910,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void playPickupItemAnimation(org.bukkit.entity.Item item, int quantity) {
getHandle().take(((CraftItem) item).getHandle(), quantity);
}
diff --git a/patches/server/0511-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0509-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
similarity index 91%
rename from patches/server/0511-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
rename to patches/server/0509-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
index 39424b498e..92a22c8ba6 100644
--- a/patches/server/0511-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
+++ b/patches/server/0509-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 6528757c99c55c1d9926da89efed468def758af3..e21d1404167ccd461359ccb0ceb90c4c809caabc 100644
+index 9761302bb1ca66242ae46d26001837dd881cb9fa..0c177a3165ea61bf31f030111084920a3a048256 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -267,6 +267,10 @@ public class CraftEventFactory {
diff --git a/patches/server/0512-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch b/patches/server/0510-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch
similarity index 100%
rename from patches/server/0512-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch
rename to patches/server/0510-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch
diff --git a/patches/server/0513-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0511-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
similarity index 99%
rename from patches/server/0513-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
rename to patches/server/0511-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
index d4054979d0..fae98b6a21 100644
--- a/patches/server/0513-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
+++ b/patches/server/0511-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
@@ -219,7 +219,7 @@ index d41f44ed2e497ba3373d170c08488b49e88334c4..d3a99ba6f3085ad12b67ddc94cc4ab39
void notifyTradeUpdated(ItemStack stack);
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
-index 257776a12ca26c1e75be22a67c94b0aa012fd687..e7b8ade2c83bb72b4213d0ea93b97861ee43e599 100644
+index adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3..05af1f1cfb38e4ae4ea0ecc2d0a943cbc4063c77 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
@@ -74,10 +74,25 @@ public class CraftMerchantCustom extends CraftMerchant {
diff --git a/patches/server/0514-Implement-TargetHitEvent.patch b/patches/server/0512-Implement-TargetHitEvent.patch
similarity index 100%
rename from patches/server/0514-Implement-TargetHitEvent.patch
rename to patches/server/0512-Implement-TargetHitEvent.patch
diff --git a/patches/server/0515-MC-4-Fix-item-position-desync.patch b/patches/server/0513-MC-4-Fix-item-position-desync.patch
similarity index 96%
rename from patches/server/0515-MC-4-Fix-item-position-desync.patch
rename to patches/server/0513-MC-4-Fix-item-position-desync.patch
index f226056cc2..08006ae1e7 100644
--- a/patches/server/0515-MC-4-Fix-item-position-desync.patch
+++ b/patches/server/0513-MC-4-Fix-item-position-desync.patch
@@ -28,7 +28,7 @@ index 5ca3ad7b3d7606accd0a58b3c708fadb349608f7..4b6e0fe2fabcc55007fd8979e81f66df
public Vec3 decode(long x, long y, long z) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 75c54f74290d98606661b74b14757c5731cdf848..76955c2bc82a9daa4bec780989bff2f1a168a85e 100644
+index 2e5a20e65a7475d39c789b89955dfa06d5923b53..e5dc024ac2dcb39ccc4f72b90e0f9b9000dd818d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4232,6 +4232,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0516-Additional-Block-Material-API-s.patch b/patches/server/0514-Additional-Block-Material-API-s.patch
similarity index 89%
rename from patches/server/0516-Additional-Block-Material-API-s.patch
rename to patches/server/0514-Additional-Block-Material-API-s.patch
index f2a9c1caf9..5704d47e95 100644
--- a/patches/server/0516-Additional-Block-Material-API-s.patch
+++ b/patches/server/0514-Additional-Block-Material-API-s.patch
@@ -9,10 +9,10 @@ process to do this in the Bukkit API
Adds API for buildable, replaceable, burnable too.
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 6c6867c007cec2b8364c875fbfc25c372b39351c..e181525525b8809c3d413047716264fd2b32cedd 100644
+index d035ff8390f2181fb81baec1b0287ead6da0a912..8958a54d1a9d6e9ad6ab09f3a587ba89ae2d817d 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -467,6 +467,25 @@ public class CraftBlock implements Block {
+@@ -465,6 +465,25 @@ public class CraftBlock implements Block {
return this.getNMS().liquid();
}
diff --git a/patches/server/0517-Fix-harming-potion-dupe.patch b/patches/server/0515-Fix-harming-potion-dupe.patch
similarity index 100%
rename from patches/server/0517-Fix-harming-potion-dupe.patch
rename to patches/server/0515-Fix-harming-potion-dupe.patch
diff --git a/patches/server/0518-Implement-API-to-get-Material-from-Boats-and-Minecar.patch b/patches/server/0516-Implement-API-to-get-Material-from-Boats-and-Minecar.patch
similarity index 100%
rename from patches/server/0518-Implement-API-to-get-Material-from-Boats-and-Minecar.patch
rename to patches/server/0516-Implement-API-to-get-Material-from-Boats-and-Minecar.patch
diff --git a/patches/server/0519-Cache-burn-durations.patch b/patches/server/0517-Cache-burn-durations.patch
similarity index 100%
rename from patches/server/0519-Cache-burn-durations.patch
rename to patches/server/0517-Cache-burn-durations.patch
diff --git a/patches/server/0520-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0518-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
similarity index 100%
rename from patches/server/0520-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
rename to patches/server/0518-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
diff --git a/patches/server/0521-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0519-Fix-Not-a-string-Map-Conversion-spam.patch
similarity index 100%
rename from patches/server/0521-Fix-Not-a-string-Map-Conversion-spam.patch
rename to patches/server/0519-Fix-Not-a-string-Map-Conversion-spam.patch
diff --git a/patches/server/0522-Implement-PlayerFlowerPotManipulateEvent.patch b/patches/server/0520-Implement-PlayerFlowerPotManipulateEvent.patch
similarity index 100%
rename from patches/server/0522-Implement-PlayerFlowerPotManipulateEvent.patch
rename to patches/server/0520-Implement-PlayerFlowerPotManipulateEvent.patch
diff --git a/patches/server/0523-Fix-interact-event-not-being-called-in-adventure.patch b/patches/server/0521-Fix-interact-event-not-being-called-in-adventure.patch
similarity index 90%
rename from patches/server/0523-Fix-interact-event-not-being-called-in-adventure.patch
rename to patches/server/0521-Fix-interact-event-not-being-called-in-adventure.patch
index e80b09ea8c..49e76d3196 100644
--- a/patches/server/0523-Fix-interact-event-not-being-called-in-adventure.patch
+++ b/patches/server/0521-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/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 904a442e28077da74d4de994d21347a50faa6ba2..df9d65167346152d9c589e3072e3d3d6882db5c6 100644
+index 04bf1a4b5c36c9b4acb5ae12b67f7e28c5e73f37..4a20980ee00b52ee12537ad9cd9095ba3da39166 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1834,7 +1834,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1837,7 +1837,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
MutableComponent ichatmutablecomponent = Component.translatable("build.tooHigh", i - 1).withStyle(ChatFormatting.RED);
this.player.sendSystemMessage(ichatmutablecomponent, true);
@@ -18,7 +18,7 @@ index 904a442e28077da74d4de994d21347a50faa6ba2..df9d65167346152d9c589e3072e3d3d6
this.player.swing(enumhand, true);
}
}
-@@ -2470,7 +2470,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2473,7 +2473,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// SPIGOT-5607: Only call interact event if no block or entity is being clicked. Use bukkit ray trace method, because it handles blocks and entities at the same time
org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.1, entity -> entity != this.player.getBukkitEntity() && this.player.getBukkitEntity().canSee(entity));
diff --git a/patches/server/0524-Zombie-API-breaking-doors.patch b/patches/server/0522-Zombie-API-breaking-doors.patch
similarity index 100%
rename from patches/server/0524-Zombie-API-breaking-doors.patch
rename to patches/server/0522-Zombie-API-breaking-doors.patch
diff --git a/patches/server/0525-Fix-nerfed-slime-when-splitting.patch b/patches/server/0523-Fix-nerfed-slime-when-splitting.patch
similarity index 100%
rename from patches/server/0525-Fix-nerfed-slime-when-splitting.patch
rename to patches/server/0523-Fix-nerfed-slime-when-splitting.patch
diff --git a/patches/server/0526-Add-EntityLoadCrossbowEvent.patch b/patches/server/0524-Add-EntityLoadCrossbowEvent.patch
similarity index 100%
rename from patches/server/0526-Add-EntityLoadCrossbowEvent.patch
rename to patches/server/0524-Add-EntityLoadCrossbowEvent.patch
diff --git a/patches/server/0527-Added-WorldGameRuleChangeEvent.patch b/patches/server/0525-Added-WorldGameRuleChangeEvent.patch
similarity index 96%
rename from patches/server/0527-Added-WorldGameRuleChangeEvent.patch
rename to patches/server/0525-Added-WorldGameRuleChangeEvent.patch
index 9427b774ac..ef56270b86 100644
--- a/patches/server/0527-Added-WorldGameRuleChangeEvent.patch
+++ b/patches/server/0525-Added-WorldGameRuleChangeEvent.patch
@@ -64,10 +64,10 @@ index 4a0321f56ef80aa4991e61f586ddd3f6b45e499b..de713f1ca1d61a6b1fca2b66de916255
public int get() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 7fc85b00fa2c9caa832247e2e95de231e8377ec2..fea9f11cf6f665eba86d2ffde7b241910300a516 100644
+index 133a5b30b4cdca091f7eae9fccc5bb7d03ace432..9351b3b8d4d9c7069ea4ae11a49a1f7b70ffbce9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1839,8 +1839,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1845,8 +1845,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!this.isGameRule(rule)) return false;
@@ -82,7 +82,7 @@ index 7fc85b00fa2c9caa832247e2e95de231e8377ec2..fea9f11cf6f665eba86d2ffde7b24191
handle.onChanged(this.getHandle().getServer());
return true;
}
-@@ -1875,8 +1880,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1882,8 +1887,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!this.isGameRule(rule.getName())) return false;
diff --git a/patches/server/0528-Added-ServerResourcesReloadedEvent.patch b/patches/server/0526-Added-ServerResourcesReloadedEvent.patch
similarity index 93%
rename from patches/server/0528-Added-ServerResourcesReloadedEvent.patch
rename to patches/server/0526-Added-ServerResourcesReloadedEvent.patch
index 150d0eb7c2..4ba0ccdc24 100644
--- a/patches/server/0528-Added-ServerResourcesReloadedEvent.patch
+++ b/patches/server/0526-Added-ServerResourcesReloadedEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Added ServerResourcesReloadedEvent
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b3ef498ceacfc8eca0557c3d37f99a14fd6058d0..0ed954f83a7a045c964930247ea393cbaafcbf12 100644
+index 412e5db21a83e9ca6ba5aa0d457507ce51176ebc..d29b66d9db69309087ee2eac2561ab2fcd797eb8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2011,7 +2011,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop completablefuture = CompletableFuture.supplyAsync(() -> {
Stream stream = dataPacks.stream(); // CraftBukkit - decompile error
-@@ -2052,6 +2058,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper
diff --git a/patches/server/0554-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0552-added-option-to-disable-pathfinding-updates-on-block.patch
similarity index 100%
rename from patches/server/0554-added-option-to-disable-pathfinding-updates-on-block.patch
rename to patches/server/0552-added-option-to-disable-pathfinding-updates-on-block.patch
diff --git a/patches/server/0555-Inline-shift-direction-fields.patch b/patches/server/0553-Inline-shift-direction-fields.patch
similarity index 100%
rename from patches/server/0555-Inline-shift-direction-fields.patch
rename to patches/server/0553-Inline-shift-direction-fields.patch
diff --git a/patches/server/0556-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0554-Allow-adding-items-to-BlockDropItemEvent.patch
similarity index 95%
rename from patches/server/0556-Allow-adding-items-to-BlockDropItemEvent.patch
rename to patches/server/0554-Allow-adding-items-to-BlockDropItemEvent.patch
index 82b65e9cec..64ee1fccfe 100644
--- a/patches/server/0556-Allow-adding-items-to-BlockDropItemEvent.patch
+++ b/patches/server/0554-Allow-adding-items-to-BlockDropItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 484b318abe3353e551552fbebd611f9201311643..7ef3e4dd903c77fd6112e90999a474ff674a5e7f 100644
+index 2dc961eedf4da8175bad709fbb9f0fcce7d23330..64e1e46bd6c4b225fe9b86c4cf632b9bb1c4af09 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -418,13 +418,30 @@ public class CraftEventFactory {
diff --git a/patches/server/0557-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0555-Add-getMainThreadExecutor-to-BukkitScheduler.patch
similarity index 76%
rename from patches/server/0557-Add-getMainThreadExecutor-to-BukkitScheduler.patch
rename to patches/server/0555-Add-getMainThreadExecutor-to-BukkitScheduler.patch
index 8cfe3357dc..a387813cdf 100644
--- a/patches/server/0557-Add-getMainThreadExecutor-to-BukkitScheduler.patch
+++ b/patches/server/0555-Add-getMainThreadExecutor-to-BukkitScheduler.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getMainThreadExecutor to BukkitScheduler
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index a423970cf7c927ea8a1bf842aaa236d3cf2d54c2..cdefb2025eedea7e204d70d568adaf1c1ec4c03c 100644
+index addf3c442a085281a7ac06245ccd741f08ed7ccb..d7ce4971d9271dbeff4adb9d852e4e7bdf60bf03 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -655,4 +655,15 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -651,4 +651,15 @@ public class CraftScheduler implements BukkitScheduler {
public BukkitTask runTaskTimerAsynchronously(Plugin plugin, BukkitRunnable task, long delay, long period) throws IllegalArgumentException {
throw new UnsupportedOperationException("Use BukkitRunnable#runTaskTimerAsynchronously(Plugin, long, long)");
}
@@ -16,9 +16,9 @@ index a423970cf7c927ea8a1bf842aaa236d3cf2d54c2..cdefb2025eedea7e204d70d568adaf1c
+ // Paper start - add getMainThreadExecutor
+ @Override
+ public Executor getMainThreadExecutor(Plugin plugin) {
-+ Validate.notNull(plugin, "Plugin cannot be null");
++ Preconditions.checkArgument(plugin != null, "Plugin cannot be null");
+ return command -> {
-+ Validate.notNull(command, "Command cannot be null");
++ Preconditions.checkArgument(command != null, "Command cannot be null");
+ this.runTask(plugin, command);
+ };
+ }
diff --git a/patches/server/0558-living-entity-allow-attribute-registration.patch b/patches/server/0556-living-entity-allow-attribute-registration.patch
similarity index 94%
rename from patches/server/0558-living-entity-allow-attribute-registration.patch
rename to patches/server/0556-living-entity-allow-attribute-registration.patch
index 2d3a7ab361..4c2d5f8c84 100644
--- a/patches/server/0558-living-entity-allow-attribute-registration.patch
+++ b/patches/server/0556-living-entity-allow-attribute-registration.patch
@@ -41,10 +41,10 @@ index 233e372ba5d785352c9ac12dac37395bac63315c..0e61caa5c9f21788fbeaa90ed75d23e1
return BuiltInRegistries.ATTRIBUTE.get(CraftNamespacedKey.toMinecraft(attribute.getKey()));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 7204d2b542d8454fe12cce1ff049363045d4f5e5..37148ccf704dd8e5aa7d9ab100e6df142e822255 100644
+index c74a6df6a9c3c7745daae4c0558948ea4a31d7a6..63a1522071ec6e9a550598b04c1a901ff76a5c78 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -705,6 +705,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -702,6 +702,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return this.getHandle().craftAttributes.getAttribute(attribute);
}
diff --git a/patches/server/0559-fix-dead-slime-setSize-invincibility.patch b/patches/server/0557-fix-dead-slime-setSize-invincibility.patch
similarity index 100%
rename from patches/server/0559-fix-dead-slime-setSize-invincibility.patch
rename to patches/server/0557-fix-dead-slime-setSize-invincibility.patch
diff --git a/patches/server/0560-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0558-Merchant-getRecipes-should-return-an-immutable-list.patch
similarity index 100%
rename from patches/server/0560-Merchant-getRecipes-should-return-an-immutable-list.patch
rename to patches/server/0558-Merchant-getRecipes-should-return-an-immutable-list.patch
diff --git a/patches/server/0561-Expose-Tracked-Players.patch b/patches/server/0559-Expose-Tracked-Players.patch
similarity index 87%
rename from patches/server/0561-Expose-Tracked-Players.patch
rename to patches/server/0559-Expose-Tracked-Players.patch
index d84718662d..35f7177f1c 100644
--- a/patches/server/0561-Expose-Tracked-Players.patch
+++ b/patches/server/0559-Expose-Tracked-Players.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose Tracked Players
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 2b936e32a67c108df9a7f6b335357a25bad6d291..bed8b8d3091216856168277af7f51c54b5b1e1f1 100644
+index 702987ef563db2e0819771e8c3be822e4644ee3f..d3eaf054b1815003934e7f2d904a05a5d8abc3a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1348,5 +1348,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1341,5 +1341,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean isTicking() {
return getHandle().isTicking();
}
diff --git a/patches/server/0562-Remove-streams-from-SensorNearest.patch b/patches/server/0560-Remove-streams-from-SensorNearest.patch
similarity index 100%
rename from patches/server/0562-Remove-streams-from-SensorNearest.patch
rename to patches/server/0560-Remove-streams-from-SensorNearest.patch
diff --git a/patches/server/0563-Throw-proper-exception-on-empty-JsonList-file.patch b/patches/server/0561-Throw-proper-exception-on-empty-JsonList-file.patch
similarity index 100%
rename from patches/server/0563-Throw-proper-exception-on-empty-JsonList-file.patch
rename to patches/server/0561-Throw-proper-exception-on-empty-JsonList-file.patch
diff --git a/patches/server/0564-Improve-ServerGUI.patch b/patches/server/0562-Improve-ServerGUI.patch
similarity index 100%
rename from patches/server/0564-Improve-ServerGUI.patch
rename to patches/server/0562-Improve-ServerGUI.patch
diff --git a/patches/server/0565-fix-converting-txt-to-json-file.patch b/patches/server/0563-fix-converting-txt-to-json-file.patch
similarity index 97%
rename from patches/server/0565-fix-converting-txt-to-json-file.patch
rename to patches/server/0563-fix-converting-txt-to-json-file.patch
index 5c89a8730e..a47425eac7 100644
--- a/patches/server/0565-fix-converting-txt-to-json-file.patch
+++ b/patches/server/0563-fix-converting-txt-to-json-file.patch
@@ -48,7 +48,7 @@ index 1ffd3854239862414e6ceecf2764ba3d6bd7942a..030b6e33fe80f6c50c473dbaa8f9aa9d
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 adb616a519b1bba4babb92ca1042e964a2b79586..063aed795bb668c62f69d0c93ffc6d939af681ad 100644
+index 600bb44d97b477960108ea8cd84a8e734b7e10d0..6d333b75f898fc34c7e739a1246a202329f1b9ff 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -186,6 +186,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0566-Add-worldborder-events.patch b/patches/server/0564-Add-worldborder-events.patch
similarity index 100%
rename from patches/server/0566-Add-worldborder-events.patch
rename to patches/server/0564-Add-worldborder-events.patch
diff --git a/patches/server/0567-added-PlayerNameEntityEvent.patch b/patches/server/0565-added-PlayerNameEntityEvent.patch
similarity index 100%
rename from patches/server/0567-added-PlayerNameEntityEvent.patch
rename to patches/server/0565-added-PlayerNameEntityEvent.patch
diff --git a/patches/server/0568-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0566-Prevent-grindstones-from-overstacking-items.patch
similarity index 100%
rename from patches/server/0568-Prevent-grindstones-from-overstacking-items.patch
rename to patches/server/0566-Prevent-grindstones-from-overstacking-items.patch
diff --git a/patches/server/0569-Add-recipe-to-cook-events.patch b/patches/server/0567-Add-recipe-to-cook-events.patch
similarity index 100%
rename from patches/server/0569-Add-recipe-to-cook-events.patch
rename to patches/server/0567-Add-recipe-to-cook-events.patch
diff --git a/patches/server/0570-Add-Block-isValidTool.patch b/patches/server/0568-Add-Block-isValidTool.patch
similarity index 79%
rename from patches/server/0570-Add-Block-isValidTool.patch
rename to patches/server/0568-Add-Block-isValidTool.patch
index d525f7d600..6130e68ff2 100644
--- a/patches/server/0570-Add-Block-isValidTool.patch
+++ b/patches/server/0568-Add-Block-isValidTool.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Block#isValidTool
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index e181525525b8809c3d413047716264fd2b32cedd..30fc626f51437e254993edd9b14337fa60ba313c 100644
+index 8958a54d1a9d6e9ad6ab09f3a587ba89ae2d817d..582f1c07da8edc88dda9463992bb8503fcb9e163 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -741,5 +741,9 @@ public class CraftBlock implements Block {
+@@ -739,5 +739,9 @@ public class CraftBlock implements Block {
}
return speed;
}
diff --git a/patches/server/0571-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0569-Allow-using-signs-inside-spawn-protection.patch
similarity index 91%
rename from patches/server/0571-Allow-using-signs-inside-spawn-protection.patch
rename to patches/server/0569-Allow-using-signs-inside-spawn-protection.patch
index d2ff2b0366..017a3c1472 100644
--- a/patches/server/0571-Allow-using-signs-inside-spawn-protection.patch
+++ b/patches/server/0569-Allow-using-signs-inside-spawn-protection.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow using signs inside spawn protection
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ad19b3870fcc8ebd20fe429de3123731a0c2df07..fa808d6e3288996fab06e4b577957185e0009bce 100644
+index 4a20980ee00b52ee12537ad9cd9095ba3da39166..f893d9f8dc5f087a63efa91338ad4118f9d67d47 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1826,7 +1826,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1829,7 +1829,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
int i = this.player.level().getMaxBuildHeight();
if (blockposition.getY() < i) {
diff --git a/patches/server/0572-Expand-world-key-API.patch b/patches/server/0570-Expand-world-key-API.patch
similarity index 83%
rename from patches/server/0572-Expand-world-key-API.patch
rename to patches/server/0570-Expand-world-key-API.patch
index f86cd7dd43..022aa9fbaa 100644
--- a/patches/server/0572-Expand-world-key-API.patch
+++ b/patches/server/0570-Expand-world-key-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expand world key API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5f9c3c237b65986f8c425bbc691ac301f8fdebbc..cb7ceaaaf4e8deec78962660298fa5316f8c5a63 100644
+index a9cad569f9c71f9818d1b831983f71aae367d98e..4e85e98d12d5ee4cabb6d449bcf3134f353932fb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -990,5 +990,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -986,5 +986,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
public io.papermc.paper.world.MoonPhase getMoonPhase() {
return io.papermc.paper.world.MoonPhase.getPhase(this.getHandle().dayTime() / 24000L);
}
@@ -20,7 +20,7 @@ index 5f9c3c237b65986f8c425bbc691ac301f8fdebbc..cb7ceaaaf4e8deec78962660298fa531
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f834625a9 100644
+index b6c9dd5b3fd746ef7e863c27fd581c9f23a795a2..ed6125d52eb0e406e44a2c3ded1ed1d1b19bf5c5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1153,9 +1153,15 @@ public final class CraftServer implements Server {
@@ -39,9 +39,9 @@ index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f
}
+ // Paper end
- if ((folder.exists()) && (!folder.isDirectory())) {
- throw new IllegalArgumentException("File exists with the name '" + name + "' and isn't a folder");
-@@ -1244,7 +1250,7 @@ public final class CraftServer implements Server {
+ if (folder.exists()) {
+ Preconditions.checkArgument(folder.isDirectory(), "File (%s) exists and isn't a folder", name);
+@@ -1242,7 +1248,7 @@ public final class CraftServer implements Server {
} else if (name.equals(levelName + "_the_end")) {
worldKey = net.minecraft.world.level.Level.END;
} else {
@@ -50,7 +50,7 @@ index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f
}
ServerLevel internal = (ServerLevel) new ServerLevel(this.console, console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11),
-@@ -1336,6 +1342,15 @@ public final class CraftServer implements Server {
+@@ -1334,6 +1340,15 @@ public final class CraftServer implements Server {
return null;
}
@@ -67,10 +67,10 @@ index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f
// Check if a World already exists with the UID.
if (this.getWorld(world.getUID()) != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index fbb674d355f30f34de6bb9608e628d5c49047be6..8e92454f435a43a78007ef607f15a94d2ac980ae 100644
+index 355d736f2cf6580c21365be2b3a0a3cb124d6d16..19c0754e87834577e166412af6936f88557c9614 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -525,6 +525,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -523,6 +523,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public int nextEntityId() {
return net.minecraft.world.entity.Entity.nextEntityId();
}
diff --git a/patches/server/0573-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0571-Add-fast-alternative-constructor-for-Rotations.patch
similarity index 100%
rename from patches/server/0573-Add-fast-alternative-constructor-for-Rotations.patch
rename to patches/server/0571-Add-fast-alternative-constructor-for-Rotations.patch
diff --git a/patches/server/0574-Item-Rarity-API.patch b/patches/server/0572-Item-Rarity-API.patch
similarity index 94%
rename from patches/server/0574-Item-Rarity-API.patch
rename to patches/server/0572-Item-Rarity-API.patch
index de26718a34..acf29f2cbe 100644
--- a/patches/server/0574-Item-Rarity-API.patch
+++ b/patches/server/0572-Item-Rarity-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Item Rarity API
public net.minecraft.world.item.Item rarity
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 8e92454f435a43a78007ef607f15a94d2ac980ae..44850ec4a8245bc534efb85008486dd6f599b2e4 100644
+index 19c0754e87834577e166412af6936f88557c9614..47e035d384c68d5584afb228b0adb6be05add239 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -530,6 +530,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -528,6 +528,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
public String getMainLevelName() {
return ((net.minecraft.server.dedicated.DedicatedServer) net.minecraft.server.MinecraftServer.getServer()).getProperties().levelName;
}
diff --git a/patches/server/0575-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0573-Drop-carried-item-when-player-has-disconnected.patch
similarity index 92%
rename from patches/server/0575-Drop-carried-item-when-player-has-disconnected.patch
rename to patches/server/0573-Drop-carried-item-when-player-has-disconnected.patch
index 5d01be88b2..4cc04af3a6 100644
--- a/patches/server/0575-Drop-carried-item-when-player-has-disconnected.patch
+++ b/patches/server/0573-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 063aed795bb668c62f69d0c93ffc6d939af681ad..7e26f87ffd8f50cf4e2cd582c9cd5d9abbf9c3f3 100644
+index 6d333b75f898fc34c7e739a1246a202329f1b9ff..f375947876c5c834bdab66a26a06b3a43c08e65d 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -591,6 +591,14 @@ public abstract class PlayerList {
diff --git a/patches/server/0576-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0574-forced-whitelist-use-configurable-kick-message.patch
similarity index 87%
rename from patches/server/0576-forced-whitelist-use-configurable-kick-message.patch
rename to patches/server/0574-forced-whitelist-use-configurable-kick-message.patch
index 5b96e8d5dd..8c90159103 100644
--- a/patches/server/0576-forced-whitelist-use-configurable-kick-message.patch
+++ b/patches/server/0574-forced-whitelist-use-configurable-kick-message.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] forced whitelist: use configurable kick message
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 34658ffabd88abbc84bfc19f44c9cd391f2cb1bb..b3f04bb7afee65584566591b302feb8dfa850e87 100644
+index 5ac0773a375d833f141f1a1754ca8a0661a0499b..39dd0ef9af89d4a752f101740ae58797fb2adc4d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2150,7 +2150,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 0 && packet.getSlot() < Inventory.getSelectionSize()) {
diff --git a/patches/server/0588-Added-PlayerDeepSleepEvent.patch b/patches/server/0586-Added-PlayerDeepSleepEvent.patch
similarity index 100%
rename from patches/server/0588-Added-PlayerDeepSleepEvent.patch
rename to patches/server/0586-Added-PlayerDeepSleepEvent.patch
diff --git a/patches/server/0589-More-World-API.patch b/patches/server/0587-More-World-API.patch
similarity index 94%
rename from patches/server/0589-More-World-API.patch
rename to patches/server/0587-More-World-API.patch
index f57028fb31..dd016744ab 100644
--- a/patches/server/0589-More-World-API.patch
+++ b/patches/server/0587-More-World-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] More World API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index fea9f11cf6f665eba86d2ffde7b241910300a516..a38eac88ef3099ba92273ed3818ddf742588552c 100644
+index 9351b3b8d4d9c7069ea4ae11a49a1f7b70ffbce9..f5de2359af2a7dc3c2f9cd4daec3aeae86fae153 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2081,6 +2081,69 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2088,6 +2088,69 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return new CraftStructureSearchResult(CraftStructure.minecraftToBukkit(found.getSecond().value(), this.getHandle().registryAccess()), CraftLocation.toBukkit(found.getFirst(), this));
}
@@ -77,7 +77,7 @@ index fea9f11cf6f665eba86d2ffde7b241910300a516..a38eac88ef3099ba92273ed3818ddf74
+
@Override
public Raid locateNearestRaid(Location location, int radius) {
- Validate.notNull(location, "Location cannot be null");
+ Preconditions.checkArgument(location != null, "Location cannot be null");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java b/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java
index 3071ac1ac0e733d73dade49597a39f7d156bbc04..967445b2eb158454100a27369a1f463d69f54f27 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java
diff --git a/patches/server/0590-Added-PlayerBedFailEnterEvent.patch b/patches/server/0588-Added-PlayerBedFailEnterEvent.patch
similarity index 100%
rename from patches/server/0590-Added-PlayerBedFailEnterEvent.patch
rename to patches/server/0588-Added-PlayerBedFailEnterEvent.patch
diff --git a/patches/server/0591-Entity-load-save-limit-per-chunk.patch b/patches/server/0589-Entity-load-save-limit-per-chunk.patch
similarity index 100%
rename from patches/server/0591-Entity-load-save-limit-per-chunk.patch
rename to patches/server/0589-Entity-load-save-limit-per-chunk.patch
diff --git a/patches/server/0592-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0590-Implement-methods-to-convert-between-Component-and-B.patch
similarity index 100%
rename from patches/server/0592-Implement-methods-to-convert-between-Component-and-B.patch
rename to patches/server/0590-Implement-methods-to-convert-between-Component-and-B.patch
diff --git a/patches/server/0593-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0591-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
similarity index 95%
rename from patches/server/0593-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
rename to patches/server/0591-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
index 6e2fe236e6..e962799f8b 100644
--- a/patches/server/0593-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
+++ b/patches/server/0591-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix anchor respawn acting as a bed respawn from the end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 7e26f87ffd8f50cf4e2cd582c9cd5d9abbf9c3f3..10d02d71b67f4022c6d5c709793a11283694362d 100644
+index f375947876c5c834bdab66a26a06b3a43c08e65d..f55c2f6f0b18456565cac50b9def91071497dee0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -810,6 +810,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0594-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0592-Introduce-beacon-activation-deactivation-events.patch
similarity index 100%
rename from patches/server/0594-Introduce-beacon-activation-deactivation-events.patch
rename to patches/server/0592-Introduce-beacon-activation-deactivation-events.patch
diff --git a/patches/server/0595-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0593-add-RespawnFlags-to-PlayerRespawnEvent.patch
similarity index 92%
rename from patches/server/0595-add-RespawnFlags-to-PlayerRespawnEvent.patch
rename to patches/server/0593-add-RespawnFlags-to-PlayerRespawnEvent.patch
index e91901fe8e..49c9535187 100644
--- a/patches/server/0595-add-RespawnFlags-to-PlayerRespawnEvent.patch
+++ b/patches/server/0593-add-RespawnFlags-to-PlayerRespawnEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7451b61d28c22555619a80b741744b376d92ce58..b3a75c6c1639b756084fb880ec085dd3541adcb4 100644
+index 1067ff8cb82f44ef3f67b4db5ee7697aabae22a8..84c49a70c32c07580748d9a55f24902ce5be8c5b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2780,7 +2780,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2783,7 +2783,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
case PERFORM_RESPAWN:
if (this.player.wonGame) {
this.player.wonGame = false;
@@ -18,7 +18,7 @@ index 7451b61d28c22555619a80b741744b376d92ce58..b3a75c6c1639b756084fb880ec085dd3
} else {
if (this.player.getHealth() > 0.0F) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 10d02d71b67f4022c6d5c709793a11283694362d..8fb526c84850162bbce004dc4179219320634eeb 100644
+index f55c2f6f0b18456565cac50b9def91071497dee0..3dbad6f9ea70db07a9bfa199b28def6a67353d80 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -769,6 +769,12 @@ public abstract class PlayerList {
diff --git a/patches/server/0596-Add-Channel-initialization-listeners.patch b/patches/server/0594-Add-Channel-initialization-listeners.patch
similarity index 100%
rename from patches/server/0596-Add-Channel-initialization-listeners.patch
rename to patches/server/0594-Add-Channel-initialization-listeners.patch
diff --git a/patches/server/0597-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0595-Send-empty-commands-if-tab-completion-is-disabled.patch
similarity index 100%
rename from patches/server/0597-Send-empty-commands-if-tab-completion-is-disabled.patch
rename to patches/server/0595-Send-empty-commands-if-tab-completion-is-disabled.patch
diff --git a/patches/server/0598-Add-more-WanderingTrader-API.patch b/patches/server/0596-Add-more-WanderingTrader-API.patch
similarity index 100%
rename from patches/server/0598-Add-more-WanderingTrader-API.patch
rename to patches/server/0596-Add-more-WanderingTrader-API.patch
diff --git a/patches/server/0599-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0597-Add-EntityBlockStorage-clearEntities.patch
similarity index 100%
rename from patches/server/0599-Add-EntityBlockStorage-clearEntities.patch
rename to patches/server/0597-Add-EntityBlockStorage-clearEntities.patch
diff --git a/patches/server/0600-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0598-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
similarity index 100%
rename from patches/server/0600-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
rename to patches/server/0598-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
diff --git a/patches/server/0601-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0599-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
similarity index 100%
rename from patches/server/0601-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
rename to patches/server/0599-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/server/0602-Inventory-close.patch b/patches/server/0600-Inventory-close.patch
similarity index 90%
rename from patches/server/0602-Inventory-close.patch
rename to patches/server/0600-Inventory-close.patch
index 69dc365057..31cb3eaa08 100644
--- a/patches/server/0602-Inventory-close.patch
+++ b/patches/server/0600-Inventory-close.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Inventory#close
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-index 015fc140db9162865f33cd6577cf758091a663c7..092f6843e3b43d4c615d2eee344f5966e96ae850 100644
+index 01b38b5a515c7dd0f0c79141c270d618bf3c56eb..bfac13ec6c316caa65db4a51b77f0a7045ad88ff 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -450,6 +450,14 @@ public class CraftInventory implements Inventory {
diff --git a/patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0601-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
similarity index 100%
rename from patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
rename to patches/server/0601-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
diff --git a/patches/server/0604-Fix-CraftPotionBrewer-cache.patch b/patches/server/0602-Fix-CraftPotionBrewer-cache.patch
similarity index 100%
rename from patches/server/0604-Fix-CraftPotionBrewer-cache.patch
rename to patches/server/0602-Fix-CraftPotionBrewer-cache.patch
diff --git a/patches/server/0605-Add-basic-Datapack-API.patch b/patches/server/0603-Add-basic-Datapack-API.patch
similarity index 94%
rename from patches/server/0605-Add-basic-Datapack-API.patch
rename to patches/server/0603-Add-basic-Datapack-API.patch
index 28ec4ee721..c0687f2e96 100644
--- a/patches/server/0605-Add-basic-Datapack-API.patch
+++ b/patches/server/0603-Add-basic-Datapack-API.patch
@@ -92,10 +92,10 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8b9b433dd1e835abc78ca074dbfe688f834625a9..912795bad8e64d98a4a13a6224ae653e049be62a 100644
+index ed6125d52eb0e406e44a2c3ded1ed1d1b19bf5c5..532c4f79e0926e029e78bc796238e54fd5f63023 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -298,6 +298,7 @@ public final class CraftServer implements Server {
+@@ -297,6 +297,7 @@ public final class CraftServer implements Server {
public boolean ignoreVanillaPermissions = false;
private final List playerView;
public int reloadCount;
@@ -103,7 +103,7 @@ index 8b9b433dd1e835abc78ca074dbfe688f834625a9..912795bad8e64d98a4a13a6224ae653e
public static Exception excessiveVelEx; // Paper - Velocity warnings
static {
-@@ -385,6 +386,7 @@ public final class CraftServer implements Server {
+@@ -384,6 +385,7 @@ public final class CraftServer implements Server {
if (this.configuration.getBoolean("settings.use-map-color-cache")) {
MapPalette.setMapColorCache(new CraftMapColorCache(this.logger));
}
@@ -111,7 +111,7 @@ index 8b9b433dd1e835abc78ca074dbfe688f834625a9..912795bad8e64d98a4a13a6224ae653e
}
public boolean getCommandBlockOverride(String command) {
-@@ -2833,5 +2835,11 @@ public final class CraftServer implements Server {
+@@ -2847,5 +2849,11 @@ public final class CraftServer implements Server {
public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return mobGoals;
}
diff --git a/patches/server/0606-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0604-Add-environment-variable-to-disable-server-gui.patch
similarity index 100%
rename from patches/server/0606-Add-environment-variable-to-disable-server-gui.patch
rename to patches/server/0604-Add-environment-variable-to-disable-server-gui.patch
diff --git a/patches/server/0607-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0605-additions-to-PlayerGameModeChangeEvent.patch
similarity index 94%
rename from patches/server/0607-additions-to-PlayerGameModeChangeEvent.patch
rename to patches/server/0605-additions-to-PlayerGameModeChangeEvent.patch
index 8ecfa20520..5a3cab5f99 100644
--- a/patches/server/0607-additions-to-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0605-additions-to-PlayerGameModeChangeEvent.patch
@@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..5cb15e2209d7b315904a1fc6d650ce1e
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b0b1f5022455e9ab0aa8ba3ddd0d4762f1e3eb81..c126bdaf557ae4a95e7111e0cc8a7f97f722e86c 100644
+index fba3ac571fafd5c738d0dcfd5492112817c443e3..a340a190b223efb6fafba3c7c9e996818709d6e9 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1885,8 +1885,16 @@ public class ServerPlayer extends Player {
@@ -131,10 +131,10 @@ index 43221bf57fb4eeb70823c12b48f4df0bb817eb0b..e903371b370034f6447c5f23562fe5c9
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b3a75c6c1639b756084fb880ec085dd3541adcb4..3e825ec345fd1074e3ab7ec8549bd1bc7a8f3e8e 100644
+index 84c49a70c32c07580748d9a55f24902ce5be8c5b..582697f5bb1423ee5eae91d28b19c10889bf8904 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2789,7 +2789,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2792,7 +2792,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
@@ -144,12 +144,12 @@ index b3a75c6c1639b756084fb880ec085dd3541adcb4..3e825ec345fd1074e3ab7ec8549bd1bc
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a193b78ae1f43b1d8a48467fb082ee3bcb61831b..b7cf7293c64bc9587c78a651791d07da0efe460a 100644
+index 950fa366d269bc4aca459c5f296ecf578f8ce312..949ef08cb2fbc6b237c651734821cc88e9fa1d9a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1534,7 +1534,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- throw new IllegalArgumentException("Mode cannot be null");
- }
+@@ -1485,7 +1485,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ Preconditions.checkArgument(mode != null, "GameMode cannot be null");
+ if (this.getHandle().connection == null) return;
- this.getHandle().setGameMode(GameType.byId(mode.getValue()));
+ this.getHandle().setGameMode(GameType.byId(mode.getValue()), org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.PLUGIN, null); // Paper
diff --git a/patches/server/0608-ItemStack-repair-check-API.patch b/patches/server/0606-ItemStack-repair-check-API.patch
similarity index 95%
rename from patches/server/0608-ItemStack-repair-check-API.patch
rename to patches/server/0606-ItemStack-repair-check-API.patch
index d68a2b6156..10e1c3e707 100644
--- a/patches/server/0608-ItemStack-repair-check-API.patch
+++ b/patches/server/0606-ItemStack-repair-check-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack repair check API
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index fb24efa54510fc77a7d4541462242113e16d2f53..236ab23039fd78d2fae8bcfa879d51100aeec8c7 100644
+index 507bffe09ffdc1ea8357f9ca2c5455d7704bfae8..0ad72425648eb9af806211068b5c14661749e030 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -545,6 +545,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -543,6 +543,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
}
diff --git a/patches/server/0609-More-Enchantment-API.patch b/patches/server/0607-More-Enchantment-API.patch
similarity index 97%
rename from patches/server/0609-More-Enchantment-API.patch
rename to patches/server/0607-More-Enchantment-API.patch
index ed087b154b..afd4dec304 100644
--- a/patches/server/0609-More-Enchantment-API.patch
+++ b/patches/server/0607-More-Enchantment-API.patch
@@ -66,10 +66,10 @@ index 57decf4156f176ebcc988478c17856cbc555c5e4..3d0ce0803e1da8a2681a3cb41096ac94
public net.minecraft.world.item.enchantment.Enchantment getHandle() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 37148ccf704dd8e5aa7d9ab100e6df142e822255..b38d72e921c4705cae72eb65113b36c87e4250fd 100644
+index 63a1522071ec6e9a550598b04c1a901ff76a5c78..d7499a2ffdc21ded42f7973e35ace340ff276f5a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -930,5 +930,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -927,5 +927,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setHurtDirection(float hurtDirection) {
throw new UnsupportedOperationException("Cannot set the hurt direction on a non player");
}
diff --git a/patches/server/0610-Move-range-check-for-block-placing-up.patch b/patches/server/0608-Move-range-check-for-block-placing-up.patch
similarity index 87%
rename from patches/server/0610-Move-range-check-for-block-placing-up.patch
rename to patches/server/0608-Move-range-check-for-block-placing-up.patch
index e91cd03b23..07cdf86b26 100644
--- a/patches/server/0610-Move-range-check-for-block-placing-up.patch
+++ b/patches/server/0608-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 3e825ec345fd1074e3ab7ec8549bd1bc7a8f3e8e..aaeacc33183774aa3969aaff2e5304936f7041d4 100644
+index 582697f5bb1423ee5eae91d28b19c10889bf8904..2e2b9f69914f727488aec0c7863783c41eb8f006 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1812,6 +1812,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1815,6 +1815,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (itemstack.isItemEnabled(worldserver.enabledFeatures())) {
BlockHitResult movingobjectpositionblock = packet.getHitResult();
Vec3 vec3d = movingobjectpositionblock.getLocation();
diff --git a/patches/server/0611-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0609-Fix-and-optimise-world-force-upgrading.patch
similarity index 97%
rename from patches/server/0611-Fix-and-optimise-world-force-upgrading.patch
rename to patches/server/0609-Fix-and-optimise-world-force-upgrading.patch
index 9aa24f531c..dae741c23f 100644
--- a/patches/server/0611-Fix-and-optimise-world-force-upgrading.patch
+++ b/patches/server/0609-Fix-and-optimise-world-force-upgrading.patch
@@ -275,10 +275,10 @@ index 98385550084c9f975e494668961bac6ccb0700ab..1147044f2c4c2e9510cb6e5c38b6abe8
Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit
WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b3f04bb7afee65584566591b302feb8dfa850e87..21d893bb1867aa5cae7924734a0e843d4c35aa94 100644
+index 39dd0ef9af89d4a752f101740ae58797fb2adc4d..5fa98801e2e64d4e2d948af5f131ed32b96c0510 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -554,11 +554,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop {
-- return true;
-- }, iregistry);
+- net.minecraft.server.Main.forceUpgrade(worldSession, DataFixers.getDataFixer(), console.options.has("eraseCache"), () -> true, iregistry);
- }
+ // Paper - move down
long j = BiomeManager.obfuscateSeed(creator.seed());
List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
-@@ -1245,6 +1240,13 @@ public final class CraftServer implements Server {
+@@ -1243,6 +1241,13 @@ public final class CraftServer implements Server {
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
}
diff --git a/patches/server/0612-Add-Mob-lookAt-API.patch b/patches/server/0610-Add-Mob-lookAt-API.patch
similarity index 100%
rename from patches/server/0612-Add-Mob-lookAt-API.patch
rename to patches/server/0610-Add-Mob-lookAt-API.patch
diff --git a/patches/server/0613-Add-Unix-domain-socket-support.patch b/patches/server/0611-Add-Unix-domain-socket-support.patch
similarity index 98%
rename from patches/server/0613-Add-Unix-domain-socket-support.patch
rename to patches/server/0611-Add-Unix-domain-socket-support.patch
index 74b575b599..78e4900413 100644
--- a/patches/server/0613-Add-Unix-domain-socket-support.patch
+++ b/patches/server/0611-Add-Unix-domain-socket-support.patch
@@ -91,10 +91,10 @@ index 29a0a720f22f56ca3d844efef1ecde3980fb1c12..838244e3680ea6020701e10bafbde7f5
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index aaeacc33183774aa3969aaff2e5304936f7041d4..1349efcfb368305d5437ec464a5f32a17177f0ca 100644
+index 2e2b9f69914f727488aec0c7863783c41eb8f006..75ab3e102caead4f9bdfbf74772d998f9da9c723 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2624,6 +2624,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2627,6 +2627,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Spigot Start
public SocketAddress getRawAddress()
{
diff --git a/patches/server/0614-Add-EntityInsideBlockEvent.patch b/patches/server/0612-Add-EntityInsideBlockEvent.patch
similarity index 100%
rename from patches/server/0614-Add-EntityInsideBlockEvent.patch
rename to patches/server/0612-Add-EntityInsideBlockEvent.patch
diff --git a/patches/server/0615-Attributes-API-for-item-defaults.patch b/patches/server/0613-Attributes-API-for-item-defaults.patch
similarity index 91%
rename from patches/server/0615-Attributes-API-for-item-defaults.patch
rename to patches/server/0613-Attributes-API-for-item-defaults.patch
index 86638e1bcc..7a942f3f03 100644
--- a/patches/server/0615-Attributes-API-for-item-defaults.patch
+++ b/patches/server/0613-Attributes-API-for-item-defaults.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 236ab23039fd78d2fae8bcfa879d51100aeec8c7..fea31b187fd5965bf479548835e5603e78f3f3f1 100644
+index 0ad72425648eb9af806211068b5c14661749e030..ef9a1d7e23be8ffe9a1669161de9310c6e566b40 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -553,6 +553,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -551,6 +551,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
return CraftMagicNumbers.getItem(itemToBeRepaired.getType()).isValidRepairItem(CraftItemStack.asNMSCopy(itemToBeRepaired), CraftItemStack.asNMSCopy(repairMaterial));
}
diff --git a/patches/server/0616-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0614-Add-cause-to-Weather-ThunderChangeEvents.patch
similarity index 96%
rename from patches/server/0616-Add-cause-to-Weather-ThunderChangeEvents.patch
rename to patches/server/0614-Add-cause-to-Weather-ThunderChangeEvents.patch
index dfe89cd593..3b0c93464b 100644
--- a/patches/server/0616-Add-cause-to-Weather-ThunderChangeEvents.patch
+++ b/patches/server/0614-Add-cause-to-Weather-ThunderChangeEvents.patch
@@ -95,10 +95,10 @@ index 626b861ef2f323a5fc50ab5178d3e108e0f9cc25..31c31a9138cb5f6e41de01a6210f84e7
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 a38eac88ef3099ba92273ed3818ddf742588552c..55f631626bd35b46bd8f95b0a30de8c84d99d984 100644
+index f5de2359af2a7dc3c2f9cd4daec3aeae86fae153..139265ff015bba7517ccbbcc890610d00362142e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1181,7 +1181,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1186,7 +1186,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setStorm(boolean hasStorm) {
@@ -107,7 +107,7 @@ index a38eac88ef3099ba92273ed3818ddf742588552c..55f631626bd35b46bd8f95b0a30de8c8
this.setWeatherDuration(0); // Reset weather duration (legacy behaviour)
this.setClearWeatherDuration(0); // Reset clear weather duration (reset "/weather clear" commands)
}
-@@ -1203,7 +1203,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1208,7 +1208,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setThundering(boolean thundering) {
diff --git a/patches/server/0617-More-Lidded-Block-API.patch b/patches/server/0615-More-Lidded-Block-API.patch
similarity index 100%
rename from patches/server/0617-More-Lidded-Block-API.patch
rename to patches/server/0615-More-Lidded-Block-API.patch
diff --git a/patches/server/0618-Limit-item-frame-cursors-on-maps.patch b/patches/server/0616-Limit-item-frame-cursors-on-maps.patch
similarity index 100%
rename from patches/server/0618-Limit-item-frame-cursors-on-maps.patch
rename to patches/server/0616-Limit-item-frame-cursors-on-maps.patch
diff --git a/patches/server/0619-Add-PlayerKickEvent-causes.patch b/patches/server/0617-Add-PlayerKickEvent-causes.patch
similarity index 95%
rename from patches/server/0619-Add-PlayerKickEvent-causes.patch
rename to patches/server/0617-Add-PlayerKickEvent-causes.patch
index 1445892a9d..b77cdefa3c 100644
--- a/patches/server/0619-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0617-Add-PlayerKickEvent-causes.patch
@@ -36,10 +36,10 @@ index b5f54ee82905e3e6ab5bfde35ab625f5feeb1393..c0a80824a0307ea673805015119cc834
public boolean shouldDisconnect() {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 21d893bb1867aa5cae7924734a0e843d4c35aa94..76bdca305277d8d2a659b029f035bb4da25a076e 100644
+index 5fa98801e2e64d4e2d948af5f131ed32b96c0510..09617ff2716b8e75380421e9a19c145806602151 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2153,7 +2153,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 20) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!");
@@ -262,7 +262,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return;
}
}
-@@ -1946,7 +1956,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1949,7 +1959,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) {
ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName());
@@ -271,7 +271,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
// Paper start
PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()];
-@@ -2062,7 +2072,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2065,7 +2075,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player.resetLastActionTime();
} else {
ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString());
@@ -280,7 +280,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2075,7 +2085,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2078,7 +2088,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// CraftBukkit end
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) {
@@ -289,7 +289,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
Optional optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2109,7 +2119,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2112,7 +2122,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleChatCommand(ServerboundChatCommandPacket packet) {
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) {
@@ -298,7 +298,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
Optional optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2164,7 +2174,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2167,7 +2177,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private void handleMessageDecodeFailure(SignedMessageChain.DecodeException exception) {
if (exception.shouldDisconnect()) {
@@ -307,7 +307,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
this.player.sendSystemMessage(exception.getComponent().copy().withStyle(ChatFormatting.RED));
}
-@@ -2195,7 +2205,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2198,7 +2208,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message);
@@ -316,7 +316,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return Optional.empty();
} else {
Optional optional = this.unpackAndApplyLastSeen(acknowledgment);
-@@ -2218,7 +2228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2221,7 +2231,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (optional.isEmpty()) {
ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString());
@@ -325,7 +325,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
return optional;
-@@ -2441,7 +2451,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2444,7 +2454,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// this.chatSpamTickCount += 20;
if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
// CraftBukkit end
@@ -334,7 +334,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2453,7 +2463,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2456,7 +2466,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
synchronized (this.lastSeenMessages) {
if (!this.lastSeenMessages.applyOffset(packet.offset())) {
ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString());
@@ -343,7 +343,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2596,7 +2606,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2599,7 +2609,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
if (i > 4096) {
@@ -352,7 +352,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2642,7 +2652,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2645,7 +2655,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Spigot Start
if ( entity == this.player && !this.player.isSpectator() )
{
@@ -361,7 +361,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return;
}
// Spigot End
-@@ -2741,7 +2751,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2744,7 +2754,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// CraftBukkit end
}
} else {
@@ -370,7 +370,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString());
}
}
-@@ -3150,7 +3160,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3153,7 +3163,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Paper start
if (!org.bukkit.Bukkit.isPrimaryThread()) {
if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) {
@@ -379,7 +379,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return;
}
}
-@@ -3321,7 +3331,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3324,7 +3334,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
} else if (!this.isSingleplayerOwner()) {
// Paper start - This needs to be handled on the main thread for plugins
server.submit(() -> {
@@ -388,7 +388,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
});
// Paper end
}
-@@ -3367,7 +3377,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3370,7 +3380,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex);
@@ -397,7 +397,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
} else if (packet.identifier.equals(CUSTOM_UNREGISTER)) {
try {
-@@ -3377,7 +3387,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3380,7 +3390,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
@@ -406,7 +406,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
} else {
try {
-@@ -3395,7 +3405,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3398,7 +3408,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data);
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
@@ -415,7 +415,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -3437,7 +3447,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3440,7 +3450,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) {
if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) {
@@ -424,7 +424,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
try {
SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator();
-@@ -3450,7 +3460,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3453,7 +3463,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator, Duration.ZERO));
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage());
@@ -434,7 +434,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 8fb526c84850162bbce004dc4179219320634eeb..ea195117f25ea0009ff646e08aec7401d1edb6b4 100644
+index 3dbad6f9ea70db07a9bfa199b28def6a67353d80..77d80170cabc358c75d58ac7ff19054ba6b7617f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -678,7 +678,7 @@ public abstract class PlayerList {
@@ -491,10 +491,10 @@ index 984c288abf94d9fe47fada33722fea035b832f3b..addd20237b87c9a87bb09fd7addb101a
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b7cf7293c64bc9587c78a651791d07da0efe460a..cd640331afe72cd181dcb862f993ba3e0b68fc98 100644
+index 949ef08cb2fbc6b237c651734821cc88e9fa1d9a..02e8f2ca5d97df0b1c845e10261a4bc70da755a4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -576,7 +576,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -573,7 +573,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
org.spigotmc.AsyncCatcher.catchOp("player kick"); // Spigot
if (this.getHandle().connection == null) return;
@@ -503,7 +503,7 @@ index b7cf7293c64bc9587c78a651791d07da0efe460a..cd640331afe72cd181dcb862f993ba3e
}
// Paper start
-@@ -588,10 +588,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -585,10 +585,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void kick(final net.kyori.adventure.text.Component message) {
@@ -520,7 +520,7 @@ index b7cf7293c64bc9587c78a651791d07da0efe460a..cd640331afe72cd181dcb862f993ba3e
}
}
-@@ -658,7 +663,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -659,7 +664,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper start - improve chat handling
if (ServerGamePacketListenerImpl.isChatMessageIllegal(msg)) {
diff --git a/patches/server/0620-Add-PufferFishStateChangeEvent.patch b/patches/server/0618-Add-PufferFishStateChangeEvent.patch
similarity index 100%
rename from patches/server/0620-Add-PufferFishStateChangeEvent.patch
rename to patches/server/0618-Add-PufferFishStateChangeEvent.patch
diff --git a/patches/server/0621-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0619-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
similarity index 100%
rename from patches/server/0621-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
rename to patches/server/0619-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
diff --git a/patches/server/0622-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0620-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
similarity index 100%
rename from patches/server/0622-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
rename to patches/server/0620-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
diff --git a/patches/server/0623-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0621-Add-option-to-fix-items-merging-through-walls.patch
similarity index 100%
rename from patches/server/0623-Add-option-to-fix-items-merging-through-walls.patch
rename to patches/server/0621-Add-option-to-fix-items-merging-through-walls.patch
diff --git a/patches/server/0624-Add-BellRevealRaiderEvent.patch b/patches/server/0622-Add-BellRevealRaiderEvent.patch
similarity index 100%
rename from patches/server/0624-Add-BellRevealRaiderEvent.patch
rename to patches/server/0622-Add-BellRevealRaiderEvent.patch
diff --git a/patches/server/0625-Fix-invulnerable-end-crystals.patch b/patches/server/0623-Fix-invulnerable-end-crystals.patch
similarity index 100%
rename from patches/server/0625-Fix-invulnerable-end-crystals.patch
rename to patches/server/0623-Fix-invulnerable-end-crystals.patch
diff --git a/patches/server/0626-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0624-Add-ElderGuardianAppearanceEvent.patch
similarity index 100%
rename from patches/server/0626-Add-ElderGuardianAppearanceEvent.patch
rename to patches/server/0624-Add-ElderGuardianAppearanceEvent.patch
diff --git a/patches/server/0627-Fix-dangerous-end-portal-logic.patch b/patches/server/0625-Fix-dangerous-end-portal-logic.patch
similarity index 97%
rename from patches/server/0627-Fix-dangerous-end-portal-logic.patch
rename to patches/server/0625-Fix-dangerous-end-portal-logic.patch
index 79d4ba5f81..a28edf1edc 100644
--- a/patches/server/0627-Fix-dangerous-end-portal-logic.patch
+++ b/patches/server/0625-Fix-dangerous-end-portal-logic.patch
@@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was
designed to happen in the first place.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a500f4becd7f97038734b460c33832388f5ca17a..5277a260f1734051033159ebe2e4af18d48b2097 100644
+index 44d8e9659e111e6f9ca4e403ff4cb4e57c712ea4..6a7b3a54a29b1632061c241b89058729c2b3e036 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -515,6 +515,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0628-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0626-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
similarity index 100%
rename from patches/server/0628-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
rename to patches/server/0626-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
diff --git a/patches/server/0629-Make-item-validations-configurable.patch b/patches/server/0627-Make-item-validations-configurable.patch
similarity index 90%
rename from patches/server/0629-Make-item-validations-configurable.patch
rename to patches/server/0627-Make-item-validations-configurable.patch
index c25f67167d..15390d1f92 100644
--- a/patches/server/0629-Make-item-validations-configurable.patch
+++ b/patches/server/0627-Make-item-validations-configurable.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Make item validations configurable
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-index e8413ad360e9b6c4eef13edf9dd0095e7e64bce2..a5d7fae348b0b262a0a8a5e8e76f1bc75ca52a16 100644
+index cf928745c36af0e6fa0a95e177395c5fb1aa821a..2a08b1ac6e9aac81012997637b4cad59f0f1125a 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
@@ -88,11 +88,11 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
@@ -32,10 +32,10 @@ index e8413ad360e9b6c4eef13edf9dd0095e7e64bce2..a5d7fae348b0b262a0a8a5e8e76f1bc7
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 93d40df438a0d95b32def9a6c206b98ca6168cb3..4caf272f065a681bd7101d52fedf2642cc78d3bc 100644
+index fa94030ac80c8c68ee429e6b7350395208e4348f..ac9fb7cf96ed36162c4f6c2a834b627d0120f3cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -361,7 +361,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -360,7 +360,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CompoundTag display = tag.getCompound(DISPLAY.NBT);
if (display.contains(NAME.NBT)) {
@@ -44,7 +44,7 @@ index 93d40df438a0d95b32def9a6c206b98ca6168cb3..4caf272f065a681bd7101d52fedf2642
}
if (display.contains(LOCNAME.NBT)) {
-@@ -372,7 +372,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -371,7 +371,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
ListTag list = display.getList(LORE.NBT, CraftMagicNumbers.NBT.TAG_STRING);
this.lore = new ArrayList(list.size());
for (int index = 0; index < list.size(); index++) {
diff --git a/patches/server/0630-Line-Of-Sight-Changes.patch b/patches/server/0628-Line-Of-Sight-Changes.patch
similarity index 76%
rename from patches/server/0630-Line-Of-Sight-Changes.patch
rename to patches/server/0628-Line-Of-Sight-Changes.patch
index 5f0149d296..e58b9a605f 100644
--- a/patches/server/0630-Line-Of-Sight-Changes.patch
+++ b/patches/server/0628-Line-Of-Sight-Changes.patch
@@ -19,10 +19,10 @@ index bce63453fb04db09b10550197f749c959b30a37e..62e8586d30950eed81868ccbb48212a4
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5bd5a059c5beeade313f74ba3c1fc63825bd286b..d7c9b421eb636c0642b73263f46f824b95c1614e 100644
+index 9160fc90afce3c589cf6a3ddb829d56e045b20fa..248c8abf6620ac78b8a4fd1476d7b20862c6125b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -996,5 +996,16 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -992,5 +992,16 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
public org.bukkit.NamespacedKey getKey() {
return org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(this.getHandle().getLevel().dimension().location());
}
@@ -40,20 +40,10 @@ index 5bd5a059c5beeade313f74ba3c1fc63825bd286b..d7c9b421eb636c0642b73263f46f824b
// 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 b38d72e921c4705cae72eb65113b36c87e4250fd..61292952681727bcd651064619bff1b41c560d75 100644
+index d7499a2ffdc21ded42f7973e35ace340ff276f5a..b56504c3e5c457bfe83bbc864dc217c2f0cc9d18 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -29,6 +29,9 @@ import net.minecraft.world.entity.projectile.ThrownEgg;
- import net.minecraft.world.entity.projectile.ThrownEnderpearl;
- import net.minecraft.world.entity.projectile.ThrownExperienceBottle;
- import net.minecraft.world.entity.projectile.ThrownTrident;
-+import net.minecraft.world.level.ClipContext;
-+import net.minecraft.world.phys.HitResult;
-+import net.minecraft.world.phys.Vec3;
- import org.apache.commons.lang.Validate;
- import org.bukkit.FluidCollisionMode;
- import org.bukkit.Location;
-@@ -576,6 +579,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -575,6 +575,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return this.getHandle().hasLineOfSight(((CraftEntity) other).getHandle());
}
@@ -61,11 +51,11 @@ index b38d72e921c4705cae72eb65113b36c87e4250fd..61292952681727bcd651064619bff1b4
+ @Override
+ public boolean hasLineOfSight(Location loc) {
+ if (this.getHandle().level() != ((CraftWorld) loc.getWorld()).getHandle()) return false;
-+ Vec3 vec3d = new Vec3(this.getHandle().getX(), this.getHandle().getEyeY(), this.getHandle().getZ());
-+ Vec3 vec3d1 = new Vec3(loc.getX(), loc.getY(), loc.getZ());
++ net.minecraft.world.phys.Vec3 vec3d = new net.minecraft.world.phys.Vec3(this.getHandle().getX(), this.getHandle().getEyeY(), this.getHandle().getZ());
++ net.minecraft.world.phys.Vec3 vec3d1 = new net.minecraft.world.phys.Vec3(loc.getX(), loc.getY(), loc.getZ());
+ if (vec3d1.distanceToSqr(vec3d) > 128D * 128D) return false; //Return early if the distance is greater than 128 blocks
+
-+ return this.getHandle().level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this.getHandle())).getType() == HitResult.Type.MISS;
++ return this.getHandle().level().clip(new net.minecraft.world.level.ClipContext(vec3d, vec3d1, net.minecraft.world.level.ClipContext.Block.COLLIDER, net.minecraft.world.level.ClipContext.Fluid.NONE, this.getHandle())).getType() == net.minecraft.world.phys.HitResult.Type.MISS;
+ }
+ // Paper end
+
diff --git a/patches/server/0631-add-per-world-spawn-limits.patch b/patches/server/0629-add-per-world-spawn-limits.patch
similarity index 86%
rename from patches/server/0631-add-per-world-spawn-limits.patch
rename to patches/server/0629-add-per-world-spawn-limits.patch
index 6555137e8e..8b6813991f 100644
--- a/patches/server/0631-add-per-world-spawn-limits.patch
+++ b/patches/server/0629-add-per-world-spawn-limits.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] add per world spawn limits
Taken from #2982. Credit to Chasewhip8
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 55f631626bd35b46bd8f95b0a30de8c84d99d984..7e635571aea53e2ee7c39315c14347955f46dfe8 100644
+index 139265ff015bba7517ccbbcc890610d00362142e..7edcc68a24bd812f50d9ce441fab568906061da3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -213,6 +213,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -212,6 +212,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
this.biomeProvider = biomeProvider;
this.environment = env;
diff --git a/patches/server/0632-Fix-potions-splash-events.patch b/patches/server/0630-Fix-potions-splash-events.patch
similarity index 100%
rename from patches/server/0632-Fix-potions-splash-events.patch
rename to patches/server/0630-Fix-potions-splash-events.patch
diff --git a/patches/server/0633-Add-more-LimitedRegion-API.patch b/patches/server/0631-Add-more-LimitedRegion-API.patch
similarity index 93%
rename from patches/server/0633-Add-more-LimitedRegion-API.patch
rename to patches/server/0631-Add-more-LimitedRegion-API.patch
index 0701fb43d1..af3f4ff82e 100644
--- a/patches/server/0633-Add-more-LimitedRegion-API.patch
+++ b/patches/server/0631-Add-more-LimitedRegion-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add more LimitedRegion API
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-index 10fb28aabf8c9f764cdd614edbeec4523f8ab431..0ea1586bab74983fca19dcc5415fbc7a044fe186 100644
+index bc606693566419c143d19284b110961602c2810b..23ffe4b8a19286543e12bf7408879e6d1305a78f 100644
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-@@ -251,4 +251,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
+@@ -249,4 +249,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
public void addEntityToWorld(net.minecraft.world.entity.Entity entity, CreatureSpawnEvent.SpawnReason reason) {
this.entities.add(entity);
}
diff --git a/patches/server/0634-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0632-Fix-PlayerDropItemEvent-using-wrong-item.patch
similarity index 94%
rename from patches/server/0634-Fix-PlayerDropItemEvent-using-wrong-item.patch
rename to patches/server/0632-Fix-PlayerDropItemEvent-using-wrong-item.patch
index 20cc2dfe64..07077c14b3 100644
--- a/patches/server/0634-Fix-PlayerDropItemEvent-using-wrong-item.patch
+++ b/patches/server/0632-Fix-PlayerDropItemEvent-using-wrong-item.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c126bdaf557ae4a95e7111e0cc8a7f97f722e86c..dc134bfac4fb2bef6d99c7c88cb680d87808a5f7 100644
+index a340a190b223efb6fafba3c7c9e996818709d6e9..7d5de33442fe4ba53c51cc7356323622c2c3022f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2294,7 +2294,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0635-Missing-Entity-Behavior-API.patch b/patches/server/0633-Missing-Entity-Behavior-API.patch
similarity index 98%
rename from patches/server/0635-Missing-Entity-Behavior-API.patch
rename to patches/server/0633-Missing-Entity-Behavior-API.patch
index d1cd66fa4c..2b270fa0e0 100644
--- a/patches/server/0635-Missing-Entity-Behavior-API.patch
+++ b/patches/server/0633-Missing-Entity-Behavior-API.patch
@@ -358,10 +358,10 @@ index 61d4877b4f74362e38104bfeacb7d66534ad798e..454dd67920826b8b62c2654abfd43fc0
@Override
protected EntityHitResult findHitEntity(Vec3 currentPosition, Vec3 nextPosition) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index d7c9b421eb636c0642b73263f46f824b95c1614e..c738fb984ffd120e5adccdb5828833f180e72e80 100644
+index 248c8abf6620ac78b8a4fd1476d7b20862c6125b..7318209de454b233e22c20b176cb207de7f86674 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -832,14 +832,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -828,14 +828,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
} else if (Phantom.class.isAssignableFrom(clazz)) {
entity = net.minecraft.world.entity.EntityType.PHANTOM.create(world);
} else if (Fish.class.isAssignableFrom(clazz)) {
@@ -388,10 +388,10 @@ index d7c9b421eb636c0642b73263f46f824b95c1614e..c738fb984ffd120e5adccdb5828833f1
entity = net.minecraft.world.entity.EntityType.TADPOLE.create(world);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index 254d4f2e45d7c8f572a4368eccd84560d4d0d836..299ab868252c8f326e3a56e878c9ee230c9635dc 100644
+index 3f1f4d65525562b3117fdc21c8a7f535b12c3c46..90a989c7c9de6f9ba55ab640761915e98320642a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-@@ -115,4 +115,36 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
+@@ -114,4 +114,36 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
public AbstractHorseInventory getInventory() {
return new CraftSaddledInventory(getHandle().inventory);
}
@@ -632,7 +632,7 @@ index 04976616da8c85b1278dad33ff05554aa74a6b33..75c7645fb5732c43d1da15181cf5c7ee
+ // 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 bed8b8d3091216856168277af7f51c54b5b1e1f1..9155af9c7e001d4cb431e74b12c9d98227011d51 100644
+index d3eaf054b1815003934e7f2d904a05a5d8abc3a5..02dc40b6f7b82ce503c33fb4af26cbb20c9d5b7a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -227,10 +227,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -656,7 +656,7 @@ index bed8b8d3091216856168277af7f51c54b5b1e1f1..9155af9c7e001d4cb431e74b12c9d982
else { return new CraftFish(server, (AbstractFish) entity); }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
-index d66c3b6da16b09a471fbbc07ee143a02468c9228..6c71be9b453fb662276869a24257969941501c0e 100644
+index 007b69c201672483103397c945634d7518f5861c..9e5c9b1c4299986b2fae7e191d7661549376a331 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
@@ -119,4 +119,41 @@ public class CraftFox extends CraftAnimals implements Fox {
@@ -1131,10 +1131,10 @@ index 50b07045cd17a7576a436c64662ad039d4aa2132..bcfca66c7b99b9d514fe850d6cc6abd7
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
-index e98242321fcaa5cbaa242cb7e77832378a8aecf6..3954fe7e5f9ce8ea9300bfb92b7e4f4b55f0e6da 100644
+index 20e11bb0ae8949988b3499ad85016379fbe83218..7d63e9b8c92da089886ce9118bea07077f0541cd 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
-@@ -72,13 +72,20 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
+@@ -70,13 +70,20 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
@Override
public void setConversionTime(int time) {
@@ -1151,8 +1151,8 @@ index e98242321fcaa5cbaa242cb7e77832378a8aecf6..3954fe7e5f9ce8ea9300bfb92b7e4f4b
this.getHandle().conversionStarter = null;
this.getHandle().removeEffect(MobEffects.DAMAGE_BOOST, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.CONVERSION);
} else {
-- this.getHandle().startConverting((UUID) null, time);
-+ this.getHandle().startConverting((UUID) null, time, broadcastEntityEvent); // Paper - missing entity behaviour api - converting without entity event
+- this.getHandle().startConverting(null, time);
++ this.getHandle().startConverting(null, time, broadcastEntityEvent); // Paper - missing entity behaviour api - converting without entity event
}
}
diff --git a/patches/server/0636-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0634-Ensure-disconnect-for-book-edit-is-called-on-main.patch
similarity index 92%
rename from patches/server/0636-Ensure-disconnect-for-book-edit-is-called-on-main.patch
rename to patches/server/0634-Ensure-disconnect-for-book-edit-is-called-on-main.patch
index e11ae310c2..c89825748e 100644
--- a/patches/server/0636-Ensure-disconnect-for-book-edit-is-called-on-main.patch
+++ b/patches/server/0634-Ensure-disconnect-for-book-edit-is-called-on-main.patch
@@ -5,7 +5,7 @@ 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 0a39701d26eb37504980c8a399c259f612e0286a..81998223bcee27a489cdcc1bf3fb7a894718c478 100644
+index 76d8c5c5029ac564d05144cef5030c6b64df9a98..b8eba8f002bffacd4c4943d2e49045ddc753db8c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1209,7 +1209,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0637-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0635-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
similarity index 84%
rename from patches/server/0637-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
rename to patches/server/0635-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
index e5a0109248..571b88a531 100644
--- a/patches/server/0637-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
+++ b/patches/server/0635-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix return value of Block#applyBoneMeal always being false
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 30fc626f51437e254993edd9b14337fa60ba313c..e7e5c9fa734072e9ae15eb5f6d75c7740ba3ba44 100644
+index 582f1c07da8edc88dda9463992bb8503fcb9e163..d37440f78a31c676fc6efe9e59253dbe8097b94e 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -585,7 +585,7 @@ public class CraftBlock implements Block {
+@@ -583,7 +583,7 @@ public class CraftBlock implements Block {
}
}
diff --git a/patches/server/0638-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0636-Use-getChunkIfLoadedImmediately-in-places.patch
similarity index 100%
rename from patches/server/0638-Use-getChunkIfLoadedImmediately-in-places.patch
rename to patches/server/0636-Use-getChunkIfLoadedImmediately-in-places.patch
diff --git a/patches/server/0639-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0637-Fix-commands-from-signs-not-firing-command-events.patch
similarity index 100%
rename from patches/server/0639-Fix-commands-from-signs-not-firing-command-events.patch
rename to patches/server/0637-Fix-commands-from-signs-not-firing-command-events.patch
diff --git a/patches/server/0640-Adds-PlayerArmSwingEvent.patch b/patches/server/0638-Adds-PlayerArmSwingEvent.patch
similarity index 88%
rename from patches/server/0640-Adds-PlayerArmSwingEvent.patch
rename to patches/server/0638-Adds-PlayerArmSwingEvent.patch
index 2bf2ddfeb2..b3d3eef0c5 100644
--- a/patches/server/0640-Adds-PlayerArmSwingEvent.patch
+++ b/patches/server/0638-Adds-PlayerArmSwingEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Adds PlayerArmSwingEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 81998223bcee27a489cdcc1bf3fb7a894718c478..4d2c3a03236e95283473e3290f5efe95f2a196bb 100644
+index b8eba8f002bffacd4c4943d2e49045ddc753db8c..e0937f5437451c383e9a540d98b07f23120cb8f1 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2491,7 +2491,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2494,7 +2494,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// Arm swing animation
diff --git a/patches/server/0641-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0639-Fixes-kick-event-leave-message-not-being-sent.patch
similarity index 93%
rename from patches/server/0641-Fixes-kick-event-leave-message-not-being-sent.patch
rename to patches/server/0639-Fixes-kick-event-leave-message-not-being-sent.patch
index 28965b98d3..d2d5b852a1 100644
--- a/patches/server/0641-Fixes-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0639-Fixes-kick-event-leave-message-not-being-sent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fixes 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 dc134bfac4fb2bef6d99c7c88cb680d87808a5f7..62906422a96995ca4eac5a4d8ad2af3093a6a047 100644
+index 7d5de33442fe4ba53c51cc7356323622c2c3022f..478dbba3519f8d2fdd4b203756403761ccad553b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -270,7 +270,6 @@ public class ServerPlayer extends Player {
@@ -17,7 +17,7 @@ index dc134bfac4fb2bef6d99c7c88cb680d87808a5f7..62906422a96995ca4eac5a4d8ad2af30
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/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d743873454 100644
+index e0937f5437451c383e9a540d98b07f23120cb8f1..7b2c971dad894718825475f3af364f0c653e5beb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -514,7 +514,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -37,7 +37,7 @@ index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d7
this.connection.setReadOnly();
MinecraftServer minecraftserver = this.server;
Connection networkmanager = this.connection;
-@@ -1983,6 +1982,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1986,6 +1985,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void onDisconnect(Component reason) {
@@ -49,7 +49,7 @@ index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d7
// CraftBukkit start - Rarely it would send a disconnect line twice
if (this.processedDisconnect) {
return;
-@@ -2000,7 +2004,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2003,7 +2007,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player.disconnect();
// Paper start - Adventure
@@ -59,7 +59,7 @@ index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d7
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 ea195117f25ea0009ff646e08aec7401d1edb6b4..a427354b357e13bde80e4a09e019dd777caca280 100644
+index 77d80170cabc358c75d58ac7ff19054ba6b7617f..c8e38ed5e14fb137a7d169c57bc58bdf4421e0cc 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -564,6 +564,11 @@ public abstract class PlayerList {
diff --git a/patches/server/0642-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0640-Add-config-for-mobs-immune-to-default-effects.patch
similarity index 100%
rename from patches/server/0642-Add-config-for-mobs-immune-to-default-effects.patch
rename to patches/server/0640-Add-config-for-mobs-immune-to-default-effects.patch
diff --git a/patches/server/0643-Fix-incorrect-message-for-outdated-client.patch b/patches/server/0641-Fix-incorrect-message-for-outdated-client.patch
similarity index 100%
rename from patches/server/0643-Fix-incorrect-message-for-outdated-client.patch
rename to patches/server/0641-Fix-incorrect-message-for-outdated-client.patch
diff --git a/patches/server/0644-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0642-Don-t-apply-cramming-damage-to-players.patch
similarity index 94%
rename from patches/server/0644-Don-t-apply-cramming-damage-to-players.patch
rename to patches/server/0642-Don-t-apply-cramming-damage-to-players.patch
index de6cc08fd7..a423c75fc2 100644
--- a/patches/server/0644-Don-t-apply-cramming-damage-to-players.patch
+++ b/patches/server/0642-Don-t-apply-cramming-damage-to-players.patch
@@ -11,7 +11,7 @@ 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 62906422a96995ca4eac5a4d8ad2af3093a6a047..3d9f3e49cc783ace04f5228a5ae33f35799ced4a 100644
+index 478dbba3519f8d2fdd4b203756403761ccad553b..deaf1fcb189ba1382f2b52d12afa12463874f7ec 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -100,6 +100,7 @@ import net.minecraft.util.Mth;
diff --git a/patches/server/0645-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0643-Rate-options-and-timings-for-sensors-and-behaviors.patch
similarity index 100%
rename from patches/server/0645-Rate-options-and-timings-for-sensors-and-behaviors.patch
rename to patches/server/0643-Rate-options-and-timings-for-sensors-and-behaviors.patch
diff --git a/patches/server/0646-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0644-Add-a-bunch-of-missing-forceDrop-toggles.patch
similarity index 100%
rename from patches/server/0646-Add-a-bunch-of-missing-forceDrop-toggles.patch
rename to patches/server/0644-Add-a-bunch-of-missing-forceDrop-toggles.patch
diff --git a/patches/server/0647-Stinger-API.patch b/patches/server/0645-Stinger-API.patch
similarity index 89%
rename from patches/server/0647-Stinger-API.patch
rename to patches/server/0645-Stinger-API.patch
index a5a2a838f7..49ac5ef4ef 100644
--- a/patches/server/0647-Stinger-API.patch
+++ b/patches/server/0645-Stinger-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Stinger API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 61292952681727bcd651064619bff1b41c560d75..1973a8ed75f9bacebebfa74dd2d06bf7d840ea4a 100644
+index b56504c3e5c457bfe83bbc864dc217c2f0cc9d18..084bf9ab43c322f8856dc8f600a18ae166aaa5ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -340,7 +340,28 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -336,7 +336,28 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
// Paper end
}
diff --git a/patches/server/0648-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0646-Fix-incosistency-issue-with-empty-map-items-in-CB.patch
similarity index 100%
rename from patches/server/0648-Fix-incosistency-issue-with-empty-map-items-in-CB.patch
rename to patches/server/0646-Fix-incosistency-issue-with-empty-map-items-in-CB.patch
diff --git a/patches/server/0649-Add-System.out-err-catcher.patch b/patches/server/0647-Add-System.out-err-catcher.patch
similarity index 97%
rename from patches/server/0649-Add-System.out-err-catcher.patch
rename to patches/server/0647-Add-System.out-err-catcher.patch
index f0508a65a3..0d16af6e4f 100644
--- a/patches/server/0649-Add-System.out-err-catcher.patch
+++ b/patches/server/0647-Add-System.out-err-catcher.patch
@@ -105,10 +105,10 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4e683d5d8afcdab9cfa85c657bb76a0022912d9b..6a56751dc98a8760e68a486442e30006cf4a4637 100644
+index 95f2490000e3f49644d6795a4c4c67ee0674fbf9..46a4a9e18299060fa0050e2bd0e5a01716a6bce0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -300,6 +300,7 @@ public final class CraftServer implements Server {
+@@ -299,6 +299,7 @@ public final class CraftServer implements Server {
public int reloadCount;
private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
public static Exception excessiveVelEx; // Paper - Velocity warnings
diff --git a/patches/server/0650-Fix-test-not-bootstrapping.patch b/patches/server/0648-Fix-test-not-bootstrapping.patch
similarity index 100%
rename from patches/server/0650-Fix-test-not-bootstrapping.patch
rename to patches/server/0648-Fix-test-not-bootstrapping.patch
diff --git a/patches/server/0651-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0649-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
similarity index 100%
rename from patches/server/0651-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
rename to patches/server/0649-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
diff --git a/patches/server/0652-Improve-boat-collision-performance.patch b/patches/server/0650-Improve-boat-collision-performance.patch
similarity index 100%
rename from patches/server/0652-Improve-boat-collision-performance.patch
rename to patches/server/0650-Improve-boat-collision-performance.patch
diff --git a/patches/server/0653-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0651-Prevent-AFK-kick-while-watching-end-credits.patch
similarity index 93%
rename from patches/server/0653-Prevent-AFK-kick-while-watching-end-credits.patch
rename to patches/server/0651-Prevent-AFK-kick-while-watching-end-credits.patch
index d77603e26d..8fbcf677c3 100644
--- a/patches/server/0653-Prevent-AFK-kick-while-watching-end-credits.patch
+++ b/patches/server/0651-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 8141d09c2b31053f0fbf3696dbc857d743873454..ce1a8355e155faaec9d8eebf89a41b7929dcbd12 100644
+index 7b2c971dad894718825475f3af364f0c653e5beb..5c98df63c36a01a70569894534f6059218ba83d2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -431,7 +431,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0654-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0652-Allow-skipping-writing-of-comments-to-server.propert.patch
similarity index 100%
rename from patches/server/0654-Allow-skipping-writing-of-comments-to-server.propert.patch
rename to patches/server/0652-Allow-skipping-writing-of-comments-to-server.propert.patch
diff --git a/patches/server/0655-Add-PlayerSetSpawnEvent.patch b/patches/server/0653-Add-PlayerSetSpawnEvent.patch
similarity index 97%
rename from patches/server/0655-Add-PlayerSetSpawnEvent.patch
rename to patches/server/0653-Add-PlayerSetSpawnEvent.patch
index e2b6777b92..169d1575be 100644
--- a/patches/server/0655-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0653-Add-PlayerSetSpawnEvent.patch
@@ -49,7 +49,7 @@ index a2d0699e8427b2262a2396495111125eccafbb66..d797637f61bdf8a424f56fbb48e28b7c
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 3d9f3e49cc783ace04f5228a5ae33f35799ced4a..fc0ef295241036230e2a0a12775445983df4a861 100644
+index deaf1fcb189ba1382f2b52d12afa12463874f7ec..c06e81d5448364154d9fb4fb68c1867d04daeb97 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1349,7 +1349,7 @@ public class ServerPlayer extends Player {
@@ -154,7 +154,7 @@ index 3d9f3e49cc783ace04f5228a5ae33f35799ced4a..fc0ef295241036230e2a0a1277544598
public void trackChunk(ChunkPos chunkPos, Packet> chunkDataPacket) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a427354b357e13bde80e4a09e019dd777caca280..2896123ce0384ee1b5039f5263aa902532bce67d 100644
+index c8e38ed5e14fb137a7d169c57bc58bdf4421e0cc..c3fb1bbc0e2a44160e86b5bb4ab88f78991fa9e6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -860,7 +860,7 @@ public abstract class PlayerList {
@@ -187,10 +187,10 @@ index 1a27b7faa22e6b3dc5fce329ed06425de56c4315..b9903c29bdea8d1e3b6fce0e97be6bd9
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index cd640331afe72cd181dcb862f993ba3e0b68fc98..416c8e01d5cf8cb9725f882cc6dc30dfc0ca5494 100644
+index 02e8f2ca5d97df0b1c845e10261a4bc70da755a4..8ecfb50b3c999078d7276fbee34fadd3af60fe45 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1344,9 +1344,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1298,9 +1298,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setBedSpawnLocation(Location location, boolean override) {
if (location == null) {
diff --git a/patches/server/0656-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0654-Make-hoppers-respect-inventory-max-stack-size.patch
similarity index 100%
rename from patches/server/0656-Make-hoppers-respect-inventory-max-stack-size.patch
rename to patches/server/0654-Make-hoppers-respect-inventory-max-stack-size.patch
diff --git a/patches/server/0657-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0655-Optimize-entity-tracker-passenger-checks.patch
similarity index 100%
rename from patches/server/0657-Optimize-entity-tracker-passenger-checks.patch
rename to patches/server/0655-Optimize-entity-tracker-passenger-checks.patch
diff --git a/patches/server/0658-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0656-Config-option-for-Piglins-guarding-chests.patch
similarity index 100%
rename from patches/server/0658-Config-option-for-Piglins-guarding-chests.patch
rename to patches/server/0656-Config-option-for-Piglins-guarding-chests.patch
diff --git a/patches/server/0659-Added-EntityDamageItemEvent.patch b/patches/server/0657-Added-EntityDamageItemEvent.patch
similarity index 100%
rename from patches/server/0659-Added-EntityDamageItemEvent.patch
rename to patches/server/0657-Added-EntityDamageItemEvent.patch
diff --git a/patches/server/0660-Optimize-indirect-passenger-iteration.patch b/patches/server/0658-Optimize-indirect-passenger-iteration.patch
similarity index 96%
rename from patches/server/0660-Optimize-indirect-passenger-iteration.patch
rename to patches/server/0658-Optimize-indirect-passenger-iteration.patch
index 8df21dc37e..67debf687d 100644
--- a/patches/server/0660-Optimize-indirect-passenger-iteration.patch
+++ b/patches/server/0658-Optimize-indirect-passenger-iteration.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5277a260f1734051033159ebe2e4af18d48b2097..2a37fe43ef749cfa7fe7afc8899b4922fff73d86 100644
+index 6a7b3a54a29b1632061c241b89058729c2b3e036..19365914976b7af0e85d9dbf1e5995f082e1a754 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3893,20 +3893,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0661-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0659-Configurable-item-frame-map-cursor-update-interval.patch
similarity index 100%
rename from patches/server/0661-Configurable-item-frame-map-cursor-update-interval.patch
rename to patches/server/0659-Configurable-item-frame-map-cursor-update-interval.patch
diff --git a/patches/server/0662-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0660-Make-EntityUnleashEvent-cancellable.patch
similarity index 100%
rename from patches/server/0662-Make-EntityUnleashEvent-cancellable.patch
rename to patches/server/0660-Make-EntityUnleashEvent-cancellable.patch
diff --git a/patches/server/0663-Clear-bucket-NBT-after-dispense.patch b/patches/server/0661-Clear-bucket-NBT-after-dispense.patch
similarity index 100%
rename from patches/server/0663-Clear-bucket-NBT-after-dispense.patch
rename to patches/server/0661-Clear-bucket-NBT-after-dispense.patch
diff --git a/patches/server/0664-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0662-Change-EnderEye-target-without-changing-other-things.patch
similarity index 100%
rename from patches/server/0664-Change-EnderEye-target-without-changing-other-things.patch
rename to patches/server/0662-Change-EnderEye-target-without-changing-other-things.patch
diff --git a/patches/server/0665-Add-BlockBreakBlockEvent.patch b/patches/server/0663-Add-BlockBreakBlockEvent.patch
similarity index 100%
rename from patches/server/0665-Add-BlockBreakBlockEvent.patch
rename to patches/server/0663-Add-BlockBreakBlockEvent.patch
diff --git a/patches/server/0666-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0664-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
similarity index 100%
rename from patches/server/0666-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
rename to patches/server/0664-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
diff --git a/patches/server/0667-More-CommandBlock-API.patch b/patches/server/0665-More-CommandBlock-API.patch
similarity index 100%
rename from patches/server/0667-More-CommandBlock-API.patch
rename to patches/server/0665-More-CommandBlock-API.patch
diff --git a/patches/server/0668-Add-missing-team-sidebar-display-slots.patch b/patches/server/0666-Add-missing-team-sidebar-display-slots.patch
similarity index 100%
rename from patches/server/0668-Add-missing-team-sidebar-display-slots.patch
rename to patches/server/0666-Add-missing-team-sidebar-display-slots.patch
diff --git a/patches/server/0669-Add-back-EntityPortalExitEvent.patch b/patches/server/0667-Add-back-EntityPortalExitEvent.patch
similarity index 97%
rename from patches/server/0669-Add-back-EntityPortalExitEvent.patch
rename to patches/server/0667-Add-back-EntityPortalExitEvent.patch
index f5cef8ac0f..6696b7bb2b 100644
--- a/patches/server/0669-Add-back-EntityPortalExitEvent.patch
+++ b/patches/server/0667-Add-back-EntityPortalExitEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2a37fe43ef749cfa7fe7afc8899b4922fff73d86..79909f65fbfeb156d3669d31571466a6aa7ce65e 100644
+index 19365914976b7af0e85d9dbf1e5995f082e1a754..719f97ff0c6a6b2480c249a3517bc27757d1c01b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3340,6 +3340,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0670-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0668-Add-methods-to-find-targets-for-lightning-strikes.patch
similarity index 94%
rename from patches/server/0670-Add-methods-to-find-targets-for-lightning-strikes.patch
rename to patches/server/0668-Add-methods-to-find-targets-for-lightning-strikes.patch
index 64c6192aa1..ea10046bcc 100644
--- a/patches/server/0670-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/server/0668-Add-methods-to-find-targets-for-lightning-strikes.patch
@@ -31,10 +31,10 @@ index bc7daf89e30152a3bcb215e91b30c9680be5c343..e809a959d69197ecdec768a2d4f348c7
blockposition1 = blockposition1.above(2);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 7e635571aea53e2ee7c39315c14347955f46dfe8..a37fd8fcc1924f99f1d4a97b36a04946d06f9347 100644
+index 7edcc68a24bd812f50d9ce441fab568906061da3..8bdcf37f7e0adbf6be73a44bdbda8e69e105c2e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -693,6 +693,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -698,6 +698,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (LightningStrike) lightning.getBukkitEntity();
}
diff --git a/patches/server/0671-Get-entity-default-attributes.patch b/patches/server/0669-Get-entity-default-attributes.patch
similarity index 97%
rename from patches/server/0671-Get-entity-default-attributes.patch
rename to patches/server/0669-Get-entity-default-attributes.patch
index c80a55e699..15b48bb9b1 100644
--- a/patches/server/0671-Get-entity-default-attributes.patch
+++ b/patches/server/0669-Get-entity-default-attributes.patch
@@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..cf9d28ea97d93cec05c9fb768d59e283
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index fea31b187fd5965bf479548835e5603e78f3f3f1..a618c80fb5a184c2a06ccb7ac3cf55d9151a9fe1 100644
+index ef9a1d7e23be8ffe9a1669161de9310c6e566b40..78e1932852e002fc4d928ff9869678e308f9b7a4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -570,6 +570,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -568,6 +568,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
public int getProtocolVersion() {
return net.minecraft.SharedConstants.getCurrentVersion().getProtocolVersion();
}
diff --git a/patches/server/0672-Left-handed-API.patch b/patches/server/0670-Left-handed-API.patch
similarity index 100%
rename from patches/server/0672-Left-handed-API.patch
rename to patches/server/0670-Left-handed-API.patch
diff --git a/patches/server/0673-Add-more-advancement-API.patch b/patches/server/0671-Add-more-advancement-API.patch
similarity index 100%
rename from patches/server/0673-Add-more-advancement-API.patch
rename to patches/server/0671-Add-more-advancement-API.patch
diff --git a/patches/server/0674-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0672-Add-ItemFactory-getSpawnEgg-API.patch
similarity index 89%
rename from patches/server/0674-Add-ItemFactory-getSpawnEgg-API.patch
rename to patches/server/0672-Add-ItemFactory-getSpawnEgg-API.patch
index 76f8c54c26..b9440112fb 100644
--- a/patches/server/0674-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/server/0672-Add-ItemFactory-getSpawnEgg-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index f5610d0746b67dfe69dc79d71c4d082c083f2ee4..b32c06b1f03751c164da7049976c473dff20e4ef 100644
+index 21f5c0f2fc10b5f5752e214a08e858227bdcf2ce..583cd4726a1b60e8f11bf8a28cc3c655fa8c1b90 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -508,5 +508,17 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -503,5 +503,17 @@ public final class CraftItemFactory implements ItemFactory {
entity.getUniqueId().toString(),
new net.md_5.bungee.api.chat.TextComponent(customName));
}
diff --git a/patches/server/0675-Add-critical-damage-API.patch b/patches/server/0673-Add-critical-damage-API.patch
similarity index 98%
rename from patches/server/0675-Add-critical-damage-API.patch
rename to patches/server/0673-Add-critical-damage-API.patch
index 83a6931d96..8280cf1022 100644
--- a/patches/server/0675-Add-critical-damage-API.patch
+++ b/patches/server/0673-Add-critical-damage-API.patch
@@ -71,7 +71,7 @@ index a0d688128a1268fa1acf7c339cde15df5dce1c82..372b9ec0c8eddf4a01b4b8203a88401d
int k = entity.getRemainingFireTicks();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7ef3e4dd903c77fd6112e90999a474ff674a5e7f..20e1efcadd4a11bab8a0db48410229e4a4d5ce57 100644
+index 64e1e46bd6c4b225fe9b86c4cf632b9bb1c4af09..94796cbe43546748b28aa921d22cb4b68ef23fa6 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -988,7 +988,7 @@ public class CraftEventFactory {
@@ -101,7 +101,7 @@ index 7ef3e4dd903c77fd6112e90999a474ff674a5e7f..20e1efcadd4a11bab8a0db48410229e4
event.setCancelled(cancelled);
CraftEventFactory.callEvent(event);
if (!event.isCancelled()) {
-@@ -1135,20 +1135,28 @@ public class CraftEventFactory {
+@@ -1139,20 +1139,28 @@ public class CraftEventFactory {
}
if (cause != null) {
diff --git a/patches/server/0676-Fix-issues-with-mob-conversion.patch b/patches/server/0674-Fix-issues-with-mob-conversion.patch
similarity index 100%
rename from patches/server/0676-Fix-issues-with-mob-conversion.patch
rename to patches/server/0674-Fix-issues-with-mob-conversion.patch
diff --git a/patches/server/0677-Add-isCollidable-methods-to-various-places.patch b/patches/server/0675-Add-isCollidable-methods-to-various-places.patch
similarity index 77%
rename from patches/server/0677-Add-isCollidable-methods-to-various-places.patch
rename to patches/server/0675-Add-isCollidable-methods-to-various-places.patch
index 9e718ffd89..2cead6b67f 100644
--- a/patches/server/0677-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/server/0675-Add-isCollidable-methods-to-various-places.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add isCollidable methods to various places
public net.minecraft.world.level.block.state.BlockBehaviour hasCollision
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index e7e5c9fa734072e9ae15eb5f6d75c7740ba3ba44..8131c1db3d7963121a24348575ea8a98a80a974c 100644
+index d37440f78a31c676fc6efe9e59253dbe8097b94e..8d2da07f0793367a51026b50adc8b3dc71073013 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -484,6 +484,11 @@ public class CraftBlock implements Block {
+@@ -482,6 +482,11 @@ public class CraftBlock implements Block {
public boolean isSolid() {
return this.getNMS().blocksMotion();
}
@@ -23,12 +23,12 @@ index e7e5c9fa734072e9ae15eb5f6d75c7740ba3ba44..8131c1db3d7963121a24348575ea8a98
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-index 9068557ac50cfb26e7e3ec4ac64bac583baa582e..3e1d36a8c65e6567ac3b78903a25d5828ab74ea5 100644
+index b722a207c0e745bb172d93b90e1241d7bfa173ce..792bfc7eab33b26462e76a1912bd712e8af70073 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-@@ -325,4 +325,11 @@ public class CraftBlockState implements BlockState {
- throw new IllegalStateException("The blockState must be placed to call this method");
- }
+@@ -317,4 +317,11 @@ public class CraftBlockState implements BlockState {
+ protected void requirePlaced() {
+ Preconditions.checkState(this.isPlaced(), "The blockState must be placed to call this method");
}
+
+ // Paper start
@@ -39,10 +39,10 @@ index 9068557ac50cfb26e7e3ec4ac64bac583baa582e..3e1d36a8c65e6567ac3b78903a25d582
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index a618c80fb5a184c2a06ccb7ac3cf55d9151a9fe1..6a048eaf63dec0d061265e639088055c60fbd834 100644
+index 78e1932852e002fc4d928ff9869678e308f9b7a4..ec3cb84a4ac59a27e194e66686273496276b80c4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -582,6 +582,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -580,6 +580,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
var supplier = net.minecraft.world.entity.ai.attributes.DefaultAttributes.getSupplier((net.minecraft.world.entity.EntityType extends net.minecraft.world.entity.LivingEntity>) net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(bukkitEntityKey)));
return new io.papermc.paper.attribute.UnmodifiableAttributeMap(supplier);
}
diff --git a/patches/server/0678-Goat-ram-API.patch b/patches/server/0676-Goat-ram-API.patch
similarity index 100%
rename from patches/server/0678-Goat-ram-API.patch
rename to patches/server/0676-Goat-ram-API.patch
diff --git a/patches/server/0679-Add-API-for-resetting-a-single-score.patch b/patches/server/0677-Add-API-for-resetting-a-single-score.patch
similarity index 100%
rename from patches/server/0679-Add-API-for-resetting-a-single-score.patch
rename to patches/server/0677-Add-API-for-resetting-a-single-score.patch
diff --git a/patches/server/0680-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0678-Add-Raw-Byte-Entity-Serialization.patch
similarity index 91%
rename from patches/server/0680-Add-Raw-Byte-Entity-Serialization.patch
rename to patches/server/0678-Add-Raw-Byte-Entity-Serialization.patch
index f5b6d863d8..3ea2d20740 100644
--- a/patches/server/0680-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0678-Add-Raw-Byte-Entity-Serialization.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization
public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 79909f65fbfeb156d3669d31571466a6aa7ce65e..89dd6c49d661d156a0443db4853ccf04dd5cdc14 100644
+index 719f97ff0c6a6b2480c249a3517bc27757d1c01b..266cdbadbf40959ef2214d30ddba945802b9d6ef 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2138,6 +2138,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -27,10 +27,10 @@ index 79909f65fbfeb156d3669d31571466a6aa7ce65e..89dd6c49d661d156a0443db4853ccf04
return this.isPassenger() ? false : this.saveAsPassenger(nbt);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 9155af9c7e001d4cb431e74b12c9d98227011d51..18d7d1ca3f0f6517e781ad6977800b12ca1891ec 100644
+index 02dc40b6f7b82ce503c33fb4af26cbb20c9d5b7a..5fad5dbc0815ec3ee86a3fb34fe0c68bb4c33bcc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1367,5 +1367,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1360,5 +1360,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
return set;
}
@@ -47,10 +47,10 @@ index 9155af9c7e001d4cb431e74b12c9d98227011d51..18d7d1ca3f0f6517e781ad6977800b12
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 6a048eaf63dec0d061265e639088055c60fbd834..a6564c7d69999c55abc4292cab9182390a52e749 100644
+index ec3cb84a4ac59a27e194e66686273496276b80c4..8f185a0b1a9037c1458b3ce41347e2c733e4d4de 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -493,6 +493,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -491,6 +491,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
return CraftItemStack.asCraftMirror(net.minecraft.world.item.ItemStack.of(ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.ITEM_STACK, compound, dataVersion, getDataVersion())));
}
diff --git a/patches/server/0681-Vanilla-command-permission-fixes.patch b/patches/server/0679-Vanilla-command-permission-fixes.patch
similarity index 97%
rename from patches/server/0681-Vanilla-command-permission-fixes.patch
rename to patches/server/0679-Vanilla-command-permission-fixes.patch
index 53008d51e9..4f690751a2 100644
--- a/patches/server/0681-Vanilla-command-permission-fixes.patch
+++ b/patches/server/0679-Vanilla-command-permission-fixes.patch
@@ -51,7 +51,7 @@ index 14c78028ff51fff6f24174ae16b7c42d34d6041a..7592b592a541912f729d6b99f455cd87
}
diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
-index 5ed34b60a32a2aac214de84c44689fd5a0b00a10..8dca2ad7d25f740941187698d77819af8ebc2805 100644
+index 8b93fe406ea94919b4129566764f7efe43b3330d..b26ac7192e532be94a57a70e12270272034fd5ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
@@ -87,7 +87,23 @@ public final class VanillaCommandWrapper extends BukkitCommand {
diff --git a/patches/server/0682-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0680-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
similarity index 97%
rename from patches/server/0682-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
rename to patches/server/0680-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
index 0323f3318d..51a8fd4611 100644
--- a/patches/server/0682-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
+++ b/patches/server/0680-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
@@ -28,7 +28,7 @@ index e809a959d69197ecdec768a2d4f348c73c0d5b9a..0f6d4f80677c54a94a1bbfb861a3bcce
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index fc0ef295241036230e2a0a12775445983df4a861..9c7bb62646fff8ba0ab9e666dcf706ef5c5dc041 100644
+index c06e81d5448364154d9fb4fb68c1867d04daeb97..1511d45eb61e72e73bc17cfe03fbb6c22f9dd128 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1615,6 +1615,18 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0683-Fix-GameProfileCache-concurrency.patch b/patches/server/0681-Fix-GameProfileCache-concurrency.patch
similarity index 100%
rename from patches/server/0683-Fix-GameProfileCache-concurrency.patch
rename to patches/server/0681-Fix-GameProfileCache-concurrency.patch
diff --git a/patches/server/0684-Improve-and-expand-AsyncCatcher.patch b/patches/server/0682-Improve-and-expand-AsyncCatcher.patch
similarity index 96%
rename from patches/server/0684-Improve-and-expand-AsyncCatcher.patch
rename to patches/server/0682-Improve-and-expand-AsyncCatcher.patch
index 822bef6e4f..b2edc90b2d 100644
--- a/patches/server/0684-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0682-Improve-and-expand-AsyncCatcher.patch
@@ -17,10 +17,10 @@ Async catch modifications to critical entity state
Co-authored-by: Jake Potrebic
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ce1a8355e155faaec9d8eebf89a41b7929dcbd12..8b85b4ea7411e9b523647e39c366bf63e27d0d2b 100644
+index 5c98df63c36a01a70569894534f6059218ba83d2..c76fa82020feba290787efb7eb6bb000ef98db8b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1653,6 +1653,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1656,6 +1656,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set set) { // Paper
@@ -166,10 +166,10 @@ index 47bab513feec217d875192afef61f3af95b93d24..d3fb277878adb26c7d80cf21f2707038
PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason});
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 1973a8ed75f9bacebebfa74dd2d06bf7d840ea4a..8b6cae9a005a6db608be85805382704ff5dc6669 100644
+index 084bf9ab43c322f8856dc8f600a18ae166aaa5ef..4590764ec62938e2b601f9f8339d5c4ea183e5e2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -455,6 +455,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -451,6 +451,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
diff --git a/patches/server/0685-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0683-Add-paper-mobcaps-and-paper-playermobcaps.patch
similarity index 96%
rename from patches/server/0685-Add-paper-mobcaps-and-paper-playermobcaps.patch
rename to patches/server/0683-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 814d6c5557..4ff6d7fef3 100644
--- a/patches/server/0685-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0683-Add-paper-mobcaps-and-paper-playermobcaps.patch
@@ -278,10 +278,10 @@ index a3461824fd2162d509facf6f64c5008e3f0fd42b..d4f99f4592a86e2d8344bc2c44711fef
// Paper start - add parameters and int ret type
spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6a56751dc98a8760e68a486442e30006cf4a4637..395ca8b6ad62fc3c4c4bed0715bb8570683d755a 100644
+index 46a4a9e18299060fa0050e2bd0e5a01716a6bce0..dfb3aef5fdc4fea0975c7f27ceaf895f1094f8a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2182,6 +2182,11 @@ public final class CraftServer implements Server {
+@@ -2186,6 +2186,11 @@ public final class CraftServer implements Server {
@Override
public int getSpawnLimit(SpawnCategory spawnCategory) {
@@ -294,12 +294,12 @@ index 6a56751dc98a8760e68a486442e30006cf4a4637..395ca8b6ad62fc3c4c4bed0715bb8570
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a37fd8fcc1924f99f1d4a97b36a04946d06f9347..84f55724f38cd7bbe1971e9fbd7bfbfe86cd4c00 100644
+index 8bdcf37f7e0adbf6be73a44bdbda8e69e105c2e3..dbdae5af24f762c7c2678754eb688c0de9ca5215 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1698,9 +1698,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
- Validate.notNull(spawnCategory, "SpawnCategory cannot be null");
- Validate.isTrue(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory." + spawnCategory + " are not supported.");
+@@ -1704,9 +1704,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null");
+ Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory.%s are not supported", spawnCategory);
+ // Paper start
+ return this.getSpawnLimitUnsafe(spawnCategory);
diff --git a/patches/server/0686-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0684-Sanitize-ResourceLocation-error-logging.patch
similarity index 100%
rename from patches/server/0686-Sanitize-ResourceLocation-error-logging.patch
rename to patches/server/0684-Sanitize-ResourceLocation-error-logging.patch
diff --git a/patches/server/0687-Allow-controlled-flushing-for-network-manager.patch b/patches/server/0685-Allow-controlled-flushing-for-network-manager.patch
similarity index 100%
rename from patches/server/0687-Allow-controlled-flushing-for-network-manager.patch
rename to patches/server/0685-Allow-controlled-flushing-for-network-manager.patch
diff --git a/patches/server/0688-Optimise-general-POI-access.patch b/patches/server/0686-Optimise-general-POI-access.patch
similarity index 100%
rename from patches/server/0688-Optimise-general-POI-access.patch
rename to patches/server/0686-Optimise-general-POI-access.patch
diff --git a/patches/server/0689-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch b/patches/server/0687-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
similarity index 99%
rename from patches/server/0689-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
rename to patches/server/0687-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
index fe1cc645eb..9039a81a52 100644
--- a/patches/server/0689-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
+++ b/patches/server/0687-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
@@ -333,7 +333,7 @@ index 3f5d572994bc8b3f1e106105dc0bb202ad005b8c..5c5fe2087a7617324ab8e18389e3ffa9
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9c7bb62646fff8ba0ab9e666dcf706ef5c5dc041..63765c837d1becaba6a8d9c71929f47486683530 100644
+index 1511d45eb61e72e73bc17cfe03fbb6c22f9dd128..7b8e06fc7e2d422ba0e996d6de3f769e995cc6e5 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -273,6 +273,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0690-Optimise-chunk-tick-iteration.patch b/patches/server/0688-Optimise-chunk-tick-iteration.patch
similarity index 100%
rename from patches/server/0690-Optimise-chunk-tick-iteration.patch
rename to patches/server/0688-Optimise-chunk-tick-iteration.patch
diff --git a/patches/server/0691-Execute-chunk-tasks-mid-tick.patch b/patches/server/0689-Execute-chunk-tasks-mid-tick.patch
similarity index 97%
rename from patches/server/0691-Execute-chunk-tasks-mid-tick.patch
rename to patches/server/0689-Execute-chunk-tasks-mid-tick.patch
index 2172f471d7..e58dbbe393 100644
--- a/patches/server/0691-Execute-chunk-tasks-mid-tick.patch
+++ b/patches/server/0689-Execute-chunk-tasks-mid-tick.patch
@@ -19,10 +19,10 @@ index 4d861f9a58f8ea238471af22f387854d855b1801..efbf77024d235d8af9f7efc938c17afd
private MinecraftTimings() {}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 76bdca305277d8d2a659b029f035bb4da25a076e..e5612808261f5e94ed02afa2bd070db56496fa79 100644
+index 09617ff2716b8e75380421e9a19c145806602151..ebd092a3f3c745b3a2f69fd72c04be7a2ab214a2 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1305,6 +1305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop {
private final Iterator, Object2ObjectLinkedOpenHashMap>>> recipes;
private Iterator> current;
@@ -18,7 +18,7 @@ index 24f336c89b548c5ba2a95372db0d7c83b5c4ec47..91895c639c33a1cafd2a35bab7b5fd83
public RecipeIterator() {
this.recipes = MinecraftServer.getServer().getRecipeManager().recipes.entrySet().iterator();
-@@ -34,10 +35,16 @@ public class RecipeIterator implements Iterator {
+@@ -35,15 +36,27 @@ public class RecipeIterator implements Iterator {
public Recipe next() {
if (this.current == null || !this.current.hasNext()) {
this.current = this.recipes.next().getValue().values().iterator();
@@ -37,10 +37,9 @@ index 24f336c89b548c5ba2a95372db0d7c83b5c4ec47..91895c639c33a1cafd2a35bab7b5fd83
}
@Override
-@@ -46,6 +53,11 @@ public class RecipeIterator implements Iterator {
- throw new IllegalStateException("next() not yet called");
- }
-
+ public void remove() {
+ Preconditions.checkState(this.current != null, "next() not yet called");
++
+ // Paper start - fix removing recipes
+ if (this.currentRecipe instanceof org.bukkit.Keyed keyed) {
+ MinecraftServer.getServer().getRecipeManager().byName.remove(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(keyed.getKey()));
diff --git a/patches/server/0738-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0736-Prevent-sending-oversized-item-data-in-equipment-and.patch
similarity index 100%
rename from patches/server/0738-Prevent-sending-oversized-item-data-in-equipment-and.patch
rename to patches/server/0736-Prevent-sending-oversized-item-data-in-equipment-and.patch
diff --git a/patches/server/0739-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0737-Hide-unnecessary-itemmeta-from-clients.patch
similarity index 97%
rename from patches/server/0739-Hide-unnecessary-itemmeta-from-clients.patch
rename to patches/server/0737-Hide-unnecessary-itemmeta-from-clients.patch
index 96891e42dd..0822fcc400 100644
--- a/patches/server/0739-Hide-unnecessary-itemmeta-from-clients.patch
+++ b/patches/server/0737-Hide-unnecessary-itemmeta-from-clients.patch
@@ -18,10 +18,10 @@ index 71a8812365503d840f6702a21d504a37d67c7194..63561c0044375465fa0023b2b563a651
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8c0cbe36eeb60b355413a19b5f8e66b996a833d7..8d4421e24feca1c8d1a05890c9e9fbb8fea92a8b 100644
+index 9ae8bdc5d17f585257f61f3692117e82e718b6f4..a47e05e1955b7c0b11fa0c36b5a97d27be0f7e1d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2705,8 +2705,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2708,8 +2708,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Refresh the current entity metadata
entity.getEntityData().refresh(player);
// SPIGOT-7136 - Allays
diff --git a/patches/server/0740-Fix-Spigot-growth-modifiers.patch b/patches/server/0738-Fix-Spigot-growth-modifiers.patch
similarity index 100%
rename from patches/server/0740-Fix-Spigot-growth-modifiers.patch
rename to patches/server/0738-Fix-Spigot-growth-modifiers.patch
diff --git a/patches/server/0741-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0739-Prevent-ContainerOpenersCounter-openCount-from-going.patch
similarity index 100%
rename from patches/server/0741-Prevent-ContainerOpenersCounter-openCount-from-going.patch
rename to patches/server/0739-Prevent-ContainerOpenersCounter-openCount-from-going.patch
diff --git a/patches/server/0742-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0740-Add-PlayerItemFrameChangeEvent.patch
similarity index 100%
rename from patches/server/0742-Add-PlayerItemFrameChangeEvent.patch
rename to patches/server/0740-Add-PlayerItemFrameChangeEvent.patch
diff --git a/patches/server/0743-Add-player-health-update-API.patch b/patches/server/0741-Add-player-health-update-API.patch
similarity index 88%
rename from patches/server/0743-Add-player-health-update-API.patch
rename to patches/server/0741-Add-player-health-update-API.patch
index dc4c1becce..cd2c85ccd4 100644
--- a/patches/server/0743-Add-player-health-update-API.patch
+++ b/patches/server/0741-Add-player-health-update-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add player health update API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 416c8e01d5cf8cb9725f882cc6dc30dfc0ca5494..59683479af9fa4058cab286caed2fa990c4bd293 100644
+index 8ecfb50b3c999078d7276fbee34fadd3af60fe45..df99f0c91cc3bc79ca7e5db27c2e4d215da30a55 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2366,9 +2366,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2304,9 +2304,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().maxHealthCache = getMaxHealth();
}
@@ -22,7 +22,7 @@ index 416c8e01d5cf8cb9725f882cc6dc30dfc0ca5494..59683479af9fa4058cab286caed2fa99
if (this.getHandle().queueHealthUpdatePacket) {
this.getHandle().queuedHealthUpdatePacket = packet;
} else {
-@@ -2377,6 +2379,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2315,6 +2317,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
}
diff --git a/patches/server/0744-Optimize-HashMapPalette.patch b/patches/server/0742-Optimize-HashMapPalette.patch
similarity index 100%
rename from patches/server/0744-Optimize-HashMapPalette.patch
rename to patches/server/0742-Optimize-HashMapPalette.patch
diff --git a/patches/server/0745-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0743-Allow-delegation-to-vanilla-chunk-gen.patch
similarity index 97%
rename from patches/server/0745-Allow-delegation-to-vanilla-chunk-gen.patch
rename to patches/server/0743-Allow-delegation-to-vanilla-chunk-gen.patch
index a872c107fd..67bf1a50b0 100644
--- a/patches/server/0745-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/server/0743-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 395ca8b6ad62fc3c4c4bed0715bb8570683d755a..3f5a8f259f8afb42760602c8bac18e92b8299092 100644
+index dfb3aef5fdc4fea0975c7f27ceaf895f1094f8a5..f23c83b281e8fa7310bd8d10f6972f68743e2ab4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2354,6 +2354,88 @@ public final class CraftServer implements Server {
+@@ -2366,6 +2366,88 @@ public final class CraftServer implements Server {
return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters
}
diff --git a/patches/server/0746-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/server/0744-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
similarity index 99%
rename from patches/server/0746-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
rename to patches/server/0744-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
index b26948317b..71830dfd1c 100644
--- a/patches/server/0746-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
+++ b/patches/server/0744-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
@@ -1180,7 +1180,7 @@ index 0000000000000000000000000000000000000000..3d2fa2466fe40e0b9d7749498684587a
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c6ff2f5d1a13b4357229244cbd375461b51d1779..68e7342a72509fb41734ee23638ffb562007ae90 100644
+index 5aa34babd53900fb5f7cf973628751ecec64172d..ea3dfa9cd06e4a44ee819ed4a203779e4c10bbd9 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -461,7 +461,7 @@ public class ServerPlayer extends Player {
@@ -1202,7 +1202,7 @@ index c6ff2f5d1a13b4357229244cbd375461b51d1779..68e7342a72509fb41734ee23638ffb56
}
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index c94172f2d2435ff4256fe21533cea2719b4cffe0..432c9e4e2b16b18f795e854f4cbe30b7e14a8947 100644
+index ffa831673805201932c36b814f4439f3bb5c4c04..64e40e3caa85bff9382a483237301a8f231d1991 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -895,7 +895,7 @@ public abstract class PlayerList {
@@ -1215,7 +1215,7 @@ index c94172f2d2435ff4256fe21533cea2719b4cffe0..432c9e4e2b16b18f795e854f4cbe30b7
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a648b174ba00ba2e23cbbbd34fd397f295a06390..53e1e4ffa51b5858417862e190f0bebd1e5d340c 100644
+index b857e1846b6e215ab71cf31c31ce8c96266a4145..5296675dc1c197b67371e86da1c39dcc2e1d69e6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1210,9 +1210,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0747-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0745-Optimise-collision-checking-in-player-move-packet-ha.patch
similarity index 98%
rename from patches/server/0747-Optimise-collision-checking-in-player-move-packet-ha.patch
rename to patches/server/0745-Optimise-collision-checking-in-player-move-packet-ha.patch
index e0811f8050..89716c784a 100644
--- a/patches/server/0747-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/0745-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN
CHECK ME
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8d4421e24feca1c8d1a05890c9e9fbb8fea92a8b..74b0d2ddcea648d017e4acbe20536352102bad95 100644
+index a47e05e1955b7c0b11fa0c36b5a97d27be0f7e1d..0203c778e2cfd421d4e9516a00535a5f20e61679 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -647,7 +647,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -142,7 +142,7 @@ index 8d4421e24feca1c8d1a05890c9e9fbb8fea92a8b..74b0d2ddcea648d017e4acbe20536352
this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet.
this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround());
} else {
-@@ -1587,6 +1634,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1590,6 +1637,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
diff --git a/patches/server/0748-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0746-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
similarity index 100%
rename from patches/server/0748-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
rename to patches/server/0746-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
diff --git a/patches/server/0749-Add-more-Campfire-API.patch b/patches/server/0747-Add-more-Campfire-API.patch
similarity index 100%
rename from patches/server/0749-Add-more-Campfire-API.patch
rename to patches/server/0747-Add-more-Campfire-API.patch
diff --git a/patches/server/0750-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0748-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
similarity index 100%
rename from patches/server/0750-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
rename to patches/server/0748-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
diff --git a/patches/server/0751-Fix-tripwire-state-inconsistency.patch b/patches/server/0749-Fix-tripwire-state-inconsistency.patch
similarity index 100%
rename from patches/server/0751-Fix-tripwire-state-inconsistency.patch
rename to patches/server/0749-Fix-tripwire-state-inconsistency.patch
diff --git a/patches/server/0752-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0750-Forward-CraftEntity-in-teleport-command.patch
similarity index 95%
rename from patches/server/0752-Forward-CraftEntity-in-teleport-command.patch
rename to patches/server/0750-Forward-CraftEntity-in-teleport-command.patch
index 2cbd423590..5ae23d9d77 100644
--- a/patches/server/0752-Forward-CraftEntity-in-teleport-command.patch
+++ b/patches/server/0750-Forward-CraftEntity-in-teleport-command.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 53e1e4ffa51b5858417862e190f0bebd1e5d340c..ef5e979d09df13660ac7893be1209c2c2b8a136c 100644
+index 5296675dc1c197b67371e86da1c39dcc2e1d69e6..769b5e4af8d23c768ade210cb72f8857473a696c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3455,6 +3455,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0753-Improve-scoreboard-entries.patch b/patches/server/0751-Improve-scoreboard-entries.patch
similarity index 78%
rename from patches/server/0753-Improve-scoreboard-entries.patch
rename to patches/server/0751-Improve-scoreboard-entries.patch
index 2a65cbf36c..561724f7cd 100644
--- a/patches/server/0753-Improve-scoreboard-entries.patch
+++ b/patches/server/0751-Improve-scoreboard-entries.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Improve scoreboard entries
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
-index b7f0277b50a0f45c32b818bf9fe1218874aa8533..20b29f78fe56909e02061021b82a84cb7728d8a8 100644
+index de5f382656f9fd08f6ae1795c69743c604d62d5c..97cb29beea1d133f683d7cff7a26805b09f63096 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
@@ -146,6 +146,14 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective
@@ -15,7 +15,7 @@ index b7f0277b50a0f45c32b818bf9fe1218874aa8533..20b29f78fe56909e02061021b82a84cb
+ // Paper start
+ @Override
+ public Score getScoreFor(org.bukkit.entity.Entity entity) throws IllegalArgumentException, IllegalStateException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return getScore(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+ // Paper end
@@ -24,57 +24,57 @@ index b7f0277b50a0f45c32b818bf9fe1218874aa8533..20b29f78fe56909e02061021b82a84cb
public void unregister() throws IllegalStateException {
CraftScoreboard scoreboard = this.checkState();
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-index a038ede38ebb507d6a0182a4a34f2b0722ef024e..fe57437155ff9471738d3b85e787350601b79584 100644
+index e233eef291f64622947b0b6c4559639e510c087f..13190c4265bb83e682dede7e982ebcd19d80e334 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-@@ -247,4 +247,23 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
+@@ -233,4 +233,23 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
public Scoreboard getHandle() {
return this.board;
}
+ // Paper start
+ @Override
+ public ImmutableSet getScoresFor(org.bukkit.entity.Entity entity) throws IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.getScores(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public void resetScoresFor(org.bukkit.entity.Entity entity) throws IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ this.resetScores(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public Team getEntityTeam(org.bukkit.entity.Entity entity) throws IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.getEntryTeam(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 60b1cffdccde4715832546d6edbf206fbab4e82f..4b64d6c5c987e127d1ed5edad0a78f7172370b9f 100644
+index 772206a43950db2726bd79911438e2aec2d7189c..47031a6f1b7e261bb034968f83c0c496b89d1361 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-@@ -310,6 +310,26 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
+@@ -309,6 +309,26 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
}
}
+ // Paper start
+ @Override
+ public void addEntity(org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ this.addEntry(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public boolean removeEntity(org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.removeEntry(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public boolean hasEntity(org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.hasEntry(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+ // Paper end
diff --git a/patches/server/0754-Entity-powdered-snow-API.patch b/patches/server/0752-Entity-powdered-snow-API.patch
similarity index 91%
rename from patches/server/0754-Entity-powdered-snow-API.patch
rename to patches/server/0752-Entity-powdered-snow-API.patch
index a53af1711e..0df0028dcc 100644
--- a/patches/server/0754-Entity-powdered-snow-API.patch
+++ b/patches/server/0752-Entity-powdered-snow-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Entity powdered snow API
public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 18d7d1ca3f0f6517e781ad6977800b12ca1891ec..428795adbd9e08353196ab78730e6dc6984011e7 100644
+index 5fad5dbc0815ec3ee86a3fb34fe0c68bb4c33bcc..fbc18be64e71be2215059c34afd8129138dc4dff 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1377,5 +1377,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1370,5 +1370,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entity.setRot(location.getYaw(), location.getPitch());
return !this.entity.valid && this.entity.level().addFreshEntity(this.entity, reason);
}
diff --git a/patches/server/0755-Add-API-for-item-entity-health.patch b/patches/server/0753-Add-API-for-item-entity-health.patch
similarity index 100%
rename from patches/server/0755-Add-API-for-item-entity-health.patch
rename to patches/server/0753-Add-API-for-item-entity-health.patch
diff --git a/patches/server/0756-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0754-Fix-entity-type-tags-suggestions-in-selectors.patch
similarity index 100%
rename from patches/server/0756-Fix-entity-type-tags-suggestions-in-selectors.patch
rename to patches/server/0754-Fix-entity-type-tags-suggestions-in-selectors.patch
diff --git a/patches/server/0757-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0755-Configurable-max-block-light-for-monster-spawning.patch
similarity index 100%
rename from patches/server/0757-Configurable-max-block-light-for-monster-spawning.patch
rename to patches/server/0755-Configurable-max-block-light-for-monster-spawning.patch
diff --git a/patches/server/0758-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0756-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
similarity index 100%
rename from patches/server/0758-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
rename to patches/server/0756-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
diff --git a/patches/server/0759-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0757-Load-effect-amplifiers-greater-than-127-correctly.patch
similarity index 100%
rename from patches/server/0759-Load-effect-amplifiers-greater-than-127-correctly.patch
rename to patches/server/0757-Load-effect-amplifiers-greater-than-127-correctly.patch
diff --git a/patches/server/0760-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0758-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
similarity index 100%
rename from patches/server/0760-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
rename to patches/server/0758-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
diff --git a/patches/server/0761-Fix-bees-aging-inside-hives.patch b/patches/server/0759-Fix-bees-aging-inside-hives.patch
similarity index 100%
rename from patches/server/0761-Fix-bees-aging-inside-hives.patch
rename to patches/server/0759-Fix-bees-aging-inside-hives.patch
diff --git a/patches/server/0762-Bucketable-API.patch b/patches/server/0760-Bucketable-API.patch
similarity index 100%
rename from patches/server/0762-Bucketable-API.patch
rename to patches/server/0760-Bucketable-API.patch
diff --git a/patches/server/0763-Validate-usernames.patch b/patches/server/0761-Validate-usernames.patch
similarity index 97%
rename from patches/server/0763-Validate-usernames.patch
rename to patches/server/0761-Validate-usernames.patch
index d088b7ad1b..762960d87e 100644
--- a/patches/server/0763-Validate-usernames.patch
+++ b/patches/server/0761-Validate-usernames.patch
@@ -56,7 +56,7 @@ index ed3af916dfa875dd0a5f1e730d20d11efd6419c6..cd4e76fe5b79c7d9e615b4886a568c74
if (gameprofile != null && packet.name().equalsIgnoreCase(gameprofile.getName())) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 432c9e4e2b16b18f795e854f4cbe30b7e14a8947..42e7b41526f7cf31f33a58f18e851cd435472921 100644
+index 64e40e3caa85bff9382a483237301a8f231d1991..d25aa54689360e89b18535da54ce2c90ab21f819 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -673,7 +673,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0764-Make-water-animal-spawn-height-configurable.patch b/patches/server/0762-Make-water-animal-spawn-height-configurable.patch
similarity index 100%
rename from patches/server/0764-Make-water-animal-spawn-height-configurable.patch
rename to patches/server/0762-Make-water-animal-spawn-height-configurable.patch
diff --git a/patches/server/0765-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0763-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
similarity index 94%
rename from patches/server/0765-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
rename to patches/server/0763-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index 2177d3dd25..e35c0bb71b 100644
--- a/patches/server/0765-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0763-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index e5612808261f5e94ed02afa2bd070db56496fa79..edb90f6630bc19c66579890f59cc1f296fd82a75 100644
+index ebd092a3f3c745b3a2f69fd72c04be7a2ab214a2..91a66fb66e9df5d5878315afa9d357a388e6e837 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -564,7 +564,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(iworlddataserver));
LevelStem worlddimension = (LevelStem) dimensions.get(dimensionKey);
@@ -18,10 +18,10 @@ index e5612808261f5e94ed02afa2bd070db56496fa79..edb90f6630bc19c66579890f59cc1f29
biomeProvider = gen.getDefaultBiomeProvider(worldInfo);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 3f5a8f259f8afb42760602c8bac18e92b8299092..357990dc0259f03a9deb8c8df613ab8949a239b9 100644
+index f23c83b281e8fa7310bd8d10f6972f68743e2ab4..012d9b8d053dea682cf1d857b5ce5d3585f331e8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1236,7 +1236,7 @@ public final class CraftServer implements Server {
+@@ -1237,7 +1237,7 @@ public final class CraftServer implements Server {
List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
LevelStem worlddimension = iregistry.get(actualDimension);
@@ -31,10 +31,10 @@ index 3f5a8f259f8afb42760602c8bac18e92b8299092..357990dc0259f03a9deb8c8df613ab89
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 84f55724f38cd7bbe1971e9fbd7bfbfe86cd4c00..70e149700237fb960741a1a32e72a8007909544d 100644
+index dbdae5af24f762c7c2678754eb688c0de9ca5215..05c085f6c2c304879f6c5a823755bfe6aee1a9b9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -203,6 +203,30 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -202,6 +202,30 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public int getPlayerCount() {
return world.players().size();
}
diff --git a/patches/server/0766-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0764-Add-config-option-for-worlds-affected-by-time-cmd.patch
similarity index 100%
rename from patches/server/0766-Add-config-option-for-worlds-affected-by-time-cmd.patch
rename to patches/server/0764-Add-config-option-for-worlds-affected-by-time-cmd.patch
diff --git a/patches/server/0767-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/server/0765-Add-new-overload-to-PersistentDataContainer-has.patch
similarity index 83%
rename from patches/server/0767-Add-new-overload-to-PersistentDataContainer-has.patch
rename to patches/server/0765-Add-new-overload-to-PersistentDataContainer-has.patch
index d19f7179e1..7bec9a60ef 100644
--- a/patches/server/0767-Add-new-overload-to-PersistentDataContainer-has.patch
+++ b/patches/server/0765-Add-new-overload-to-PersistentDataContainer-has.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add new overload to PersistentDataContainer#has
Adds the new overload: PersistentDataContainer#has(NamespacedKey key)
diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
-index 2c59f09a9261a1690951161fd856a5848d9885b7..f0588bec9be09cb8273c310fb3de8bfe72dee9e5 100644
+index a94389eebe51bb368f759b3f99f0b9ed08ae2bdd..64110e74c6f6f0433219a721b490970ee33c0b00 100644
--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
@@ -161,5 +161,12 @@ public class CraftPersistentDataContainer implements PersistentDataContainer {
@@ -16,7 +16,7 @@ index 2c59f09a9261a1690951161fd856a5848d9885b7..f0588bec9be09cb8273c310fb3de8bfe
+
+ @Override
+ public boolean has(NamespacedKey key) {
-+ Validate.notNull(key, "The provided key for the custom value was null");
++ Preconditions.checkArgument(key != null, "The provided key for the custom value was null");
+
+ return this.customDataTags.containsKey(key.toString());
+ }
diff --git a/patches/server/0768-Multiple-Entries-with-Scoreboards.patch b/patches/server/0766-Multiple-Entries-with-Scoreboards.patch
similarity index 93%
rename from patches/server/0768-Multiple-Entries-with-Scoreboards.patch
rename to patches/server/0766-Multiple-Entries-with-Scoreboards.patch
index b644176ac9..66769fb534 100644
--- a/patches/server/0768-Multiple-Entries-with-Scoreboards.patch
+++ b/patches/server/0766-Multiple-Entries-with-Scoreboards.patch
@@ -70,7 +70,7 @@ index 610d312b9c8f6c8d1f102e8ba2fe9fc2cc3e98c5..3a4a0727ad44322e3ba85512cd077808
public void onObjectiveAdded(Objective objective) {
super.onObjectiveAdded(objective);
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d4eee8291 100644
+index 47031a6f1b7e261bb034968f83c0c496b89d1361..7098b77fe4275e39694ed7d8fb031b9397302b9f 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
@@ -234,6 +234,21 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
@@ -85,7 +85,7 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
+ @Override
+ public void addEntries(java.util.Collection entries) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entries, "Entries cannot be null");
++ Preconditions.checkArgument(entries != null, "Entries cannot be null");
+ CraftScoreboard scoreboard = this.checkState();
+
+ ((net.minecraft.server.ServerScoreboard) scoreboard.board).addPlayersToTeam(entries, this.team);
@@ -94,7 +94,7 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
@Override
public boolean removePlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException {
- Validate.notNull(player, "OfflinePlayer cannot be null");
+ Preconditions.checkArgument(player != null, "OfflinePlayer cannot be null");
@@ -253,6 +268,28 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
return true;
}
@@ -107,7 +107,7 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
+ @Override
+ public boolean removeEntries(java.util.Collection entries) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entries, "Entry cannot be null");
++ Preconditions.checkArgument(entries != null, "Entry cannot be null");
+ CraftScoreboard scoreboard = this.checkState();
+
+ for (String entry : entries) {
@@ -123,4 +123,4 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
@Override
public boolean hasPlayer(OfflinePlayer player) throws IllegalArgumentException, IllegalStateException {
- Validate.notNull(player, "OfflinePlayer cannot be null");
+ Preconditions.checkArgument(player != null, "OfflinePlayer cannot be null");
diff --git a/patches/server/0769-Reset-placed-block-on-exception.patch b/patches/server/0767-Reset-placed-block-on-exception.patch
similarity index 100%
rename from patches/server/0769-Reset-placed-block-on-exception.patch
rename to patches/server/0767-Reset-placed-block-on-exception.patch
diff --git a/patches/server/0770-Add-configurable-height-for-slime-spawn.patch b/patches/server/0768-Add-configurable-height-for-slime-spawn.patch
similarity index 100%
rename from patches/server/0770-Add-configurable-height-for-slime-spawn.patch
rename to patches/server/0768-Add-configurable-height-for-slime-spawn.patch
diff --git a/patches/server/0771-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0769-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
similarity index 100%
rename from patches/server/0771-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
rename to patches/server/0769-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/server/0772-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0770-Fix-xp-reward-for-baby-zombies.patch
similarity index 100%
rename from patches/server/0772-Fix-xp-reward-for-baby-zombies.patch
rename to patches/server/0770-Fix-xp-reward-for-baby-zombies.patch
diff --git a/patches/server/0773-Kick-on-main-for-illegal-chat.patch b/patches/server/0771-Kick-on-main-for-illegal-chat.patch
similarity index 90%
rename from patches/server/0773-Kick-on-main-for-illegal-chat.patch
rename to patches/server/0771-Kick-on-main-for-illegal-chat.patch
index 382ae32781..345e23b0be 100644
--- a/patches/server/0773-Kick-on-main-for-illegal-chat.patch
+++ b/patches/server/0771-Kick-on-main-for-illegal-chat.patch
@@ -7,10 +7,10 @@ Makes the PlayerKickEvent fire on the main thread for
illegal characters or chat out-of-order errors.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 74b0d2ddcea648d017e4acbe20536352102bad95..c47d838ad26e4a32de065d9adc2af35e1a915b0c 100644
+index 0203c778e2cfd421d4e9516a00535a5f20e61679..446ef101ca506ec9fdce6cede70a1e51d97d7dfc 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2162,7 +2162,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2165,7 +2165,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// CraftBukkit end
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) {
@@ -20,7 +20,7 @@ index 74b0d2ddcea648d017e4acbe20536352102bad95..c47d838ad26e4a32de065d9adc2af35e
} else {
Optional optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2196,7 +2198,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2199,7 +2201,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleChatCommand(ServerboundChatCommandPacket packet) {
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) {
@@ -30,7 +30,7 @@ index 74b0d2ddcea648d017e4acbe20536352102bad95..c47d838ad26e4a32de065d9adc2af35e
} else {
Optional optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2282,7 +2286,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2285,7 +2289,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message);
diff --git a/patches/server/0774-Multi-Block-Change-API-Implementation.patch b/patches/server/0772-Multi-Block-Change-API-Implementation.patch
similarity index 95%
rename from patches/server/0774-Multi-Block-Change-API-Implementation.patch
rename to patches/server/0772-Multi-Block-Change-API-Implementation.patch
index 528fd87162..9bdaf3072d 100644
--- a/patches/server/0774-Multi-Block-Change-API-Implementation.patch
+++ b/patches/server/0772-Multi-Block-Change-API-Implementation.patch
@@ -24,10 +24,10 @@ index f96d61bdeb556665d6e6e5023f9d77fd82204e89..e3f355c85eb7cc8c1683e3009502c10a
public void write(FriendlyByteBuf buf) {
buf.writeLong(this.sectionPos.asLong());
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 59683479af9fa4058cab286caed2fa990c4bd293..6373c2df3acd6dcae321e9914bea7a6beaa51c5d 100644
+index df99f0c91cc3bc79ca7e5db27c2e4d215da30a55..c949a3581581aa34a678d942fe38e660ba389eef 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -920,6 +920,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -878,6 +878,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
diff --git a/patches/server/0775-Fix-NotePlayEvent.patch b/patches/server/0773-Fix-NotePlayEvent.patch
similarity index 100%
rename from patches/server/0775-Fix-NotePlayEvent.patch
rename to patches/server/0773-Fix-NotePlayEvent.patch
diff --git a/patches/server/0776-Freeze-Tick-Lock-API.patch b/patches/server/0774-Freeze-Tick-Lock-API.patch
similarity index 95%
rename from patches/server/0776-Freeze-Tick-Lock-API.patch
rename to patches/server/0774-Freeze-Tick-Lock-API.patch
index 18ef99da47..0951dac980 100644
--- a/patches/server/0776-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0774-Freeze-Tick-Lock-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index ef5e979d09df13660ac7893be1209c2c2b8a136c..dc676cdabfa306a3975e25f981078ead317196c1 100644
+index 769b5e4af8d23c768ade210cb72f8857473a696c..cad5f9feffd70ca1cdff9f36b16e73df405858bf 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -402,6 +402,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -59,7 +59,7 @@ index 5287ff8b30a6d27ca05241695a6c99e868a5aa36..351c60a6f1dfc00aa1a300ed929e81df
if (this.isInPowderSnow && this.canFreeze()) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 428795adbd9e08353196ab78730e6dc6984011e7..8317d5100d16fb242e4ff9f7b965e1dbd147cede 100644
+index fbc18be64e71be2215059c34afd8129138dc4dff..cc72d960d9a5f9481ec2214b1549a344907a68da 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -663,6 +663,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0777-Dolphin-API.patch b/patches/server/0775-Dolphin-API.patch
similarity index 100%
rename from patches/server/0777-Dolphin-API.patch
rename to patches/server/0775-Dolphin-API.patch
diff --git a/patches/server/0778-More-PotionEffectType-API.patch b/patches/server/0776-More-PotionEffectType-API.patch
similarity index 100%
rename from patches/server/0778-More-PotionEffectType-API.patch
rename to patches/server/0776-More-PotionEffectType-API.patch
diff --git a/patches/server/0779-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0777-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
similarity index 100%
rename from patches/server/0779-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
rename to patches/server/0777-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
diff --git a/patches/server/0780-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0778-API-for-creating-command-sender-which-forwards-feedb.patch
similarity index 96%
rename from patches/server/0780-API-for-creating-command-sender-which-forwards-feedb.patch
rename to patches/server/0778-API-for-creating-command-sender-which-forwards-feedb.patch
index c2777a1918..379e607e9d 100644
--- a/patches/server/0780-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/server/0778-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 357990dc0259f03a9deb8c8df613ab8949a239b9..5c64c95289b466026722a318e818da23da56086a 100644
+index 012d9b8d053dea682cf1d857b5ce5d3585f331e8..74b7824d104ad568e76dd3352bc509997b5c91fd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2016,6 +2016,13 @@ public final class CraftServer implements Server {
+@@ -2017,6 +2017,13 @@ public final class CraftServer implements Server {
return console.console;
}
@@ -161,7 +161,7 @@ index eaff8df6c8c12c64e005a68a02e2e35ed88f757c..1c638a4b1f2c841928d8b2a7ae43e4eb
if (this instanceof CraftBlockCommandSender) {
if (ServerCommandSender.blockPermInst == null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
-index 6df44aa60d2b41b95fe79ed4cf92a6d3369400ea..6035af2cf08353b3d3801220d8116d8611a0cd37 100644
+index bd45d59cbfe877717b90221fbb8d03d266958984..eb20ac9d0e70c48c2c671109b7706c56ff0f10f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
@@ -84,6 +84,11 @@ public final class VanillaCommandWrapper extends BukkitCommand {
diff --git a/patches/server/0781-Add-missing-structure-set-seed-configs.patch b/patches/server/0779-Add-missing-structure-set-seed-configs.patch
similarity index 100%
rename from patches/server/0781-Add-missing-structure-set-seed-configs.patch
rename to patches/server/0779-Add-missing-structure-set-seed-configs.patch
diff --git a/patches/server/0782-Implement-regenerateChunk.patch b/patches/server/0780-Implement-regenerateChunk.patch
similarity index 96%
rename from patches/server/0782-Implement-regenerateChunk.patch
rename to patches/server/0780-Implement-regenerateChunk.patch
index 98e8a8ddd5..2101ebbee1 100644
--- a/patches/server/0782-Implement-regenerateChunk.patch
+++ b/patches/server/0780-Implement-regenerateChunk.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Implement regenerateChunk
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 70e149700237fb960741a1a32e72a8007909544d..2b0ed0b70b01e1efd315ec13492a53ec728a9fec 100644
+index 05c085f6c2c304879f6c5a823755bfe6aee1a9b9..e49c907f668b17cb85505b9199af3b90f2c5af74 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -142,6 +142,7 @@ import org.jetbrains.annotations.NotNull;
+@@ -141,6 +141,7 @@ import org.jetbrains.annotations.NotNull;
public class CraftWorld extends CraftRegionAccessor implements World {
public static final int CUSTOM_DIMENSION_OFFSET = 10;
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
@@ -17,7 +17,7 @@ index 70e149700237fb960741a1a32e72a8007909544d..2b0ed0b70b01e1efd315ec13492a53ec
private final ServerLevel world;
private WorldBorder worldBorder;
-@@ -427,27 +428,61 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -426,27 +427,61 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean regenerateChunk(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot
diff --git a/patches/server/0783-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0781-Fix-cancelled-powdered-snow-bucket-placement.patch
similarity index 100%
rename from patches/server/0783-Fix-cancelled-powdered-snow-bucket-placement.patch
rename to patches/server/0781-Fix-cancelled-powdered-snow-bucket-placement.patch
diff --git a/patches/server/0784-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0782-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
similarity index 65%
rename from patches/server/0784-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
rename to patches/server/0782-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
index b3024ef399..e39fc3e9bd 100644
--- a/patches/server/0784-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
+++ b/patches/server/0782-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
@@ -6,15 +6,15 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit
Copies appropriate checks from CraftWorld#getSpawnLimit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 5c64c95289b466026722a318e818da23da56086a..2ef63197ab4bbad14e90139528879f8caef45372 100644
+index 74b7824d104ad568e76dd3352bc509997b5c91fd..f2f81ee6e938ef3d148f16729c0daf2fde8e1b26 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2190,6 +2190,8 @@ public final class CraftServer implements Server {
+@@ -2194,6 +2194,8 @@ public final class CraftServer implements Server {
@Override
public int getSpawnLimit(SpawnCategory spawnCategory) {
// Paper start
-+ Validate.notNull(spawnCategory, "SpawnCategory cannot be null");
-+ Validate.isTrue(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory." + spawnCategory + " does not have a spawn limit.");
++ Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null");
++ Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory." + spawnCategory + " does not have a spawn limit.");
return this.getSpawnLimitUnsafe(spawnCategory);
}
public int getSpawnLimitUnsafe(final SpawnCategory spawnCategory) {
diff --git a/patches/server/0785-Add-GameEvent-tags.patch b/patches/server/0783-Add-GameEvent-tags.patch
similarity index 95%
rename from patches/server/0785-Add-GameEvent-tags.patch
rename to patches/server/0783-Add-GameEvent-tags.patch
index 091acd03cf..b33e7a1eba 100644
--- a/patches/server/0785-Add-GameEvent-tags.patch
+++ b/patches/server/0783-Add-GameEvent-tags.patch
@@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2ef63197ab4bbad14e90139528879f8caef45372..9d319df303599ba44773526902d3314430031689 100644
+index f2f81ee6e938ef3d148f16729c0daf2fde8e1b26..68a929979e61f418f5833ba7886c86d959d3a89f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2598,6 +2598,15 @@ public final class CraftServer implements Server {
+@@ -2615,6 +2615,15 @@ public final class CraftServer implements Server {
return (org.bukkit.Tag) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey);
}
}
@@ -65,7 +65,7 @@ index 2ef63197ab4bbad14e90139528879f8caef45372..9d319df303599ba44773526902d33144
default -> throw new IllegalArgumentException();
}
-@@ -2630,6 +2639,13 @@ public final class CraftServer implements Server {
+@@ -2647,6 +2656,13 @@ public final class CraftServer implements Server {
net.minecraft.core.Registry> entityTags = BuiltInRegistries.ENTITY_TYPE;
return entityTags.getTags().map(pair -> (org.bukkit.Tag) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList());
}
diff --git a/patches/server/0786-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0784-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
similarity index 87%
rename from patches/server/0786-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
rename to patches/server/0784-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
index 9ef9dbd884..45ac694a2b 100644
--- a/patches/server/0786-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
+++ b/patches/server/0784-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
@@ -9,10 +9,10 @@ This might result in chunks loading far slower in the nether,
for example.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index edb90f6630bc19c66579890f59cc1f296fd82a75..fe363bb2aff031c0efb812fa7e12d585984e2b29 100644
+index 91a66fb66e9df5d5878315afa9d357a388e6e837..934e948bb112bcfc69e656ac4c6a97f0a72d7b74 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1308,6 +1308,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index c738fb984ffd120e5adccdb5828833f180e72e80..5c8e905bbf56dd2af5b30d34371793c3f98801ab 100644
+index 7318209de454b233e22c20b176cb207de7f86674..414b4fd46307aa9c9d0f96bc571a68642f33afdb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -599,7 +599,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -598,7 +598,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
// Paper end
} else if (FallingBlock.class.isAssignableFrom(clazz)) {
BlockPos pos = BlockPos.containing(x, y, z);
@@ -24,12 +24,12 @@ index c738fb984ffd120e5adccdb5828833f180e72e80..5c8e905bbf56dd2af5b30d34371793c3
if (Snowball.class.isAssignableFrom(clazz)) {
entity = new net.minecraft.world.entity.projectile.Snowball(world, x, y, z);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 2b0ed0b70b01e1efd315ec13492a53ec728a9fec..3ccba43d0eaa4ad867a555a92dd41f5924fc8b44 100644
+index e49c907f668b17cb85505b9199af3b90f2c5af74..1e26fea83065c7e76b196e6599892c11d4370617 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1391,7 +1391,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
- Validate.notNull(material, "Material cannot be null");
- Validate.isTrue(material.isBlock(), "Material must be a block");
+@@ -1397,7 +1397,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ Preconditions.checkArgument(material != null, "Material cannot be null");
+ Preconditions.checkArgument(material.isBlock(), "Material.%s must be a block", material);
- FallingBlockEntity entity = FallingBlockEntity.fall(world, BlockPos.containing(location.getX(), location.getY(), location.getZ()), CraftMagicNumbers.getBlock(material).defaultBlockState(), SpawnReason.CUSTOM);
+ // Paper start - restore API behavior for spawning falling blocks
@@ -41,9 +41,9 @@ index 2b0ed0b70b01e1efd315ec13492a53ec728a9fec..3ccba43d0eaa4ad867a555a92dd41f59
return (FallingBlock) entity.getBukkitEntity();
}
-@@ -1400,7 +1405,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
- Validate.notNull(location, "Location cannot be null");
- Validate.notNull(data, "BlockData cannot be null");
+@@ -1406,7 +1411,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ Preconditions.checkArgument(location != null, "Location cannot be null");
+ Preconditions.checkArgument(data != null, "BlockData cannot be null");
- FallingBlockEntity entity = FallingBlockEntity.fall(world, BlockPos.containing(location.getX(), location.getY(), location.getZ()), ((CraftBlockData) data).getState(), SpawnReason.CUSTOM);
+ // Paper start - restore API behavior for spawning falling blocks
diff --git a/patches/server/0796-Expose-furnace-minecart-push-values.patch b/patches/server/0794-Expose-furnace-minecart-push-values.patch
similarity index 100%
rename from patches/server/0796-Expose-furnace-minecart-push-values.patch
rename to patches/server/0794-Expose-furnace-minecart-push-values.patch
diff --git a/patches/server/0797-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0795-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
similarity index 100%
rename from patches/server/0797-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
rename to patches/server/0795-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
diff --git a/patches/server/0798-More-Projectile-API.patch b/patches/server/0796-More-Projectile-API.patch
similarity index 93%
rename from patches/server/0798-More-Projectile-API.patch
rename to patches/server/0796-More-Projectile-API.patch
index b6b34f5775..bc39b7ad22 100644
--- a/patches/server/0798-More-Projectile-API.patch
+++ b/patches/server/0796-More-Projectile-API.patch
@@ -116,10 +116,10 @@ index 40e5b19bc8fa3de3b3d54da0762aee5bd7bb8d7b..b3814bd6c6d6aae090fe417696535ed1
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-index 15abd085eeb0a31a925c1a8d6de903c9d4625a29..d53e1dc949359e9157e92c75d8655a1619bba568 100644
+index d443b171191d150eed62d000a1079ede6bcf9052..10e2d251ec398245786a0b3bd41f3bc7155a49fe 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-@@ -61,20 +61,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
+@@ -59,20 +59,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
this.getHandle().setCritArrow(critical);
}
@@ -141,7 +141,7 @@ index 15abd085eeb0a31a925c1a8d6de903c9d4625a29..d53e1dc949359e9157e92c75d8655a16
@Override
public boolean isInBlock() {
-@@ -108,6 +95,27 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
+@@ -106,6 +93,27 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
return org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(getHandle().getPickupItem());
}
@@ -170,7 +170,7 @@ index 15abd085eeb0a31a925c1a8d6de903c9d4625a29..d53e1dc949359e9157e92c75d8655a16
public void setNoPhysics(boolean noPhysics) {
this.getHandle().setNoPhysics(noPhysics);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
-index 2358e0c8a4a135d6deb47100c490a9c145f44827..2dd2149e8af5cb47027ab24159b48e1d67b45f19 100644
+index 44353e074fb4655e38ffffe83cbf52080e5cbbdb..1fdf52edc47591bf3d8bbcb9db9d41773aace42f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
@@ -33,20 +33,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
@@ -303,10 +303,10 @@ index c242f654c88ca1773429348939d3bb2ffae3768c..d1c7ab67cba881d96b7a5e9220130d86
+ // Paper end - Expose firework item directly + manually setting flight
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-index 424e53d904e722548a9897fdc6138693679b2a5d..4d12c33b9a360129ffaefb551010b354bba0c69f 100644
+index d38fca354695ef940421fe7325f2ef3a7b57a6f4..ce934b945b85a4c3d0f575eb090bbf90c4b3ca9f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-@@ -203,4 +203,15 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
+@@ -202,4 +202,15 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
public HookState getState() {
return HookState.values()[this.getHandle().currentState.ordinal()];
}
@@ -435,15 +435,15 @@ index 20b54f8896be1f8744a29e1d0205e58d27049f1f..43f52716c82863382cb0eb08cc0e174a
public String toString() {
return "CraftShulkerBullet";
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
-index 0db8aa840ea026d48215ac5dc80ffde5f12725b1..397e0df15a0e64e5bc522f62f3b327a5039ec4c8 100644
+index 02ee302f93f971fbd97f7fd88f257a1a613a81ba..2b8a4ad4bca3044f1af274cdff90e6d66b6c7da7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
-@@ -39,11 +39,31 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw
- Validate.notNull(item, "ItemStack cannot be null.");
-
- // The ItemStack must be a potion.
-- Validate.isTrue(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack must be a lingering or splash potion. This item stack was " + item.getType() + ".");
-+ //Validate.isTrue(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack must be a lingering or splash potion. This item stack was " + item.getType() + "."); // Paper - Projectile API
+@@ -36,11 +36,31 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw
+ @Override
+ public void setItem(ItemStack item) {
+ Preconditions.checkArgument(item != null, "ItemStack cannot be null");
+- Preconditions.checkArgument(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack material must be Material.LINGERING_POTION or Material.SPLASH_POTION but was Material.%s", item.getType());
++ // Preconditions.checkArgument(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack material must be Material.LINGERING_POTION or Material.SPLASH_POTION but was Material.%s", item.getType()); // Paper - Projectile API
+ org.bukkit.inventory.meta.PotionMeta meta = (item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION) ? null : this.getPotionMeta(); // Paper - Projectile API
this.getHandle().setItem(CraftItemStack.asNMSCopy(item));
@@ -492,10 +492,10 @@ index 832981b07ef5c633ef00a382f56798ee87eec0df..faf071201b7c1414225a33fe9641eac9
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 5388a07fd8b5c8a4ea604996fb41e526e0d7c16c..8683bb08c2d9a7514ee6b16690b61240fb807d15 100644
+index 6775b432e17b09aaa21af5713fa0ffdf7fdbf8a9..d6b9897dcb4715decd4dd0b1b96995e25d789482 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -278,12 +278,20 @@ public final class CraftItemStack extends ItemStack {
+@@ -279,12 +279,20 @@ public final class CraftItemStack extends ItemStack {
public ItemMeta getItemMeta() {
return CraftItemStack.getItemMeta(this.handle);
}
diff --git a/patches/server/0799-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0797-Fix-swamp-hut-cat-generation-deadlock.patch
similarity index 100%
rename from patches/server/0799-Fix-swamp-hut-cat-generation-deadlock.patch
rename to patches/server/0797-Fix-swamp-hut-cat-generation-deadlock.patch
diff --git a/patches/server/0800-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0798-Don-t-allow-vehicle-movement-from-players-while-tele.patch
similarity index 93%
rename from patches/server/0800-Don-t-allow-vehicle-movement-from-players-while-tele.patch
rename to patches/server/0798-Don-t-allow-vehicle-movement-from-players-while-tele.patch
index 635ca8d74b..aa96a3253f 100644
--- a/patches/server/0800-Don-t-allow-vehicle-movement-from-players-while-tele.patch
+++ b/patches/server/0798-Don-t-allow-vehicle-movement-from-players-while-tele.patch
@@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the
regular player move packet.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c47d838ad26e4a32de065d9adc2af35e1a915b0c..32f14d93a27f340551a157445250ccbc8a133157 100644
+index 446ef101ca506ec9fdce6cede70a1e51d97d7dfc..3b6edec55939c4fddf28b59282652493b42a2b8d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -576,6 +576,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0801-Implement-getComputedBiome-API.patch b/patches/server/0799-Implement-getComputedBiome-API.patch
similarity index 87%
rename from patches/server/0801-Implement-getComputedBiome-API.patch
rename to patches/server/0799-Implement-getComputedBiome-API.patch
index 9ef37127d4..7eec45ff95 100644
--- a/patches/server/0801-Implement-getComputedBiome-API.patch
+++ b/patches/server/0799-Implement-getComputedBiome-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement getComputedBiome API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5c8e905bbf56dd2af5b30d34371793c3f98801ab..5bab5c75a2ce945b43434d2240c9d1124a20aee2 100644
+index 414b4fd46307aa9c9d0f96bc571a68642f33afdb..61bc6a68fe1b0101f70b065710d941b36f8766a8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
@@ -220,6 +220,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
@@ -23,10 +23,10 @@ index 5c8e905bbf56dd2af5b30d34371793c3f98801ab..5bab5c75a2ce945b43434d2240c9d112
public void setBiome(Location location, Biome biome) {
this.setBiome(location.getBlockX(), location.getBlockY(), location.getBlockZ(), biome);
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 8131c1db3d7963121a24348575ea8a98a80a974c..84d1351c423965acf79c1413d00eff9eaa3927a2 100644
+index 8d2da07f0793367a51026b50adc8b3dc71073013..61c1f722b99363597613c506cb2fb437e358eb1b 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -345,6 +345,13 @@ public class CraftBlock implements Block {
+@@ -344,6 +344,13 @@ public class CraftBlock implements Block {
return this.getWorld().getBiome(this.getX(), this.getY(), this.getZ());
}
@@ -41,10 +41,10 @@ index 8131c1db3d7963121a24348575ea8a98a80a974c..84d1351c423965acf79c1413d00eff9e
public void setBiome(Biome bio) {
this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio);
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-index 0ea1586bab74983fca19dcc5415fbc7a044fe186..e3d6f0847bb3b524452f4dc073c07a5d9448bb9f 100644
+index 23ffe4b8a19286543e12bf7408879e6d1305a78f..935bca901f0618d77f3bf6c057bcbc606c742fac 100644
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-@@ -167,6 +167,14 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
+@@ -165,6 +165,14 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
return super.getBiome(x, y, z);
}
diff --git a/patches/server/0802-Make-some-itemstacks-nonnull.patch b/patches/server/0800-Make-some-itemstacks-nonnull.patch
similarity index 91%
rename from patches/server/0802-Make-some-itemstacks-nonnull.patch
rename to patches/server/0800-Make-some-itemstacks-nonnull.patch
index e2cba95fe4..153d145fd3 100644
--- a/patches/server/0802-Make-some-itemstacks-nonnull.patch
+++ b/patches/server/0800-Make-some-itemstacks-nonnull.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make some itemstacks nonnull
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
-index d6a228473ca6f425757683a4b17b035a53ab117f..8801d3f7ff6d2ff810f3e34a821dfb659c03f844 100644
+index f89a1b1c1902b16f6640c9a95f5b72351b60ceda..0c80dea986b0b63b2182c4ca0d23d6534f753cb0 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
-@@ -156,13 +156,13 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
+@@ -155,13 +155,13 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
case OFF_HAND:
return this.getItemInOffHand();
case FEET:
diff --git a/patches/server/0803-Implement-enchantWithLevels-API.patch b/patches/server/0801-Implement-enchantWithLevels-API.patch
similarity index 68%
rename from patches/server/0803-Implement-enchantWithLevels-API.patch
rename to patches/server/0801-Implement-enchantWithLevels-API.patch
index f4b2f43353..ffa67d357d 100644
--- a/patches/server/0803-Implement-enchantWithLevels-API.patch
+++ b/patches/server/0801-Implement-enchantWithLevels-API.patch
@@ -5,20 +5,20 @@ Subject: [PATCH] Implement enchantWithLevels API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index b32c06b1f03751c164da7049976c473dff20e4ef..b88a29623c280fcf2e3dd6d16646c23ca809efe1 100644
+index 583cd4726a1b60e8f11bf8a28cc3c655fa8c1b90..849e93a8a0645de4c3e6ab8047815d78a722d4f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -444,6 +444,21 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -439,6 +439,21 @@ public final class CraftItemFactory implements ItemFactory {
}
// Paper start
+ @Override
+ public ItemStack enchantWithLevels(ItemStack itemStack, int levels, boolean allowTreasure, java.util.Random random) {
-+ Validate.notNull(itemStack, "Argument 'itemStack' must not be null");
-+ Validate.isTrue(itemStack.getType() != Material.AIR, "Argument 'itemStack' must not be of type AIR");
-+ Validate.isTrue(itemStack.getAmount() > 0, "Argument 'itemStack' amount must be greater than 0");
-+ Validate.isTrue(levels > 0 && levels <= 30, "Argument 'levels' must be in range [1, 30] (attempted " + levels + ")");
-+ Validate.notNull(random, "Argument 'random' must not be null");
++ Preconditions.checkArgument(itemStack != null, "Argument 'itemStack' must not be null");
++ Preconditions.checkArgument(itemStack.getType() != Material.AIR, "Argument 'itemStack' must not be of type AIR");
++ Preconditions.checkArgument(itemStack.getAmount() > 0, "Argument 'itemStack' amount must be greater than 0");
++ Preconditions.checkArgument(levels > 0 && levels <= 30, "Argument 'levels' must be in range [1, 30] (attempted " + levels + ")");
++ Preconditions.checkArgument(random != null, "Argument 'random' must not be null");
+ final net.minecraft.world.item.ItemStack internalStack = CraftItemStack.asNMSCopy(itemStack);
+ if (internalStack.getTag() != null) {
+ internalStack.getTag().remove(net.minecraft.world.item.ItemStack.TAG_ENCH);
diff --git a/patches/server/0804-Fix-saving-in-unloadWorld.patch b/patches/server/0802-Fix-saving-in-unloadWorld.patch
similarity index 83%
rename from patches/server/0804-Fix-saving-in-unloadWorld.patch
rename to patches/server/0802-Fix-saving-in-unloadWorld.patch
index 6dc981ae74..50f6a5db96 100644
--- a/patches/server/0804-Fix-saving-in-unloadWorld.patch
+++ b/patches/server/0802-Fix-saving-in-unloadWorld.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix saving in unloadWorld
Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6b39340b835156f43e5a9db32302adacb3257739..2faee338276501f22815b9961e1f9109f3adc9b8 100644
+index 7e7539b7f50007f10d7926bb13beea2538403b1f..86e11118d21849cb5613bcf0e18ec85467b6ab3a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1313,7 +1313,7 @@ public final class CraftServer implements Server {
+@@ -1314,7 +1314,7 @@ public final class CraftServer implements Server {
try {
if (save) {
diff --git a/patches/server/0805-Buffer-OOB-setBlock-calls.patch b/patches/server/0803-Buffer-OOB-setBlock-calls.patch
similarity index 100%
rename from patches/server/0805-Buffer-OOB-setBlock-calls.patch
rename to patches/server/0803-Buffer-OOB-setBlock-calls.patch
diff --git a/patches/server/0806-Add-TameableDeathMessageEvent.patch b/patches/server/0804-Add-TameableDeathMessageEvent.patch
similarity index 100%
rename from patches/server/0806-Add-TameableDeathMessageEvent.patch
rename to patches/server/0804-Add-TameableDeathMessageEvent.patch
diff --git a/patches/server/0807-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0805-Fix-new-block-data-for-EntityChangeBlockEvent.patch
similarity index 100%
rename from patches/server/0807-Fix-new-block-data-for-EntityChangeBlockEvent.patch
rename to patches/server/0805-Fix-new-block-data-for-EntityChangeBlockEvent.patch
diff --git a/patches/server/0808-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0806-fix-player-loottables-running-when-mob-loot-gamerule.patch
similarity index 92%
rename from patches/server/0808-fix-player-loottables-running-when-mob-loot-gamerule.patch
rename to patches/server/0806-fix-player-loottables-running-when-mob-loot-gamerule.patch
index 34a373a439..9c03da00a3 100644
--- a/patches/server/0808-fix-player-loottables-running-when-mob-loot-gamerule.patch
+++ b/patches/server/0806-fix-player-loottables-running-when-mob-loot-gamerule.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 68e7342a72509fb41734ee23638ffb562007ae90..4285510cbe281044376927d94a4e20439bfcf8ec 100644
+index ea3dfa9cd06e4a44ee819ed4a203779e4c10bbd9..c0db84c559c3ab5b202b234915e070b540a828fe 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -916,12 +916,14 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0809-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0807-Ensure-entity-passenger-world-matches-ridden-entity.patch
similarity index 92%
rename from patches/server/0809-Ensure-entity-passenger-world-matches-ridden-entity.patch
rename to patches/server/0807-Ensure-entity-passenger-world-matches-ridden-entity.patch
index f27bc852e9..f3bbed2174 100644
--- a/patches/server/0809-Ensure-entity-passenger-world-matches-ridden-entity.patch
+++ b/patches/server/0807-Ensure-entity-passenger-world-matches-ridden-entity.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity
Bad plugins doing this would cause some obvious problems...
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index dc676cdabfa306a3975e25f981078ead317196c1..a016fbe3d0ca0481d07eefc8fbd155aaf303ca05 100644
+index cad5f9feffd70ca1cdff9f36b16e73df405858bf..ad5b4f317f5914fafa5d4905903c4c534ece6996 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2844,6 +2844,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0810-Guard-against-invalid-entity-positions.patch b/patches/server/0808-Guard-against-invalid-entity-positions.patch
similarity index 95%
rename from patches/server/0810-Guard-against-invalid-entity-positions.patch
rename to patches/server/0808-Guard-against-invalid-entity-positions.patch
index 4ee5d3edbb..8db61fe05f 100644
--- a/patches/server/0810-Guard-against-invalid-entity-positions.patch
+++ b/patches/server/0808-Guard-against-invalid-entity-positions.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Guard against invalid entity positions
Anything not finite should be blocked and logged
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a016fbe3d0ca0481d07eefc8fbd155aaf303ca05..bdf5418b4b500a9156fe6cf399f2e052ada409db 100644
+index ad5b4f317f5914fafa5d4905903c4c534ece6996..58a22c5ca035ba55d2c05f53839416582532b24a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4460,11 +4460,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0811-cache-resource-keys.patch b/patches/server/0809-cache-resource-keys.patch
similarity index 94%
rename from patches/server/0811-cache-resource-keys.patch
rename to patches/server/0809-cache-resource-keys.patch
index 18bd2f0eaf..c56e3412af 100644
--- a/patches/server/0811-cache-resource-keys.patch
+++ b/patches/server/0809-cache-resource-keys.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] cache resource keys
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 84d1351c423965acf79c1413d00eff9eaa3927a2..e0c2ad107847227987080491e94b264930fc80e2 100644
+index 61c1f722b99363597613c506cb2fb437e358eb1b..c04397cc60154ef55027c90be990b9dfb818fd2f 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -370,12 +370,13 @@ public class CraftBlock implements Block {
+@@ -369,12 +369,13 @@ public class CraftBlock implements Block {
return (biome == null) ? Biome.CUSTOM : biome;
}
diff --git a/patches/server/0812-Allow-to-change-the-podium-for-the-EnderDragon.patch b/patches/server/0810-Allow-to-change-the-podium-for-the-EnderDragon.patch
similarity index 100%
rename from patches/server/0812-Allow-to-change-the-podium-for-the-EnderDragon.patch
rename to patches/server/0810-Allow-to-change-the-podium-for-the-EnderDragon.patch
diff --git a/patches/server/0813-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0811-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
similarity index 100%
rename from patches/server/0813-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
rename to patches/server/0811-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
diff --git a/patches/server/0814-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0812-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
similarity index 100%
rename from patches/server/0814-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
rename to patches/server/0812-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
diff --git a/patches/server/0815-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0813-Prevent-tile-entity-copies-loading-chunks.patch
similarity index 89%
rename from patches/server/0815-Prevent-tile-entity-copies-loading-chunks.patch
rename to patches/server/0813-Prevent-tile-entity-copies-loading-chunks.patch
index 61903d329d..6f5b29b2a0 100644
--- a/patches/server/0815-Prevent-tile-entity-copies-loading-chunks.patch
+++ b/patches/server/0813-Prevent-tile-entity-copies-loading-chunks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 32f14d93a27f340551a157445250ccbc8a133157..7e7cf1951b3a9bb1233f7a05dff685718881c1a2 100644
+index 3b6edec55939c4fddf28b59282652493b42a2b8d..2333252a3c46affb76c09731968117fdd46a9b1b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3308,7 +3308,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3311,7 +3311,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound);
if (this.player.level().isLoaded(blockposition)) {
diff --git a/patches/server/0816-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0814-Use-username-instead-of-display-name-in-PlayerList-g.patch
similarity index 92%
rename from patches/server/0816-Use-username-instead-of-display-name-in-PlayerList-g.patch
rename to patches/server/0814-Use-username-instead-of-display-name-in-PlayerList-g.patch
index e16514b7c7..0b34f9da4c 100644
--- a/patches/server/0816-Use-username-instead-of-display-name-in-PlayerList-g.patch
+++ b/patches/server/0814-Use-username-instead-of-display-name-in-PlayerList-g.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index ae4fe6eba052496fb3a95f1272c26605c2b1af48..57e63c91051c5885103ba55466dacdb449cd5316 100644
+index b56a7067faafb687ff5d529b1d4a40c1e15b2ea2..815eb218b6612b13c6deff636509bad35eeace62 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1430,7 +1430,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0817-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch b/patches/server/0815-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch
similarity index 100%
rename from patches/server/0817-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch
rename to patches/server/0815-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch
diff --git a/patches/server/0818-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
similarity index 96%
rename from patches/server/0818-Pass-ServerLevel-for-gamerule-callbacks.patch
rename to patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
index aca427ff3a..79635fc588 100644
--- a/patches/server/0818-Pass-ServerLevel-for-gamerule-callbacks.patch
+++ b/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
@@ -18,10 +18,10 @@ index 9a45921cbb1e7a39e6ef46cc93c14766ee8229ad..8115cf64a30b6438721769df6045e1b7
if (dedicatedserverproperties.enableQuery) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7e7cf1951b3a9bb1233f7a05dff685718881c1a2..0b0a839fafca6b1889adde84af9a66071df191ce 100644
+index 2333252a3c46affb76c09731968117fdd46a9b1b..65b94c6e2d85637342ebfb5478189536759d8338 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2898,7 +2898,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2901,7 +2901,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper
@@ -158,10 +158,10 @@ index de713f1ca1d61a6b1fca2b66de9162556d102449..edd2c9d0cf5a81c779011cb4215d496a
this.onChanged(server);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 3ccba43d0eaa4ad867a555a92dd41f5924fc8b44..467505468574168c63bd81024bdc60f97b660782 100644
+index 1e26fea83065c7e76b196e6599892c11d4370617..5deed29e78ba599c4732b9bac57f0661e4871882 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1944,7 +1944,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1950,7 +1950,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Paper end
GameRules.Value> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule));
handle.deserialize(event.getValue()); // Paper
@@ -170,7 +170,7 @@ index 3ccba43d0eaa4ad867a555a92dd41f5924fc8b44..467505468574168c63bd81024bdc60f9
return true;
}
-@@ -1984,7 +1984,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1991,7 +1991,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Paper end
GameRules.Value> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName()));
handle.deserialize(event.getValue()); // Paper
diff --git a/patches/server/0819-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/0817-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
similarity index 100%
rename from patches/server/0819-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
rename to patches/server/0817-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
diff --git a/patches/server/0820-WorldCreator-keepSpawnLoaded.patch b/patches/server/0818-WorldCreator-keepSpawnLoaded.patch
similarity index 85%
rename from patches/server/0820-WorldCreator-keepSpawnLoaded.patch
rename to patches/server/0818-WorldCreator-keepSpawnLoaded.patch
index 4d12867285..d1c0f4c8e8 100644
--- a/patches/server/0820-WorldCreator-keepSpawnLoaded.patch
+++ b/patches/server/0818-WorldCreator-keepSpawnLoaded.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2faee338276501f22815b9961e1f9109f3adc9b8..22b19bd06495d3771736f9d05c949807c12f87a2 100644
+index 86e11118d21849cb5613bcf0e18ec85467b6ab3a..738ba9f21169511eeabb5204c49049f77c2bc9da 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1272,6 +1272,7 @@ public final class CraftServer implements Server {
+@@ -1273,6 +1273,7 @@ public final class CraftServer implements Server {
internal.setSpawnSettings(true, true);
// Paper - move up
diff --git a/patches/server/0821-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0819-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
similarity index 100%
rename from patches/server/0821-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
rename to patches/server/0819-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
diff --git a/patches/server/0822-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0820-Add-EntityDyeEvent-and-CollarColorable-interface.patch
similarity index 100%
rename from patches/server/0822-Add-EntityDyeEvent-and-CollarColorable-interface.patch
rename to patches/server/0820-Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff --git a/patches/server/0823-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0821-Fire-CauldronLevelChange-on-initial-fill.patch
similarity index 100%
rename from patches/server/0823-Fire-CauldronLevelChange-on-initial-fill.patch
rename to patches/server/0821-Fire-CauldronLevelChange-on-initial-fill.patch
diff --git a/patches/server/0824-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0822-fix-powder-snow-cauldrons-not-turning-to-water.patch
similarity index 100%
rename from patches/server/0824-fix-powder-snow-cauldrons-not-turning-to-water.patch
rename to patches/server/0822-fix-powder-snow-cauldrons-not-turning-to-water.patch
diff --git a/patches/server/0825-Add-PlayerStopUsingItemEvent.patch b/patches/server/0823-Add-PlayerStopUsingItemEvent.patch
similarity index 100%
rename from patches/server/0825-Add-PlayerStopUsingItemEvent.patch
rename to patches/server/0823-Add-PlayerStopUsingItemEvent.patch
diff --git a/patches/server/0826-FallingBlock-auto-expire-setting.patch b/patches/server/0824-FallingBlock-auto-expire-setting.patch
similarity index 100%
rename from patches/server/0826-FallingBlock-auto-expire-setting.patch
rename to patches/server/0824-FallingBlock-auto-expire-setting.patch
diff --git a/patches/server/0827-Don-t-tick-markers.patch b/patches/server/0825-Don-t-tick-markers.patch
similarity index 97%
rename from patches/server/0827-Don-t-tick-markers.patch
rename to patches/server/0825-Don-t-tick-markers.patch
index 0e75fac529..9980fc455d 100644
--- a/patches/server/0827-Don-t-tick-markers.patch
+++ b/patches/server/0825-Don-t-tick-markers.patch
@@ -35,7 +35,7 @@ index b00c1df57789996fef58b2c649588c13df149abd..67e096207b08d2ba13ebc1b92ac94ed2
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index d0092fa0595bcf3876dec4ef58516089ac99bb26..d4da9ec6e00bb92b70598ee9a0d0ca5816562378 100644
+index 50ddcd7ee9c3ffe7549361f942df01b8ef078932..eda7f0bb42f7269676d5d2193e1155912ede9920 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -212,7 +212,8 @@ public class ActivationRange
diff --git a/patches/server/0828-Do-not-accept-invalid-client-settings.patch b/patches/server/0826-Do-not-accept-invalid-client-settings.patch
similarity index 88%
rename from patches/server/0828-Do-not-accept-invalid-client-settings.patch
rename to patches/server/0826-Do-not-accept-invalid-client-settings.patch
index a9c4ffb6dc..8b6617459b 100644
--- a/patches/server/0828-Do-not-accept-invalid-client-settings.patch
+++ b/patches/server/0826-Do-not-accept-invalid-client-settings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Do not accept invalid client settings
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0b0a839fafca6b1889adde84af9a66071df191ce..3382303303626a2a71ba7e70a1ced615a619d408 100644
+index 65b94c6e2d85637342ebfb5478189536759d8338..042dea0c808d21c97f3a26027625474c6440a372 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3450,6 +3450,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3453,6 +3453,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleClientInformation(ServerboundClientInformationPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
diff --git a/patches/server/0829-Add-support-for-Proxy-Protocol.patch b/patches/server/0827-Add-support-for-Proxy-Protocol.patch
similarity index 100%
rename from patches/server/0829-Add-support-for-Proxy-Protocol.patch
rename to patches/server/0827-Add-support-for-Proxy-Protocol.patch
diff --git a/patches/server/0830-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0828-Fix-OfflinePlayer-getBedSpawnLocation.patch
similarity index 100%
rename from patches/server/0830-Fix-OfflinePlayer-getBedSpawnLocation.patch
rename to patches/server/0828-Fix-OfflinePlayer-getBedSpawnLocation.patch
diff --git a/patches/server/0831-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0829-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
similarity index 100%
rename from patches/server/0831-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
rename to patches/server/0829-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
diff --git a/patches/server/0832-Sanitize-Sent-BlockEntity-NBT.patch b/patches/server/0830-Sanitize-Sent-BlockEntity-NBT.patch
similarity index 100%
rename from patches/server/0832-Sanitize-Sent-BlockEntity-NBT.patch
rename to patches/server/0830-Sanitize-Sent-BlockEntity-NBT.patch
diff --git a/patches/server/0833-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0831-Disable-component-selector-resolving-in-books-by-def.patch
similarity index 100%
rename from patches/server/0833-Disable-component-selector-resolving-in-books-by-def.patch
rename to patches/server/0831-Disable-component-selector-resolving-in-books-by-def.patch
diff --git a/patches/server/0834-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0832-Prevent-entity-loading-causing-async-lookups.patch
similarity index 97%
rename from patches/server/0834-Prevent-entity-loading-causing-async-lookups.patch
rename to patches/server/0832-Prevent-entity-loading-causing-async-lookups.patch
index 06d9dea85e..e2214f6079 100644
--- a/patches/server/0834-Prevent-entity-loading-causing-async-lookups.patch
+++ b/patches/server/0832-Prevent-entity-loading-causing-async-lookups.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index bdf5418b4b500a9156fe6cf399f2e052ada409db..b4f694174c6b1c8017122cfa6116f52f5ff924e3 100644
+index 58a22c5ca035ba55d2c05f53839416582532b24a..86677e14f218188660330601c872905545501e25 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -796,6 +796,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0835-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0833-Throw-exception-on-world-create-while-being-ticked.patch
similarity index 85%
rename from patches/server/0835-Throw-exception-on-world-create-while-being-ticked.patch
rename to patches/server/0833-Throw-exception-on-world-create-while-being-ticked.patch
index 12272ad6f2..d292db0d7f 100644
--- a/patches/server/0835-Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/0833-Throw-exception-on-world-create-while-being-ticked.patch
@@ -7,10 +7,10 @@ There are no plans to support creating worlds while worlds are
being ticked themselvess.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 180a476ebdf0932a84ac87f7b687b4339013e6ee..d25c532745ff543503ca681096fe764f853b34a8 100644
+index 910523399b1fae64808b292cfb45bed56719fcb3..66bb92ca535b559d3bca89b9bc841f8f842b7e07 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -312,6 +312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) {
AtomicReference atomicreference = new AtomicReference();
-@@ -1485,7 +1486,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper
-@@ -1563,6 +1566,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
diff --git a/patches/server/0843-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0841-Prevent-empty-items-from-being-added-to-world.patch
similarity index 100%
rename from patches/server/0843-Prevent-empty-items-from-being-added-to-world.patch
rename to patches/server/0841-Prevent-empty-items-from-being-added-to-world.patch
diff --git a/patches/server/0844-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0842-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
similarity index 92%
rename from patches/server/0844-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
rename to patches/server/0842-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
index ad894dbcce..73b5c96f27 100644
--- a/patches/server/0844-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
+++ b/patches/server/0842-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
@@ -7,7 +7,7 @@ Remove in 1.19 along with the SplashPotion and
LingeringPotion interfaces
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
-index 397e0df15a0e64e5bc522f62f3b327a5039ec4c8..a926f4dc51821a05c28872dc90ad000fe8cb51f7 100644
+index 2b8a4ad4bca3044f1af274cdff90e6d66b6c7da7..5c3bc680c4e4e6dc4b2d9edc666d6a8d95c2e7b7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
@@ -14,7 +14,7 @@ import org.bukkit.entity.ThrownPotion;
diff --git a/patches/server/0845-Don-t-print-component-in-resource-pack-rejection-mes.patch b/patches/server/0843-Don-t-print-component-in-resource-pack-rejection-mes.patch
similarity index 90%
rename from patches/server/0845-Don-t-print-component-in-resource-pack-rejection-mes.patch
rename to patches/server/0843-Don-t-print-component-in-resource-pack-rejection-mes.patch
index 1dadb31a04..14f42c194f 100644
--- a/patches/server/0845-Don-t-print-component-in-resource-pack-rejection-mes.patch
+++ b/patches/server/0843-Don-t-print-component-in-resource-pack-rejection-mes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't print component in resource pack rejection message
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3382303303626a2a71ba7e70a1ced615a619d408..615d27a99cb999c1d5f64ff9f768c406b81940b3 100644
+index 042dea0c808d21c97f3a26027625474c6440a372..9823e0b5b1129d22ad449acf77794c6c9975381e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2032,7 +2032,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2035,7 +2035,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) {
diff --git a/patches/server/0846-Add-Player-getFishHook.patch b/patches/server/0844-Add-Player-getFishHook.patch
similarity index 92%
rename from patches/server/0846-Add-Player-getFishHook.patch
rename to patches/server/0844-Add-Player-getFishHook.patch
index b3c5a59462..1f16e905b9 100644
--- a/patches/server/0846-Add-Player-getFishHook.patch
+++ b/patches/server/0844-Add-Player-getFishHook.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Player#getFishHook
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 589f06cc8941d5f75ffd8bbeb083b1c48f82576f..07c9a644dc24e881efcf2c6519f88db43e2d5779 100644
+index 329e0586ec4ea44b6a8f4b72a69041aa7cd01ced..35f79f34b86dbf6d592842883f53f83e07f95f93 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -161,6 +161,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
diff --git a/patches/server/0847-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0845-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
similarity index 100%
rename from patches/server/0847-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
rename to patches/server/0845-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
diff --git a/patches/server/0848-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0846-Add-various-missing-EntityDropItemEvent-calls.patch
similarity index 97%
rename from patches/server/0848-Add-various-missing-EntityDropItemEvent-calls.patch
rename to patches/server/0846-Add-various-missing-EntityDropItemEvent-calls.patch
index 29d67eb1c5..d723f0211a 100644
--- a/patches/server/0848-Add-various-missing-EntityDropItemEvent-calls.patch
+++ b/patches/server/0846-Add-various-missing-EntityDropItemEvent-calls.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b4f694174c6b1c8017122cfa6116f52f5ff924e3..2d576dd1e484641115ce73c22faad27f9e7bcc54 100644
+index 86677e14f218188660330601c872905545501e25..018afaedd306df9088f1d1b9b99655cd5ad92a91 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2677,6 +2677,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0849-Add-some-minimal-debug-information-to-chat-packet-er.patch b/patches/server/0847-Add-some-minimal-debug-information-to-chat-packet-er.patch
similarity index 90%
rename from patches/server/0849-Add-some-minimal-debug-information-to-chat-packet-er.patch
rename to patches/server/0847-Add-some-minimal-debug-information-to-chat-packet-er.patch
index 0b9dd64884..92447d0b2e 100644
--- a/patches/server/0849-Add-some-minimal-debug-information-to-chat-packet-er.patch
+++ b/patches/server/0847-Add-some-minimal-debug-information-to-chat-packet-er.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add some minimal debug information to chat packet errors
TODO: potentially add some kick leeway
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 615d27a99cb999c1d5f64ff9f768c406b81940b3..022512b42811e53a057c58bb599f4ebc1aa5fe5d 100644
+index 9823e0b5b1129d22ad449acf77794c6c9975381e..472c86d4f54d54cd5bb84d886194b3ddf7485a6e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2290,7 +2290,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2293,7 +2293,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
diff --git a/patches/server/0850-Fix-Bee-flower-NPE.patch b/patches/server/0848-Fix-Bee-flower-NPE.patch
similarity index 100%
rename from patches/server/0850-Fix-Bee-flower-NPE.patch
rename to patches/server/0848-Fix-Bee-flower-NPE.patch
diff --git a/patches/server/0851-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0849-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
similarity index 87%
rename from patches/server/0851-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
rename to patches/server/0849-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index 2ecccc51ce..011e5b929f 100644
--- a/patches/server/0851-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/0849-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 022512b42811e53a057c58bb599f4ebc1aa5fe5d..83ed0a00afdf91cf2cbdb629f6c17b6ed97f2f98 100644
+index 472c86d4f54d54cd5bb84d886194b3ddf7485a6e..a8465cf4b21d376b37e88a3f9fd8b6e4360ee775 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2537,7 +2537,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2540,7 +2540,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// Spigot end
// this.chatSpamTickCount += 20;
diff --git a/patches/server/0852-More-Teleport-API.patch b/patches/server/0850-More-Teleport-API.patch
similarity index 94%
rename from patches/server/0852-More-Teleport-API.patch
rename to patches/server/0850-More-Teleport-API.patch
index 7a284a682c..22f17c94c0 100644
--- a/patches/server/0852-More-Teleport-API.patch
+++ b/patches/server/0850-More-Teleport-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] More Teleport API
public net.minecraft.server.network.ServerGamePacketListenerImpl internalTeleport(DDDFFLjava/util/Set;Z)V
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 83ed0a00afdf91cf2cbdb629f6c17b6ed97f2f98..5ad9ffbb8344c345dd23f8362b1c24b6e3214763 100644
+index a8465cf4b21d376b37e88a3f9fd8b6e4360ee775..94c1c276998b76744122f98c18f65a4e8cbccf4d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1708,11 +1708,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1711,11 +1711,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return false; // CraftBukkit - Return event status
}
@@ -31,7 +31,7 @@ index 83ed0a00afdf91cf2cbdb629f6c17b6ed97f2f98..5ad9ffbb8344c345dd23f8362b1c24b6
d0 = to.getX();
d1 = to.getY();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 8317d5100d16fb242e4ff9f7b965e1dbd147cede..14b97388b89978b1c0997beeebd7c85102c84a2f 100644
+index cc72d960d9a5f9481ec2214b1549a344907a68da..94b41e9e3abe9cfbe09af67b03bc841fc009b75c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -561,15 +561,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -74,10 +74,10 @@ index 8317d5100d16fb242e4ff9f7b965e1dbd147cede..14b97388b89978b1c0997beeebd7c851
// Let the server handle cross world teleports
if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d12a2dc82c 100644
+index c949a3581581aa34a678d942fe38e660ba389eef..607c5797ee9d4c62ff5fbf1613d2ac08ec57d067 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1233,13 +1233,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1187,13 +1187,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setRotation(float yaw, float pitch) {
@@ -180,7 +180,7 @@ index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d1
location.checkFinite();
ServerPlayer entity = this.getHandle();
-@@ -1252,7 +1340,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1206,7 +1294,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return false;
}
@@ -189,7 +189,7 @@ index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d1
return false;
}
-@@ -1270,7 +1358,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1224,7 +1312,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// If this player is riding another entity, we must dismount before teleporting.
@@ -198,7 +198,7 @@ index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d1
// SPIGOT-5509: Wakeup, similar to riding
if (this.isSleeping()) {
-@@ -1286,13 +1374,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1240,13 +1328,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
ServerLevel toWorld = ((CraftWorld) to.getWorld()).getHandle();
// Close any foreign inventory
diff --git a/patches/server/0853-Add-EntityPortalReadyEvent.patch b/patches/server/0851-Add-EntityPortalReadyEvent.patch
similarity index 95%
rename from patches/server/0853-Add-EntityPortalReadyEvent.patch
rename to patches/server/0851-Add-EntityPortalReadyEvent.patch
index 8e0b2d6643..c775c2df51 100644
--- a/patches/server/0853-Add-EntityPortalReadyEvent.patch
+++ b/patches/server/0851-Add-EntityPortalReadyEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2d576dd1e484641115ce73c22faad27f9e7bcc54..b5751d0cfae442b1030b771e4a3afc42e566d76d 100644
+index 018afaedd306df9088f1d1b9b99655cd5ad92a91..3d95a435a9f6e28c43f275781db909bf9e71397b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3033,6 +3033,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0854-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0852-Don-t-use-level-random-in-entity-constructors.patch
similarity index 100%
rename from patches/server/0854-Don-t-use-level-random-in-entity-constructors.patch
rename to patches/server/0852-Don-t-use-level-random-in-entity-constructors.patch
diff --git a/patches/server/0855-Send-block-entities-after-destroy-prediction.patch b/patches/server/0853-Send-block-entities-after-destroy-prediction.patch
similarity index 97%
rename from patches/server/0855-Send-block-entities-after-destroy-prediction.patch
rename to patches/server/0853-Send-block-entities-after-destroy-prediction.patch
index 20e86fee03..10bf2d17e5 100644
--- a/patches/server/0855-Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/0853-Send-block-entities-after-destroy-prediction.patch
@@ -57,10 +57,10 @@ index a88d9c733a647d4b3ad9e079b289f2979d092b07..257fa5207b889f882b77885d375564a8
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5ad9ffbb8344c345dd23f8362b1c24b6e3214763..528b3365ae8536d621c7f8d0c20b754b4179dee7 100644
+index 94c1c276998b76744122f98c18f65a4e8cbccf4d..35ef7487060f81fb106a6a882006edf03023fd01 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1854,8 +1854,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1857,8 +1857,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return;
}
// Paper end - Don't allow digging in unloaded chunks
diff --git a/patches/server/0856-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0854-Warn-on-plugins-accessing-faraway-chunks.patch
similarity index 89%
rename from patches/server/0856-Warn-on-plugins-accessing-faraway-chunks.patch
rename to patches/server/0854-Warn-on-plugins-accessing-faraway-chunks.patch
index fdbf36a54d..90275821d3 100644
--- a/patches/server/0856-Warn-on-plugins-accessing-faraway-chunks.patch
+++ b/patches/server/0854-Warn-on-plugins-accessing-faraway-chunks.patch
@@ -18,10 +18,10 @@ index 8107c8e4a994523c75252f7762e362ab6eb13e43..b3f4469c137d221bf5f43565800df59c
private static boolean isOutsideSpawnableHeight(int y) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fdf527f095 100644
+index 5deed29e78ba599c4732b9bac57f0661e4871882..1a481fb4f4228f0fea8a7dc6132248c98b727c90 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -311,9 +311,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -310,9 +310,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean setSpawnLocation(int x, int y, int z) {
return this.setSpawnLocation(x, y, z, 0.0F);
}
@@ -46,7 +46,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Paper start - add ticket to hold chunk for a little while longer if plugin accesses it
net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkSource().getChunkAtIfLoadedImmediately(x, z);
if (chunk == null) {
-@@ -428,6 +443,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -427,6 +442,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean regenerateChunk(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot
@@ -54,7 +54,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Paper start - implement regenerateChunk method
final ServerLevel serverLevel = this.world;
final net.minecraft.server.level.ServerChunkCache serverChunkCache = serverLevel.getChunkSource();
-@@ -523,6 +539,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -522,6 +538,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
@@ -62,7 +62,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Paper start - Optimize this method
ChunkPos chunkPos = new ChunkPos(x, z);
ChunkAccess immediate = world.getChunkSource().getChunkAtIfLoadedImmediately(x, z); // Paper
-@@ -586,6 +603,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -585,6 +602,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean addPluginChunkTicket(int x, int z, Plugin plugin) {
@@ -70,7 +70,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
Preconditions.checkArgument(plugin != null, "null plugin");
Preconditions.checkArgument(plugin.isEnabled(), "plugin is not enabled");
-@@ -654,6 +672,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -653,6 +671,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setChunkForceLoaded(int x, int z, boolean forced) {
@@ -78,7 +78,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
this.getHandle().setChunkForced(x, z, forced);
}
-@@ -960,6 +979,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -965,6 +984,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) {
@@ -86,7 +86,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Transient load for this tick
return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z);
}
-@@ -2369,6 +2389,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2376,6 +2396,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Spigot end
// Paper start
public java.util.concurrent.CompletableFuture getChunkAtAsync(int x, int z, boolean gen, boolean urgent) {
diff --git a/patches/server/0857-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0855-Custom-Chat-Completion-Suggestions-API.patch
similarity index 90%
rename from patches/server/0857-Custom-Chat-Completion-Suggestions-API.patch
rename to patches/server/0855-Custom-Chat-Completion-Suggestions-API.patch
index ce000ef24f..ec2faa8426 100644
--- a/patches/server/0857-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/server/0855-Custom-Chat-Completion-Suggestions-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 752d701d6e947e9ed446c8679ce6d8d12a2dc82c..27b8dffd5ba6bae22a8a12544d65a00f43394765 100644
+index 607c5797ee9d4c62ff5fbf1613d2ac08ec57d067..b52159c9adf1f502cb357e920da3128ab3592861 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -642,6 +642,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -639,6 +639,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().getServer().getPlayerList().sendPlayerPermissionLevel(this.getHandle(), level, false);
}
diff --git a/patches/server/0858-Add-missing-BlockFadeEvents.patch b/patches/server/0856-Add-missing-BlockFadeEvents.patch
similarity index 100%
rename from patches/server/0858-Add-missing-BlockFadeEvents.patch
rename to patches/server/0856-Add-missing-BlockFadeEvents.patch
diff --git a/patches/server/0859-Collision-API.patch b/patches/server/0857-Collision-API.patch
similarity index 88%
rename from patches/server/0859-Collision-API.patch
rename to patches/server/0857-Collision-API.patch
index 38fea82179..19339f84ba 100644
--- a/patches/server/0859-Collision-API.patch
+++ b/patches/server/0857-Collision-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Collision API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5bab5c75a2ce945b43434d2240c9d1124a20aee2..94f21c6acaee5a632b6adb4e77488bb2e385fbea 100644
+index 61bc6a68fe1b0101f70b065710d941b36f8766a8..086cbbfb492413bf1ae901c46f8e8ebbadd68b21 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -1019,5 +1019,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -1015,5 +1015,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
return this.getHandle().clip(new net.minecraft.world.level.ClipContext(vec3d, vec3d1, net.minecraft.world.level.ClipContext.Block.COLLIDER, net.minecraft.world.level.ClipContext.Fluid.NONE, null)).getType() == net.minecraft.world.phys.HitResult.Type.MISS;
}
@@ -22,10 +22,10 @@ index 5bab5c75a2ce945b43434d2240c9d1124a20aee2..94f21c6acaee5a632b6adb4e77488bb2
// 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 14b97388b89978b1c0997beeebd7c85102c84a2f..e05c3c15d15c242e07caa9033cc49d515dfcdb41 100644
+index 94b41e9e3abe9cfbe09af67b03bc841fc009b75c..f7c879cf10f89eaeb41a0f40787bd2c98d8d3f31 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1415,4 +1415,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1408,4 +1408,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed.
}
// Paper end
diff --git a/patches/server/0860-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0858-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
similarity index 100%
rename from patches/server/0860-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
rename to patches/server/0858-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
diff --git a/patches/server/0861-Remove-invalid-signature-login-stacktrace.patch b/patches/server/0859-Remove-invalid-signature-login-stacktrace.patch
similarity index 88%
rename from patches/server/0861-Remove-invalid-signature-login-stacktrace.patch
rename to patches/server/0859-Remove-invalid-signature-login-stacktrace.patch
index 8ef46fe393..53aeb3bcef 100644
--- a/patches/server/0861-Remove-invalid-signature-login-stacktrace.patch
+++ b/patches/server/0859-Remove-invalid-signature-login-stacktrace.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Remove invalid signature login stacktrace
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 528b3365ae8536d621c7f8d0c20b754b4179dee7..b46c46fcde19aff16321876bf50b6725233bb09a 100644
+index 35ef7487060f81fb106a6a882006edf03023fd01..14488a4cdc3fc8edf3abb3d57ffdcc4880f987ee 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3585,7 +3585,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3588,7 +3588,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator, Duration.ZERO));
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
diff --git a/patches/server/0862-Block-Ticking-API.patch b/patches/server/0860-Block-Ticking-API.patch
similarity index 92%
rename from patches/server/0862-Block-Ticking-API.patch
rename to patches/server/0860-Block-Ticking-API.patch
index a6c8ba9019..be02ac2613 100644
--- a/patches/server/0862-Block-Ticking-API.patch
+++ b/patches/server/0860-Block-Ticking-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Block Ticking API
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index e0c2ad107847227987080491e94b264930fc80e2..01b401f7d691ef451266bbc3a94980d613b96f21 100644
+index c04397cc60154ef55027c90be990b9dfb818fd2f..5401ab9f8f6ce12e1c5368dbc3acc78a250b3822 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -758,5 +758,21 @@ public class CraftBlock implements Block {
+@@ -756,5 +756,21 @@ public class CraftBlock implements Block {
public boolean isValidTool(ItemStack itemStack) {
return getDrops(itemStack).size() != 0;
}
diff --git a/patches/server/0863-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0861-Add-Velocity-IP-Forwarding-Support.patch
similarity index 99%
rename from patches/server/0863-Add-Velocity-IP-Forwarding-Support.patch
rename to patches/server/0861-Add-Velocity-IP-Forwarding-Support.patch
index c1abeeeac8..091bb3c90f 100644
--- a/patches/server/0863-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0861-Add-Velocity-IP-Forwarding-Support.patch
@@ -213,7 +213,7 @@ index 3fcd7bfdb8945b276c94a263e9da6b85ce470366..3431b1132e55c53cda7cf47f021f2306
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index b6e676be787d477c2fe78a0c84a02ae0050f257f..ffa27c9c02dc4d12411fc089de3af8e8e12ba06e 100644
+index 70e77e0e165140e761193d9255cfe3bfcb710979..9f8c5ceb8485b14a84f2a7b2ffc8192be5c6bdfd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -797,7 +797,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0864-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch b/patches/server/0862-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch
similarity index 100%
rename from patches/server/0864-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch
rename to patches/server/0862-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch
diff --git a/patches/server/0865-Add-NamespacedKey-biome-methods.patch b/patches/server/0863-Add-NamespacedKey-biome-methods.patch
similarity index 92%
rename from patches/server/0865-Add-NamespacedKey-biome-methods.patch
rename to patches/server/0863-Add-NamespacedKey-biome-methods.patch
index 4f53bd9282..c342bdded1 100644
--- a/patches/server/0865-Add-NamespacedKey-biome-methods.patch
+++ b/patches/server/0863-Add-NamespacedKey-biome-methods.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add NamespacedKey biome methods
Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com>
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index a6564c7d69999c55abc4292cab9182390a52e749..b059bb46b649cbf82debdb8d58fe4ba77d040276 100644
+index 8f185a0b1a9037c1458b3ce41347e2c733e4d4de..8092db9de43ca4824374e1a76c85f71929521f6d 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -611,6 +611,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -609,6 +609,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
Preconditions.checkArgument(material.isBlock(), material + " is not a block");
return getBlock(material).hasCollision;
}
diff --git a/patches/server/0866-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0864-Fix-plugin-loggers-on-server-shutdown.patch
similarity index 92%
rename from patches/server/0866-Fix-plugin-loggers-on-server-shutdown.patch
rename to patches/server/0864-Fix-plugin-loggers-on-server-shutdown.patch
index 2e7f0573af..af3d178c6b 100644
--- a/patches/server/0866-Fix-plugin-loggers-on-server-shutdown.patch
+++ b/patches/server/0864-Fix-plugin-loggers-on-server-shutdown.patch
@@ -37,10 +37,10 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index d25c532745ff543503ca681096fe764f853b34a8..aa0dcb02aaec2caa016397e7f5cc859a22ca4b6d 100644
+index 66bb92ca535b559d3bca89b9bc841f8f842b7e07..c5f3dc74888919e82e2ffbb8d648b7640aa6b690 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1000,6 +1000,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop T launchProjectile(Class extends T> projectile, Vector velocity, org.bukkit.util.Consumer function) {
+ // Paper end - launchProjectile consumer
- Validate.isTrue(this.getBlock().getType() == Material.DISPENSER, "Block is no longer dispenser");
+ Preconditions.checkArgument(this.getBlock().getType() == Material.DISPENSER, "Block is no longer dispenser");
// Copied from BlockDispenser.dispense()
BlockSourceImpl isourceblock = new BlockSourceImpl((ServerLevel) this.dispenserBlock.getLevel(), this.dispenserBlock.getBlockPos());
@@ -147,6 +154,11 @@ public class CraftBlockProjectileSource implements BlockProjectileSource {
diff --git a/patches/server/0873-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0871-Call-BlockPhysicsEvent-more-often.patch
similarity index 100%
rename from patches/server/0873-Call-BlockPhysicsEvent-more-often.patch
rename to patches/server/0871-Call-BlockPhysicsEvent-more-often.patch
diff --git a/patches/server/0874-Configurable-chat-thread-limit.patch b/patches/server/0872-Configurable-chat-thread-limit.patch
similarity index 100%
rename from patches/server/0874-Configurable-chat-thread-limit.patch
rename to patches/server/0872-Configurable-chat-thread-limit.patch
diff --git a/patches/server/0875-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0873-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
similarity index 100%
rename from patches/server/0875-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
rename to patches/server/0873-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
diff --git a/patches/server/0876-fix-Jigsaw-block-kicking-user.patch b/patches/server/0874-fix-Jigsaw-block-kicking-user.patch
similarity index 100%
rename from patches/server/0876-fix-Jigsaw-block-kicking-user.patch
rename to patches/server/0874-fix-Jigsaw-block-kicking-user.patch
diff --git a/patches/server/0877-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0875-use-BlockFormEvent-for-mud-converting-into-clay.patch
similarity index 100%
rename from patches/server/0877-use-BlockFormEvent-for-mud-converting-into-clay.patch
rename to patches/server/0875-use-BlockFormEvent-for-mud-converting-into-clay.patch
diff --git a/patches/server/0878-Add-getDrops-to-BlockState.patch b/patches/server/0876-Add-getDrops-to-BlockState.patch
similarity index 92%
rename from patches/server/0878-Add-getDrops-to-BlockState.patch
rename to patches/server/0876-Add-getDrops-to-BlockState.patch
index 2984a969f8..7f9d14aad9 100644
--- a/patches/server/0878-Add-getDrops-to-BlockState.patch
+++ b/patches/server/0876-Add-getDrops-to-BlockState.patch
@@ -7,10 +7,10 @@ Originally added isPreferredTool to BlockData but
upstream added that.
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-index 3e1d36a8c65e6567ac3b78903a25d5828ab74ea5..577a352dab0f8a71558cb6dedce788e78053ef52 100644
+index 792bfc7eab33b26462e76a1912bd712e8af70073..b1abb332eca597b23888bca42d21d5b587f61b13 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-@@ -331,5 +331,33 @@ public class CraftBlockState implements BlockState {
+@@ -323,5 +323,33 @@ public class CraftBlockState implements BlockState {
public boolean isCollidable() {
return this.data.getBlock().hasCollision;
}
diff --git a/patches/server/0879-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0877-Fix-a-bunch-of-vanilla-bugs.patch
similarity index 100%
rename from patches/server/0879-Fix-a-bunch-of-vanilla-bugs.patch
rename to patches/server/0877-Fix-a-bunch-of-vanilla-bugs.patch
diff --git a/patches/server/0880-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0878-Remove-unnecessary-onTrackingStart-during-navigation.patch
similarity index 100%
rename from patches/server/0880-Remove-unnecessary-onTrackingStart-during-navigation.patch
rename to patches/server/0878-Remove-unnecessary-onTrackingStart-during-navigation.patch
diff --git a/patches/server/0881-Fix-custom-piglin-loved-items.patch b/patches/server/0879-Fix-custom-piglin-loved-items.patch
similarity index 100%
rename from patches/server/0881-Fix-custom-piglin-loved-items.patch
rename to patches/server/0879-Fix-custom-piglin-loved-items.patch
diff --git a/patches/server/0882-EntityPickupItemEvent-fixes.patch b/patches/server/0880-EntityPickupItemEvent-fixes.patch
similarity index 100%
rename from patches/server/0882-EntityPickupItemEvent-fixes.patch
rename to patches/server/0880-EntityPickupItemEvent-fixes.patch
diff --git a/patches/server/0883-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0881-Correctly-handle-interactions-with-items-on-cooldown.patch
similarity index 97%
rename from patches/server/0883-Correctly-handle-interactions-with-items-on-cooldown.patch
rename to patches/server/0881-Correctly-handle-interactions-with-items-on-cooldown.patch
index cf990e4602..9243e65aeb 100644
--- a/patches/server/0883-Correctly-handle-interactions-with-items-on-cooldown.patch
+++ b/patches/server/0881-Correctly-handle-interactions-with-items-on-cooldown.patch
@@ -30,7 +30,7 @@ index 92340937194a985999a85c5d387f4d73e8354d24..1635fee928d64f4d2c336dca6675ed46
this.interactResult = event.useItemInHand() == Event.Result.DENY;
this.interactPosition = blockposition.immutable();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 20e1efcadd4a11bab8a0db48410229e4a4d5ce57..86b0fe7b6feeef0e085e577954f869e020cc0f04 100644
+index 94796cbe43546748b28aa921d22cb4b68ef23fa6..22ebf307641f9aa7231df8607bb859785be60f7a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -517,6 +517,12 @@ public class CraftEventFactory {
diff --git a/patches/server/0884-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0882-Add-PlayerInventorySlotChangeEvent.patch
similarity index 97%
rename from patches/server/0884-Add-PlayerInventorySlotChangeEvent.patch
rename to patches/server/0882-Add-PlayerInventorySlotChangeEvent.patch
index 2ae4584d34..70dd42cf1b 100644
--- a/patches/server/0884-Add-PlayerInventorySlotChangeEvent.patch
+++ b/patches/server/0882-Add-PlayerInventorySlotChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index bde2f86029bced34358517ef65515c6cddbc02eb..53d4b897e5b1616133d35fd0df2e4624b76990ad 100644
+index 48cd206a41fe238af4c53b7f2a664fb16da366a5..88726c9bfd6dee2110910f43a042a9b29717dc82 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -371,6 +371,25 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0885-Elder-Guardian-appearance-API.patch b/patches/server/0883-Elder-Guardian-appearance-API.patch
similarity index 84%
rename from patches/server/0885-Elder-Guardian-appearance-API.patch
rename to patches/server/0883-Elder-Guardian-appearance-API.patch
index a39f8d2f49..01ee803298 100644
--- a/patches/server/0885-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0883-Elder-Guardian-appearance-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a718f3c53fe1ee0550512e86ee5fab7c9594f416..ec6b296989e9436c13cf43d9a341dc89c3320389 100644
+index b52159c9adf1f502cb357e920da3128ab3592861..16f7ec3dc9ce1ba14205d3ddd2062aaeea7b67e9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3129,6 +3129,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3067,6 +3067,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0886-Allow-changing-bed-s-occupied-property.patch b/patches/server/0884-Allow-changing-bed-s-occupied-property.patch
similarity index 100%
rename from patches/server/0886-Allow-changing-bed-s-occupied-property.patch
rename to patches/server/0884-Allow-changing-bed-s-occupied-property.patch
diff --git a/patches/server/0887-Add-entity-knockback-API.patch b/patches/server/0885-Add-entity-knockback-API.patch
similarity index 85%
rename from patches/server/0887-Add-entity-knockback-API.patch
rename to patches/server/0885-Add-entity-knockback-API.patch
index 8fb1163c50..3c5152fdf6 100644
--- a/patches/server/0887-Add-entity-knockback-API.patch
+++ b/patches/server/0885-Add-entity-knockback-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index d15a252285e10ce062319b0f1051f59ba46701a0..351869735644c984090e1ac571b5ff118ecae9bc 100644
+index 4cf07ff38df050defceb69335e402ca52972a05f..a4d2f2a296e93dd786abf81439eb759c49029850 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -995,5 +995,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -989,5 +989,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category");
}
diff --git a/patches/server/0888-Detect-headless-JREs.patch b/patches/server/0886-Detect-headless-JREs.patch
similarity index 100%
rename from patches/server/0888-Detect-headless-JREs.patch
rename to patches/server/0886-Detect-headless-JREs.patch
diff --git a/patches/server/0889-fixed-entity-vehicle-collision-event-not-called.patch b/patches/server/0887-fixed-entity-vehicle-collision-event-not-called.patch
similarity index 100%
rename from patches/server/0889-fixed-entity-vehicle-collision-event-not-called.patch
rename to patches/server/0887-fixed-entity-vehicle-collision-event-not-called.patch
diff --git a/patches/server/0890-optimized-dirt-and-snow-spreading.patch b/patches/server/0888-optimized-dirt-and-snow-spreading.patch
similarity index 100%
rename from patches/server/0890-optimized-dirt-and-snow-spreading.patch
rename to patches/server/0888-optimized-dirt-and-snow-spreading.patch
diff --git a/patches/server/0891-Added-EntityToggleSitEvent.patch b/patches/server/0889-Added-EntityToggleSitEvent.patch
similarity index 100%
rename from patches/server/0891-Added-EntityToggleSitEvent.patch
rename to patches/server/0889-Added-EntityToggleSitEvent.patch
diff --git a/patches/server/0892-Add-fire-tick-delay-option.patch b/patches/server/0890-Add-fire-tick-delay-option.patch
similarity index 100%
rename from patches/server/0892-Add-fire-tick-delay-option.patch
rename to patches/server/0890-Add-fire-tick-delay-option.patch
diff --git a/patches/server/0893-Add-Moving-Piston-API.patch b/patches/server/0891-Add-Moving-Piston-API.patch
similarity index 100%
rename from patches/server/0893-Add-Moving-Piston-API.patch
rename to patches/server/0891-Add-Moving-Piston-API.patch
diff --git a/patches/server/0894-Ignore-impossible-spawn-tick.patch b/patches/server/0892-Ignore-impossible-spawn-tick.patch
similarity index 90%
rename from patches/server/0894-Ignore-impossible-spawn-tick.patch
rename to patches/server/0892-Ignore-impossible-spawn-tick.patch
index a5ecb9692b..46cd469266 100644
--- a/patches/server/0894-Ignore-impossible-spawn-tick.patch
+++ b/patches/server/0892-Ignore-impossible-spawn-tick.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ignore impossible spawn tick
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index c63d5df91726839471c1eaaf7fafab3fa1be153b..8fdbc603486ff8a902b6327bc2acfb86a806626e 100644
+index ae2b95f53e875716489821dc9b0a3a35039bfcc9..633500aefd515df5dadda3802b94079f75a03fa0 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
@@ -80,6 +80,7 @@ public abstract class BaseSpawner {
diff --git a/patches/server/0895-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0893-Track-projectile-source-for-fireworks-from-dispenser.patch
similarity index 100%
rename from patches/server/0895-Track-projectile-source-for-fireworks-from-dispenser.patch
rename to patches/server/0893-Track-projectile-source-for-fireworks-from-dispenser.patch
diff --git a/patches/server/0896-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0894-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
similarity index 100%
rename from patches/server/0896-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
rename to patches/server/0894-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
diff --git a/patches/server/0897-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0895-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
similarity index 95%
rename from patches/server/0897-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
rename to patches/server/0895-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
index 2aed8d8bb3..ba347aa9a8 100644
--- a/patches/server/0897-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
+++ b/patches/server/0895-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b5751d0cfae442b1030b771e4a3afc42e566d76d..b0744d9b0fce0b4d01c728034e275d430d7933de 100644
+index 3d95a435a9f6e28c43f275781db909bf9e71397b..e967413613bc247176c5af380162ba25fa821377 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3308,6 +3308,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0898-Prevent-compass-from-loading-chunks.patch b/patches/server/0896-Prevent-compass-from-loading-chunks.patch
similarity index 100%
rename from patches/server/0898-Prevent-compass-from-loading-chunks.patch
rename to patches/server/0896-Prevent-compass-from-loading-chunks.patch
diff --git a/patches/server/0899-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0897-Add-PrePlayerAttackEntityEvent.patch
similarity index 100%
rename from patches/server/0899-Add-PrePlayerAttackEntityEvent.patch
rename to patches/server/0897-Add-PrePlayerAttackEntityEvent.patch
diff --git a/patches/server/0900-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0898-ensure-reset-EnderDragon-boss-event-name.patch
similarity index 100%
rename from patches/server/0900-ensure-reset-EnderDragon-boss-event-name.patch
rename to patches/server/0898-ensure-reset-EnderDragon-boss-event-name.patch
diff --git a/patches/server/0901-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0899-fix-MC-252817-green-map-markers-do-not-disappear.patch
similarity index 100%
rename from patches/server/0901-fix-MC-252817-green-map-markers-do-not-disappear.patch
rename to patches/server/0899-fix-MC-252817-green-map-markers-do-not-disappear.patch
diff --git a/patches/server/0902-Add-Player-Warden-Warning-API.patch b/patches/server/0900-Add-Player-Warden-Warning-API.patch
similarity index 93%
rename from patches/server/0902-Add-Player-Warden-Warning-API.patch
rename to patches/server/0900-Add-Player-Warden-Warning-API.patch
index c034e86f87..1919053665 100644
--- a/patches/server/0902-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0900-Add-Player-Warden-Warning-API.patch
@@ -10,10 +10,10 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ec6b296989e9436c13cf43d9a341dc89c3320389..bab8770ae6b62b334055e03007883d64a3831891 100644
+index 16f7ec3dc9ce1ba14205d3ddd2062aaeea7b67e9..cb1811f7283f5d41dda771998f029058c9417729 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3134,6 +3134,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3072,6 +3072,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void showElderGuardian(boolean silent) {
if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F));
}
diff --git a/patches/server/0903-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0901-More-vanilla-friendly-methods-to-update-trades.patch
similarity index 94%
rename from patches/server/0903-More-vanilla-friendly-methods-to-update-trades.patch
rename to patches/server/0901-More-vanilla-friendly-methods-to-update-trades.patch
index 54dfe176f7..18bc407bfb 100644
--- a/patches/server/0903-More-vanilla-friendly-methods-to-update-trades.patch
+++ b/patches/server/0901-More-vanilla-friendly-methods-to-update-trades.patch
@@ -35,10 +35,10 @@ index 4bef7abbed6b64c2f126c81af5484eff200e620f..e30d5ae3e2900f43d7cafde71b8196f2
public void gossip(ServerLevel world, Villager villager, long time) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index e6fcdbabde66f4707627fc8c3012aa20de8e34e3..e986767316a717bdbdff7a9ccaaeba068ab2a6d8 100644
+index 6f7977b492ce01e7cda7872c42bd7f2386d3e745..f21c715ea109164efa755cddb35ef656a9859759 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -100,6 +100,34 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+@@ -99,6 +99,34 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
}
// Paper start
diff --git a/patches/server/0904-Add-paper-dumplisteners-command.patch b/patches/server/0902-Add-paper-dumplisteners-command.patch
similarity index 100%
rename from patches/server/0904-Add-paper-dumplisteners-command.patch
rename to patches/server/0902-Add-paper-dumplisteners-command.patch
diff --git a/patches/server/0905-check-global-player-list-where-appropriate.patch b/patches/server/0903-check-global-player-list-where-appropriate.patch
similarity index 100%
rename from patches/server/0905-check-global-player-list-where-appropriate.patch
rename to patches/server/0903-check-global-player-list-where-appropriate.patch
diff --git a/patches/server/0906-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0904-Fix-async-entity-add-due-to-fungus-trees.patch
similarity index 95%
rename from patches/server/0906-Fix-async-entity-add-due-to-fungus-trees.patch
rename to patches/server/0904-Fix-async-entity-add-due-to-fungus-trees.patch
index fab31f58d5..fdb8bd16d3 100644
--- a/patches/server/0906-Fix-async-entity-add-due-to-fungus-trees.patch
+++ b/patches/server/0904-Fix-async-entity-add-due-to-fungus-trees.patch
@@ -17,7 +17,7 @@ index 52fd12c474c01f3b53d0f6596b7a6fafee52bd0d..877498729c66de9aa6a27c9148f7494d
BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 94f21c6acaee5a632b6adb4e77488bb2e385fbea..cf6e22889437aa18fed66dc6a1b8394e6f21dcbc 100644
+index 086cbbfb492413bf1ae901c46f8e8ebbadd68b21..23d77e6cc55c06d9c2cfb21421cd19c487dbe765 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
@@ -401,10 +401,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
diff --git a/patches/server/0907-ItemStack-damage-API.patch b/patches/server/0905-ItemStack-damage-API.patch
similarity index 95%
rename from patches/server/0907-ItemStack-damage-API.patch
rename to patches/server/0905-ItemStack-damage-API.patch
index 3d5c08cf7b..9c9e244de1 100644
--- a/patches/server/0907-ItemStack-damage-API.patch
+++ b/patches/server/0905-ItemStack-damage-API.patch
@@ -11,10 +11,10 @@ the logic associated with damaging them
public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 351869735644c984090e1ac571b5ff118ecae9bc..56b55e9217c514fbdf44a7e2f44769ff4e8ccee1 100644
+index a4d2f2a296e93dd786abf81439eb759c49029850..7db6e0f8260f748669b1d98160bc47b979ade0f7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -996,6 +996,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -990,6 +990,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category");
}
diff --git a/patches/server/0908-Friction-API.patch b/patches/server/0906-Friction-API.patch
similarity index 97%
rename from patches/server/0908-Friction-API.patch
rename to patches/server/0906-Friction-API.patch
index c9cd1ef7ef..b137b79138 100644
--- a/patches/server/0908-Friction-API.patch
+++ b/patches/server/0906-Friction-API.patch
@@ -132,10 +132,10 @@ index e9946edf568db010e4ccb9fe7755709ed7b8310f..a925b5c490e7129b27370aa57b5fad1c
public int getHealth() {
return item.health;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 56b55e9217c514fbdf44a7e2f44769ff4e8ccee1..2d5f407b6979f39e5b611f37578d681a49eaea03 100644
+index 7db6e0f8260f748669b1d98160bc47b979ade0f7..40c80ba7fa6e0505c23e643acbc87fd03b69e208 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -1043,6 +1043,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -1037,6 +1037,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
});
}
diff --git a/patches/server/0909-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0907-Ability-to-control-player-s-insomnia-and-phantoms.patch
similarity index 100%
rename from patches/server/0909-Ability-to-control-player-s-insomnia-and-phantoms.patch
rename to patches/server/0907-Ability-to-control-player-s-insomnia-and-phantoms.patch
diff --git a/patches/server/0910-Fix-player-kick-on-shutdown.patch b/patches/server/0908-Fix-player-kick-on-shutdown.patch
similarity index 100%
rename from patches/server/0910-Fix-player-kick-on-shutdown.patch
rename to patches/server/0908-Fix-player-kick-on-shutdown.patch
diff --git a/patches/server/0911-Sync-offhand-slot-in-menus.patch b/patches/server/0909-Sync-offhand-slot-in-menus.patch
similarity index 97%
rename from patches/server/0911-Sync-offhand-slot-in-menus.patch
rename to patches/server/0909-Sync-offhand-slot-in-menus.patch
index d58c97aaa6..66e1fc2fc7 100644
--- a/patches/server/0911-Sync-offhand-slot-in-menus.patch
+++ b/patches/server/0909-Sync-offhand-slot-in-menus.patch
@@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th
by pressing the offhand swap item
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 53d4b897e5b1616133d35fd0df2e4624b76990ad..5fad40fa88f697108e42461c41012d5964ed7d75 100644
+index 88726c9bfd6dee2110910f43a042a9b29717dc82..9d46536f80b5b3e6641fd377c02166a431edfd77 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -340,6 +340,13 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0912-Player-Entity-Tracking-Events.patch b/patches/server/0910-Player-Entity-Tracking-Events.patch
similarity index 94%
rename from patches/server/0912-Player-Entity-Tracking-Events.patch
rename to patches/server/0910-Player-Entity-Tracking-Events.patch
index 15dee0455c..0fdc102ca9 100644
--- a/patches/server/0912-Player-Entity-Tracking-Events.patch
+++ b/patches/server/0910-Player-Entity-Tracking-Events.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player Entity Tracking Events
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b0744d9b0fce0b4d01c728034e275d430d7933de..a36c5ce78efc98e5bd53db4b5509c58a06aa3de1 100644
+index e967413613bc247176c5af380162ba25fa821377..44495b2bbbc9cb8c5086475f403ef20e88101536 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4030,9 +4030,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0913-Limit-pet-look-distance.patch b/patches/server/0911-Limit-pet-look-distance.patch
similarity index 100%
rename from patches/server/0913-Limit-pet-look-distance.patch
rename to patches/server/0911-Limit-pet-look-distance.patch
diff --git a/patches/server/0914-Properly-resend-entities.patch b/patches/server/0912-Properly-resend-entities.patch
similarity index 96%
rename from patches/server/0914-Properly-resend-entities.patch
rename to patches/server/0912-Properly-resend-entities.patch
index 0baf83a9a0..c5f9768645 100644
--- a/patches/server/0914-Properly-resend-entities.patch
+++ b/patches/server/0912-Properly-resend-entities.patch
@@ -66,10 +66,10 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..bf6a70a69bb695ec1a202cd1e863c468
public static class DataItem {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b46c46fcde19aff16321876bf50b6725233bb09a..5654777aa3ed772cd5e37c1c630c68a83194f6bb 100644
+index 14488a4cdc3fc8edf3abb3d57ffdcc4880f987ee..0d998395b65be269c2b5b58acd1b2b46408f8f8e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2796,7 +2796,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2799,7 +2799,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
@@ -79,7 +79,7 @@ index b46c46fcde19aff16321876bf50b6725233bb09a..5654777aa3ed772cd5e37c1c630c68a8
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 57e63c91051c5885103ba55466dacdb449cd5316..a977d729c487c6efb4863ea00adbc4d947f7c5ea 100644
+index 815eb218b6612b13c6deff636509bad35eeace62..490f2d6f7a43d0a5915a80960c1c7c48b3eea19f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -371,7 +371,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0915-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0913-Fixes-and-additions-to-the-SpawnReason-API.patch
similarity index 100%
rename from patches/server/0915-Fixes-and-additions-to-the-SpawnReason-API.patch
rename to patches/server/0913-Fixes-and-additions-to-the-SpawnReason-API.patch
diff --git a/patches/server/0914-fix-Instruments.patch b/patches/server/0914-fix-Instruments.patch
new file mode 100644
index 0000000000..3bf10bb4b8
--- /dev/null
+++ b/patches/server/0914-fix-Instruments.patch
@@ -0,0 +1,53 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic
+Date: Fri, 9 Dec 2022 01:47:23 -0800
+Subject: [PATCH] fix Instruments
+
+properly handle Player#playNote
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+index cb1811f7283f5d41dda771998f029058c9417729..5d93b34e49891a3f93c0d83307ba14f196e72cc6 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -713,29 +713,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+
+ if (this.getHandle().connection == null) return;
+
+- String instrumentName = switch (instrument.ordinal()) {
+- case 0 -> "harp";
+- case 1 -> "basedrum";
+- case 2 -> "snare";
+- case 3 -> "hat";
+- case 4 -> "bass";
+- case 5 -> "flute";
+- case 6 -> "bell";
+- case 7 -> "guitar";
+- case 8 -> "chime";
+- case 9 -> "xylophone";
+- case 10 -> "iron_xylophone";
+- case 11 -> "cow_bell";
+- case 12 -> "didgeridoo";
+- case 13 -> "bit";
+- case 14 -> "banjo";
+- case 15 -> "pling";
+- case 16 -> "xylophone";
+- default -> null;
+- };
+-
+- float f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
+- this.getHandle().connection.send(new ClientboundSoundPacket(BuiltInRegistries.SOUND_EVENT.wrapAsHolder(CraftSound.getSoundEffect("block.note_block." + instrumentName)), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
++ // Paper start - fix all this (modeled off of NoteBlock)
++ net.minecraft.world.level.block.state.properties.NoteBlockInstrument nms = CraftBlockData.toNMS(instrument, net.minecraft.world.level.block.state.properties.NoteBlockInstrument.class);
++ float f;
++ if (nms.isTunable()) {
++ f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
++ } else {
++ f = 1.0f;
++ }
++ if (!nms.hasCustomSound()) {
++ this.getHandle().connection.send(new ClientboundSoundPacket(nms.getSoundEvent(), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
++ }
++ // Paper end
+ }
+
+ @Override
diff --git a/patches/server/0917-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0915-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
similarity index 100%
rename from patches/server/0917-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
rename to patches/server/0915-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
diff --git a/patches/server/0918-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0916-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
similarity index 100%
rename from patches/server/0918-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
rename to patches/server/0916-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
diff --git a/patches/server/0916-fix-Instruments.patch b/patches/server/0916-fix-Instruments.patch
deleted file mode 100644
index 3495ef15b0..0000000000
--- a/patches/server/0916-fix-Instruments.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic
-Date: Fri, 9 Dec 2022 01:47:23 -0800
-Subject: [PATCH] fix Instruments
-
-properly handle Player#playNote
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 151788d379000ee4d3f5d1d51c014da8e8cd21a5..3fa3e0bd52bf2f3135f189629a4bd43ad6248fe2 100644
---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -744,62 +744,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- public void playNote(Location loc, Instrument instrument, Note note) {
- if (this.getHandle().connection == null) return;
-
-- String instrumentName = null;
-- switch (instrument.ordinal()) {
-- case 0:
-- instrumentName = "harp";
-- break;
-- case 1:
-- instrumentName = "basedrum";
-- break;
-- case 2:
-- instrumentName = "snare";
-- break;
-- case 3:
-- instrumentName = "hat";
-- break;
-- case 4:
-- instrumentName = "bass";
-- break;
-- case 5:
-- instrumentName = "flute";
-- break;
-- case 6:
-- instrumentName = "bell";
-- break;
-- case 7:
-- instrumentName = "guitar";
-- break;
-- case 8:
-- instrumentName = "chime";
-- break;
-- case 9:
-- instrumentName = "xylophone";
-- break;
-- case 10:
-- instrumentName = "iron_xylophone";
-- break;
-- case 11:
-- instrumentName = "cow_bell";
-- break;
-- case 12:
-- instrumentName = "didgeridoo";
-- break;
-- case 13:
-- instrumentName = "bit";
-- break;
-- case 14:
-- instrumentName = "banjo";
-- break;
-- case 15:
-- instrumentName = "pling";
-- break;
-- case 16:
-- instrumentName = "xylophone";
-- break;
-+ // Paper start - fix all this (modeled off of NoteBlock)
-+ net.minecraft.world.level.block.state.properties.NoteBlockInstrument nms = CraftBlockData.toNMS(instrument, net.minecraft.world.level.block.state.properties.NoteBlockInstrument.class);
-+ float f;
-+ if (nms.isTunable()) {
-+ f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
-+ } else {
-+ f = 1.0f;
- }
-- float f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
-- this.getHandle().connection.send(new ClientboundSoundPacket(BuiltInRegistries.SOUND_EVENT.wrapAsHolder(CraftSound.getSoundEffect("block.note_block." + instrumentName)), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
-+ if (!nms.hasCustomSound()) {
-+ this.getHandle().connection.send(new ClientboundSoundPacket(nms.getSoundEvent(), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
-+ }
-+ // Paper end
- }
-
- @Override
diff --git a/patches/server/0919-Improve-logging-and-errors.patch b/patches/server/0917-Improve-logging-and-errors.patch
similarity index 96%
rename from patches/server/0919-Improve-logging-and-errors.patch
rename to patches/server/0917-Improve-logging-and-errors.patch
index 5f9461d68e..192162ab13 100644
--- a/patches/server/0919-Improve-logging-and-errors.patch
+++ b/patches/server/0917-Improve-logging-and-errors.patch
@@ -22,7 +22,7 @@ index 0232c29d96e1021a9f5a9678996993dc55fe7254..8ad8ad1189d7cdb58caaa39c482d3268
set.add(string);
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
-index 6a083e269b828ef53f943cae56b029f2e0021ef1..110503062b3043cffa082a1cda6b8d57152869aa 100644
+index 080cca90f15d90249b7a38f33286ae2f735ba7d9..2677e21d8239bf0361a3bc5c9a50c328e54d70f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
@@ -44,6 +44,7 @@ import org.bukkit.material.MaterialData;
diff --git a/patches/server/0920-Add-BlockLockCheckEvent.patch b/patches/server/0918-Add-BlockLockCheckEvent.patch
similarity index 100%
rename from patches/server/0920-Add-BlockLockCheckEvent.patch
rename to patches/server/0918-Add-BlockLockCheckEvent.patch
diff --git a/patches/server/0921-Add-Sneaking-API-for-Entities.patch b/patches/server/0919-Add-Sneaking-API-for-Entities.patch
similarity index 86%
rename from patches/server/0921-Add-Sneaking-API-for-Entities.patch
rename to patches/server/0919-Add-Sneaking-API-for-Entities.patch
index 264874161f..c7ba3ecf8f 100644
--- a/patches/server/0921-Add-Sneaking-API-for-Entities.patch
+++ b/patches/server/0919-Add-Sneaking-API-for-Entities.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Sneaking API for Entities
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index e05c3c15d15c242e07caa9033cc49d515dfcdb41..ea056babe2f8123f20dc608d8a636da1de634b8c 100644
+index f7c879cf10f89eaeb41a0f40787bd2c98d8d3f31..733158b6f2c2bd03fbe798562ff7bc33280548dc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1198,6 +1198,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1191,6 +1191,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return Pose.values()[this.getHandle().getPose().ordinal()];
}
diff --git a/patches/server/0922-Improve-PortalEvents.patch b/patches/server/0920-Improve-PortalEvents.patch
similarity index 93%
rename from patches/server/0922-Improve-PortalEvents.patch
rename to patches/server/0920-Improve-PortalEvents.patch
index 1f628c43d5..aa5fbc2763 100644
--- a/patches/server/0922-Improve-PortalEvents.patch
+++ b/patches/server/0920-Improve-PortalEvents.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a36c5ce78efc98e5bd53db4b5509c58a06aa3de1..4358420693efccfc1203037cdcbf91f78331409a 100644
+index 44495b2bbbc9cb8c5086475f403ef20e88101536..a1fd4745063a3e4fbd98600b5725df41817f650f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3686,7 +3686,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0923-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0921-Add-config-option-for-spider-worldborder-climbing.patch
similarity index 96%
rename from patches/server/0923-Add-config-option-for-spider-worldborder-climbing.patch
rename to patches/server/0921-Add-config-option-for-spider-worldborder-climbing.patch
index 9a76df29f8..38b52c6506 100644
--- a/patches/server/0923-Add-config-option-for-spider-worldborder-climbing.patch
+++ b/patches/server/0921-Add-config-option-for-spider-worldborder-climbing.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add config option for spider worldborder climbing
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4358420693efccfc1203037cdcbf91f78331409a..b1075e6ca16de57cb7a7b7caa1a4c0551767ec95 100644
+index a1fd4745063a3e4fbd98600b5725df41817f650f..fbbbb1a02a522f97928ac4b52b625f5bf2bc7537 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -403,6 +403,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0924-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0922-Add-missing-SpigotConfig-logCommands-check.patch
similarity index 88%
rename from patches/server/0924-Add-missing-SpigotConfig-logCommands-check.patch
rename to patches/server/0922-Add-missing-SpigotConfig-logCommands-check.patch
index 3c61f54554..8ecc1a22e8 100644
--- a/patches/server/0924-Add-missing-SpigotConfig-logCommands-check.patch
+++ b/patches/server/0922-Add-missing-SpigotConfig-logCommands-check.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5654777aa3ed772cd5e37c1c630c68a83194f6bb..1572c2b682c44d1445e97c3ebdc7df3f9c3bb7c4 100644
+index 0d998395b65be269c2b5b58acd1b2b46408f8f8e..2232139c2dc183fe9827ed6c276a4ed0f6ef3fd9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2254,7 +2254,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2257,7 +2257,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) {
// CraftBukkit start
String command = "/" + packet.command();
diff --git a/patches/server/0925-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0923-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
similarity index 100%
rename from patches/server/0925-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
rename to patches/server/0923-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
diff --git a/patches/server/0926-Flying-Fall-Damage.patch b/patches/server/0924-Flying-Fall-Damage.patch
similarity index 93%
rename from patches/server/0926-Flying-Fall-Damage.patch
rename to patches/server/0924-Flying-Fall-Damage.patch
index 416df8c728..8ee04f3411 100644
--- a/patches/server/0926-Flying-Fall-Damage.patch
+++ b/patches/server/0924-Flying-Fall-Damage.patch
@@ -26,10 +26,10 @@ index 53487f0a4fe672298c3b83d24a2a603641afcde8..58152160d609d0e9d105153aeb166a56
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 3fa3e0bd52bf2f3135f189629a4bd43ad6248fe2..75f4531222016a8639920ab25f0378c11a62a1f6 100644
+index 5d93b34e49891a3f93c0d83307ba14f196e72cc6..fd0cd21ce5bd2c8f255fa53e1788548b41d168cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2304,6 +2304,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2288,6 +2288,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().onUpdateAbilities();
}
diff --git a/patches/server/0927-Add-exploded-block-state-to-BlockExplodeEvent.patch b/patches/server/0925-Add-exploded-block-state-to-BlockExplodeEvent.patch
similarity index 100%
rename from patches/server/0927-Add-exploded-block-state-to-BlockExplodeEvent.patch
rename to patches/server/0925-Add-exploded-block-state-to-BlockExplodeEvent.patch
diff --git a/patches/server/0928-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0926-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
similarity index 91%
rename from patches/server/0928-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
rename to patches/server/0926-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
index d170d979cb..5f8840b205 100644
--- a/patches/server/0928-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
+++ b/patches/server/0926-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b1075e6ca16de57cb7a7b7caa1a4c0551767ec95..21210830233e409b8757a78af4d3e128e51ebbde 100644
+index fbbbb1a02a522f97928ac4b52b625f5bf2bc7537..64068958a29f5e867932d6c23ab504a2fafdd3f1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1156,7 +1156,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0929-config-for-disabling-entity-tag-tags.patch b/patches/server/0927-config-for-disabling-entity-tag-tags.patch
similarity index 100%
rename from patches/server/0929-config-for-disabling-entity-tag-tags.patch
rename to patches/server/0927-config-for-disabling-entity-tag-tags.patch
diff --git a/patches/server/0930-Use-single-player-info-update-packet-on-join.patch b/patches/server/0928-Use-single-player-info-update-packet-on-join.patch
similarity index 92%
rename from patches/server/0930-Use-single-player-info-update-packet-on-join.patch
rename to patches/server/0928-Use-single-player-info-update-packet-on-join.patch
index 63ae383420..222434b107 100644
--- a/patches/server/0930-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0928-Use-single-player-info-update-packet-on-join.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Use single player info update packet on join
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1572c2b682c44d1445e97c3ebdc7df3f9c3bb7c4..01ed2f2bc2b888f0c8e3c47f51114fac82f7a368 100644
+index 2232139c2dc183fe9827ed6c276a4ed0f6ef3fd9..ad7b15eb0a4907d3ef02e4bd57ff4d482a278099 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3600,7 +3600,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3603,7 +3603,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID());
this.chatMessageChain.append((executor) -> {
this.player.setChatSession(session);
@@ -18,7 +18,7 @@ index 1572c2b682c44d1445e97c3ebdc7df3f9c3bb7c4..01ed2f2bc2b888f0c8e3c47f51114fac
});
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a977d729c487c6efb4863ea00adbc4d947f7c5ea..683b5d78f9e3dc34e40c54683f64be32317797ac 100644
+index 490f2d6f7a43d0a5915a80960c1c7c48b3eea19f..8547e7ff2f1f5b7701fb0f3c3010c14601a5f83e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -353,6 +353,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0931-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0929-Correctly-shrink-items-during-EntityResurrectEvent.patch
similarity index 100%
rename from patches/server/0931-Correctly-shrink-items-during-EntityResurrectEvent.patch
rename to patches/server/0929-Correctly-shrink-items-during-EntityResurrectEvent.patch
diff --git a/patches/server/0932-Win-Screen-API.patch b/patches/server/0930-Win-Screen-API.patch
similarity index 88%
rename from patches/server/0932-Win-Screen-API.patch
rename to patches/server/0930-Win-Screen-API.patch
index 426b72554d..0a6db73503 100644
--- a/patches/server/0932-Win-Screen-API.patch
+++ b/patches/server/0930-Win-Screen-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Win Screen API
public net.minecraft.server.level.ServerPlayer seenCredits
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 75f4531222016a8639920ab25f0378c11a62a1f6..991f3f947810ebd7e4f2c51a4012115fee8a34ec 100644
+index fd0cd21ce5bd2c8f255fa53e1788548b41d168cc..fd72e7ccc7efe86e3c75252b50032751c4cb3f2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1203,6 +1203,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1190,6 +1190,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
diff --git a/patches/server/0933-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0931-Remove-CraftItemStack-setAmount-null-assignment.patch
similarity index 88%
rename from patches/server/0933-Remove-CraftItemStack-setAmount-null-assignment.patch
rename to patches/server/0931-Remove-CraftItemStack-setAmount-null-assignment.patch
index 6e71a44d88..f6cf642638 100644
--- a/patches/server/0933-Remove-CraftItemStack-setAmount-null-assignment.patch
+++ b/patches/server/0931-Remove-CraftItemStack-setAmount-null-assignment.patch
@@ -16,10 +16,10 @@ with less than zero amounts, so this code doesn't create
a problem with operations on the vanilla ItemStack.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 8683bb08c2d9a7514ee6b16690b61240fb807d15..24fac69bc63f949001252811f792b21955a13e9d 100644
+index d6b9897dcb4715decd4dd0b1b96995e25d789482..8657736cdfe2d5d2a1c0851ca54dd26ce17e0a83 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -146,7 +146,7 @@ public final class CraftItemStack extends ItemStack {
+@@ -147,7 +147,7 @@ public final class CraftItemStack extends ItemStack {
}
this.handle.setCount(amount);
diff --git a/patches/server/0934-Fix-force-opening-enchantment-tables.patch b/patches/server/0932-Fix-force-opening-enchantment-tables.patch
similarity index 91%
rename from patches/server/0934-Fix-force-opening-enchantment-tables.patch
rename to patches/server/0932-Fix-force-opening-enchantment-tables.patch
index c655e789f0..97bfc2c883 100644
--- a/patches/server/0934-Fix-force-opening-enchantment-tables.patch
+++ b/patches/server/0932-Fix-force-opening-enchantment-tables.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix force-opening enchantment tables
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 07c9a644dc24e881efcf2c6519f88db43e2d5779..0a35f3510e71bb8c7812eed61bbab3872ea78437 100644
+index 35f79f34b86dbf6d592842883f53f83e07f95f93..bca41901e2a44458dd9f53c2ab7181d86de54e9e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -404,7 +404,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -402,7 +402,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// If there isn't an enchant table we can force create one, won't be very useful though.
BlockPos pos = CraftLocation.toBlockPosition(location);
diff --git a/patches/server/0935-Add-Entity-Body-Yaw-API.patch b/patches/server/0933-Add-Entity-Body-Yaw-API.patch
similarity index 87%
rename from patches/server/0935-Add-Entity-Body-Yaw-API.patch
rename to patches/server/0933-Add-Entity-Body-Yaw-API.patch
index 1d612ad759..6381bc95be 100644
--- a/patches/server/0935-Add-Entity-Body-Yaw-API.patch
+++ b/patches/server/0933-Add-Entity-Body-Yaw-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 2d5f407b6979f39e5b611f37578d681a49eaea03..42a4a45ece562d543cc4fab9d9e7c70573705f10 100644
+index 40c80ba7fa6e0505c23e643acbc87fd03b69e208..7880631fe8a4b06f29ef69ab850129737a99521b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -1035,6 +1035,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -1029,6 +1029,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
this.damageItemStack0(this.getHandle().getItemBySlot(nmsSlot), amount, nmsSlot);
}
diff --git a/patches/server/0936-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0934-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
similarity index 100%
rename from patches/server/0936-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
rename to patches/server/0934-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
diff --git a/patches/server/0937-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0935-Update-the-flag-when-a-captured-block-state-is-outda.patch
similarity index 100%
rename from patches/server/0937-Update-the-flag-when-a-captured-block-state-is-outda.patch
rename to patches/server/0935-Update-the-flag-when-a-captured-block-state-is-outda.patch
diff --git a/patches/server/0938-Add-EntityFertilizeEggEvent.patch b/patches/server/0936-Add-EntityFertilizeEggEvent.patch
similarity index 97%
rename from patches/server/0938-Add-EntityFertilizeEggEvent.patch
rename to patches/server/0936-Add-EntityFertilizeEggEvent.patch
index 7b65a3ef54..1d6a8aeb2c 100644
--- a/patches/server/0938-Add-EntityFertilizeEggEvent.patch
+++ b/patches/server/0936-Add-EntityFertilizeEggEvent.patch
@@ -69,10 +69,10 @@ index c0f19138c6a00ce6ae837c972ae4af522ddd2895..a6d98f64910c816a5c11867d12698f5c
world.addFreshEntity(entityitem);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 86b0fe7b6feeef0e085e577954f869e020cc0f04..576e982ac53fe6cdc6ca921ad46c36e895509f84 100644
+index 22ebf307641f9aa7231df8607bb859785be60f7a..5cc8d5403058638ddecbed08059ecd96257f9dcb 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1981,4 +1981,29 @@ public class CraftEventFactory {
+@@ -1983,4 +1983,29 @@ public class CraftEventFactory {
return event.callEvent();
}
// Paper end
diff --git a/patches/server/0939-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0937-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
similarity index 90%
rename from patches/server/0939-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
rename to patches/server/0937-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
index c1393c0c4f..2e74734a41 100644
--- a/patches/server/0939-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
+++ b/patches/server/0937-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Fix HumanEntity#drop not updating the client inv
public net.minecraft.server.level.ServerPlayer containerSynchronizer
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 0a35f3510e71bb8c7812eed61bbab3872ea78437..cba6ead3f937f2b3d59c15a864e07e5cb2f2330c 100644
+index bca41901e2a44458dd9f53c2ab7181d86de54e9e..0f3e696582cd288357598490e8af0131ab30bdfc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -757,8 +757,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -755,8 +755,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// Paper end
@Override
public boolean dropItem(boolean dropAll) {
diff --git a/patches/server/0940-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0938-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
similarity index 100%
rename from patches/server/0940-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
rename to patches/server/0938-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/server/0941-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0939-Correctly-handle-ArmorStand-invisibility.patch
similarity index 100%
rename from patches/server/0941-Correctly-handle-ArmorStand-invisibility.patch
rename to patches/server/0939-Correctly-handle-ArmorStand-invisibility.patch
diff --git a/patches/server/0942-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0940-Fix-advancement-triggers-for-entity-damage.patch
similarity index 100%
rename from patches/server/0942-Fix-advancement-triggers-for-entity-damage.patch
rename to patches/server/0940-Fix-advancement-triggers-for-entity-damage.patch
diff --git a/patches/server/0943-Fix-text-display-error-on-spawn.patch b/patches/server/0941-Fix-text-display-error-on-spawn.patch
similarity index 100%
rename from patches/server/0943-Fix-text-display-error-on-spawn.patch
rename to patches/server/0941-Fix-text-display-error-on-spawn.patch
diff --git a/patches/server/0944-Fix-certain-inventories-returning-null-Locations.patch b/patches/server/0942-Fix-certain-inventories-returning-null-Locations.patch
similarity index 100%
rename from patches/server/0944-Fix-certain-inventories-returning-null-Locations.patch
rename to patches/server/0942-Fix-certain-inventories-returning-null-Locations.patch
diff --git a/patches/server/0945-Add-Shearable-API.patch b/patches/server/0943-Add-Shearable-API.patch
similarity index 100%
rename from patches/server/0945-Add-Shearable-API.patch
rename to patches/server/0943-Add-Shearable-API.patch
diff --git a/patches/server/0946-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0944-Fix-SpawnEggMeta-get-setSpawnedType.patch
similarity index 100%
rename from patches/server/0946-Fix-SpawnEggMeta-get-setSpawnedType.patch
rename to patches/server/0944-Fix-SpawnEggMeta-get-setSpawnedType.patch
diff --git a/patches/server/0947-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch b/patches/server/0945-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
similarity index 90%
rename from patches/server/0947-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
rename to patches/server/0945-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
index 75e0c90780..8c7b5d3b37 100644
--- a/patches/server/0947-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
+++ b/patches/server/0945-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix chiseled bookshelf and jukebox setItem with air
diff --git a/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
-index 1b4a6e68fc81072591278de1e2ec3f921823811b..429381c4efbfdf48b489cc25936466c193c2f452 100644
+index 1714102815e6c32bc161e88b1634f7a80908850a..47e194ef4e75f95573b40ff9f1a11810381cfce8 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
@@ -146,7 +146,7 @@ public class ChiseledBookShelfBlockEntity extends BlockEntity implements Contain
@@ -15,7 +15,7 @@ index 1b4a6e68fc81072591278de1e2ec3f921823811b..429381c4efbfdf48b489cc25936466c1
- if (stack.is(ItemTags.BOOKSHELF_BOOKS)) {
+ if (stack.isEmpty() || stack.is(ItemTags.BOOKSHELF_BOOKS)) { // Paper
this.items.set(slot, stack);
- this.updateState(slot);
+ if (level != null) this.updateState(slot); // CraftBukkit - SPIGOT-7381: check for null world
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
index 77ece220a2e204c3e66e660c639abda957bf21b9..62acd6686626c84c9fc3964af62097101e8e582f 100644
diff --git a/patches/server/0948-Optimize-Hoppers.patch b/patches/server/0946-Optimize-Hoppers.patch
similarity index 99%
rename from patches/server/0948-Optimize-Hoppers.patch
rename to patches/server/0946-Optimize-Hoppers.patch
index 8eb02d2e2e..3470e69a7a 100644
--- a/patches/server/0948-Optimize-Hoppers.patch
+++ b/patches/server/0946-Optimize-Hoppers.patch
@@ -13,10 +13,10 @@ Subject: [PATCH] Optimize Hoppers
* Remove Streams from Item Suck In and restore restore 1.12 AABB checks which is simpler and no voxel allocations (was doing TWO Item Suck ins)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index aa0dcb02aaec2caa016397e7f5cc859a22ca4b6d..763df0f016e2970fd12603d0c7d6c4e4871345f9 100644
+index c5f3dc74888919e82e2ffbb8d648b7640aa6b690..80cf4852e4010eeeadaf920ab927a40df0179b40 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1524,6 +1524,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper
diff --git a/patches/server/0949-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0947-Fix-beehives-generating-from-using-bonemeal.patch
similarity index 100%
rename from patches/server/0949-Fix-beehives-generating-from-using-bonemeal.patch
rename to patches/server/0947-Fix-beehives-generating-from-using-bonemeal.patch
diff --git a/patches/server/0950-Fix-api-checking-banned-ips.patch b/patches/server/0948-Fix-api-checking-banned-ips.patch
similarity index 81%
rename from patches/server/0950-Fix-api-checking-banned-ips.patch
rename to patches/server/0948-Fix-api-checking-banned-ips.patch
index a69b2e70fd..08f63f3c08 100644
--- a/patches/server/0950-Fix-api-checking-banned-ips.patch
+++ b/patches/server/0948-Fix-api-checking-banned-ips.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] Fix api checking banned ips
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java b/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java
-index 61cb647b2aa590303402e6652bd37b5bca0e0b1d..30f2ddff4108e92eaac50317bdd9ef4eb25ec085 100644
+index 0787159a6fde31260f87ee974381f21ce97620a6..5a7d884bcad7b30109567c1eff816a31c1701b06 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java
@@ -64,7 +64,7 @@ public class CraftIpBanList implements org.bukkit.BanList {
public boolean isBanned(String target) {
- Validate.notNull(target, "Target cannot be null");
+ Preconditions.checkArgument(target != null, "Target cannot be null");
- return this.list.isBanned(InetSocketAddress.createUnresolved(target, 0));
+ return this.list.isBanned(target); // Paper - fix checking banned ips
diff --git a/patches/server/0951-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0949-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
similarity index 100%
rename from patches/server/0951-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
rename to patches/server/0949-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
diff --git a/patches/server/0952-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0950-Treat-sequence-violations-like-they-should-be.patch
similarity index 86%
rename from patches/server/0952-Treat-sequence-violations-like-they-should-be.patch
rename to patches/server/0950-Treat-sequence-violations-like-they-should-be.patch
index 3da8a71205..06d229aac7 100644
--- a/patches/server/0952-Treat-sequence-violations-like-they-should-be.patch
+++ b/patches/server/0950-Treat-sequence-violations-like-they-should-be.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 01ed2f2bc2b888f0c8e3c47f51114fac82f7a368..ed19c6c2eb72800af7b978df677ff317f05795ba 100644
+index ad7b15eb0a4907d3ef02e4bd57ff4d482a278099..d00d003b29d357fbd80304acc50ca13c9f5393f5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2124,6 +2124,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2127,6 +2127,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
public void ackBlockChangesUpTo(int sequence) {
if (sequence < 0) {
diff --git a/patches/server/0953-remove-duplicate-animate-packet-for-records.patch b/patches/server/0951-remove-duplicate-animate-packet-for-records.patch
similarity index 100%
rename from patches/server/0953-remove-duplicate-animate-packet-for-records.patch
rename to patches/server/0951-remove-duplicate-animate-packet-for-records.patch
diff --git a/patches/server/0954-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0952-Prevent-causing-expired-keys-from-impacting-new-join.patch
similarity index 95%
rename from patches/server/0954-Prevent-causing-expired-keys-from-impacting-new-join.patch
rename to patches/server/0952-Prevent-causing-expired-keys-from-impacting-new-join.patch
index bb76297470..85153d77d0 100644
--- a/patches/server/0954-Prevent-causing-expired-keys-from-impacting-new-join.patch
+++ b/patches/server/0952-Prevent-causing-expired-keys-from-impacting-new-join.patch
@@ -24,7 +24,7 @@ index 23e0e6937e28f09271a4ec7c35e0076a576cf3d3..4aa8b483841028fbcc43f9ed47730881
UPDATE_GAME_MODE((serialized, buf) -> {
serialized.gameMode = GameType.byId(buf.readVarInt());
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ed19c6c2eb72800af7b978df677ff317f05795ba..4dd04aa5f4affd42afbce718ec3dfaf7f1fafe2f 100644
+index d00d003b29d357fbd80304acc50ca13c9f5393f5..d9c2d06ae24dcf80a497e75f4c7f63d401b77f9b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -296,6 +296,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -49,7 +49,7 @@ index ed19c6c2eb72800af7b978df677ff317f05795ba..4dd04aa5f4affd42afbce718ec3dfaf7
}
public void resetPosition() {
-@@ -3598,6 +3606,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3601,6 +3609,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private void resetPlayerChatState(RemoteChatSession session) {
this.chatSession = session;
diff --git a/patches/server/0955-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0953-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
similarity index 100%
rename from patches/server/0955-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
rename to patches/server/0953-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
diff --git a/patches/server/0956-Use-array-for-gamerule-storage.patch b/patches/server/0954-Use-array-for-gamerule-storage.patch
similarity index 100%
rename from patches/server/0956-Use-array-for-gamerule-storage.patch
rename to patches/server/0954-Use-array-for-gamerule-storage.patch
diff --git a/patches/server/0957-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0955-Fix-a-couple-of-upstream-bed-issues.patch
similarity index 100%
rename from patches/server/0957-Fix-a-couple-of-upstream-bed-issues.patch
rename to patches/server/0955-Fix-a-couple-of-upstream-bed-issues.patch
diff --git a/patches/server/0958-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0956-Fix-demo-flag-not-enabling-demo-mode.patch
similarity index 100%
rename from patches/server/0958-Fix-demo-flag-not-enabling-demo-mode.patch
rename to patches/server/0956-Fix-demo-flag-not-enabling-demo-mode.patch
diff --git a/patches/server/0959-Add-Mob-Experience-reward-API.patch b/patches/server/0957-Add-Mob-Experience-reward-API.patch
similarity index 100%
rename from patches/server/0959-Add-Mob-Experience-reward-API.patch
rename to patches/server/0957-Add-Mob-Experience-reward-API.patch
diff --git a/patches/server/0960-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0958-Break-redstone-on-top-of-trap-doors-early.patch
similarity index 100%
rename from patches/server/0960-Break-redstone-on-top-of-trap-doors-early.patch
rename to patches/server/0958-Break-redstone-on-top-of-trap-doors-early.patch
diff --git a/patches/server/0961-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0959-Fix-DamageCause-for-Falling-Blocks.patch
similarity index 92%
rename from patches/server/0961-Fix-DamageCause-for-Falling-Blocks.patch
rename to patches/server/0959-Fix-DamageCause-for-Falling-Blocks.patch
index 3197bd1c72..962ecdd8fa 100644
--- a/patches/server/0961-Fix-DamageCause-for-Falling-Blocks.patch
+++ b/patches/server/0959-Fix-DamageCause-for-Falling-Blocks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 576e982ac53fe6cdc6ca921ad46c36e895509f84..0ed5035044a3fc3ad725ce702720a0742a19ed44 100644
+index 5cc8d5403058638ddecbed08059ecd96257f9dcb..0b84496161964bf84bfc08d687592b20ed06a25f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1030,6 +1030,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0962-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0960-Avoid-Lazy-Initialization-for-Enum-Fields.patch
similarity index 100%
rename from patches/server/0962-Avoid-Lazy-Initialization-for-Enum-Fields.patch
rename to patches/server/0960-Avoid-Lazy-Initialization-for-Enum-Fields.patch
diff --git a/patches/server/0963-More-accurate-isInOpenWater-impl.patch b/patches/server/0961-More-accurate-isInOpenWater-impl.patch
similarity index 89%
rename from patches/server/0963-More-accurate-isInOpenWater-impl.patch
rename to patches/server/0961-More-accurate-isInOpenWater-impl.patch
index 39f99272f6..5d9d32149a 100644
--- a/patches/server/0963-More-accurate-isInOpenWater-impl.patch
+++ b/patches/server/0961-More-accurate-isInOpenWater-impl.patch
@@ -13,10 +13,10 @@ public net.minecraft.world.entity.projectile.FishingHook calculateOpenWater(Lnet
public net.minecraft.world.entity.projectile.FishingHook outOfWaterTime
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-index 4d12c33b9a360129ffaefb551010b354bba0c69f..bac5c30d3aae1b3a7dbfb78f6fd37c11038fc735 100644
+index ce934b945b85a4c3d0f575eb090bbf90c4b3ca9f..41e8167766383a6fcb1e9fb78933d74784caddbb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-@@ -171,7 +171,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
+@@ -170,7 +170,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
@Override
public boolean isInOpenWater() {
diff --git a/patches/server/0964-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0962-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
similarity index 100%
rename from patches/server/0964-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
rename to patches/server/0962-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
diff --git a/patches/server/0965-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0963-Optimise-recalcBlockCounts-for-empty-sections.patch
similarity index 100%
rename from patches/server/0965-Optimise-recalcBlockCounts-for-empty-sections.patch
rename to patches/server/0963-Optimise-recalcBlockCounts-for-empty-sections.patch
diff --git a/patches/server/0966-Fix-destroying-beehive-without-any-players-nearby-th.patch b/patches/server/0964-Fix-destroying-beehive-without-any-players-nearby-th.patch
similarity index 100%
rename from patches/server/0966-Fix-destroying-beehive-without-any-players-nearby-th.patch
rename to patches/server/0964-Fix-destroying-beehive-without-any-players-nearby-th.patch
diff --git a/patches/server/0967-Expand-PlayerItemMendEvent.patch b/patches/server/0965-Expand-PlayerItemMendEvent.patch
similarity index 93%
rename from patches/server/0967-Expand-PlayerItemMendEvent.patch
rename to patches/server/0965-Expand-PlayerItemMendEvent.patch
index 8dc094546e..6cff67c43b 100644
--- a/patches/server/0967-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0965-Expand-PlayerItemMendEvent.patch
@@ -33,10 +33,10 @@ index 8d8fe55a05eea237a8af99ed15ab16d6167daa77..eca634792d2a7cc649675e3394e84dba
return k > 0 ? this.repairPlayerItems(player, k) : 0;
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 991f3f947810ebd7e4f2c51a4012115fee8a34ec..548eddde8b0558b780f672d321507cfcbac92558 100644
+index fd72e7ccc7efe86e3c75252b50032751c4cb3f2c..c8ceaf9ba8e167db0138bbad134100d8717a326e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1674,11 +1674,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1658,11 +1658,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
orb.setPosRaw(handle.getX(), handle.getY(), handle.getZ());
int i = Math.min(orb.xpToDurability(amount), itemstack.getDamageValue());
@@ -51,10 +51,10 @@ index 991f3f947810ebd7e4f2c51a4012115fee8a34ec..548eddde8b0558b780f672d321507cfc
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 0ed5035044a3fc3ad725ce702720a0742a19ed44..a9a58f0bb19e034cffdafcc38fdc9003744a5d6c 100644
+index 0b84496161964bf84bfc08d687592b20ed06a25f..32fe1e498ee988566213bfcf56bf98c92a3c9871 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1262,10 +1262,10 @@ public class CraftEventFactory {
+@@ -1266,10 +1266,10 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0968-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0966-Refresh-ProjectileSource-for-projectiles.patch
similarity index 97%
rename from patches/server/0968-Refresh-ProjectileSource-for-projectiles.patch
rename to patches/server/0966-Refresh-ProjectileSource-for-projectiles.patch
index 04eaeb9354..e666028592 100644
--- a/patches/server/0968-Refresh-ProjectileSource-for-projectiles.patch
+++ b/patches/server/0966-Refresh-ProjectileSource-for-projectiles.patch
@@ -9,7 +9,7 @@ Previously, after the entity reloaded, Projectile#getShooter
would return null, while the entity still had an owner.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 21210830233e409b8757a78af4d3e128e51ebbde..92202262eff01ae3bbeff0e6ebdcf26ad613c169 100644
+index 64068958a29f5e867932d6c23ab504a2fafdd3f1..b38c4cbcf0405d82c7b6e018e80a3174e460c1a4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -382,6 +382,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0969-Add-transient-modifier-API.patch b/patches/server/0967-Add-transient-modifier-API.patch
similarity index 100%
rename from patches/server/0969-Add-transient-modifier-API.patch
rename to patches/server/0967-Add-transient-modifier-API.patch
diff --git a/patches/server/0970-Fix-block-place-logic.patch b/patches/server/0968-Fix-block-place-logic.patch
similarity index 100%
rename from patches/server/0970-Fix-block-place-logic.patch
rename to patches/server/0968-Fix-block-place-logic.patch
diff --git a/patches/server/0971-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0969-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
similarity index 100%
rename from patches/server/0971-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
rename to patches/server/0969-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
diff --git a/patches/server/0972-Ignore-inline-definitions-of-trim-material-pattern.patch b/patches/server/0970-Ignore-inline-definitions-of-trim-material-pattern.patch
similarity index 100%
rename from patches/server/0972-Ignore-inline-definitions-of-trim-material-pattern.patch
rename to patches/server/0970-Ignore-inline-definitions-of-trim-material-pattern.patch
diff --git a/patches/server/0973-Call-BlockGrowEvent-for-the-pitcher-crop.patch b/patches/server/0971-Call-BlockGrowEvent-for-the-pitcher-crop.patch
similarity index 100%
rename from patches/server/0973-Call-BlockGrowEvent-for-the-pitcher-crop.patch
rename to patches/server/0971-Call-BlockGrowEvent-for-the-pitcher-crop.patch
diff --git a/patches/server/0974-Add-API-for-waxed-signs.patch b/patches/server/0972-Add-API-for-waxed-signs.patch
similarity index 100%
rename from patches/server/0974-Add-API-for-waxed-signs.patch
rename to patches/server/0972-Add-API-for-waxed-signs.patch
diff --git a/patches/server/0975-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/server/0973-Properly-remove-the-experimental-smithing-inventory-.patch
similarity index 98%
rename from patches/server/0975-Properly-remove-the-experimental-smithing-inventory-.patch
rename to patches/server/0973-Properly-remove-the-experimental-smithing-inventory-.patch
index a1493ce3d9..73dd186dd3 100644
--- a/patches/server/0975-Properly-remove-the-experimental-smithing-inventory-.patch
+++ b/patches/server/0973-Properly-remove-the-experimental-smithing-inventory-.patch
@@ -46,7 +46,7 @@ index bdaa739aa18a95894a165e9333a3e9d596fd7dc3..3075ba5f6d66316f27e618d8b279252e
this.setupSmithing(top, bottom); // SPIGOT-6783 - manually set up slots so we can use the delegated inventory and not the automatically created one
break;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-index 092f6843e3b43d4c615d2eee344f5966e96ae850..10844fecc01370dcd0cc36f83e166bacb48ded30 100644
+index bfac13ec6c316caa65db4a51b77f0a7045ad88ff..df254c42b73cdb56f71781473cbf9d0f28dcfb08 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -536,8 +536,7 @@ public class CraftInventory implements Inventory {
diff --git a/patches/server/0976-Fix-sendSignChange0-s-usage-of-SignText.patch b/patches/server/0974-Fix-sendSignChange0-s-usage-of-SignText.patch
similarity index 92%
rename from patches/server/0976-Fix-sendSignChange0-s-usage-of-SignText.patch
rename to patches/server/0974-Fix-sendSignChange0-s-usage-of-SignText.patch
index 47e2230eef..076f620e6d 100644
--- a/patches/server/0976-Fix-sendSignChange0-s-usage-of-SignText.patch
+++ b/patches/server/0974-Fix-sendSignChange0-s-usage-of-SignText.patch
@@ -13,10 +13,10 @@ constructed sign text to the instance nor does it feed back said
instance to the virtual sign block entity.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 548eddde8b0558b780f672d321507cfcbac92558..e41f5417304f5b05fa7e2f6b6e1c0095e820f1cc 100644
+index c8ceaf9ba8e167db0138bbad134100d8717a326e..03bb444705916ffe0b9eb4b7496524dc3459ebe0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1040,11 +1040,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1027,11 +1027,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private void sendSignChange0(Component[] components, Location loc, DyeColor dyeColor, boolean hasGlowingText) {
SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
SignText text = sign.getFrontText();
diff --git a/work/Bukkit b/work/Bukkit
index 657df461c2..54e8ec7b47 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 657df461c253a66e3382d5dbe97bd31ce0ac1438
+Subproject commit 54e8ec7b47ec9a77e05d44d8898a0f247c8db046
diff --git a/work/CraftBukkit b/work/CraftBukkit
index fd92f1e654..6962456f98 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit fd92f1e65447be1d336ce0c43f2e915f01f2fc1d
+Subproject commit 6962456f98f6e5075c8bf6dff772f3c2464ae60e
diff --git a/work/Spigot b/work/Spigot
index 16cfc98727..7e2af8b2d6 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit 16cfc987271eddcc0ffeb5d8cc968ea16c19e986
+Subproject commit 7e2af8b2d6af54e66edd030abbf12359a8574e05