From 078fbd108c9dc742124966b4fd6dcda17faaf101 Mon Sep 17 00:00:00 2001 From: AlphaKR93 Date: Sat, 23 Sep 2023 19:07:07 +0900 Subject: [PATCH] Updated Upstream (Paper) temporary dropped bump dependencies patches for better patches --- build.gradle.kts | 42 +++--- FixupAPI.sh => fxapi.sh | 0 FixupServer.sh => fxsrv.sh | 0 gradle.properties | 2 +- PatchAPI.sh => mkapi.sh | 0 PatchServer.sh => mksrv.sh | 0 patches/api/0001-Pufferfish-API-Changes.patch | 4 +- patches/api/0002-Purpur-API-Changes.patch | 18 +-- patches/api/0004-Bump-Dependencies.patch | 86 ------------ ...ages.patch => 0004-Publish-Packages.patch} | 4 +- ...h => 0005-Optimize-spigot-event-bus.patch} | 0 .../0001-Pufferfish-Server-Changes.patch | 24 ++-- .../server/0002-Purpur-Server-Changes.patch | 128 +++++++++--------- patches/server/0004-Rebrand.patch | 20 +-- patches/server/0006-Bump-Dependencies.patch | 92 ------------- ...patch => 0006-Plazma-Configurations.patch} | 18 +-- ...rics.patch => 0007-Add-more-metrics.patch} | 0 ...008-Optimize-Default-Configurations.patch} | 20 +-- ... => 0009-ChunkSending-Configuration.patch} | 0 ...atch => 0010-Implement-ChunkSending.patch} | 0 ...h => 0011-Console-Log-Configuration.patch} | 0 ...ks.patch => 0012-Console-log-tweaks.patch} | 0 ...> 0013-Player-configuration-section.patch} | 0 ...4-Add-option-to-allow-any-usernames.patch} | 0 ...to-bypass-reducedDebugInfo-gamerule.patch} | 0 ...issing-purpur-configuration-options.patch} | 0 ...tch => 0017-Structure-Configuration.patch} | 0 ...018-Configurable-nether-portal-size.patch} | 0 ...on.patch => 0019-Misc-configuration.patch} | 0 ... 0020-Reduce-create-random-instance.patch} | 2 +- ....patch => 0021-Entity-Configuration.patch} | 0 ...patch => 0022-Various-Optimizations.patch} | 0 ...-to-disable-moved-to-quickly-check-.patch} | 2 +- ...m.patch => 0024-Apply-faster-random.patch} | 0 ...-Do-not-send-useless-entity-packets.patch} | 0 ... 0026-No-Chat-Reports-Configuration.patch} | 0 ...h => 0027-Implement-No-Chat-Reports.patch} | 2 +- ...h => 0028-FixMySpawnR-Configuration.patch} | 0 ...patch => 0029-Implement-FixMySpawnR.patch} | 0 ...tch => 0030-Implement-MemoryLeakFix.patch} | 0 ...rk.patch => 0031-Reduce-Sensor-Work.patch} | 2 +- ...ch => 0032-Configurable-Sensor-Tick.patch} | 2 +- ...Ints.patch => 0033-Optimize-VarInts.patch} | 0 ...034-Variable-entity-wakeup-duration.patch} | 0 ... => 0035-More-optimise-state-lookup.patch} | 0 ...Suppress-Error-From-DirtyAttributes.patch} | 0 ...patch => 0037-Implement-FerriteCore.patch} | 0 ... => 0038-Skip-event-if-no-listeners.patch} | 0 ...h => 0039-Optimize-spigot-event-bus.patch} | 0 ...ns.patch => 0040-Reduce-allocations.patch} | 18 +-- ...h => 0041-CarpetFixes-Configuration.patch} | 0 ...petFixes-Optimizations-BiomeManager.patch} | 0 ...etFixes-Optimizations-RecipeManager.patch} | 0 ...044-CarpetFixes-Optimizations-Sheep.patch} | 2 +- ....patch => 0045-Async-PathProcessing.patch} | 4 +- 55 files changed, 155 insertions(+), 337 deletions(-) rename FixupAPI.sh => fxapi.sh (100%) mode change 100644 => 100755 rename FixupServer.sh => fxsrv.sh (100%) mode change 100644 => 100755 rename PatchAPI.sh => mkapi.sh (100%) mode change 100644 => 100755 rename PatchServer.sh => mksrv.sh (100%) mode change 100644 => 100755 delete mode 100644 patches/api/0004-Bump-Dependencies.patch rename patches/api/{0005-Publish-Packages.patch => 0004-Publish-Packages.patch} (86%) rename patches/api/{0006-Optimize-spigot-event-bus.patch => 0005-Optimize-spigot-event-bus.patch} (100%) delete mode 100644 patches/server/0006-Bump-Dependencies.patch rename patches/server/{0007-Plazma-Configurations.patch => 0006-Plazma-Configurations.patch} (98%) rename patches/server/{0008-Add-more-metrics.patch => 0007-Add-more-metrics.patch} (100%) rename patches/server/{0009-Optimize-Default-Configurations.patch => 0008-Optimize-Default-Configurations.patch} (97%) rename patches/server/{0010-ChunkSending-Configuration.patch => 0009-ChunkSending-Configuration.patch} (100%) rename patches/server/{0011-Implement-ChunkSending.patch => 0010-Implement-ChunkSending.patch} (100%) rename patches/server/{0012-Console-Log-Configuration.patch => 0011-Console-Log-Configuration.patch} (100%) rename patches/server/{0013-Console-log-tweaks.patch => 0012-Console-log-tweaks.patch} (100%) rename patches/server/{0014-Player-configuration-section.patch => 0013-Player-configuration-section.patch} (100%) rename patches/server/{0015-Add-option-to-allow-any-usernames.patch => 0014-Add-option-to-allow-any-usernames.patch} (100%) rename patches/server/{0016-Add-permission-to-bypass-reducedDebugInfo-gamerule.patch => 0015-Add-permission-to-bypass-reducedDebugInfo-gamerule.patch} (100%) rename patches/server/{0017-Add-missing-purpur-configuration-options.patch => 0016-Add-missing-purpur-configuration-options.patch} (100%) rename patches/server/{0018-Structure-Configuration.patch => 0017-Structure-Configuration.patch} (100%) rename patches/server/{0019-Configurable-nether-portal-size.patch => 0018-Configurable-nether-portal-size.patch} (100%) rename patches/server/{0020-Misc-configuration.patch => 0019-Misc-configuration.patch} (100%) rename patches/server/{0021-Reduce-create-random-instance.patch => 0020-Reduce-create-random-instance.patch} (99%) rename patches/server/{0022-Entity-Configuration.patch => 0021-Entity-Configuration.patch} (100%) rename patches/server/{0023-Various-Optimizations.patch => 0022-Various-Optimizations.patch} (100%) rename patches/server/{0024-Add-configuration-to-disable-moved-to-quickly-check-.patch => 0023-Add-configuration-to-disable-moved-to-quickly-check-.patch} (96%) rename patches/server/{0025-Apply-faster-random.patch => 0024-Apply-faster-random.patch} (100%) rename patches/server/{0026-Do-not-send-useless-entity-packets.patch => 0025-Do-not-send-useless-entity-packets.patch} (100%) rename patches/server/{0027-No-Chat-Reports-Configuration.patch => 0026-No-Chat-Reports-Configuration.patch} (100%) rename patches/server/{0028-Implement-No-Chat-Reports.patch => 0027-Implement-No-Chat-Reports.patch} (98%) rename patches/server/{0029-FixMySpawnR-Configuration.patch => 0028-FixMySpawnR-Configuration.patch} (100%) rename patches/server/{0030-Implement-FixMySpawnR.patch => 0029-Implement-FixMySpawnR.patch} (100%) rename patches/server/{0031-Implement-MemoryLeakFix.patch => 0030-Implement-MemoryLeakFix.patch} (100%) rename patches/server/{0032-Reduce-Sensor-Work.patch => 0031-Reduce-Sensor-Work.patch} (95%) rename patches/server/{0033-Configurable-Sensor-Tick.patch => 0032-Configurable-Sensor-Tick.patch} (95%) rename patches/server/{0034-Optimize-VarInts.patch => 0033-Optimize-VarInts.patch} (100%) rename patches/server/{0035-Variable-entity-wakeup-duration.patch => 0034-Variable-entity-wakeup-duration.patch} (100%) rename patches/server/{0036-More-optimise-state-lookup.patch => 0035-More-optimise-state-lookup.patch} (100%) rename patches/server/{0037-Suppress-Error-From-DirtyAttributes.patch => 0036-Suppress-Error-From-DirtyAttributes.patch} (100%) rename patches/server/{0038-Implement-FerriteCore.patch => 0037-Implement-FerriteCore.patch} (100%) rename patches/server/{0039-Skip-event-if-no-listeners.patch => 0038-Skip-event-if-no-listeners.patch} (100%) rename patches/server/{0040-Optimize-spigot-event-bus.patch => 0039-Optimize-spigot-event-bus.patch} (100%) rename patches/server/{0041-Reduce-allocations.patch => 0040-Reduce-allocations.patch} (99%) rename patches/server/{0042-CarpetFixes-Configuration.patch => 0041-CarpetFixes-Configuration.patch} (100%) rename patches/server/{0043-CarpetFixes-Optimizations-BiomeManager.patch => 0042-CarpetFixes-Optimizations-BiomeManager.patch} (100%) rename patches/server/{0044-CarpetFixes-Optimizations-RecipeManager.patch => 0043-CarpetFixes-Optimizations-RecipeManager.patch} (100%) rename patches/server/{0045-CarpetFixes-Optimizations-Sheep.patch => 0044-CarpetFixes-Optimizations-Sheep.patch} (98%) rename patches/server/{0046-Async-PathProcessing.patch => 0045-Async-PathProcessing.patch} (99%) diff --git a/build.gradle.kts b/build.gradle.kts index 7cd58ab14..bf83d142a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,30 +26,26 @@ dependencies { subprojects { apply(plugin = "java") - java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) + java.toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + + tasks { + withType().configureEach { + options.encoding = "UTF-8" + options.release.set(17) + } + + withType { + options.encoding = Charsets.UTF_8.name() + } + + withType { + filteringCharset = Charsets.UTF_8.name() + } + + withType { + minHeapSize = "2g" + maxHeapSize = "2g" } - } -} - -subprojects { - tasks.withType().configureEach { - options.encoding = "UTF-8" - options.release.set(17) - } - - tasks.withType { - options.encoding = Charsets.UTF_8.name() - } - - tasks.withType { - filteringCharset = Charsets.UTF_8.name() - } - - tasks.withType { - minHeapSize = "2g" - maxHeapSize = "2g" } repositories { diff --git a/FixupAPI.sh b/fxapi.sh old mode 100644 new mode 100755 similarity index 100% rename from FixupAPI.sh rename to fxapi.sh diff --git a/FixupServer.sh b/fxsrv.sh old mode 100644 new mode 100755 similarity index 100% rename from FixupServer.sh rename to fxsrv.sh diff --git a/gradle.properties b/gradle.properties index 20a8788fc..616875058 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.plazmamc.plazma version = 1.20.1-R0.1-SNAPSHOT -paperCommit = 29d1c7b60244bb002d29a5dcfc9c995019f550ab +paperCommit = 773dd724469bae89d0c2075edc3d1ddc8d5b0b18 org.gradle.caching = true org.gradle.parallel = true diff --git a/PatchAPI.sh b/mkapi.sh old mode 100644 new mode 100755 similarity index 100% rename from PatchAPI.sh rename to mkapi.sh diff --git a/PatchServer.sh b/mksrv.sh old mode 100644 new mode 100755 similarity index 100% rename from PatchServer.sh rename to mksrv.sh diff --git a/patches/api/0001-Pufferfish-API-Changes.patch b/patches/api/0001-Pufferfish-API-Changes.patch index f5a573943..be1a985ad 100644 --- a/patches/api/0001-Pufferfish-API-Changes.patch +++ b/patches/api/0001-Pufferfish-API-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Fri, 15 Sep 2023 16:37:43 +0000 +Date: Sat, 23 Sep 2023 08:26:16 +0000 Subject: [PATCH] Pufferfish API Changes Original: Kevin Raneri @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index 8045f92ffdfb4164bcbef99c41359590c45f9006..3676035ba011fb874ad6bb8995940d9bb2a0f0ae 100644 +index aed834334385ff3038ae69f3f34d129ad2507960..1ae1907f94a19c37b5820cfb3e9df3bd6bb1a49d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -46,6 +46,7 @@ dependencies { diff --git a/patches/api/0002-Purpur-API-Changes.patch b/patches/api/0002-Purpur-API-Changes.patch index 10c7a7742..eb7ee6a7e 100644 --- a/patches/api/0002-Purpur-API-Changes.patch +++ b/patches/api/0002-Purpur-API-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Fri, 15 Sep 2023 16:39:50 +0000 +Date: Sat, 23 Sep 2023 08:35:34 +0000 Subject: [PATCH] Purpur API Changes Original: PurpurMC @@ -25,7 +25,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build.gradle.kts b/build.gradle.kts -index 3676035ba011fb874ad6bb8995940d9bb2a0f0ae..0c557f34ed438980c6fd9d6a8bce7c1152468735 100644 +index 1ae1907f94a19c37b5820cfb3e9df3bd6bb1a49d..dfb989a18ab17fec3b8f0cf90ce2fc1048215265 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -109,6 +109,8 @@ tasks.jar { @@ -724,10 +724,10 @@ index 8d8fe04e6b09d2a5b1cc05002073df5c58cdcb96..aaef58468a3c31f35e5067ed4263e9dd + // Purpur end } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 6917931966377c51db88a3364997a110dd987970..bf39c6602cfca70a6352519fa26059cd79143cdd 100644 +index b8b97df069b28fa3cf32f1ad1f01f586a0cfbc78..63bf1d70cce9176f47a158a4a767b1bf38d60dbd 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3992,6 +3992,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4008,6 +4008,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public DragonBattle getEnderDragonBattle(); @@ -1200,10 +1200,10 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc + // Purpur end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f9dd00210c1762a40259f823aeb8d8a5ddc78e3e..9193288438671409cc3cf92033ef7cb60d798b69 100644 +index f59cbc92334c7b7b20e593a58232fb3c4434f12b..d3d5d2c78cc4ee36beaa355ef7e61ef13332abab 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3271,4 +3271,143 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3273,4 +3273,143 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end @@ -1491,7 +1491,7 @@ index c60be4fd24c7fdf65251dd6169e5e1ac3b588d95..569deccd2f1cf21da9b5906433ac493c + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index d15a74c38576c49df61cfab02c70fc5d8c0dd5f7..64055402076b62d32ba947830d935b79bae12d95 100644 +index 0af73cc04edb93b9772136d4d808f657ea40e733..c733206b769d7a55076d863757fcac1a129033b7 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -1513,8 +1513,8 @@ index d15a74c38576c49df61cfab02c70fc5d8c0dd5f7..64055402076b62d32ba947830d935b79 /** * Represents a stack of items. -@@ -986,4 +998,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat - return livingEntity.damageItemStack(this, amount); +@@ -1005,4 +1017,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat + return type.isAir() || amount <= 0; } // Paper end + diff --git a/patches/api/0004-Bump-Dependencies.patch b/patches/api/0004-Bump-Dependencies.patch deleted file mode 100644 index 1f33d7660..000000000 --- a/patches/api/0004-Bump-Dependencies.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: IPECTER -Date: Wed, 6 Sep 2023 12:43:06 +0900 -Subject: [PATCH] Bump-Dependencies - - -diff --git a/build.gradle.kts b/build.gradle.kts -index 0c557f34ed438980c6fd9d6a8bce7c1152468735..8f1fbec343461c83a6df141f7aa939e26e6e139e 100644 ---- a/build.gradle.kts -+++ b/build.gradle.kts -@@ -11,8 +11,8 @@ java { - val annotationsVersion = "24.0.1" - val bungeeCordChatVersion = "1.20-R0.1" - val adventureVersion = "4.14.0" --val slf4jVersion = "1.8.0-beta4" --val log4jVersion = "2.17.1" -+val slf4jVersion = "2.0.9" // Plazma - Bump Dependencies -+val log4jVersion = "2.20.0" // Plazma - Bump Dependencies - val apiAndDocs: Configuration by configurations.creating { - attributes { - attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION)) -@@ -27,16 +27,16 @@ configurations.api { - - dependencies { - // api dependencies are listed transitively to API consumers -- api("com.google.guava:guava:31.1-jre") -- api("com.google.code.gson:gson:2.10") -+ api("com.google.guava:guava:32.1.2-jre") // Plazma - Bump Dependencies -+ api("com.google.code.gson:gson:2.10.1") // Plazma - Bump Dependencies - api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.14") // Paper -- api("org.yaml:snakeyaml:2.0") -+ api("org.yaml:snakeyaml:2.2") // Plazma - Bump Dependencies - api("org.joml:joml:1.10.5") - // Paper start - api("com.googlecode.json-simple:json-simple:1.1.1") { - isTransitive = false // includes junit - } -- api("it.unimi.dsi:fastutil:8.5.6") -+ api("it.unimi.dsi:fastutil:8.5.12") // Plazma - Bump Dependencies - apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion")) - apiAndDocs("net.kyori:adventure-api") - apiAndDocs("net.kyori:adventure-text-minimessage") -@@ -46,31 +46,31 @@ dependencies { - apiAndDocs("net.kyori:adventure-text-logger-slf4j") - api("org.apache.logging.log4j:log4j-api:$log4jVersion") - api("org.slf4j:slf4j-api:$slf4jVersion") -- api("io.sentry:sentry:5.4.0") // Pufferfish -+ api("io.sentry:sentry:6.28.0") // Pufferfish // Plazma - Bump Dependencies - -- implementation("org.ow2.asm:asm:9.4") -- implementation("org.ow2.asm:asm-commons:9.4") -+ implementation("org.ow2.asm:asm:9.5") // Plazma - Bump Dependencies -+ implementation("org.ow2.asm:asm-commons:9.5") // Plazma - Bump Dependencies - // Paper end - -- api("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 -+ api("org.apache.maven:maven-resolver-provider:3.9.4") // Plazma - Bump Dependencies -+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.15") // Plazma - Bump Dependencies -+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.15") // Plazma - Bump Dependencies -+ compileOnly("com.google.code.findbugs:jsr305:3.0.2") // Paper // Plazma - Bump Dependencies - - val annotations = "org.jetbrains:annotations:$annotationsVersion" // Paper - we don't want Java 5 annotations... - compileOnly(annotations) - testCompileOnly(annotations) - - // Paper start - add checker -- val checkerQual = "org.checkerframework:checker-qual:3.21.0" -+ val checkerQual = "org.checkerframework:checker-qual:3.38.0" // Plazma - Bump Dependencies - compileOnlyApi(checkerQual) - testCompileOnly(checkerQual) - // Paper end -- testImplementation("org.mockito:mockito-core:4.9.0") // Paper - add mockito -+ testImplementation("org.mockito:mockito-core:5.5.0") // Paper - add mockito // Plazma - Bump Dependencies - -- testImplementation("org.apache.commons:commons-lang3:3.12.0") -- testImplementation("junit:junit:4.13.2") -- testImplementation("org.hamcrest:hamcrest-library:1.3") -+ testImplementation("org.apache.commons:commons-lang3:3.13.0") // Plazma - Bump Dependencies -+ testImplementation("junit:junit:4.13.2") // Plazma - Bump Dependencies -+ testImplementation("org.hamcrest:hamcrest-library:2.2") // Plazma - Bump Dependencies - testImplementation("org.ow2.asm:asm-tree:9.5") - } - diff --git a/patches/api/0005-Publish-Packages.patch b/patches/api/0004-Publish-Packages.patch similarity index 86% rename from patches/api/0005-Publish-Packages.patch rename to patches/api/0004-Publish-Packages.patch index 8da1fbc48..23a537fa4 100644 --- a/patches/api/0005-Publish-Packages.patch +++ b/patches/api/0004-Publish-Packages.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Publish-Packages diff --git a/build.gradle.kts b/build.gradle.kts -index 1261dbb7a1c22860922afd0ac8c341aea3569df3..299ce875ee51294d87b31571b624a7991e0fdb1c 100644 +index dfb989a18ab17fec3b8f0cf90ce2fc1048215265..bfcb6cf6cf29fec6e22a89cc6045c7030262bb1c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -163,3 +163,22 @@ tasks.check { +@@ -168,3 +168,22 @@ tasks.check { dependsOn(scanJar) } // Paper end diff --git a/patches/api/0006-Optimize-spigot-event-bus.patch b/patches/api/0005-Optimize-spigot-event-bus.patch similarity index 100% rename from patches/api/0006-Optimize-spigot-event-bus.patch rename to patches/api/0005-Optimize-spigot-event-bus.patch diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index c43721918..5ae344444 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Fri, 15 Sep 2023 16:37:43 +0000 +Date: Sat, 23 Sep 2023 08:26:16 +0000 Subject: [PATCH] Pufferfish Server Changes Original: Kevin Raneri @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index fb98936bb8a5488db75d676c5bcb4060597fbbf8..f6cd7b910ce41a254e71bf0fcfe93c38abbb1445 100644 +index 7e0580bbd0a557c7bb269507a99d25db07bf31f1..4d89c46c7ee559acf986ff5081a42fe91cb5a257 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -1520,7 +1520,7 @@ index c49802c936ae8e3f4dc1badd98414d96714ecd60..10501842887c1ffdb6bb667480682b71 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 65d947df910d60f478e7a449eb161e5105e2c0c9..3770ced0b227f7eea1f04d6afd5c14331f6a1480 100644 +index fb6cbcc4839aef7dc4bd4a49613f892b07aab353..d60ae9f8d3afe3e996a66331ee510cfa5841388c 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -342,7 +342,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1532,7 +1532,7 @@ index 65d947df910d60f478e7a449eb161e5105e2c0c9..3770ced0b227f7eea1f04d6afd5c1433 // Paper start - use distance map to optimise entity tracker this.playerEntityTrackerTrackMaps = new com.destroystokyo.paper.util.misc.PlayerAreaMap[TRACKING_RANGE_TYPES.length]; this.entityTrackerTrackRanges = new int[TRACKING_RANGE_TYPES.length]; -@@ -1593,8 +1593,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1596,8 +1596,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); } @@ -1561,7 +1561,7 @@ index 65d947df910d60f478e7a449eb161e5105e2c0c9..3770ced0b227f7eea1f04d6afd5c1433 Iterator iterator = this.entity.getIndirectPassengers().iterator(); while (iterator.hasNext()) { -@@ -1606,6 +1626,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1609,6 +1629,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider i = j; } } @@ -1783,7 +1783,7 @@ index 18aac3da3c88f33b1a71a5920a8daa27e9723913..eac31c3fcc9161711328588ac852fcae this.getRandomBlockPosition(j, 0, k, 15, blockposition); int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15) + 1; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3c0651fa5a5db880202c9a3805a6455269c5f16d..776c7df81d2b71a5610fe90475f4e8044850beab 100644 +index ab58827001b3b42e44d7f701c390480fed1fa1f1..6cafc20ce006872bedd28a34db11204c3c1fef58 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1233,6 +1233,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -1850,7 +1850,7 @@ index 241fec02e6869c638d3a160819b32173a081467b..6a8f9e8f5bf108674c47018def28906e public int getContainerSize() { return this.container1.getContainerSize() + this.container2.getContainerSize(); diff --git a/src/main/java/net/minecraft/world/Container.java b/src/main/java/net/minecraft/world/Container.java -index 04b1531572e8fff1e46fe1c94e7fc863841e0f66..47ddc42f2b63d9d3fae5ae6ea93d418352d76c94 100644 +index aee02acd4b2f2fdcb574c37c077fb57013ccb596..5a1c2d62c0e55c5bf16ca3e208dc486bf3b064b2 100644 --- a/src/main/java/net/minecraft/world/Container.java +++ b/src/main/java/net/minecraft/world/Container.java @@ -3,6 +3,8 @@ package net.minecraft.world; @@ -2196,7 +2196,7 @@ index 78c98f38bc263664ea4cd344670243a7d372885c..d265a32bd273beed0e65e224e1c5f9c0 if (this.isSpectator()) { return false; diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index e2a25c29ec74147b3e66aa0b3deb85a8f6ee53a5..f6eb032897c6d5d16ab5c8c287e49e189c24571c 100644 +index a99d737f71277ea3082816c7a7fc47ab3a201d30..7e453b4c49975bb06cb080f3626545286b947ddc 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -218,14 +218,16 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -2609,7 +2609,7 @@ index 96d664c28738d6090f7067761c2978dd1aa0fd0e..b1c24a02b87aca7b180a6efbce177f23 return false; } diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 1b7cf6d06bdf36f146656727511a461f2520762e..459aee61b519a40d9136546c0d9356562f5757c8 100644 +index a90317100d32974e481e14476843f66997a2cf3a..cd0629581bae5f805842157af36c2d838e01bee3 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -44,6 +44,36 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -2757,7 +2757,7 @@ index 2e60bdc44c33d434bfd9ca5bf8f75de799c6768c..565318c2afaa1661ed9963453a6354df autorecipestackmanager.initialize(this); // Paper - better exact choice recipes int i = 0; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 773bfdd3ed457a352b5329f280c0d10297d579ba..5c83d703211725ddc36602bb480545288d6a06d9 100644 +index 7d54c79f46f99f5500e9cb1f486037cafb27ee3a..21c11ff8d5ae9bf97dfcf3118cabe678deb4c064 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -273,6 +273,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -3362,7 +3362,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ec4b73321205b472f19fa5bd4ad95893020d1340..74c46cea456f4a736325892bb7b4d0f1b35b62cd 100644 +index 74d06790de674cbd230a0b14ac9a6b614c9f84ef..0f89716d1131178bd7ac927ef68337357139e2b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -265,7 +265,7 @@ import javax.annotation.Nullable; // Paper @@ -3374,7 +3374,7 @@ index ec4b73321205b472f19fa5bd4ad95893020d1340..74c46cea456f4a736325892bb7b4d0f1 private final String serverVersion; private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); -@@ -1140,6 +1140,11 @@ public final class CraftServer implements Server { +@@ -1120,6 +1120,11 @@ public final class CraftServer implements Server { plugin.getPluginMeta().getDisplayName(), "This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies." )); diff --git a/patches/server/0002-Purpur-Server-Changes.patch b/patches/server/0002-Purpur-Server-Changes.patch index 7167cd188..b829f6d08 100644 --- a/patches/server/0002-Purpur-Server-Changes.patch +++ b/patches/server/0002-Purpur-Server-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Fri, 15 Sep 2023 16:39:49 +0000 +Date: Sat, 23 Sep 2023 08:35:34 +0000 Subject: [PATCH] Purpur Server Changes Original: PurpurMC @@ -25,7 +25,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build.gradle.kts b/build.gradle.kts -index f6cd7b910ce41a254e71bf0fcfe93c38abbb1445..139e2b17b899da6f0147bb8b4412e2e54e817be4 100644 +index 4d89c46c7ee559acf986ff5081a42fe91cb5a257..3d5397e2e7edf2ea1e1687c58126fd9a5d5d5736 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,12 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -914,10 +914,10 @@ index d0a8092bf57a29ab7c00ec0ddf52a9fdb2a33267..defe5951938ce3a7b7f83017d4af36bb throw new IllegalStateException("Unable to get CCW facing of " + this); } diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 70aade6a8d36f8376cc567800258ea6fabb0607f..d44fde7e44cc862253fe577eb0753524ab7a39dc 100644 +index 8c2750de3be202122ccf9923a9fa32fcb8bdb743..7961a69d3e70a8ae1d74c732cd97a9cbd824a8d0 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -@@ -1186,6 +1186,23 @@ public interface DispenseItemBehavior { +@@ -1187,6 +1187,23 @@ public interface DispenseItemBehavior { } } }); @@ -1941,10 +1941,10 @@ index dd9f611efc95f7d06fd3011fedd5d0317b1d0a85..be7b3fe2dc84493dcde9e185717b0b7c + // Purpur end } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 3770ced0b227f7eea1f04d6afd5c14331f6a1480..319c469c20f3cb4f6d61425bfa6d98b55b55c4d6 100644 +index d60ae9f8d3afe3e996a66331ee510cfa5841388c..3a7c694ff0e248df3f4d168a5e2e883c0e3cb167 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -637,20 +637,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -640,20 +640,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected void tick(BooleanSupplier shouldKeepTicking) { @@ -1973,7 +1973,7 @@ index 3770ced0b227f7eea1f04d6afd5c14331f6a1480..319c469c20f3cb4f6d61425bfa6d98b5 } public boolean hasWork() { -@@ -1269,24 +1269,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1272,24 +1272,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper start - optimised tracker private final void processTrackQueue() { @@ -2002,7 +2002,7 @@ index 3770ced0b227f7eea1f04d6afd5c14331f6a1480..319c469c20f3cb4f6d61425bfa6d98b5 } } // Paper end - optimised tracker -@@ -1301,7 +1301,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1304,7 +1304,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -2011,7 +2011,7 @@ index 3770ced0b227f7eea1f04d6afd5c14331f6a1480..319c469c20f3cb4f6d61425bfa6d98b5 ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -1326,17 +1326,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1329,17 +1329,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } @@ -3158,7 +3158,7 @@ index 877498729c66de9aa6a27c9148f7494d7895615c..acd7468ee3c86d3456e96e4ec3d7e6a4 Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get())); hasSetFarWarned = true; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0bd757eec 100644 +index 6cafc20ce006872bedd28a34db11204c3c1fef58..255b422078880b46dfa6f5140f6c92fef057d09e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -265,6 +265,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -3449,16 +3449,16 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 } } while (!this.lastChatTimeStamp.compareAndSet(instant1, timestamp)); -@@ -2558,7 +2650,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic - } - } - // Paper End +@@ -2537,7 +2629,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + + public void handleCommand(String s) { // Paper - private -> public + org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher - co.aikar.timings.MinecraftTimings.playerCommandTimer.startTiming(); // Paper + //co.aikar.timings.MinecraftTimings.playerCommandTimer.startTiming(); // Paper // Purpur if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); -@@ -2568,7 +2660,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2547,7 +2639,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -3467,7 +3467,7 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 return; } -@@ -2581,7 +2673,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2560,7 +2652,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); return; } finally { @@ -3476,7 +3476,7 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 } } // CraftBukkit end -@@ -2857,6 +2949,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2836,6 +2928,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic AABB axisalignedbb = entity.getBoundingBox(); if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { @@ -3484,7 +3484,7 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 packet.dispatch(new ServerboundInteractPacket.Handler() { private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); -@@ -2870,6 +2963,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2849,6 +2942,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -3493,7 +3493,7 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 // 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)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. -@@ -3450,6 +3545,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3429,6 +3524,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } } @@ -3506,7 +3506,7 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 boolean flag1 = packet.getSlotNum() >= 1 && packet.getSlotNum() <= 45; boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty(); -@@ -3545,6 +3646,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3524,6 +3625,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { @@ -3523,7 +3523,7 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 //PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // CraftBukkit // Paper - This shouldn't be on the main thread if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { int i = (int) (Util.getMillis() - this.keepAliveTime); -@@ -3595,6 +3706,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3574,6 +3685,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -3531,7 +3531,7 @@ index 776c7df81d2b71a5610fe90475f4e8044850beab..9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0 @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3619,6 +3731,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3598,6 +3710,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } @@ -5257,7 +5257,7 @@ index d265a32bd273beed0e65e224e1c5f9c0bca7b3fb..49906b4dc8392eee592215d0b4cba852 }); } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd18f62f89 100644 +index 7e453b4c49975bb06cb080f3626545286b947ddc..5dd0c925af627f7159289dc1e3e79bc593c421f2 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -65,6 +65,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; @@ -5440,7 +5440,7 @@ index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd this.sendDebugPackets(); } -@@ -1166,6 +1195,12 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1173,6 +1202,12 @@ public abstract class Mob extends LivingEntity implements Targeting { } @@ -5453,7 +5453,7 @@ index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd @Nullable public static Item getEquipmentForSlot(EquipmentSlot equipmentSlot, int equipmentLevel) { switch (equipmentSlot) { -@@ -1260,7 +1295,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1267,7 +1302,7 @@ public abstract class Mob extends LivingEntity implements Targeting { RandomSource randomsource = world.getRandom(); this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.MULTIPLY_BASE)); @@ -5462,7 +5462,7 @@ index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd this.setLeftHanded(true); } else { this.setLeftHanded(false); -@@ -1308,6 +1343,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1315,6 +1350,7 @@ public abstract class Mob extends LivingEntity implements Targeting { if (!this.isAlive()) { return InteractionResult.PASS; } else if (this.getLeashHolder() == player) { @@ -5470,7 +5470,7 @@ index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd // CraftBukkit start - fire PlayerUnleashEntityEvent // Paper start - drop leash variable org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild); -@@ -1381,7 +1417,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1388,7 +1424,7 @@ public abstract class Mob extends LivingEntity implements Targeting { protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -5479,7 +5479,7 @@ index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd } public boolean isWithinRestriction() { -@@ -1686,6 +1722,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1693,6 +1729,7 @@ public abstract class Mob extends LivingEntity implements Targeting { this.setLastHurtMob(target); } @@ -5487,7 +5487,7 @@ index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd return flag; } -@@ -1702,17 +1739,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1709,17 +1746,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } public boolean isSunBurnTick() { @@ -5506,7 +5506,7 @@ index f6eb032897c6d5d16ab5c8c287e49e189c24571c..19d9d3a9f634631e2ec5a6fa7f2cd9dd } @Override -@@ -1759,4 +1786,56 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1766,4 +1793,56 @@ public abstract class Mob extends LivingEntity implements Targeting { return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); } @@ -11225,7 +11225,7 @@ index 4ce3e69970dd9eb251d0538a2d233ca30e9e5e47..afc65b8bb7e7f7f70a25f2d869412ed3 + // Purpur end - Shears can defuse TNT } diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index 9ca1e9d95e62929c0015d5ca2c2f9c70e421842e..dd84433a988712da9d799cbda2487a902315fb92 100644 +index 26c7b2f18f21b04529f989b345c385693d98c903..917648c2cc52790f40123b27b1cafa3fc3ba4b3f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -66,16 +66,19 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -15692,10 +15692,10 @@ index 0bbe853f7df93f9dcd2b21d762939f8b6be069aa..7db9844083703944f59e112c6dc5e1a5 public void tick() { super.tick(); diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 459aee61b519a40d9136546c0d9356562f5757c8..134b5758e5c6335a52ffb2703c3fa98dc792948e 100644 +index cd0629581bae5f805842157af36c2d838e01bee3..b0a559dfefac693bda8692a30fbaa5ac8062ef27 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -319,6 +319,6 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -326,6 +326,6 @@ public abstract class Projectile extends Entity implements TraceableEntity { public boolean mayInteract(Level world, BlockPos pos) { Entity entity = this.getOwner(); @@ -16103,7 +16103,7 @@ index b16d9e2eaa589f19c563ee70b1a56d67dbcdecb0..71beab673f04cd051c46ea37f8c84731 public static final FoodProperties BAKED_POTATO = (new FoodProperties.Builder()).nutrition(5).saturationMod(0.6F).build(); public static final FoodProperties BEEF = (new FoodProperties.Builder()).nutrition(3).saturationMod(0.3F).meat().build(); diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 71b7a091e56dd68da280d13318a393170967b042..9614a0b5b32d88a5b212e33af649ca1aa2a22dfd 100644 +index 7bba845462813615224f48322c51c7b480adcaa7..38d47fbcd49cc291040ea00470abeb982fe2714c 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -76,6 +76,7 @@ public abstract class AbstractContainerMenu { @@ -16348,7 +16348,7 @@ index 0dbfd23bbfc6ad203f048142f8c90ef741849fe1..9a80427d2bb470b6b1638e59aba57216 return new ChestMenu(MenuType.GENERIC_9x6, syncId, playerInventory, inventory, 6); } diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java -index 93e8316f9d64625dcc4df0644a2187bcc884ef65..1711406996ec4a9cb7b1838bd2446e5cf802e043 100644 +index 496c3fcf49043bba4d249e1c05aac7d7b4897ea8..f0a84889103cb605d3b1496f03d855848a5f5067 100644 --- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java @@ -38,6 +38,12 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent; @@ -16414,7 +16414,7 @@ index 93e8316f9d64625dcc4df0644a2187bcc884ef65..1711406996ec4a9cb7b1838bd2446e5c }); } diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index b56766ff0e61691294b40ea8c2370940c0e8b640..23a8522b80475ad29ffb4afd2f4836acda2538e3 100644 +index a21eadcdfbdc4be803c5793bc97996db3e706071..3b721092a7a73472756064e0eb91d3220fdc4bc8 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -95,9 +95,11 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -16510,10 +16510,10 @@ index c549618421c5d077c3d977d8d2064eca2acc438a..5972fa434847d24fa98b7895fd8386d2 @Override diff --git a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java -index ff770b9ce68a62418de0c7ed389650626fa1dcb2..102739c0089ff3f6b3432f954304d43a3dfebc35 100644 +index c2cf5a8e788637c6264cf43d712a5be223ff1cc5..a578882b64c581ef4f47fa483a9f2988cfa4c8cf 100644 --- a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java -@@ -177,7 +177,9 @@ public abstract class ItemCombinerMenu extends AbstractContainerMenu { +@@ -178,7 +178,9 @@ public abstract class ItemCombinerMenu extends AbstractContainerMenu { return ItemStack.EMPTY; } @@ -16978,7 +16978,7 @@ index 180aec596110309aade13d2080f8824d152b07cb..552c31c0f3746dd35388395036e70a92 return InteractionResult.PASS; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce37cc5656 100644 +index d138660e459b2d09ba9dd7ae2bf3da499d9ae25c..50ea2bc3f785dabc686162c895590b7d7f15a93d 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -113,6 +113,7 @@ import org.bukkit.event.world.StructureGrowEvent; @@ -16989,7 +16989,7 @@ index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { return instance.group(BuiltInRegistries.ITEM.byNameCodec().fieldOf("id").forGetter(ItemStack::getItem), Codec.INT.fieldOf("Count").forGetter(ItemStack::getCount), CompoundTag.CODEC.optionalFieldOf("tag").forGetter((itemstack) -> { return Optional.ofNullable(itemstack.getTag()); -@@ -426,6 +427,7 @@ public final class ItemStack { +@@ -427,6 +428,7 @@ public final class ItemStack { world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710 for (BlockState blockstate : blocks) { blockstate.update(true, false); @@ -16997,7 +16997,7 @@ index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce } world.preventPoiUpdated = false; -@@ -455,6 +457,7 @@ public final class ItemStack { +@@ -456,6 +458,7 @@ public final class ItemStack { if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically block.getBlock().onPlace(block, world, newblockposition, oldBlock, true, context); // Paper - pass context } @@ -17005,7 +17005,7 @@ index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce world.notifyAndUpdatePhysics(newblockposition, null, oldBlock, block, world.getBlockState(newblockposition), updateFlag, 512); // send null chunk as chunk.k() returns false by this point } -@@ -583,6 +586,16 @@ public final class ItemStack { +@@ -584,6 +587,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } @@ -17022,7 +17022,7 @@ index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce public int getDamageValue() { return this.tag == null ? 0 : this.tag.getInt("Damage"); } -@@ -602,7 +615,7 @@ public final class ItemStack { +@@ -603,7 +616,7 @@ public final class ItemStack { int j; if (amount > 0) { @@ -17031,7 +17031,7 @@ index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -657,6 +670,12 @@ public final class ItemStack { +@@ -658,6 +671,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); @@ -17044,7 +17044,7 @@ index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce // CraftBukkit start - Check for item breaking if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) { org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this); -@@ -1183,7 +1202,7 @@ public final class ItemStack { +@@ -1184,7 +1203,7 @@ public final class ItemStack { ListTag nbttaglist = this.tag.getList("Enchantments", 10); @@ -17053,7 +17053,7 @@ index 879cc823d56625867eb73bb621db6a13f40ad81c..7e68596e28db88213e9352f798c5a4ce processEnchantOrder(this.tag); // Paper } -@@ -1191,6 +1210,12 @@ public final class ItemStack { +@@ -1192,6 +1211,12 @@ public final class ItemStack { return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false; } @@ -17558,7 +17558,7 @@ index 8f97c9df726ac20cfce7bdddd5dd4f8c5aa76c35..4932374ab9a3d8582fb0ef024d817ad8 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5c83d703211725ddc36602bb480545288d6a06d9..80ab17142c34d576409e5fb353ff31db9673b2c0 100644 +index 21c11ff8d5ae9bf97dfcf3118cabe678deb4c064..713a091b8083e46b395311889c2a1482279c27ec 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -176,6 +176,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -17701,8 +17701,8 @@ index 5c83d703211725ddc36602bb480545288d6a06d9..80ab17142c34d576409e5fb353ff31db return (ProfilerFiller) this.profiler.get(); } -@@ -1573,4 +1619,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - return null; +@@ -1584,4 +1630,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + } } // Paper end + @@ -19326,7 +19326,7 @@ index 416aa989ebb18a8741cc9d605a1180ab830f6643..e38a0adf5463c48311ad08b8d2e5b5c2 @Override diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 3b866e2c20ee7bfc981ff09b29065530de993778..2e6220c5a6c871401ce9734adfab710dcf86ad44 100644 +index 5c951ef93fe4cf4f085df86b0cefc02bc2610ab9..2979c1eceaac79a82da19eba5d8fb1db6537ff45 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -84,6 +84,16 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -20356,7 +20356,7 @@ index c1b874cd6e0498fce3cd53fdbaca30d290e004d7..23087d511b609693f0bb06cbaac8b6cf + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103d83ad96c 100644 +index 0f89716d1131178bd7ac927ef68337357139e2b7..b21bc96232d0fd52e5dae7fa1c413714f8ddd7ee 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -265,7 +265,7 @@ import javax.annotation.Nullable; // Paper @@ -20387,9 +20387,9 @@ index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103 + }); + // Purpur end - // Register all the Enchantments and PotionTypes now so we can stop new registration immediately after - Enchantments.SHARPNESS.getClass(); -@@ -1057,6 +1071,7 @@ public final class CraftServer implements Server { + CraftRegistry.setMinecraftRegistry(console.registryAccess()); + +@@ -1037,6 +1051,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); @@ -20397,7 +20397,7 @@ index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103 for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1072,6 +1087,7 @@ public final class CraftServer implements Server { +@@ -1052,6 +1067,7 @@ public final class CraftServer implements Server { } } world.spigotConfig.init(); // Spigot @@ -20405,7 +20405,7 @@ index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103 } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1087,6 +1103,7 @@ public final class CraftServer implements Server { +@@ -1067,6 +1083,7 @@ public final class CraftServer implements Server { this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper @@ -20413,7 +20413,7 @@ index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -1552,6 +1569,55 @@ public final class CraftServer implements Server { +@@ -1532,6 +1549,55 @@ public final class CraftServer implements Server { return true; } @@ -20469,7 +20469,7 @@ index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103 @Override public List getRecipesFor(ItemStack result) { Preconditions.checkArgument(result != null, "ItemStack cannot be null"); -@@ -2891,6 +2957,7 @@ public final class CraftServer implements Server { +@@ -2871,6 +2937,7 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { return new double[] { @@ -20477,7 +20477,7 @@ index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103 net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(), net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(), net.minecraft.server.MinecraftServer.getServer().tps15.getAverage() -@@ -2937,6 +3004,18 @@ public final class CraftServer implements Server { +@@ -2917,6 +2984,18 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } @@ -20496,7 +20496,7 @@ index 74c46cea456f4a736325892bb7b4d0f1b35b62cd..b08d4a2a74392b1d59b1eeeab3108103 @Override public void restart() { org.spigotmc.RestartCommand.restart(); -@@ -3150,4 +3229,16 @@ public final class CraftServer implements Server { +@@ -3130,4 +3209,16 @@ public final class CraftServer implements Server { } // Paper end @@ -20567,7 +20567,7 @@ index f857f490ffba2f25f7c06c5fb1a1905f0b51fbe2..1392e483c363e25d1f16465d876cb7d7 public PersistentDataContainer getPersistentDataContainer() { return this.persistentDataContainer; diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 776b7fc26fe96b69be260bbd36efae147d988640..9a3374a1236164194ef0df43ed639296cbe1c731 100644 +index 7c29d92362a82330440dff151bcf421f15c68f71..4bc0a370c7aec06d30b4ebf7fa7d73263d0543bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -173,6 +173,20 @@ public class Main { @@ -20591,7 +20591,7 @@ index 776b7fc26fe96b69be260bbd36efae147d988640..9a3374a1236164194ef0df43ed639296 // Paper start acceptsAll(asList("server-name"), "Name of the server") .withRequiredArg() -@@ -284,7 +298,7 @@ public class Main { +@@ -292,7 +306,7 @@ public class Main { System.setProperty(net.minecrell.terminalconsole.TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper } @@ -21008,7 +21008,7 @@ index 0ad16ee7b33582d214dab41eeee378d52c8e38ed..16bd1294c219f15ada653ef810bc2d74 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4e6fea7cf11b1e29ae7c7098a6f5d06bb5f93cc2..668d825a2469706e4de11629a0b41877de700ca6 100644 +index 3d5876cbadb5c8c02de751c3e15fc7f251ea7d35..720a81da72a8002ff02cc39e5fca42354519c742 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -517,10 +517,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -27831,7 +27831,7 @@ index bf970bf3356a914459c2d6db93537ce2d32c7e18..08221c7256f41ca511a4a61ffb2b9793 sender.sendMessage(builder.asComponent()); if (args.length > 0 && args[0].equals("mem") && sender.hasPermission("bukkit.command.tpsmemory")) { diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 98fba0288be9ed2cb18ffba5cf81148157dd4fcf..0801dea155048ac5383295f4fef9bd597b678535 100644 +index 50c72e5db369a180f425eaaa0411cb8871bc3463..dbd502761ff6e6efb252bb41376a7ff028c73895 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -96,7 +96,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa diff --git a/patches/server/0004-Rebrand.patch b/patches/server/0004-Rebrand.patch index 28453b42d..6cb6bc9a4 100644 --- a/patches/server/0004-Rebrand.patch +++ b/patches/server/0004-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 139e2b17b899da6f0147bb8b4412e2e54e817be4..d8b27e3f2fa1ede41125ec27e129b1e1ad42caa7 100644 +index 3d5397e2e7edf2ea1e1687c58126fd9a5d5d5736..8a12e0dda9d03f265603b80c9fa108eea736ae84 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,7 +14,7 @@ val alsoShade: Configuration by configurations.creating @@ -153,13 +153,13 @@ index b5b6657e52e4f7a630229bd3ba433438af293e22..c468733f44ccb3ff4ba3c20921a4ec52 stringbuilder.append("// "); stringbuilder.append(CrashReport.getErrorComment()); diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index dae36c6452ccd57a436dd918547b64d59957ab0a..a8bf67cf0c579c407befe17d735440f1128d98c4 100644 +index a7ebf851a65231074c89a24f30de4ac2fb5b63e4..ed7bcd832340a7a46897f0275c99e72b7247a5de 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -112,6 +112,18 @@ public class Main { +@@ -111,6 +111,18 @@ public class Main { + */ // CraftBukkit end try { - + // Plazma start - Branding + System.out.println(""" + \033[38;2;236;61;151m┏\033[38;2;236;61;157m━\033[38;2;237;62;163m━\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m━\033[38;2;239;63;187m┓\033[38;2;239;63;193m \033[38;2;239;64;200m┏\033[38;2;240;64;206m━\033[38;2;240;64;212m┓\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m \033[38;2;232;67;243m┏\033[38;2;227;67;244m━\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m━\033[38;2;205;69;245m┓\033[38;2;200;69;246m \033[38;2;195;69;246m┏\033[38;2;189;70;246m━\033[38;2;184;70;247m━\033[38;2;179;70;247m━\033[38;2;173;71;247m━\033[38;2;168;71;248m━\033[38;2;163;72;248m━\033[38;2;157;72;249m┓\033[38;2;152;72;249m┏\033[38;2;147;73;249m━\033[38;2;141;73;250m━\033[38;2;136;74;250m┓\033[38;2;131;74;250m \033[38;2;125;74;251m \033[38;2;120;75;251m \033[38;2;115;75;251m┏\033[38;2;109;76;252m━\033[38;2;104;76;252m━\033[38;2;99;77;252m┓\033[38;2;94;77;253m \033[38;2;88;77;253m┏\033[38;2;83;78;253m━\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m━\033[38;2;80;97;255m┓\033[38;2;80;103;255m\s @@ -172,9 +172,9 @@ index dae36c6452ccd57a436dd918547b64d59957ab0a..a8bf67cf0c579c407befe17d735440f1 + LOGGER.warn("Warning! Plazma may cause unexpected problems, so be sure to test it thoroughly before using it on a public server."); + // Plazma end + - Path path = (Path) optionset.valueOf("pidFile"); // CraftBukkit - - if (path != null) { + // Paper start + if (Boolean.getBoolean("Paper.isRunDev")) { + net.minecraft.server.packs.VanillaPackResourcesBuilder.developmentConfig = builder -> { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index e6ddf69ade7ae51640569150f7db10d1afa63691..77b40f3d7162befe4da29a60b3de2b93b261412c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java @@ -220,7 +220,7 @@ index be7b3fe2dc84493dcde9e185717b0b7c7c2e9822..cfdaa744ff40c8a171ca9b36b305b326 servergui.runFinalizers(); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 80ab17142c34d576409e5fb353ff31db9673b2c0..32bd43692b701b49776c10d9c4332bb41322b9fa 100644 +index 713a091b8083e46b395311889c2a1482279c27ec..c80d73035b05bfb6b3639175c51bb37c477c28d1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1034,7 +1034,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -246,7 +246,7 @@ index 81554c321a78258ff78da3801f00d0fb90b9e113..ba2eab8a835c2396fca25d7993443d5d private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b08d4a2a74392b1d59b1eeeab3108103d83ad96c..8833a66f43e9a4ac486fa67db9e8147007917e15 100644 +index b21bc96232d0fd52e5dae7fa1c413714f8ddd7ee..875cc2357d17d37d8df921a84cf8af7b99d860f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -265,7 +265,7 @@ import javax.annotation.Nullable; // Paper @@ -335,7 +335,7 @@ index 3633574e112f217b412217dd243a631dc4e9c40c..d0d31002562e728fa1a6c9bc81baa453 serverModName = getString("settings.server-mod-name", serverModName); } diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 0801dea155048ac5383295f4fef9bd597b678535..efd83400279df0beafd3b8f0e82d0f3af209554a 100644 +index dbd502761ff6e6efb252bb41376a7ff028c73895..c765cb5dd8c3c1b668b7031e6c784ed9cf2d58e1 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -155,14 +155,14 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa diff --git a/patches/server/0006-Bump-Dependencies.patch b/patches/server/0006-Bump-Dependencies.patch deleted file mode 100644 index f0918c90d..000000000 --- a/patches/server/0006-Bump-Dependencies.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: IPECTER -Date: Wed, 6 Sep 2023 13:31:43 +0900 -Subject: [PATCH] Bump-Dependencies - - -diff --git a/build.gradle.kts b/build.gradle.kts -index d8b27e3f2fa1ede41125ec27e129b1e1ad42caa7..2c59ed16ea909b6535df3d1d40d83b065c03d041 100644 ---- a/build.gradle.kts -+++ b/build.gradle.kts -@@ -20,7 +20,7 @@ dependencies { - } - // Purpur end - // Paper start -- implementation("org.jline:jline-terminal-jansi:3.21.0") -+ implementation("org.jline:jline-terminal-jansi:3.23.0") // Plazma - Bump Dependencies - implementation("net.minecrell:terminalconsoleappender:1.3.0") - implementation("net.kyori:adventure-text-serializer-ansi:4.14.0") // Keep in sync with adventureVersion from Paper-API build file - implementation("net.kyori:ansi:1.0.3") // Manually bump beyond above transitive dep -@@ -30,48 +30,48 @@ dependencies { - all its classes to check if they are plugins. - Scanning takes about 1-2 seconds so adding this speeds up the server start. - */ -- implementation("org.apache.logging.log4j:log4j-core:2.19.0") // Paper - implementation -- log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.19.0") // Paper - Needed to generate meta for our Log4j plugins -+ implementation("org.apache.logging.log4j:log4j-core:2.20.0") // Paper - implementation -+ log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.20.0") // Paper - Needed to generate meta for our Log4j plugins - runtimeOnly(log4jPlugins.output) - alsoShade(log4jPlugins.output) -- implementation("io.netty:netty-codec-haproxy:4.1.87.Final") // Paper - Add support for proxy protocol -+ implementation("io.netty:netty-codec-haproxy:4.1.97.Final") // Paper - Add support for proxy protocol - // Paper end -- implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion -- implementation("org.ow2.asm:asm:9.4") -- implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation -- testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito -+ implementation("org.apache.logging.log4j:log4j-iostreams:2.20.0") // Paper - remove exclusion -+ implementation("org.ow2.asm:asm:9.5") -+ implementation("org.ow2.asm:asm-commons:9.5") // Paper - ASM event executor generation -+ testImplementation("org.mockito:mockito-core:5.5.0") // Paper - switch to mockito - implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files - implementation("commons-lang:commons-lang:2.6") -- implementation("net.fabricmc:mapping-io:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation -- runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.0") -+ implementation("net.fabricmc:mapping-io:0.4.2") // Paper - needed to read mappings for stacktrace deobfuscation -+ runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") - runtimeOnly("com.mysql:mysql-connector-j:8.0.33") - runtimeOnly("com.lmax:disruptor:3.4.4") // Paper - // Paper start - Use Velocity cipher -- implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") { -+ implementation("com.velocitypowered:velocity-native:3.2.0-SNAPSHOT") { - isTransitive = false - } - // Paper end - -- 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") -+ runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.4") -+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.15") -+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.15") - - implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur - implementation("org.mozilla:rhino-engine:1.7.14") // Purpur - implementation("dev.omega24:upnp4j:1.0") // Purpur - - // Pufferfish start -- implementation("org.yaml:snakeyaml:1.32") -+ implementation("org.yaml:snakeyaml:1.33") - implementation ("com.github.carleslc.Simple-YAML:Simple-Yaml:1.8.4") { - exclude(group="org.yaml", module="snakeyaml") - } - // Pufferfish end - -- testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test -+ testImplementation("io.github.classgraph:classgraph:4.8.162") // Paper - mob goal test - testImplementation("junit:junit:4.13.2") -- testImplementation("org.hamcrest:hamcrest-library:1.3") -+ testImplementation("org.hamcrest:hamcrest-library:2.2") - -- implementation("io.netty:netty-all:4.1.87.Final"); // Paper - Bump netty -+ implementation("io.netty:netty-all:4.1.97.Final"); // Paper - Bump netty - } - - val craftbukkitPackageVersion = "1_20_R1" // Paper -@@ -225,3 +225,6 @@ tasks.registerRunTask("runDev") { - description = "Spin up a non-relocated Mojang-mapped test server" - classpath(sourceSets.main.map { it.runtimeClasspath }) - } -+repositories { -+ mavenCentral() -+} diff --git a/patches/server/0007-Plazma-Configurations.patch b/patches/server/0006-Plazma-Configurations.patch similarity index 98% rename from patches/server/0007-Plazma-Configurations.patch rename to patches/server/0006-Plazma-Configurations.patch index 9e9958f25..4b6ee8003 100644 --- a/patches/server/0007-Plazma-Configurations.patch +++ b/patches/server/0006-Plazma-Configurations.patch @@ -263,7 +263,7 @@ index 221d1d0e1b4b46de6ebca5faac09bbda875fae17..e009dba395779e2c89a36fe4524e5d40 this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 32bd43692b701b49776c10d9c4332bb41322b9fa..a6e7d98d1f4848b11a3776d8e7a42a56a1543865 100644 +index c80d73035b05bfb6b3639175c51bb37c477c28d1..6d513c903e06fe79dffdffd02871d00cb958b715 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -174,7 +174,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -293,10 +293,10 @@ index 32bd43692b701b49776c10d9c4332bb41322b9fa..a6e7d98d1f4848b11a3776d8e7a42a56 this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur this.generator = gen; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8833a66f43e9a4ac486fa67db9e8147007917e15..153fcfc55589691a570080aa4f4e179452bf4f6c 100644 +index 875cc2357d17d37d8df921a84cf8af7b99d860f2..c43023fecf0882101248f625a28975586da05071 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1071,6 +1071,7 @@ public final class CraftServer implements Server { +@@ -1051,6 +1051,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); @@ -304,7 +304,7 @@ index 8833a66f43e9a4ac486fa67db9e8147007917e15..153fcfc55589691a570080aa4f4e1794 org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty -@@ -3004,6 +3005,13 @@ public final class CraftServer implements Server { +@@ -2984,6 +2985,13 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } @@ -319,7 +319,7 @@ index 8833a66f43e9a4ac486fa67db9e8147007917e15..153fcfc55589691a570080aa4f4e1794 @Override public YamlConfiguration getPurpurConfig() { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 9a3374a1236164194ef0df43ed639296cbe1c731..affd4c6267f60cbae75b6e6a09990144a1f1e1f0 100644 +index 4bc0a370c7aec06d30b4ebf7fa7d73263d0543bc..206cec149875137836437bd237c2ff52baad4f0e 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -173,6 +173,14 @@ public class Main { @@ -968,17 +968,17 @@ index 0000000000000000000000000000000000000000..469100cd86e6742eeebad22923097782 + +} diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java -index d1fd4cf65c31bc00d0bffa3123fc2223f1498a34..0aebabc83eea721e4f373fb00f4ee80b659efe83 100644 +index 52a6f1791c7de062d5d567d7cc9ee68731fd6e67..36ad8262b20cdd5ce4e94866c5d22cbdb5d5b385 100644 --- a/src/test/java/org/bukkit/support/AbstractTestingBase.java +++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java -@@ -63,6 +63,7 @@ public abstract class AbstractTestingBase { +@@ -64,6 +64,7 @@ public abstract class AbstractTestingBase { DummyEnchantments.setup(); io.papermc.paper.configuration.GlobalConfigTestingBase.setupGlobalConfigForTest(); // Paper + org.plazmamc.plazma.configurations.GlobalConfigurationTestingBase.setupGlobalConfigurationForTest(); // Plazma - ImmutableList.Builder builder = ImmutableList.builder(); - for (Material m : Material.values()) { + CraftRegistry.setMinecraftRegistry(REGISTRY_CUSTOM); + diff --git a/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java b/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java new file mode 100644 index 0000000000000000000000000000000000000000..2b9a17a2e04f7fb6b801920ed04133db9478f984 diff --git a/patches/server/0008-Add-more-metrics.patch b/patches/server/0007-Add-more-metrics.patch similarity index 100% rename from patches/server/0008-Add-more-metrics.patch rename to patches/server/0007-Add-more-metrics.patch diff --git a/patches/server/0009-Optimize-Default-Configurations.patch b/patches/server/0008-Optimize-Default-Configurations.patch similarity index 97% rename from patches/server/0009-Optimize-Default-Configurations.patch rename to patches/server/0008-Optimize-Default-Configurations.patch index c6b396cc5..60691e274 100644 --- a/patches/server/0009-Optimize-Default-Configurations.patch +++ b/patches/server/0008-Optimize-Default-Configurations.patch @@ -56,7 +56,7 @@ index 3bc7230ca62ebe3426da293e436a962bb0134f85..1a4b5dc4c5340de66553936bbbc074d1 public SpamLimiter spamLimiter; diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -index da7c899fbab162ee197a0593f455ebd9c5286d3c..f2f20730ac4602dea996948e525a40ec6520ed09 100644 +index f45afb7e2607617d1239abeca13a9002dd9a3a18..844ecc2a6d6677742e87ef22dede28867892a301 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java @@ -88,15 +88,15 @@ public class WorldConfiguration extends ConfigurationPart { @@ -89,7 +89,7 @@ index da7c899fbab162ee197a0593f455ebd9c5286d3c..f2f20730ac4602dea996948e525a40ec @ConfigSerializable public record DespawnRange(@Required int soft, @Required int hard) { -@@ -371,7 +371,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -372,7 +372,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Environment extends ConfigurationPart { public boolean disableThunder = false; public boolean disableIceAndSnow = false; @@ -98,7 +98,7 @@ index da7c899fbab162ee197a0593f455ebd9c5286d3c..f2f20730ac4602dea996948e525a40ec public boolean disableExplosionKnockback = false; public boolean generateFlatBedrock = false; public FrostedIce frostedIce; -@@ -451,9 +451,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -452,9 +452,9 @@ public class WorldConfiguration extends ConfigurationPart { public class Collisions extends ConfigurationPart { public boolean onlyPlayersCollide = false; public boolean allowVehicleCollisions = true; @@ -110,7 +110,7 @@ index da7c899fbab162ee197a0593f455ebd9c5286d3c..f2f20730ac4602dea996948e525a40ec public boolean allowPlayerCrammingDamage = false; } -@@ -461,18 +461,40 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -462,18 +462,40 @@ public class WorldConfiguration extends ConfigurationPart { public class Chunks extends ConfigurationPart { public AutosavePeriod autoSaveInterval = AutosavePeriod.def(); @@ -160,7 +160,7 @@ index da7c899fbab162ee197a0593f455ebd9c5286d3c..f2f20730ac4602dea996948e525a40ec }); public boolean flushRegionsOnSave = false; } -@@ -487,9 +509,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -488,9 +510,9 @@ public class WorldConfiguration extends ConfigurationPart { public TickRates tickRates; public class TickRates extends ConfigurationPart { @@ -172,7 +172,7 @@ index da7c899fbab162ee197a0593f455ebd9c5286d3c..f2f20730ac4602dea996948e525a40ec public Table, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "secondarypoisensor", 40)); public Table, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "validatenearbypoi", -1)); } -@@ -513,9 +535,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -514,9 +536,9 @@ public class WorldConfiguration extends ConfigurationPart { public class Misc extends ConfigurationPart { public int lightQueueSize = 20; @@ -197,10 +197,10 @@ index 24763d3d270c29c95e0b3e85111145234f660a62..18bc271a34ffba8c83743fef7eaf4a2c } diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index a8bf67cf0c579c407befe17d735440f1128d98c4..62a886dd6c9b3d22eb9d96b275a2f4e133f6d306 100644 +index ed7bcd832340a7a46897f0275c99e72b7247a5de..65e0a4c04b91e6fd6d2959927bdb75a4fcf8f86b 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -155,7 +155,7 @@ public class Main { +@@ -166,7 +166,7 @@ public class Main { File configFile = (File) optionset.valueOf("bukkit-settings"); YamlConfiguration configuration = YamlConfiguration.loadConfiguration(configFile); configuration.options().copyDefaults(true); @@ -252,10 +252,10 @@ index 1ea3012995c738c67b31e997c138f824f9e69ba1..8ed00a650b712cbf4bc8796165a539d7 this.enableStatus = this.get("enable-status", true); this.hideOnlinePlayers = this.get("hide-online-players", false); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 153fcfc55589691a570080aa4f4e179452bf4f6c..45dabf7fc7531392b4140416f2f0931090f14235 100644 +index c43023fecf0882101248f625a28975586da05071..6b092fec6e8c468f3ecd2fc150f5463447ce2c58 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -427,7 +427,7 @@ public final class CraftServer implements Server { +@@ -429,7 +429,7 @@ public final class CraftServer implements Server { this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile()); this.configuration.options().copyDefaults(true); diff --git a/patches/server/0010-ChunkSending-Configuration.patch b/patches/server/0009-ChunkSending-Configuration.patch similarity index 100% rename from patches/server/0010-ChunkSending-Configuration.patch rename to patches/server/0009-ChunkSending-Configuration.patch diff --git a/patches/server/0011-Implement-ChunkSending.patch b/patches/server/0010-Implement-ChunkSending.patch similarity index 100% rename from patches/server/0011-Implement-ChunkSending.patch rename to patches/server/0010-Implement-ChunkSending.patch diff --git a/patches/server/0012-Console-Log-Configuration.patch b/patches/server/0011-Console-Log-Configuration.patch similarity index 100% rename from patches/server/0012-Console-Log-Configuration.patch rename to patches/server/0011-Console-Log-Configuration.patch diff --git a/patches/server/0013-Console-log-tweaks.patch b/patches/server/0012-Console-log-tweaks.patch similarity index 100% rename from patches/server/0013-Console-log-tweaks.patch rename to patches/server/0012-Console-log-tweaks.patch diff --git a/patches/server/0014-Player-configuration-section.patch b/patches/server/0013-Player-configuration-section.patch similarity index 100% rename from patches/server/0014-Player-configuration-section.patch rename to patches/server/0013-Player-configuration-section.patch diff --git a/patches/server/0015-Add-option-to-allow-any-usernames.patch b/patches/server/0014-Add-option-to-allow-any-usernames.patch similarity index 100% rename from patches/server/0015-Add-option-to-allow-any-usernames.patch rename to patches/server/0014-Add-option-to-allow-any-usernames.patch diff --git a/patches/server/0016-Add-permission-to-bypass-reducedDebugInfo-gamerule.patch b/patches/server/0015-Add-permission-to-bypass-reducedDebugInfo-gamerule.patch similarity index 100% rename from patches/server/0016-Add-permission-to-bypass-reducedDebugInfo-gamerule.patch rename to patches/server/0015-Add-permission-to-bypass-reducedDebugInfo-gamerule.patch diff --git a/patches/server/0017-Add-missing-purpur-configuration-options.patch b/patches/server/0016-Add-missing-purpur-configuration-options.patch similarity index 100% rename from patches/server/0017-Add-missing-purpur-configuration-options.patch rename to patches/server/0016-Add-missing-purpur-configuration-options.patch diff --git a/patches/server/0018-Structure-Configuration.patch b/patches/server/0017-Structure-Configuration.patch similarity index 100% rename from patches/server/0018-Structure-Configuration.patch rename to patches/server/0017-Structure-Configuration.patch diff --git a/patches/server/0019-Configurable-nether-portal-size.patch b/patches/server/0018-Configurable-nether-portal-size.patch similarity index 100% rename from patches/server/0019-Configurable-nether-portal-size.patch rename to patches/server/0018-Configurable-nether-portal-size.patch diff --git a/patches/server/0020-Misc-configuration.patch b/patches/server/0019-Misc-configuration.patch similarity index 100% rename from patches/server/0020-Misc-configuration.patch rename to patches/server/0019-Misc-configuration.patch diff --git a/patches/server/0021-Reduce-create-random-instance.patch b/patches/server/0020-Reduce-create-random-instance.patch similarity index 99% rename from patches/server/0021-Reduce-create-random-instance.patch rename to patches/server/0020-Reduce-create-random-instance.patch index 21cc55569..66d2a35bf 100644 --- a/patches/server/0021-Reduce-create-random-instance.patch +++ b/patches/server/0020-Reduce-create-random-instance.patch @@ -101,7 +101,7 @@ index 4932374ab9a3d8582fb0ef024d817ad896dd23c4..fd9be520b838346555dee2dc13f54dcf this.hitPlayers = Maps.newHashMap(); this.level = world; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 08f9af1d7aebba943096b59b6452818a1aafc94c..1d2c3147abfa09233976f4cc1cc417a9dab9ed44 100644 +index 6d513c903e06fe79dffdffd02871d00cb958b715..589c58c6057ba5fa9d44796f807b8378ee50d2ee 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -124,7 +124,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0022-Entity-Configuration.patch b/patches/server/0021-Entity-Configuration.patch similarity index 100% rename from patches/server/0022-Entity-Configuration.patch rename to patches/server/0021-Entity-Configuration.patch diff --git a/patches/server/0023-Various-Optimizations.patch b/patches/server/0022-Various-Optimizations.patch similarity index 100% rename from patches/server/0023-Various-Optimizations.patch rename to patches/server/0022-Various-Optimizations.patch diff --git a/patches/server/0024-Add-configuration-to-disable-moved-to-quickly-check-.patch b/patches/server/0023-Add-configuration-to-disable-moved-to-quickly-check-.patch similarity index 96% rename from patches/server/0024-Add-configuration-to-disable-moved-to-quickly-check-.patch rename to patches/server/0023-Add-configuration-to-disable-moved-to-quickly-check-.patch index c2432c767..2696dc8ed 100644 --- a/patches/server/0024-Add-configuration-to-disable-moved-to-quickly-check-.patch +++ b/patches/server/0023-Add-configuration-to-disable-moved-to-quickly-check-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add configuration to disable moved to quickly check for diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0bd757eec..09183dbac0e8ca2cc2c8da57b105b80eab42d459 100644 +index 255b422078880b46dfa6f5140f6c92fef057d09e..6b6e7b8fbc0bb8a177affff0d7c7029d571faea2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1566,7 +1566,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic diff --git a/patches/server/0025-Apply-faster-random.patch b/patches/server/0024-Apply-faster-random.patch similarity index 100% rename from patches/server/0025-Apply-faster-random.patch rename to patches/server/0024-Apply-faster-random.patch diff --git a/patches/server/0026-Do-not-send-useless-entity-packets.patch b/patches/server/0025-Do-not-send-useless-entity-packets.patch similarity index 100% rename from patches/server/0026-Do-not-send-useless-entity-packets.patch rename to patches/server/0025-Do-not-send-useless-entity-packets.patch diff --git a/patches/server/0027-No-Chat-Reports-Configuration.patch b/patches/server/0026-No-Chat-Reports-Configuration.patch similarity index 100% rename from patches/server/0027-No-Chat-Reports-Configuration.patch rename to patches/server/0026-No-Chat-Reports-Configuration.patch diff --git a/patches/server/0028-Implement-No-Chat-Reports.patch b/patches/server/0027-Implement-No-Chat-Reports.patch similarity index 98% rename from patches/server/0028-Implement-No-Chat-Reports.patch rename to patches/server/0027-Implement-No-Chat-Reports.patch index 025556a1e..c7f73e0b1 100644 --- a/patches/server/0028-Implement-No-Chat-Reports.patch +++ b/patches/server/0027-Implement-No-Chat-Reports.patch @@ -79,7 +79,7 @@ index 191bebab12c94756e9f98cfacbf06eb9a7c2f2f9..2d47c13f768ac482422e118921d186d3 protected boolean convertOldUsers() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 09183dbac0e8ca2cc2c8da57b105b80eab42d459..e4c92730b63204126609a52d286da46ef6495080 100644 +index 6b6e7b8fbc0bb8a177affff0d7c7029d571faea2..93666cc703b349cbd7752c8c59c980da11e5d34c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2293,10 +2293,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic diff --git a/patches/server/0029-FixMySpawnR-Configuration.patch b/patches/server/0028-FixMySpawnR-Configuration.patch similarity index 100% rename from patches/server/0029-FixMySpawnR-Configuration.patch rename to patches/server/0028-FixMySpawnR-Configuration.patch diff --git a/patches/server/0030-Implement-FixMySpawnR.patch b/patches/server/0029-Implement-FixMySpawnR.patch similarity index 100% rename from patches/server/0030-Implement-FixMySpawnR.patch rename to patches/server/0029-Implement-FixMySpawnR.patch diff --git a/patches/server/0031-Implement-MemoryLeakFix.patch b/patches/server/0030-Implement-MemoryLeakFix.patch similarity index 100% rename from patches/server/0031-Implement-MemoryLeakFix.patch rename to patches/server/0030-Implement-MemoryLeakFix.patch diff --git a/patches/server/0032-Reduce-Sensor-Work.patch b/patches/server/0031-Reduce-Sensor-Work.patch similarity index 95% rename from patches/server/0032-Reduce-Sensor-Work.patch rename to patches/server/0031-Reduce-Sensor-Work.patch index bf7750bf0..36e65c498 100644 --- a/patches/server/0032-Reduce-Sensor-Work.patch +++ b/patches/server/0031-Reduce-Sensor-Work.patch @@ -7,7 +7,7 @@ Original: Bloom-host/Petal Copyright (C) 2023 peaches94 diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4cd04661b39a7055f5767a3dff88f9a3e197d810..ea7e40d91c314f4a58b80c978f6d7f290825856d 100644 +index 49906b4dc8392eee592215d0b4cba85267a875fc..a0759a2f1191cc44a0c441db180ad8bd300ff4a4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1037,20 +1037,20 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0033-Configurable-Sensor-Tick.patch b/patches/server/0032-Configurable-Sensor-Tick.patch similarity index 95% rename from patches/server/0033-Configurable-Sensor-Tick.patch rename to patches/server/0032-Configurable-Sensor-Tick.patch index c2aa8d2a9..6059c5973 100644 --- a/patches/server/0033-Configurable-Sensor-Tick.patch +++ b/patches/server/0032-Configurable-Sensor-Tick.patch @@ -7,7 +7,7 @@ Original: Bloom-host/Petal Copyright (C) 2023 peaches94 diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 19d9d3a9f634631e2ec5a6fa7f2cd9dd18f62f89..ba20f60588b980f49423307ff20fc24c95f3e7b5 100644 +index 5dd0c925af627f7159289dc1e3e79bc593c421f2..699b166b6438cbe0cd197547df4d8dc4359e0b34 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -935,10 +935,11 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/0034-Optimize-VarInts.patch b/patches/server/0033-Optimize-VarInts.patch similarity index 100% rename from patches/server/0034-Optimize-VarInts.patch rename to patches/server/0033-Optimize-VarInts.patch diff --git a/patches/server/0035-Variable-entity-wakeup-duration.patch b/patches/server/0034-Variable-entity-wakeup-duration.patch similarity index 100% rename from patches/server/0035-Variable-entity-wakeup-duration.patch rename to patches/server/0034-Variable-entity-wakeup-duration.patch diff --git a/patches/server/0036-More-optimise-state-lookup.patch b/patches/server/0035-More-optimise-state-lookup.patch similarity index 100% rename from patches/server/0036-More-optimise-state-lookup.patch rename to patches/server/0035-More-optimise-state-lookup.patch diff --git a/patches/server/0037-Suppress-Error-From-DirtyAttributes.patch b/patches/server/0036-Suppress-Error-From-DirtyAttributes.patch similarity index 100% rename from patches/server/0037-Suppress-Error-From-DirtyAttributes.patch rename to patches/server/0036-Suppress-Error-From-DirtyAttributes.patch diff --git a/patches/server/0038-Implement-FerriteCore.patch b/patches/server/0037-Implement-FerriteCore.patch similarity index 100% rename from patches/server/0038-Implement-FerriteCore.patch rename to patches/server/0037-Implement-FerriteCore.patch diff --git a/patches/server/0039-Skip-event-if-no-listeners.patch b/patches/server/0038-Skip-event-if-no-listeners.patch similarity index 100% rename from patches/server/0039-Skip-event-if-no-listeners.patch rename to patches/server/0038-Skip-event-if-no-listeners.patch diff --git a/patches/server/0040-Optimize-spigot-event-bus.patch b/patches/server/0039-Optimize-spigot-event-bus.patch similarity index 100% rename from patches/server/0040-Optimize-spigot-event-bus.patch rename to patches/server/0039-Optimize-spigot-event-bus.patch diff --git a/patches/server/0041-Reduce-allocations.patch b/patches/server/0040-Reduce-allocations.patch similarity index 99% rename from patches/server/0041-Reduce-allocations.patch rename to patches/server/0040-Reduce-allocations.patch index 21250d5f8..dc4008d32 100644 --- a/patches/server/0041-Reduce-allocations.patch +++ b/patches/server/0040-Reduce-allocations.patch @@ -400,7 +400,7 @@ index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..50d620fc893ca010b7ecb43b7a4617d6 protected CipherBase(Cipher cipher) { this.cipher = cipher; diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 89c1b69ddeb420c2fbda5f588e7c9a467a76089d..ef566dc65a979db5aa67a21fa760d046a7508ac1 100644 +index 13144ea01bc27db95a13b267d39529b012a4c9c4..9a6d6f947f33481e8a7aa09469955218d31e194a 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -325,7 +325,7 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -501,10 +501,10 @@ index 975422a57b83a31e63a600bb4ff9c4e2baaf6da7..b80dff95660314e4dd27e2ada94aa315 return map; }); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 319c469c20f3cb4f6d61425bfa6d98b55b55c4d6..d62adc228724ed5576619da70a41a6aaf9966308 100644 +index 3a7c694ff0e248df3f4d168a5e2e883c0e3cb167..e139d15eda25c47292da549e2d4603a5056788bd 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1451,6 +1451,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1454,6 +1454,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private final int range; SectionPos lastSectionPos; public final Set seenBy = new ReferenceOpenHashSet<>(); // Paper - optimise map impl @@ -512,7 +512,7 @@ index 319c469c20f3cb4f6d61425bfa6d98b55b55c4d6..d62adc228724ed5576619da70a41a6aa public TrackedEntity(Entity entity, int i, int j, boolean flag) { this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit -@@ -1487,7 +1488,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1490,7 +1491,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // stuff could have been removed, so we need to check the trackedPlayers set // for players that were removed @@ -535,7 +535,7 @@ index e009dba395779e2c89a36fe4524e5d40474a29e6..c4cafcc1fb0f3b6bc17b7907ee7c6c03 return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e4c92730b63204126609a52d286da46ef6495080..864783f856e5f7cfcbccb88a07f77a95c402e90d 100644 +index 93666cc703b349cbd7752c8c59c980da11e5d34c..2314b39ad62c6d8332ddec6c902dba5aacebfa76 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -436,7 +436,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -563,7 +563,7 @@ index e4c92730b63204126609a52d286da46ef6495080..864783f856e5f7cfcbccb88a07f77a95 return; } // Paper end -@@ -3455,7 +3455,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3434,7 +3434,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) { @@ -741,7 +741,7 @@ index 64bceae4d06b35fcbecb0daca2496ba30e39d995..805d2027fcb6c06537b3357fe104742a // this.targetSelector.addGoal(5, new NonTameRandomTargetGoal<>(this, Animal.class, false, Wolf.PREY_SELECTOR)); // Purpur - moved to updatePathfinders() this.targetSelector.addGoal(6, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR)); diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 4952a7daa1aad68e3ba53123093cd879e0d544b5..597bebe5d5586d767332512fb1b2450acf6a95af 100644 +index c94a1b75593ad01e7f79fdc84818ea8ec269e124..b45c1d611ccd80c3b1405aaef153c37bd046f083 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -254,7 +254,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -754,7 +754,7 @@ index 4952a7daa1aad68e3ba53123093cd879e0d544b5..597bebe5d5586d767332512fb1b2450a } diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index dd84433a988712da9d799cbda2487a902315fb92..42b13e2ebf21bfd4228483a7f349e874a9cac382 100644 +index 917648c2cc52790f40123b27b1cafa3fc3ba4b3f..c765ee642c4b77bfb3f21163c9e7a24b366e0a70 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -79,7 +79,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -1273,7 +1273,7 @@ index 16d2aa4556bc9f32a2def7f9ca282aa3fa23fb87..4886624aea43c1af7ed02da336cc0d25 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 668d825a2469706e4de11629a0b41877de700ca6..01659302dce138ed00ef4c55b712572840d2f10e 100644 +index 720a81da72a8002ff02cc39e5fca42354519c742..e10e07c89c1c79c22d82af6b76b948a4a5955a87 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -455,7 +455,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0042-CarpetFixes-Configuration.patch b/patches/server/0041-CarpetFixes-Configuration.patch similarity index 100% rename from patches/server/0042-CarpetFixes-Configuration.patch rename to patches/server/0041-CarpetFixes-Configuration.patch diff --git a/patches/server/0043-CarpetFixes-Optimizations-BiomeManager.patch b/patches/server/0042-CarpetFixes-Optimizations-BiomeManager.patch similarity index 100% rename from patches/server/0043-CarpetFixes-Optimizations-BiomeManager.patch rename to patches/server/0042-CarpetFixes-Optimizations-BiomeManager.patch diff --git a/patches/server/0044-CarpetFixes-Optimizations-RecipeManager.patch b/patches/server/0043-CarpetFixes-Optimizations-RecipeManager.patch similarity index 100% rename from patches/server/0044-CarpetFixes-Optimizations-RecipeManager.patch rename to patches/server/0043-CarpetFixes-Optimizations-RecipeManager.patch diff --git a/patches/server/0045-CarpetFixes-Optimizations-Sheep.patch b/patches/server/0044-CarpetFixes-Optimizations-Sheep.patch similarity index 98% rename from patches/server/0045-CarpetFixes-Optimizations-Sheep.patch rename to patches/server/0044-CarpetFixes-Optimizations-Sheep.patch index cd1760ed6..16ad697ee 100644 --- a/patches/server/0045-CarpetFixes-Optimizations-Sheep.patch +++ b/patches/server/0044-CarpetFixes-Optimizations-Sheep.patch @@ -13,7 +13,7 @@ we used a prebaked list of all the possible colors and combinations, however thi datapack to change it. diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index 54de1f782e45cb3e3b1442aeb56b6e8547b065c0..3a7b1d85f06f9abdac427aa736b6d4c79fdbbd14 100644 +index 54de1f782e45cb3e3b1442aeb56b6e8547b065c0..3b873dd76c0f10a7f29206e46c1bf9b230555170 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -432,19 +432,27 @@ public class Sheep extends Animal implements Shearable { diff --git a/patches/server/0046-Async-PathProcessing.patch b/patches/server/0045-Async-PathProcessing.patch similarity index 99% rename from patches/server/0046-Async-PathProcessing.patch rename to patches/server/0045-Async-PathProcessing.patch index f98ea4dd4..02a86367b 100644 --- a/patches/server/0046-Async-PathProcessing.patch +++ b/patches/server/0045-Async-PathProcessing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Async-PathProcessing diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index fe502445a77afe7e3807afae48d7bf03f370e290..13392bd98a0c7fa9b859c2dfa7a01b24d5cc56d7 100644 +index 8f8b29f80d1573981ccffd207dd6e0941e71a352..0003a27da838c5628e7329cb72d78eaed868b55d 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java @@ -68,28 +68,62 @@ public class AcquirePoi { @@ -721,7 +721,7 @@ index c4395df154e8c7066d213316f300d62db9231e5c..235e842534bebf17ae447431994b7dac return false; } else if (o.nodes.size() != this.nodes.size()) { diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java -index a8af51a25b0f99c3a64d9150fdfcd6b818aa7581..bd7a98a3cf36a36fea7db8c2933f925ed9b62056 100644 +index a8af51a25b0f99c3a64d9150fdfcd6b818aa7581..077f1d4f7ea252d5c92b3c5939a12da323bf6a03 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java @@ -24,35 +24,76 @@ public class PathFinder {