diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch
index 7a50bb9ba..86e00a82e 100644
--- a/patches/api/0001-Convert-project-to-Gradle.patch
+++ b/patches/api/0001-Convert-project-to-Gradle.patch
@@ -27,7 +27,7 @@ index e431e3435737e28394d81b56568a08b3c3148b9b..b23bde3b5e881f146539a307d0a59f21
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
-index 0000000000000000000000000000000000000000..7c41b546ae6f6e675072239b4c2d9076fa43ca87
+index 0000000000000000000000000000000000000000..53fbbb989a8bec663f12e90c2890740220ac8cd4
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,79 @@
@@ -48,9 +48,9 @@ index 0000000000000000000000000000000000000000..7c41b546ae6f6e675072239b4c2d9076
+ api("net.md-5:bungeecord-chat:1.16-R0.4")
+ api("org.yaml:snakeyaml:1.30")
+
-+ compileOnly("org.apache.maven:maven-resolver-provider:3.8.4")
-+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.2")
-+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.2")
++ compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
++ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
++ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
+
+ val annotations = "org.jetbrains:annotations-java5:23.0.0"
+ compileOnly(annotations)
@@ -112,7 +112,7 @@ index 0000000000000000000000000000000000000000..7c41b546ae6f6e675072239b4c2d9076
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
-index c9f858858011193d2a02ef1568a23164ac84d164..0000000000000000000000000000000000000000
+index 5a45ab463e6df9adfbe905c1f456fd41fbf4b8be..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
@@ -1,252 +0,0 @@
@@ -186,13 +186,13 @@ index c9f858858011193d2a02ef1568a23164ac84d164..00000000000000000000000000000000
-
- org.apache.maven.resolver
- maven-resolver-connector-basic
-- 1.8.0
+- 1.7.3
- provided
-
-
- org.apache.maven.resolver
- maven-resolver-transport-http
-- 1.8.0
+- 1.7.3
- provided
-
-
diff --git a/patches/api/0002-Build-system-changes.patch b/patches/api/0002-Build-system-changes.patch
index 7d5b7f711..e6eea2296 100644
--- a/patches/api/0002-Build-system-changes.patch
+++ b/patches/api/0002-Build-system-changes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes
diff --git a/build.gradle.kts b/build.gradle.kts
-index 7c41b546ae6f6e675072239b4c2d9076fa43ca87..8372fb4347113bc7dbd1bff738236b388a72e185 100644
+index 53fbbb989a8bec663f12e90c2890740220ac8cd4..b929458b72f26568b4c87571113eb2f867359312 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -14,15 +14,27 @@ dependencies {
@@ -18,9 +18,9 @@ index 7c41b546ae6f6e675072239b4c2d9076fa43ca87..8372fb4347113bc7dbd1bff738236b38
+ }
+ // Paper end
- compileOnly("org.apache.maven:maven-resolver-provider:3.8.4")
- compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.2")
- compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.2")
+ compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
+ compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper
- val annotations = "org.jetbrains:annotations-java5:23.0.0"
diff --git a/patches/api/0004-Add-FastUtil-to-Bukkit.patch b/patches/api/0004-Add-FastUtil-to-Bukkit.patch
index b6e5276c5..b2d1843a9 100644
--- a/patches/api/0004-Add-FastUtil-to-Bukkit.patch
+++ b/patches/api/0004-Add-FastUtil-to-Bukkit.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add FastUtil to Bukkit
Doesn't expose to plugins, just allows Paper-API to use it for optimization
diff --git a/build.gradle.kts b/build.gradle.kts
-index 8372fb4347113bc7dbd1bff738236b388a72e185..c37a91b393c6e64cfe04c7bdd404bc267d1d339e 100644
+index b929458b72f26568b4c87571113eb2f867359312..31cd1ba937c364447e32220ffef1d9ef95b634c6 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -18,6 +18,7 @@ dependencies {
@@ -16,4 +16,4 @@ index 8372fb4347113bc7dbd1bff738236b388a72e185..c37a91b393c6e64cfe04c7bdd404bc26
+ api("it.unimi.dsi:fastutil:8.5.6")
// Paper end
- compileOnly("org.apache.maven:maven-resolver-provider:3.8.4")
+ compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch
index f88194f81..267b142d2 100644
--- a/patches/api/0005-Adventure.patch
+++ b/patches/api/0005-Adventure.patch
@@ -7,7 +7,7 @@ Co-authored-by: zml
Co-authored-by: Jake Potrebic
diff --git a/build.gradle.kts b/build.gradle.kts
-index c37a91b393c6e64cfe04c7bdd404bc267d1d339e..9b3621a09bd37945877752c801cdd9283017522c 100644
+index 31cd1ba937c364447e32220ffef1d9ef95b634c6..da855f2208b50f024bb7577167a6da53c06a9a4a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,17 +8,36 @@ java {
@@ -47,7 +47,7 @@ index c37a91b393c6e64cfe04c7bdd404bc267d1d339e..9b3621a09bd37945877752c801cdd928
+ apiAndDocs("net.kyori:adventure-text-serializer-plain")
// Paper end
- compileOnly("org.apache.maven:maven-resolver-provider:3.8.4")
+ compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
@@ -76,9 +95,24 @@ tasks.withType {
"https://guava.dev/releases/31.0.1-jre/api/docs/",
"https://javadoc.io/doc/org.yaml/snakeyaml/1.30/",
diff --git a/patches/api/0026-Use-ASM-for-event-executors.patch b/patches/api/0026-Use-ASM-for-event-executors.patch
index b1a9fa945..c05bc2982 100644
--- a/patches/api/0026-Use-ASM-for-event-executors.patch
+++ b/patches/api/0026-Use-ASM-for-event-executors.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use ASM for event executors.
Uses method handles for private or static methods.
diff --git a/build.gradle.kts b/build.gradle.kts
-index 9b3621a09bd37945877752c801cdd9283017522c..9ec782b00f9f2ac5a38a75667d36de4582a25a03 100644
+index da855f2208b50f024bb7577167a6da53c06a9a4a..ac5cb57d590363ad7b827672f756224d2857fa2c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -38,6 +38,9 @@ dependencies {
@@ -18,7 +18,7 @@ index 9b3621a09bd37945877752c801cdd9283017522c..9ec782b00f9f2ac5a38a75667d36de45
+ implementation("org.ow2.asm:asm-commons:9.2")
// Paper end
- compileOnly("org.apache.maven:maven-resolver-provider:3.8.4")
+ compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java b/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b28e9b1daba7834af67dbc193dd656bedd9a994
diff --git a/patches/api/0370-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0370-Add-missing-block-data-mins-and-maxes.patch
index 1ce2b605c..600497b95 100644
--- a/patches/api/0370-Add-missing-block-data-mins-and-maxes.patch
+++ b/patches/api/0370-Add-missing-block-data-mins-and-maxes.patch
@@ -41,10 +41,10 @@ index d4d08bd424f84523200d1a2012f4d37c07cc3497..7baccce27f2db2242f628ea92a9d0402
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/block/data/type/Leaves.java b/src/main/java/org/bukkit/block/data/type/Leaves.java
-index 3874d5d9647107c409651d20470a57197b4f3a3d..1050f5d9d2e75d221ce26eca0ef14add07221f19 100644
+index 3ea21dfad26222ee70fbc627595f54de1a28aa96..cd013a7c42648d819d1e91c7cf9f97a8190c1fad 100644
--- a/src/main/java/org/bukkit/block/data/type/Leaves.java
+++ b/src/main/java/org/bukkit/block/data/type/Leaves.java
-@@ -39,4 +39,20 @@ public interface Leaves extends BlockData {
+@@ -39,4 +39,20 @@ public interface Leaves extends Waterlogged {
* @param distance the new 'distance' value
*/
void setDistance(int distance);
diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch
index 4434559cc..a824ab0bb 100644
--- a/patches/server/0001-Setup-Gradle-project.patch
+++ b/patches/server/0001-Setup-Gradle-project.patch
@@ -28,7 +28,7 @@ index 67fb370cad6924895a6b27052dbd5c1767e3f0c9..bb338269c9e3bef4c274157c490d8b8f
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
-index 0000000000000000000000000000000000000000..25104e978c36adc91a65d81c5c8effc064c93091
+index 0000000000000000000000000000000000000000..d10ff4a52c22033e2adb2a4e7f2cee98a13ea6c5
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,138 @@
@@ -51,9 +51,9 @@ index 0000000000000000000000000000000000000000..25104e978c36adc91a65d81c5c8effc0
+ runtimeOnly("org.xerial:sqlite-jdbc:3.36.0.3")
+ runtimeOnly("mysql:mysql-connector-java:8.0.29")
+
-+ runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.4")
-+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.2")
-+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.2")
++ runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5")
++ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
++ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
+
+ testImplementation("junit:junit:4.13.2")
+ testImplementation("org.hamcrest:hamcrest-library:1.3")
@@ -172,7 +172,7 @@ index 0000000000000000000000000000000000000000..25104e978c36adc91a65d81c5c8effc0
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
-index 4d8c2f1741bd620a9b9098c0af463cd403284d49..0000000000000000000000000000000000000000
+index 380703ab3e6ecaa5013b6d24a12cba35dc8ee392..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
@@ -1,616 +0,0 @@
@@ -431,13 +431,13 @@ index 4d8c2f1741bd620a9b9098c0af463cd403284d49..00000000000000000000000000000000
-
- org.apache.maven.resolver
- maven-resolver-connector-basic
-- 1.8.0
+- 1.7.3
- runtime
-
-
- org.apache.maven.resolver
- maven-resolver-transport-http
-- 1.8.0
+- 1.7.3
- runtime
-
-
diff --git a/patches/server/0008-Adventure.patch b/patches/server/0008-Adventure.patch
index a7a12d2ea..33d211f1f 100644
--- a/patches/server/0008-Adventure.patch
+++ b/patches/server/0008-Adventure.patch
@@ -2480,10 +2480,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 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa308426577d755a2 100644
+index fe392a144edc3282793449cac6c9c953d9648a9e..4c939de8822b064f0e44b741c4b3807ba13e5e9e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -270,14 +270,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -269,14 +269,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getDisplayName() {
@@ -2523,7 +2523,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
@Override
public String getPlayerListName() {
return this.getHandle().listName == null ? getName() : CraftChatMessage.fromComponent(this.getHandle().listName);
-@@ -296,42 +321,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -295,42 +320,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@@ -2575,7 +2575,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
this.getHandle().connection.send(packet);
}
-@@ -363,6 +388,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -362,6 +387,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.disconnect(message == null ? "" : message);
}
@@ -2599,7 +2599,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
@Override
public void setCompassTarget(Location loc) {
if (this.getHandle().connection == null) return;
-@@ -618,6 +660,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -617,6 +659,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
@@ -2635,7 +2635,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
@Override
public void sendSignChange(Location loc, String[] lines) {
this.sendSignChange(loc, lines, DyeColor.BLACK);
-@@ -645,14 +716,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -644,14 +715,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
Component[] components = CraftSign.sanitizeLines(lines);
@@ -2653,7 +2653,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
}
@Override
-@@ -1423,7 +1495,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1422,7 +1494,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url) {
@@ -2662,7 +2662,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
}
@Override
-@@ -1438,7 +1510,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1437,7 +1509,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url, byte[] hash, boolean force) {
@@ -2671,7 +2671,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
}
@Override
-@@ -1454,6 +1526,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1453,6 +1525,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@@ -2693,7 +2693,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
public void addChannel(String channel) {
Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel);
channel = StandardMessenger.validateAndCorrectChannel(channel);
-@@ -1858,6 +1945,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1857,6 +1944,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().clientViewDistance == null) ? Bukkit.getViewDistance() : this.getHandle().clientViewDistance;
}
@@ -2706,7 +2706,7 @@ index 765659b39d30e2e5c491c0808fe1808776ea767b..96011a24045b79ba5bab12aaa3084265
@Override
public int getPing() {
return this.getHandle().latency;
-@@ -1903,6 +1996,207 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1902,6 +1995,207 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().allowsListing();
}
diff --git a/patches/server/0012-Timings-v2.patch b/patches/server/0012-Timings-v2.patch
index 1a4f8415c..c852f6f2f 100644
--- a/patches/server/0012-Timings-v2.patch
+++ b/patches/server/0012-Timings-v2.patch
@@ -1877,10 +1877,10 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 96011a24045b79ba5bab12aaa308426577d755a2..fba10ca35dc8b38dbab74de967c29c43dc9d62a9 100644
+index 4c939de8822b064f0e44b741c4b3807ba13e5e9e..f43a728eba966992831d040a0ed96f5720d8d15c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2286,6 +2286,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2288,6 +2288,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
CraftPlayer.this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, i));
}
diff --git a/patches/server/0024-Player-affects-spawning-API.patch b/patches/server/0024-Player-affects-spawning-API.patch
index f6d181c28..d89d528e2 100644
--- a/patches/server/0024-Player-affects-spawning-API.patch
+++ b/patches/server/0024-Player-affects-spawning-API.patch
@@ -117,10 +117,10 @@ index 7c5918f84d2b8f9c778258b7e7d745105effb082..cfb286020b8ee87bad7edbda4cd0b999
for(Player player : this.players()) {
if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 485411ddc5ccbe17bc0ecd7caa9a8d5a15f042a7..93cf8f31d0cfc8d98519eab0c953271c4a10b548 100644
+index f43a728eba966992831d040a0ed96f5720d8d15c..ab9880eb5a7db6951cee329656c06e9e956ec2ad 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1959,8 +1959,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1958,8 +1958,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
return this.getHandle().locale;
diff --git a/patches/server/0026-Only-refresh-abilities-if-needed.patch b/patches/server/0026-Only-refresh-abilities-if-needed.patch
index 66ff8de83..1c231f965 100644
--- a/patches/server/0026-Only-refresh-abilities-if-needed.patch
+++ b/patches/server/0026-Only-refresh-abilities-if-needed.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Only refresh abilities if needed
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 93cf8f31d0cfc8d98519eab0c953271c4a10b548..2f47906dffa9c11777cab6dfcc3b2eb65ab6f06a 100644
+index ab9880eb5a7db6951cee329656c06e9e956ec2ad..9a2a6e9ba09f4f6347926579ad5f803de4a6033f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1628,12 +1628,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1627,12 +1627,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setFlying(boolean value) {
diff --git a/patches/server/0039-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0039-Implement-PlayerLocaleChangeEvent.patch
index ab0f2cd5c..66d29897e 100644
--- a/patches/server/0039-Implement-PlayerLocaleChangeEvent.patch
+++ b/patches/server/0039-Implement-PlayerLocaleChangeEvent.patch
@@ -30,10 +30,10 @@ index 5940c2435dba421ee8480407f14827a2c876ac94..732622344982137b5ac051c6d510c786
this.locale = packet.language;
// Paper start
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2f47906dffa9c11777cab6dfcc3b2eb65ab6f06a..dd3e2db7ef1e60223ef14852b14495c2573bf2e8 100644
+index 9a2a6e9ba09f4f6347926579ad5f803de4a6033f..8fb5bcd3fcd7706fc62771b90107ed8efedd7d1c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1959,8 +1959,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1958,8 +1958,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
diff --git a/patches/server/0040-Per-Player-View-Distance-API-placeholders.patch b/patches/server/0040-Per-Player-View-Distance-API-placeholders.patch
index 62d513341..cb6553f07 100644
--- a/patches/server/0040-Per-Player-View-Distance-API-placeholders.patch
+++ b/patches/server/0040-Per-Player-View-Distance-API-placeholders.patch
@@ -60,10 +60,10 @@ index 1357bc97801f892e59fc8e89c3cc2d697894ccfb..cf9c2456004ce5fc0e38da33251f66df
// 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 26a5622bb2cb966c34005ebec0877103642fcfee..da355537a0d0a651ef3d43a8a331f382e9effc43 100644
+index 8fb5bcd3fcd7706fc62771b90107ed8efedd7d1c..794eea1b7c897f384e8eafe654fb5628e43f6fda 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -403,6 +403,46 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -402,6 +402,46 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
connection.disconnect(message == null ? net.kyori.adventure.text.Component.empty() : message);
}
}
diff --git a/patches/server/0052-Player-Tab-List-and-Title-APIs.patch b/patches/server/0052-Player-Tab-List-and-Title-APIs.patch
index bb7793545..d026f9065 100644
--- a/patches/server/0052-Player-Tab-List-and-Title-APIs.patch
+++ b/patches/server/0052-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 82a6eb9db090f254add880c8a289f948c82d5a64..25489d8aec04821d257badf009f66bb89fa8d04c 100644
+index 794eea1b7c897f384e8eafe654fb5628e43f6fda..2c12861a76f2340fc4c8f0d4fd271ae8de35badd 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 82a6eb9db090f254add880c8a289f948c82d5a64..25489d8aec04821d257badf009f66bb8
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.BaseEncoding;
-@@ -268,6 +269,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -267,6 +268,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
diff --git a/patches/server/0055-Configurable-inter-world-teleportation-safety.patch b/patches/server/0055-Configurable-inter-world-teleportation-safety.patch
index ed40c6ee7..7153e9678 100644
--- a/patches/server/0055-Configurable-inter-world-teleportation-safety.patch
+++ b/patches/server/0055-Configurable-inter-world-teleportation-safety.patch
@@ -30,10 +30,10 @@ index 66dd2ebda5692157e397f7ddafd96a492e53c9e9..45b51fea6ba4381e4d245d70b5671f6e
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 25489d8aec04821d257badf009f66bb89fa8d04c..f7e77a911ea950efc6be76d4d2c6b3fdf66a383c 100644
+index 2c12861a76f2340fc4c8f0d4fd271ae8de35badd..b3c02dc06fcf2c47f2f6d1cb517786cfd824f987 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1032,7 +1032,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1031,7 +1031,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (fromWorld == toWorld) {
entity.connection.teleport(to);
} else {
diff --git a/patches/server/0061-Complete-resource-pack-API.patch b/patches/server/0061-Complete-resource-pack-API.patch
index fe24c871b..84ad1ca89 100644
--- a/patches/server/0061-Complete-resource-pack-API.patch
+++ b/patches/server/0061-Complete-resource-pack-API.patch
@@ -23,10 +23,10 @@ index 984209f32015d765367fd7693fb759de571b9ad0..9b057950417704669fdeb80efb241790
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f7e77a911ea950efc6be76d4d2c6b3fdf66a383c..92530a0ebb73c0b2598cd21c6312b0d83c0f0edf 100644
+index b3c02dc06fcf2c47f2f6d1cb517786cfd824f987..b737c2bfe539f9758bb8368675bec270f8365786 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -145,6 +145,7 @@ import org.bukkit.plugin.Plugin;
+@@ -144,6 +144,7 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.messaging.StandardMessenger;
import org.bukkit.profile.PlayerProfile;
import org.bukkit.scoreboard.Scoreboard;
@@ -34,7 +34,7 @@ index f7e77a911ea950efc6be76d4d2c6b3fdf66a383c..92530a0ebb73c0b2598cd21c6312b0d8
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
-@@ -163,6 +164,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -162,6 +163,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private double healthScale = 20;
private CraftWorldBorder clientWorldBorder = null;
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
@@ -45,7 +45,7 @@ index f7e77a911ea950efc6be76d4d2c6b3fdf66a383c..92530a0ebb73c0b2598cd21c6312b0d8
public CraftPlayer(CraftServer server, ServerPlayer entity) {
super(server, entity);
-@@ -2109,6 +2114,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2108,6 +2113,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean getAffectsSpawning() {
return this.getHandle().affectsSpawning;
}
diff --git a/patches/server/0069-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0069-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index 19f796a28..83b8e9868 100644
--- a/patches/server/0069-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0069-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -44,10 +44,10 @@ index 0eafee2cb706a20f9eb7c5a7e4f2fc81b9f952c9..80f8fe489ea403b48cd7b7218ce32d49
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 92530a0ebb73c0b2598cd21c6312b0d83c0f0edf..75bed7319bad695331f6cc633da5eec4b1d46f9f 100644
+index b737c2bfe539f9758bb8368675bec270f8365786..8c8f0df271cb1fab92aeb342289fa116cf5b93a8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1914,6 +1914,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1913,6 +1913,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setRealHealth(double health) {
diff --git a/patches/server/0118-String-based-Action-Bar-API.patch b/patches/server/0118-String-based-Action-Bar-API.patch
index 5f0b92561..74b3d941d 100644
--- a/patches/server/0118-String-based-Action-Bar-API.patch
+++ b/patches/server/0118-String-based-Action-Bar-API.patch
@@ -26,10 +26,10 @@ index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad
// 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 75bed7319bad695331f6cc633da5eec4b1d46f9f..cc4b9c69e7ccbf202c8ead328eb273e549bd21b3 100644
+index 8c8f0df271cb1fab92aeb342289fa116cf5b93a8..2f193f96eb5633fe1d06ec0d76fcbfc5b0ff5c7b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -275,6 +275,26 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -274,6 +274,26 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper start
diff --git a/patches/server/0157-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0157-Expose-client-protocol-version-and-virtual-host.patch
index 443789bb4..5fda23d3e 100644
--- a/patches/server/0157-Expose-client-protocol-version-and-virtual-host.patch
+++ b/patches/server/0157-Expose-client-protocol-version-and-virtual-host.patch
@@ -90,10 +90,10 @@ index 9016aced079108aeae09f030a672467a953ef93f..4170bda451df3db43e7d57d87d1abb81
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index cc4b9c69e7ccbf202c8ead328eb273e549bd21b3..58af2e8e2c0ede727f976e7a26eda75da0b48039 100644
+index 2f193f96eb5633fe1d06ec0d76fcbfc5b0ff5c7b..539b04ada489df2150b40f6d1b3c99fbaee32368 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -219,6 +219,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -218,6 +218,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
diff --git a/patches/server/0167-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0167-Ability-to-apply-mending-to-XP-API.patch
index 0883c5a63..55f132e9d 100644
--- a/patches/server/0167-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/server/0167-Ability-to-apply-mending-to-XP-API.patch
@@ -10,10 +10,10 @@ of giving the player experience points.
Both an API To standalone mend, and apply mending logic to .giveExp has been added.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 58af2e8e2c0ede727f976e7a26eda75da0b48039..3352880b06a25b90b338dc15c99e9df08caa86dc 100644
+index 539b04ada489df2150b40f6d1b3c99fbaee32368..b87be952c65e92c99bbb4ca961519ba20ebb4155 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1347,7 +1347,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1346,7 +1346,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
@Override
diff --git a/patches/server/0180-Player.setPlayerProfile-API.patch b/patches/server/0180-Player.setPlayerProfile-API.patch
index 3b7e23734..a304d1ecf 100644
--- a/patches/server/0180-Player.setPlayerProfile-API.patch
+++ b/patches/server/0180-Player.setPlayerProfile-API.patch
@@ -24,10 +24,10 @@ index 5c73ee9b2d3328c9174db067ce674401d7ff5dc9..136ff7de4ffb91d3fc84a90560a2f5db
playerName = gameProfile.getName();
uniqueId = gameProfile.getId();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 67ef5832f475894feea4345b50fbbdd3a02c8ea1..b666b1a52d35b2092f8095f7257fd1581f6766d9 100644
+index b87be952c65e92c99bbb4ca961519ba20ebb4155..09cde5fc320be42f2bd1e9f3aa7c1c70eabf2923 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -76,6 +76,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
+@@ -75,6 +75,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.level.GameType;
import net.minecraft.world.level.block.Blocks;
@@ -35,7 +35,7 @@ index 67ef5832f475894feea4345b50fbbdd3a02c8ea1..b666b1a52d35b2092f8095f7257fd158
import net.minecraft.world.level.block.entity.SignBlockEntity;
import net.minecraft.world.level.border.BorderChangeListener;
import net.minecraft.world.level.saveddata.maps.MapDecoration;
-@@ -202,11 +203,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -201,11 +202,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return server.getPlayer(getUniqueId()) != null;
}
@@ -47,7 +47,7 @@ index 67ef5832f475894feea4345b50fbbdd3a02c8ea1..b666b1a52d35b2092f8095f7257fd158
@Override
public InetSocketAddress getAddress() {
if (this.getHandle().connection == null) return null;
-@@ -1480,8 +1476,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1479,8 +1475,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.hiddenEntities.put(entity.getUniqueId(), hidingPlugins);
// Remove this entity from the hidden player's EntityTrackerEntry
@@ -64,7 +64,7 @@ index 67ef5832f475894feea4345b50fbbdd3a02c8ea1..b666b1a52d35b2092f8095f7257fd158
ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId());
if (entry != null) {
entry.removePlayer(this.getHandle());
-@@ -1494,8 +1497,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1493,8 +1496,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.REMOVE_PLAYER, otherPlayer));
}
}
@@ -73,7 +73,7 @@ index 67ef5832f475894feea4345b50fbbdd3a02c8ea1..b666b1a52d35b2092f8095f7257fd158
}
@Override
-@@ -1532,8 +1533,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1531,8 +1532,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
this.hiddenEntities.remove(entity.getUniqueId());
@@ -90,7 +90,7 @@ index 67ef5832f475894feea4345b50fbbdd3a02c8ea1..b666b1a52d35b2092f8095f7257fd158
if (other instanceof ServerPlayer) {
ServerPlayer otherPlayer = (ServerPlayer) other;
-@@ -1544,9 +1552,51 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1543,9 +1551,51 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (entry != null && !entry.seenBy.contains(this.getHandle().connection)) {
entry.updatePlayer(this.getHandle());
}
diff --git a/patches/server/0186-Flag-to-disable-the-channel-limit.patch b/patches/server/0186-Flag-to-disable-the-channel-limit.patch
index 3f124b16d..b3ad36eaf 100644
--- a/patches/server/0186-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0186-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 b666b1a52d35b2092f8095f7257fd1581f6766d9..5e6ef43ee8875cb09a915a657ec25f63d9480ba3 100644
+index 09cde5fc320be42f2bd1e9f3aa7c1c70eabf2923..7a7fe687f4d6d0439024b58651a7815d951625cb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -168,6 +168,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -167,6 +167,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 b666b1a52d35b2092f8095f7257fd1581f6766d9..5e6ef43ee8875cb09a915a657ec25f63
// Paper end
public CraftPlayer(CraftServer server, ServerPlayer entity) {
-@@ -1796,7 +1797,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1795,7 +1796,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
public void addChannel(String channel) {
diff --git a/patches/server/0215-InventoryCloseEvent-Reason-API.patch b/patches/server/0215-InventoryCloseEvent-Reason-API.patch
index f41166b92..7043697da 100644
--- a/patches/server/0215-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0215-InventoryCloseEvent-Reason-API.patch
@@ -174,10 +174,10 @@ index 6c708f65b3a3718c7b53e0c2cc12ee8ad62ff2b9..a6ac2fdcda24ec031d5d2ea9e4492614
@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 5e6ef43ee8875cb09a915a657ec25f63d9480ba3..331dd7f22d71719e7598b076246b9dcaffa77562 100644
+index 7a7fe687f4d6d0439024b58651a7815d951625cb..47abdbaa2663efb4817396d49389f7f3719c5f74 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1061,7 +1061,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1060,7 +1060,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Close any foreign inventory
if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) {
diff --git a/patches/server/0219-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0219-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
index 0eb87837e..960142294 100644
--- a/patches/server/0219-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
+++ b/patches/server/0219-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread
diff --git a/build.gradle.kts b/build.gradle.kts
-index e1cc5d05d9826ce897e5c2f71ddfe4811c010c38..344787b84f91627e4f33288c75eacd2bca7bcc3f 100644
+index 0bff41bce07cb0fed23346704538a0577f2bc88b..87789b8b857ae4e89a158fb356fb5bb1a4ae93b1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -25,6 +25,7 @@ dependencies {
@@ -14,8 +14,8 @@ index e1cc5d05d9826ce897e5c2f71ddfe4811c010c38..344787b84f91627e4f33288c75eacd2b
runtimeOnly("mysql:mysql-connector-java:8.0.29")
+ runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
- runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.4")
- runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.2")
+ runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index 476f4a5cbe664ddd05474cb88553018bd334a5b8..3dc317e466e1b93dff030794dd7f29ca1b266778 100644
--- a/src/main/resources/log4j2.xml
diff --git a/patches/server/0255-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0255-Expose-attack-cooldown-methods-for-Player.patch
index 9d1973f7a..8f1ba3c31 100644
--- a/patches/server/0255-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/server/0255-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 0ac8f15b0cecbee7087df8cf92889850c21ac9f0..bbde07e39a2d7b2b29212d2b583048e7bf410dc4 100644
+index 47abdbaa2663efb4817396d49389f7f3719c5f74..60b016aed7c70385abb14b2b2266fc70adf788a6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2506,6 +2506,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2505,6 +2505,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.adventure$pointers;
}
diff --git a/patches/server/0256-Improve-death-events.patch b/patches/server/0256-Improve-death-events.patch
index a5f394a30..93116d75f 100644
--- a/patches/server/0256-Improve-death-events.patch
+++ b/patches/server/0256-Improve-death-events.patch
@@ -310,10 +310,10 @@ index b2a64c75a9ef3ad2f1129cd7dc59d713c4768539..a885e4a63f9ffb70b305b6d8c0f0dedf
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 72caa9a230318ce87364446682a4ced67ec2d2c5..12d15eacf915a38ce9af8382d22f25a3b4fef751 100644
+index 60b016aed7c70385abb14b2b2266fc70adf788a6..6d5b004ffcca0ca76e065d5c5e8c0917154247d4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2056,7 +2056,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2055,7 +2055,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void sendHealthUpdate() {
diff --git a/patches/server/0294-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0294-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
index 8ae21eb9f..df1116792 100644
--- a/patches/server/0294-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/server/0294-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
@@ -106,10 +106,10 @@ index f6665825e62a0cd912e6b06df6d68795596486f0..1f2bc88d4570c6ef00e67a772b745e0b
public Location getBedSpawnLocation() {
CompoundTag data = this.getData();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f14c0dd16b2b9bd2d3bdfbc786176bc18cc76dcf..dae6fc86e5578e7ffa91a0180ed654249f039645 100644
+index 6d5b004ffcca0ca76e065d5c5e8c0917154247d4..d1a5c35e66f451a593066fc4b1e86f9344c71fbb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -169,6 +169,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -168,6 +168,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus;
private String resourcePackHash;
private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit
@@ -117,7 +117,7 @@ index f14c0dd16b2b9bd2d3bdfbc786176bc18cc76dcf..dae6fc86e5578e7ffa91a0180ed65424
// Paper end
public CraftPlayer(CraftServer server, ServerPlayer entity) {
-@@ -1668,6 +1669,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1667,6 +1668,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.firstPlayed = firstPlayed;
}
@@ -136,7 +136,7 @@ index f14c0dd16b2b9bd2d3bdfbc786176bc18cc76dcf..dae6fc86e5578e7ffa91a0180ed65424
public void readExtraData(CompoundTag nbttagcompound) {
this.hasPlayedBefore = true;
if (nbttagcompound.contains("bukkit")) {
-@@ -1690,6 +1703,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1689,6 +1702,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setExtraData(CompoundTag nbttagcompound) {
@@ -145,7 +145,7 @@ index f14c0dd16b2b9bd2d3bdfbc786176bc18cc76dcf..dae6fc86e5578e7ffa91a0180ed65424
if (!nbttagcompound.contains("bukkit")) {
nbttagcompound.put("bukkit", new CompoundTag());
}
-@@ -1704,6 +1719,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1703,6 +1718,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
data.putLong("firstPlayed", this.getFirstPlayed());
data.putLong("lastPlayed", System.currentTimeMillis());
data.putString("lastKnownName", handle.getScoreboardName());
diff --git a/patches/server/0296-Block-Entity-remove-from-being-called-on-Players.patch b/patches/server/0296-Block-Entity-remove-from-being-called-on-Players.patch
index 2bb209bd9..69aa0370f 100644
--- a/patches/server/0296-Block-Entity-remove-from-being-called-on-Players.patch
+++ b/patches/server/0296-Block-Entity-remove-from-being-called-on-Players.patch
@@ -12,10 +12,10 @@ Player we will look at limiting the scope of this change. It appears to
be unintentional in the few cases we've seen so far.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index dae6fc86e5578e7ffa91a0180ed654249f039645..52b00369facc700079dbddc35291072977c2b8ce 100644
+index d1a5c35e66f451a593066fc4b1e86f9344c71fbb..9bce12ed1842934fb05233337d2571ad44f7fe07 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2553,6 +2553,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2552,6 +2552,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetCooldown() {
getHandle().resetAttackStrengthTicker();
}
diff --git a/patches/server/0393-Implement-Player-Client-Options-API.patch b/patches/server/0393-Implement-Player-Client-Options-API.patch
index 97e765d62..15d75526b 100644
--- a/patches/server/0393-Implement-Player-Client-Options-API.patch
+++ b/patches/server/0393-Implement-Player-Client-Options-API.patch
@@ -97,10 +97,10 @@ index b4d5817998d8aa0c6e6eb3c01af0bc1d804e794b..108561244fa1062cd98be76fdff471fd
if (getMainArm() != packet.mainHand()) {
PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 52b00369facc700079dbddc35291072977c2b8ce..4c3321a0645cfdbb651a87078d577776c62729a3 100644
+index 9bce12ed1842934fb05233337d2571ad44f7fe07..9747023b0102c055e56b5a8434d3e003d1ed1059 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -575,6 +575,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -574,6 +574,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSendViewDistance(int viewDistance) {
throw new UnsupportedOperationException("Per-Player View Distance APIs need further understanding to properly implement (There are per world view distances though!)"); // TODO
}
diff --git a/patches/server/0410-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0410-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
index a423c555a..01ca15241 100644
--- a/patches/server/0410-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
+++ b/patches/server/0410-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Deobfuscate stacktraces in log messages, crash reports, and
diff --git a/build.gradle.kts b/build.gradle.kts
-index 7dd1c9449a1e6a9197e2915399feabf63f490b0a..9bd09c4465f5fe1cd68b63da293f506da4b17a72 100644
+index 37ad9068b27e0d342ff62dfd9ce65d7f79fe56c7..21767024545269ca83f0fd4b64f02001408cd6ca 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,4 +1,6 @@
@@ -25,8 +25,8 @@ index 7dd1c9449a1e6a9197e2915399feabf63f490b0a..9bd09c4465f5fe1cd68b63da293f506d
implementation("org.apache.logging.log4j:log4j-iostreams:2.17.1") // Paper
implementation("org.ow2.asm:asm:9.3")
@@ -32,6 +35,8 @@ dependencies {
- runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.2")
- runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.2")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
+ implementation("net.fabricmc:mapping-io:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation
+
diff --git a/patches/server/0462-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/patches/server/0462-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
index af1b19842..1d40808d9 100644
--- a/patches/server/0462-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
+++ b/patches/server/0462-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
@@ -1194,10 +1194,10 @@ index 62aef8853b168d6330fb3fe357dfb8de310cc37f..d84db6b9cbabd7979c391fa7d1ae1f55
net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk) either.left().orElse(null);
if (chunk != null) addTicket(x, z); // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4c3321a0645cfdbb651a87078d577776c62729a3..664c93c4f26edf7f84c6cff02f97b18b8d40f851 100644
+index 9747023b0102c055e56b5a8434d3e003d1ed1059..eb6834639a434fd7938b071243fb64ab2205593f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1029,6 +1029,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1028,6 +1028,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
throw new UnsupportedOperationException("Cannot set rotation of players. Consider teleporting instead.");
}
diff --git a/patches/server/0475-Brand-support.patch b/patches/server/0475-Brand-support.patch
index cf7861931..57487cc30 100644
--- a/patches/server/0475-Brand-support.patch
+++ b/patches/server/0475-Brand-support.patch
@@ -56,10 +56,10 @@ index fdf77097cff7c3af87e390b0bfd9e8aadf7c55ec..5c00238e29cfd6ed107e3bf988a9ac2e
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 664c93c4f26edf7f84c6cff02f97b18b8d40f851..63ef47bc63e32d2443b3b2aa3a77258269843d9d 100644
+index eb6834639a434fd7938b071243fb64ab2205593f..a201182e05004a08225ac4e9f5bdf75aa46d59c9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2690,6 +2690,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2692,6 +2692,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
};
diff --git a/patches/server/0512-Player-elytra-boost-API.patch b/patches/server/0512-Player-elytra-boost-API.patch
index c89df6da7..7ca27969c 100644
--- a/patches/server/0512-Player-elytra-boost-API.patch
+++ b/patches/server/0512-Player-elytra-boost-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 63ef47bc63e32d2443b3b2aa3a77258269843d9d..9cee24c3f4b36296b87467278f2af2e45266a15a 100644
+index a201182e05004a08225ac4e9f5bdf75aa46d59c9..89e0bbba593ad0dad2332758ad8df43095955b07 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -593,6 +593,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -592,6 +592,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
throw new RuntimeException("Unknown settings type");
}
diff --git a/patches/server/0526-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0526-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
index 70b71e938..d95668850 100644
--- a/patches/server/0526-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
+++ b/patches/server/0526-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
@@ -5,10 +5,10 @@ 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 9cee24c3f4b36296b87467278f2af2e45266a15a..b8cc0116f5ffaa5c9c6fd2a8661c88a7e7f70370 100644
+index 89e0bbba593ad0dad2332758ad8df43095955b07..d4348385ee8330398bfe543311c9256e93334861 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2255,7 +2255,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2254,7 +2254,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());
}
diff --git a/patches/server/0566-Add-sendOpLevel-API.patch b/patches/server/0566-Add-sendOpLevel-API.patch
index bc3651ada..70b002270 100644
--- a/patches/server/0566-Add-sendOpLevel-API.patch
+++ b/patches/server/0566-Add-sendOpLevel-API.patch
@@ -32,10 +32,10 @@ index 9a27895d9528dd10e196fe7e7d2fb9d7561fa704..7662e4f590d9e3146783239a662b4527
public boolean isWhiteListed(GameProfile profile) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b8cc0116f5ffaa5c9c6fd2a8661c88a7e7f70370..d46ac0b59f4a3f4977dca2f499754cdc312fd688 100644
+index d4348385ee8330398bfe543311c9256e93334861..91027504dd2963806ec52f773fc768a1288e15f2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -607,6 +607,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -606,6 +606,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
? (org.bukkit.entity.Firework) entity.getBukkitEntity()
: null;
}
diff --git a/work/Bukkit b/work/Bukkit
index b93194d14..4b08dbc5c 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit b93194d14a2bec34b8106d79094c35b10cc18466
+Subproject commit 4b08dbc5ce3ddb031df2cff7be350842670f1929
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 64c15270e..c3f219edb 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 64c15270e76475e68b2167d4bfba162a4a827fe0
+Subproject commit c3f219edbe18a6323b1c072d833fa2dd5ca727ec
diff --git a/work/Spigot b/work/Spigot
index 87c4d13ae..ee737122a 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit 87c4d13aee2e4a6ec924342c8b4642c87602aacc
+Subproject commit ee737122ade6975c33c206b0c753f4dd29cfafb4