diff --git a/build.gradle.kts b/build.gradle.kts index 9171910..d34dfa3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { java `maven-publish` id("com.github.johnrengelman.shadow") version "8.1.1" apply false - id("io.papermc.paperweight.patcher") version "1.5.5--SNAPSHOT" + id("io.papermc.paperweight.patcher") version "1.5.10" } allprojects { @@ -59,7 +59,7 @@ repositories { } dependencies { - remapper("net.fabricmc:tiny-remapper:0.8.6:fat") + remapper("net.fabricmc:tiny-remapper:0.8.10:fat") decompiler("net.minecraftforge:forgeflower:2.0.627.2") paperclip("io.papermc:paperclip:3.0.3") } diff --git a/gradle.properties b/gradle.properties index 5d48e70..07556f5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=org.galemc.gale version=1.20.2-R0.1-SNAPSHOT mcVersion=1.20.2 -paperRef=e284bb12156fad92767ceadf3d5e57cbc71e5b21 +paperRef=931781c220b98dde0159c9a3c8dce06c3b2b1e13 org.gradle.caching=true org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ac72c34..3fa8f86 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 0adc8e1..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -202,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/patches/api/0001-Hide-irrelevant-compilation-warnings.patch b/patches/api/0001-Hide-irrelevant-compilation-warnings.patch index 4902955..6ca9a93 100644 --- a/patches/api/0001-Hide-irrelevant-compilation-warnings.patch +++ b/patches/api/0001-Hide-irrelevant-compilation-warnings.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/build.gradle.kts b/build.gradle.kts -index 460bd4029b5a01e39b2322e69aecc128a073ee3a..96b612bc8083eb077151d9e024e0eecb5c6b1eec 100644 +index e827ee211e3c65dc68ac5867fd8476639df63645..d48dade97bbae435fafbd5508664c9b66308cad7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -89,6 +89,15 @@ val generateApiVersioningFile by tasks.registering { +@@ -106,6 +106,15 @@ val generateApiVersioningFile by tasks.registering { } } @@ -26,7 +26,7 @@ index 460bd4029b5a01e39b2322e69aecc128a073ee3a..96b612bc8083eb077151d9e024e0eecb tasks.jar { from(generateApiVersioningFile.map { it.outputs.files.singleFile }) { into("META-INF/maven/${project.group}/${project.name}") -@@ -146,6 +155,8 @@ tasks.withType { +@@ -163,6 +172,8 @@ tasks.withType { into("build/docs/javadoc") } } @@ -34,4 +34,4 @@ index 460bd4029b5a01e39b2322e69aecc128a073ee3a..96b612bc8083eb077151d9e024e0eecb + options.addStringOption("Xdoclint:none", "-quiet") // Gale - hide irrelevant compilation warnings } - // Paper start + tasks.test { diff --git a/patches/api/0002-Gale-branding-changes.patch b/patches/api/0002-Gale-branding-changes.patch index 4b06421..fb541e6 100644 --- a/patches/api/0002-Gale-branding-changes.patch +++ b/patches/api/0002-Gale-branding-changes.patch @@ -46,10 +46,10 @@ index 94a9ed024d3859793618152ea559a168bbcbb5e2..e60008693e017bec1b4eb49c84be3898 -. +. diff --git a/build.gradle.kts b/build.gradle.kts -index 8825fd8ff27ba641deaa61c8a5cadb2b236b6512..c6acd641d1d76478a3c0063206f162414db69b7a 100644 +index d48dade97bbae435fafbd5508664c9b66308cad7..8ca9d7dfdad93c5d162c75399816d704c5184ca8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -107,6 +107,12 @@ tasks.jar { +@@ -124,6 +124,12 @@ tasks.jar { "Automatic-Module-Name" to "org.bukkit" ) } diff --git a/patches/api/0003-Gale-configuration.patch b/patches/api/0003-Gale-configuration.patch index 7422d78..8b9ee86 100644 --- a/patches/api/0003-Gale-configuration.patch +++ b/patches/api/0003-Gale-configuration.patch @@ -13,10 +13,10 @@ As part of: Paper (https://github.com/PaperMC/Paper) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 8d8fe04e6b09d2a5b1cc05002073df5c58cdcb96..1e0bc616b00cd1ec22cb11adb85ee152dc10cd6e 100644 +index d0c634629aa0b6bac0da93655dd86ad3aea0ce30..f50b8fb579849e38e1d2993919812858c12a96c5 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2119,6 +2119,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2188,6 +2188,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi { throw new UnsupportedOperationException("Not supported yet."); } diff --git a/patches/api/0005-SIMD-support.patch b/patches/api/0005-SIMD-support.patch index 99b6315..cf0d9c4 100644 --- a/patches/api/0005-SIMD-support.patch +++ b/patches/api/0005-SIMD-support.patch @@ -13,10 +13,10 @@ As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/build.gradle.kts b/build.gradle.kts -index b7a9ee2e561da30d48f9ff1c00cacd1fcf9c6977..340db3dd7fddcc95c51c0e956bf1164f6113068a 100644 +index 8ca9d7dfdad93c5d162c75399816d704c5184ca8..6be021dcdef8283db51baa25e74570473afb9063 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -95,6 +95,7 @@ tasks.withType { +@@ -112,6 +112,7 @@ tasks.withType { compilerArgs.add("-Xlint:-module") compilerArgs.add("-Xlint:-removal") compilerArgs.add("-Xlint:-dep-ann") @@ -24,14 +24,14 @@ index b7a9ee2e561da30d48f9ff1c00cacd1fcf9c6977..340db3dd7fddcc95c51c0e956bf1164f } // Gale end - hide irrelevant compilation warnings -@@ -163,6 +164,7 @@ tasks.withType { +@@ -180,6 +181,7 @@ tasks.withType { } options.addStringOption("Xdoclint:none", "-quiet") // Gale - hide irrelevant compilation warnings + options.addStringOption("-add-modules", "jdk.incubator.vector") // Gale - Pufferfish - SIMD support } - // Paper start + tasks.test { diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java new file mode 100644 index 0000000000000000000000000000000000000000..90d87374e9dddd79aeca3e05f9cd6c82eb3aad27 diff --git a/patches/api/0008-Player-canSee-by-entity-UUID.patch b/patches/api/0008-Player-canSee-by-entity-UUID.patch index 88640c0..0baa2c9 100644 --- a/patches/api/0008-Player-canSee-by-entity-UUID.patch +++ b/patches/api/0008-Player-canSee-by-entity-UUID.patch @@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f9dd00210c1762a40259f823aeb8d8a5ddc78e3e..60df0fd1d3ef021cb6aecd8075a1ae87eac5d9eb 100644 +index 47fcfa2a3358766dfda2efc9bbcf5b50e3f2f7c1..a47be0fb0220e46cc360729fdf6cc113cdd05a39 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -7,6 +7,8 @@ import java.time.Instant; @@ -49,7 +49,7 @@ index f9dd00210c1762a40259f823aeb8d8a5ddc78e3e..60df0fd1d3ef021cb6aecd8075a1ae87 import org.bukkit.BanEntry; import org.bukkit.DyeColor; import org.bukkit.Effect; -@@ -1867,6 +1869,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1927,6 +1929,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM boolean listPlayer(@NotNull Player other); // Paper end diff --git a/patches/api/0009-Specific-interval-TPS-API.patch b/patches/api/0009-Specific-interval-TPS-API.patch index 5d5cf60..5301baf 100644 --- a/patches/api/0009-Specific-interval-TPS-API.patch +++ b/patches/api/0009-Specific-interval-TPS-API.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index f78b5fd3c3347d28da58777bff88903d2eb140f6..b6fbde1651505bd1c11d01f25ec4a3cdbd1e289e 100644 +index 884902cb7f86c0b56594ccafc7d05c6c7a23ab53..c767205c85b67f4e04375b2d1fbdb6e38707e3ea 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2229,6 +2229,37 @@ public final class Bukkit { +@@ -2305,6 +2305,37 @@ public final class Bukkit { return server.getTPS(); } @@ -49,10 +49,10 @@ index f78b5fd3c3347d28da58777bff88903d2eb140f6..b6fbde1651505bd1c11d01f25ec4a3cd * Get a sample of the servers last tick times (in nanos) * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 1e0bc616b00cd1ec22cb11adb85ee152dc10cd6e..5f6e299f62d8c669f4f8ccec19b3055d246df157 100644 +index f50b8fb579849e38e1d2993919812858c12a96c5..807e0c848dc7a5a1711d897bbca1612d05b38384 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1901,6 +1901,31 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1970,6 +1970,31 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public double[] getTPS(); diff --git a/patches/api/0010-5-second-TPS-average.patch b/patches/api/0010-5-second-TPS-average.patch index 2bd61e4..78569c2 100644 --- a/patches/api/0010-5-second-TPS-average.patch +++ b/patches/api/0010-5-second-TPS-average.patch @@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index b6fbde1651505bd1c11d01f25ec4a3cdbd1e289e..4bd9065b2a0c8dd67d4d7ba90a9be772aeec260c 100644 +index c767205c85b67f4e04375b2d1fbdb6e38707e3ea..5f5cff83d0b454884bc61efd7c3981ca9dc7f179 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2229,8 +2229,30 @@ public final class Bukkit { +@@ -2305,8 +2305,30 @@ public final class Bukkit { return server.getTPS(); } @@ -72,10 +72,10 @@ index b6fbde1651505bd1c11d01f25ec4a3cdbd1e289e..4bd9065b2a0c8dd67d4d7ba90a9be772 * Gets the average server TPS over the last 1 minute * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 5f6e299f62d8c669f4f8ccec19b3055d246df157..ddf9462245c159372f6425cd0c4f6264ca689c95 100644 +index 807e0c848dc7a5a1711d897bbca1612d05b38384..36b8e5df1eafefe4c7cfe7dec270095abf4c37c1 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1901,8 +1901,27 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1970,8 +1970,27 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public double[] getTPS(); diff --git a/patches/api/0011-Last-tick-time-API.patch b/patches/api/0011-Last-tick-time-API.patch index 0aeafe5..af00452 100644 --- a/patches/api/0011-Last-tick-time-API.patch +++ b/patches/api/0011-Last-tick-time-API.patch @@ -23,10 +23,10 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 4bd9065b2a0c8dd67d4d7ba90a9be772aeec260c..c0d0604e8d5d1ebf3a3d665a55a02ea12416465f 100644 +index 5f5cff83d0b454884bc61efd7c3981ca9dc7f179..48808edcea2271d564390c637160881645f30489 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2805,6 +2805,20 @@ public final class Bukkit { +@@ -2881,6 +2881,20 @@ public final class Bukkit { } // Paper end - Folia region threading API @@ -48,10 +48,10 @@ index 4bd9065b2a0c8dd67d4d7ba90a9be772aeec260c..c0d0604e8d5d1ebf3a3d665a55a02ea1 public static Server.Spigot spigot() { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index ddf9462245c159372f6425cd0c4f6264ca689c95..9ff34994f2a4dcf0b10262aacc912d7d283c121e 100644 +index 36b8e5df1eafefe4c7cfe7dec270095abf4c37c1..0f15d0f049e3bd7461c5ebd22686e638f9bfe653 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2457,4 +2457,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2526,4 +2526,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ boolean isOwnedByCurrentRegion(@NotNull Entity entity); // Paper end - Folia region threading API diff --git a/patches/server/0003-Hide-irrelevant-compilation-warnings.patch b/patches/server/0003-Hide-irrelevant-compilation-warnings.patch index ee5ce43..796e036 100644 --- a/patches/server/0003-Hide-irrelevant-compilation-warnings.patch +++ b/patches/server/0003-Hide-irrelevant-compilation-warnings.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/build.gradle.kts b/build.gradle.kts -index 1eabe8cec6afab3d57946b366209f598c51f6abf..c7068ff9bb04154515a77033d6700188ba773f6a 100644 +index 35f03651dfced13ff8bcfa79097f75324e7b4f51..ecd65a51efc9a43426e880ef85e13d71c8cc9537 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -66,6 +66,16 @@ dependencies { +@@ -64,6 +64,16 @@ dependencies { } val craftbukkitPackageVersion = "1_20_R2" // Paper diff --git a/patches/server/0005-Enable-preview-features-for-development-runs.patch b/patches/server/0004-Enable-preview-features-for-development-runs.patch similarity index 81% rename from patches/server/0005-Enable-preview-features-for-development-runs.patch rename to patches/server/0004-Enable-preview-features-for-development-runs.patch index 07343d6..a2f5f59 100644 --- a/patches/server/0005-Enable-preview-features-for-development-runs.patch +++ b/patches/server/0004-Enable-preview-features-for-development-runs.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/build.gradle.kts b/build.gradle.kts -index c64da95d9374ab00cfd75ead02e88e187e8fc5fc..123c2c1bdc4ba5b887910bc613a43bc60be1c99e 100644 +index ecd65a51efc9a43426e880ef85e13d71c8cc9537..9f224f18f9f31a9d890b4af4de990b017a126ffd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -198,6 +198,7 @@ fun TaskContainer.registerRunTask( +@@ -194,6 +194,7 @@ fun TaskContainer.registerRunTask( val memoryGb = providers.gradleProperty("paper.runMemoryGb").getOrElse("2") minHeapSize = "${memoryGb}G" maxHeapSize = "${memoryGb}G" diff --git a/patches/server/0004-Use-default-Java-installation-for-development-runs.patch b/patches/server/0004-Use-default-Java-installation-for-development-runs.patch deleted file mode 100644 index ef12cd9..0000000 --- a/patches/server/0004-Use-default-Java-installation-for-development-runs.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martijn Muijsers -Date: Mon, 13 Feb 2023 20:59:49 +0100 -Subject: [PATCH] Use default Java installation for development runs - -License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) -Gale - https://galemc.org - -diff --git a/build.gradle.kts b/build.gradle.kts -index a6ebccaf06a528b70b3362021cf836f35b4326dc..03494958857b254705b1445e1a695e71f88474f7 100644 ---- a/build.gradle.kts -+++ b/build.gradle.kts -@@ -165,6 +165,15 @@ fun TaskContainer.registerRunTask( - name: String, - block: JavaExec.() -> Unit - ): TaskProvider = register(name) { -+ // Gale start - use default Java installation for development runs -+ java { -+ toolchain { -+ languageVersion.set(JavaLanguageVersion.of(System.getProperty("java.version").run { -+ substring(0, indexOf('.')).toInt().coerceAtLeast(17) -+ })) -+ } -+ } -+ // Gale end - use default Java installation for development runs - group = "paper" - mainClass.set("org.bukkit.craftbukkit.Main") - standardInput = System.`in` diff --git a/patches/server/0006-Gale-branding-changes.patch b/patches/server/0005-Gale-branding-changes.patch similarity index 98% rename from patches/server/0006-Gale-branding-changes.patch rename to patches/server/0005-Gale-branding-changes.patch index 8d047bb..6c2838d 100644 --- a/patches/server/0006-Gale-branding-changes.patch +++ b/patches/server/0005-Gale-branding-changes.patch @@ -221,10 +221,10 @@ index 94a9ed024d3859793618152ea559a168bbcbb5e2..e60008693e017bec1b4eb49c84be3898 -. +. diff --git a/build.gradle.kts b/build.gradle.kts -index 4bac924d8c6d6792065e7dfaade297139100cfbc..16503dd71bbd7f181d0d100367a89cfd1735496e 100644 +index 9f224f18f9f31a9d890b4af4de990b017a126ffd..266e5e177b23b48eb880565dcafdc16419e516db 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -88,7 +88,7 @@ tasks.jar { +@@ -86,7 +86,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -233,7 +233,7 @@ index 4bac924d8c6d6792065e7dfaade297139100cfbc..16503dd71bbd7f181d0d100367a89cfd "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -235,3 +235,22 @@ tasks.registerRunTask("runDev") { +@@ -231,3 +231,22 @@ tasks.registerRunTask("runDev") { classpath(runtimeClasspathForRunDev) jvmArgs("-DPaper.isRunDev=true") } @@ -427,7 +427,7 @@ index c5d5648f4ca603ef2b1df723b58f9caf4dd3c722..e45e6b44b2a8f2cdae6e0048a812b921 .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 97745f0bab8d82d397c6c2a5775aed92bca0a034..9fcc6138a8c639aed75e2f8142de92e72c03c085 100644 +index 8f31413c939cc2b0454ad3d9a1b618dbae449d00..d3b16342a44dabb9e14451f68af65d2d6407ef85 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -908,7 +908,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLooppatch version is incremented for small changes that do not affect the goal of any feature, + * such as bug fixes, performance improvements or changes in wording. + */ -+ public static final @NotNull String version = "0.6.13"; ++ public static final @NotNull String version = "0.6.14"; + + /** + * The "major.minor" portion of the {@link #version}. diff --git a/patches/server/0009-Gale-configuration.patch b/patches/server/0008-Gale-configuration.patch similarity index 88% rename from patches/server/0009-Gale-configuration.patch rename to patches/server/0008-Gale-configuration.patch index fadad68..9bbeed6 100644 --- a/patches/server/0009-Gale-configuration.patch +++ b/patches/server/0008-Gale-configuration.patch @@ -37,25 +37,13 @@ index a2f71a6d1a9e98133dff6cd0f625da9435a8af14..1b9d997c31ab281ce9f4719f53b0ad78 JSONObject object = new JSONObject(); for (String key : config.getKeys(false)) { -diff --git a/src/main/java/io/papermc/paper/configuration/ConfigurationPart.java b/src/main/java/io/papermc/paper/configuration/ConfigurationPart.java -index 7a4a7a654fe2516ed894a68f2657344df9d70f4c..82e6716c006492b9f24f148a918944b50231a158 100644 ---- a/src/main/java/io/papermc/paper/configuration/ConfigurationPart.java -+++ b/src/main/java/io/papermc/paper/configuration/ConfigurationPart.java -@@ -1,6 +1,6 @@ - package io.papermc.paper.configuration; - --abstract class ConfigurationPart { -+public abstract class ConfigurationPart { // Gale - Gale configuration - - public static abstract class Post extends ConfigurationPart { - diff --git a/src/main/java/io/papermc/paper/configuration/Configurations.java b/src/main/java/io/papermc/paper/configuration/Configurations.java -index 9ef6712c70fcd8912a79f3f61e351aac09572cf3..80a8362c299d02c26781f06be5b8ee6cada8efbe 100644 +index c01b4393439838976965823298f12e4762e72eff..f54620e3f184a978d0b275087c4cc8b1f48e48b9 100644 --- a/src/main/java/io/papermc/paper/configuration/Configurations.java +++ b/src/main/java/io/papermc/paper/configuration/Configurations.java -@@ -5,7 +5,10 @@ import io.leangen.geantyref.TypeToken; - import io.papermc.paper.configuration.constraint.Constraint; +@@ -6,7 +6,10 @@ import io.papermc.paper.configuration.constraint.Constraint; import io.papermc.paper.configuration.constraint.Constraints; + import net.minecraft.core.RegistryAccess; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; @@ -64,7 +52,7 @@ index 9ef6712c70fcd8912a79f3f61e351aac09572cf3..80a8362c299d02c26781f06be5b8ee6c import org.checkerframework.checker.nullness.qual.Nullable; import org.jetbrains.annotations.MustBeInvokedByOverriders; import org.slf4j.Logger; -@@ -88,7 +91,7 @@ public abstract class Configurations { +@@ -93,7 +96,7 @@ public abstract class Configurations { }; } @@ -73,25 +61,25 @@ index 9ef6712c70fcd8912a79f3f61e351aac09572cf3..80a8362c299d02c26781f06be5b8ee6c return node -> { ObjectMapper.Factory factory = (ObjectMapper.Factory) Objects.requireNonNull(node.options().serializers().get(type)); ObjectMapper.Mutable mutable = (ObjectMapper.Mutable) factory.get(type); -@@ -148,7 +151,7 @@ public abstract class Configurations { +@@ -166,7 +169,7 @@ public abstract class Configurations { final YamlConfigurationLoader loader = result.loader(); final ConfigurationNode node = loader.load(); if (result.isNewFile()) { // add version to new files -- node.node(Configuration.VERSION_FIELD).raw(WorldConfiguration.CURRENT_VERSION); +- node.node(Configuration.VERSION_FIELD).raw(this.worldConfigVersion()); + node.node(Configuration.VERSION_FIELD).raw(getWorldConfigurationCurrentVersion()); // Gale - Gale configuration + } else { + this.verifyWorldConfigVersion(contextMap, node); } - this.applyWorldConfigTransformations(contextMap, node); - final W instance = node.require(this.worldConfigClass); -@@ -207,7 +210,7 @@ public abstract class Configurations { +@@ -227,7 +230,7 @@ public abstract class Configurations { .build(); final ConfigurationNode worldNode = worldLoader.load(); if (newFile) { // set the version field if new file -- worldNode.node(Configuration.VERSION_FIELD).set(WorldConfiguration.CURRENT_VERSION); +- worldNode.node(Configuration.VERSION_FIELD).set(this.worldConfigVersion()); + worldNode.node(Configuration.VERSION_FIELD).set(getWorldConfigurationCurrentVersion()); // Gale - Gale configuration + } else { + this.verifyWorldConfigVersion(contextMap, worldNode); } - this.applyWorldConfigTransformations(contextMap, worldNode); - this.applyDefaultsAwareWorldConfigTransformations(contextMap, worldNode, defaultsNode); -@@ -308,4 +311,25 @@ public abstract class Configurations { +@@ -352,4 +355,25 @@ public abstract class Configurations { return "ContextKey{" + this.name + "}"; } } @@ -117,71 +105,20 @@ index 9ef6712c70fcd8912a79f3f61e351aac09572cf3..80a8362c299d02c26781f06be5b8ee6c + // Gale end - Gale configuration + } -diff --git a/src/main/java/io/papermc/paper/configuration/InnerClassFieldDiscoverer.java b/src/main/java/io/papermc/paper/configuration/InnerClassFieldDiscoverer.java -index a0aa1f1a7adf986d500a2135aa42e138aa3c4f08..6d19b985222d78750828fd2719c1fbf738e69a56 100644 ---- a/src/main/java/io/papermc/paper/configuration/InnerClassFieldDiscoverer.java -+++ b/src/main/java/io/papermc/paper/configuration/InnerClassFieldDiscoverer.java -@@ -5,6 +5,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; - import org.spongepowered.configurate.objectmapping.FieldDiscoverer; - import org.spongepowered.configurate.serialize.SerializationException; - import org.spongepowered.configurate.util.CheckedSupplier; -+import org.galemc.gale.configuration.GaleWorldConfiguration; - - import java.lang.reflect.AnnotatedType; - import java.lang.reflect.Constructor; -@@ -17,7 +18,7 @@ import java.util.Map; - - import static io.leangen.geantyref.GenericTypeReflector.erase; - --final class InnerClassFieldDiscoverer implements FieldDiscoverer> { -+public final class InnerClassFieldDiscoverer implements FieldDiscoverer> { // Gale - Gale configuration - - private final Map, Object> instanceMap = new HashMap<>(); - private final Map, Object> overrides; -@@ -136,7 +137,19 @@ final class InnerClassFieldDiscoverer implements FieldDiscoverer globalConfig() { -+ // Gale start - Gale configuration -+ public static FieldDiscoverer galeWorldConfig(Configurations.ContextMap contextMap) { -+ final Map, Object> overrides = Map.of( -+ GaleWorldConfiguration.class, new GaleWorldConfiguration( -+ contextMap.require(PaperConfigurations.SPIGOT_WORLD_CONFIG_CONTEXT_KEY).get(), -+ contextMap.require(Configurations.WORLD_KEY) -+ ) -+ ); -+ return new InnerClassFieldDiscoverer(overrides); -+ } -+ // Gale end - Gale configuration -+ -+ public static FieldDiscoverer globalConfig() { // Gale - Gale configuration - return new InnerClassFieldDiscoverer(Collections.emptyMap()); - } - } diff --git a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java -index 9b5c2abaa28fa60cedd9f0111e5eb018f93a0561..7ed33458a8d2cd689b8e0bbade24fdc8738b466e 100644 +index fa1c0aee8c3a4d0868482cf5c703bbfd08e09874..ed63ff5cb678eabde42c91e57c6e1b0d38c866b8 100644 --- a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java +++ b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java -@@ -136,7 +136,7 @@ public class PaperConfigurations extends Configurations> SPIGOT_WORLD_CONFIG_CONTEXT_KEY = new ContextKey<>(new TypeToken>() {}, "spigot world config"); -+ public static final ContextKey> SPIGOT_WORLD_CONFIG_CONTEXT_KEY = new ContextKey<>(new TypeToken>() {}, "spigot world config"); // Gale - Gale configuration - - - public PaperConfigurations(final Path globalFolder) { -@@ -308,7 +308,7 @@ public class PaperConfigurations extends Configurations globalConfig() { ++ // Gale start - Gale configuration ++ public static FieldDiscoverer galeWorldConfig(Configurations.ContextMap contextMap) { ++ final Map, Object> overrides = Map.of( ++ GaleWorldConfiguration.class, new GaleWorldConfiguration( ++ contextMap.require(PaperConfigurations.SPIGOT_WORLD_CONFIG_CONTEXT_KEY).get(), ++ contextMap.require(Configurations.WORLD_KEY) ++ ) ++ ); ++ return new InnerClassFieldDiscoverer(overrides); ++ } ++ // Gale end - Gale configuration ++ ++ public static FieldDiscoverer globalConfig() { // Gale - Gale configuration + return new InnerClassFieldDiscoverer(Collections.emptyMap()); + } + } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9fcc6138a8c639aed75e2f8142de92e72c03c085..7306cf0be43ad8673dc5aa28cfe26d1911127d30 100644 +index d3b16342a44dabb9e14451f68af65d2d6407ef85..9d89b38ad6a0df62c920512c8873e4cb95210571 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,9 +3,6 @@ package net.minecraft.server; @@ -318,7 +288,7 @@ index a9b2c8cd4dcd3f884e4306bebee9334d3848fce5..3430a1ac3252ff9a457ee36ffc112503 } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index dbccbcb9b44e4efacdf53c2d161115cc20b36cff..a250a1a4e68eb5971cc09b6b2cf2d0576cb7ba64 100644 +index 1c9742ad81f04052d2c3bc18c7636f45b2fc5160..ad9eccd0fc981dbbf8e5bea191119afe2e7a7018 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -1,20 +1,15 @@ @@ -345,17 +315,17 @@ index dbccbcb9b44e4efacdf53c2d161115cc20b36cff..a250a1a4e68eb5971cc09b6b2cf2d057 import java.util.function.BooleanSupplier; @@ -208,6 +203,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc. - paperConfigurations.initializeGlobalConfiguration(); - paperConfigurations.initializeWorldDefaultsConfiguration(); + paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); + paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); + // Gale start - Gale configuration -+ galeConfigurations.initializeGlobalConfiguration(); -+ galeConfigurations.initializeWorldDefaultsConfiguration(); ++ galeConfigurations.initializeGlobalConfiguration(this.registryAccess()); ++ galeConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); + // Gale end - Gale configuration // Paper start - moved up to right after PlayerList creation but before file load/save if (this.convertOldUsers()) { this.getProfileCache().save(false); // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f502b01b564bd33c449cbe621966ef4076a38cca..5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7 100644 +index c88d5b9125f6ee43bf2be60fd1745d836f271b78..6421edda569ae8953f23ccd78996ab3ab811264a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -132,12 +132,10 @@ import net.minecraft.world.level.chunk.storage.EntityStorage; @@ -375,13 +345,13 @@ index f502b01b564bd33c449cbe621966ef4076a38cca..5702c8a304e20d63b4a3d5221eb1a89f // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error -- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), executor); // Paper - Async-Anti-Xray - Pass executor -+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration +- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor ++ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration this.pvpMode = minecraftserver.isPvpAllowed(); 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 ea8a0961190e9aafda4fed6fecd85097c141040a..3e0717129b74ad73b78ac47a9a9154fcf47482f3 100644 +index 2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782..e9ea666a09c9f04e37621bf38e61f698f3aaa43a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1,10 +1,7 @@ @@ -457,18 +427,18 @@ index ea8a0961190e9aafda4fed6fecd85097c141040a..3e0717129b74ad73b78ac47a9a9154fc this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index da6196e8161c48cda84a7d72d22d04970c75cb78..10da68956955b933365bdb1e632b27d8f33a81b1 100644 +index d948e78fcd2d8e9af2a9c0057e9a52384b3b0951..8abeb9dc5c0e2fe95ea408fbaab9c359cb7cd69f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1039,6 +1039,7 @@ public final class CraftServer implements Server { +@@ -1041,6 +1041,7 @@ public final class CraftServer implements Server { - org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot + org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); + this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration 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)) -@@ -2914,6 +2915,14 @@ public final class CraftServer implements Server { +@@ -2978,6 +2979,14 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } @@ -485,10 +455,10 @@ index da6196e8161c48cda84a7d72d22d04970c75cb78..10da68956955b933365bdb1e632b27d8 org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/galemc/gale/configuration/GaleConfigurations.java b/src/main/java/org/galemc/gale/configuration/GaleConfigurations.java new file mode 100644 -index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d6b588007 +index 0000000000000000000000000000000000000000..fc13ce21092fabb17d2c2da63947d58e6f3d3b88 --- /dev/null +++ b/src/main/java/org/galemc/gale/configuration/GaleConfigurations.java -@@ -0,0 +1,289 @@ +@@ -0,0 +1,303 @@ +// Gale - Gale configuration + +package org.galemc.gale.configuration; @@ -499,7 +469,9 @@ index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d +import io.papermc.paper.configuration.Configuration; +import io.papermc.paper.configuration.ConfigurationPart; +import io.papermc.paper.configuration.Configurations; -+import io.papermc.paper.configuration.InnerClassFieldDiscoverer; ++import io.papermc.paper.configuration.GlobalConfiguration; ++import io.papermc.paper.configuration.WorldConfiguration; ++import io.papermc.paper.configuration.mapping.InnerClassFieldDiscoverer; +import io.papermc.paper.configuration.NestedSetting; +import io.papermc.paper.configuration.PaperConfigurations; +import io.papermc.paper.configuration.legacy.RequiresSpigotInitialization; @@ -514,15 +486,16 @@ index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d +import io.papermc.paper.configuration.serializer.registry.RegistryValueSerializer; +import io.papermc.paper.configuration.transformation.Transformations; +import io.papermc.paper.configuration.type.BooleanOrDefault; -+import io.papermc.paper.configuration.type.DoubleOrDefault; ++import io.papermc.paper.configuration.type.number.DoubleOr; +import io.papermc.paper.configuration.type.Duration; +import io.papermc.paper.configuration.type.EngineMode; -+import io.papermc.paper.configuration.type.IntOr; ++import io.papermc.paper.configuration.type.number.IntOr; +import io.papermc.paper.configuration.type.fallback.FallbackValueSerializer; +import it.unimi.dsi.fastutil.objects.Reference2IntMap; +import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap; +import it.unimi.dsi.fastutil.objects.Reference2LongMap; +import it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap; ++import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.Registries; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; @@ -644,15 +617,15 @@ index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d + } + + @Override -+ public GaleGlobalConfiguration initializeGlobalConfiguration() throws ConfigurateException { -+ GaleGlobalConfiguration configuration = super.initializeGlobalConfiguration(); ++ public GaleGlobalConfiguration initializeGlobalConfiguration(final RegistryAccess registryAccess) throws ConfigurateException { ++ GaleGlobalConfiguration configuration = super.initializeGlobalConfiguration(registryAccess); + GaleGlobalConfiguration.set(configuration); + return configuration; + } + + @Override -+ protected ContextMap.Builder createDefaultContextMap() { -+ return super.createDefaultContextMap() ++ protected ContextMap.Builder createDefaultContextMap(final RegistryAccess registryAccess) { ++ return super.createDefaultContextMap(registryAccess) + .put(PaperConfigurations.SPIGOT_WORLD_CONFIG_CONTEXT_KEY, PaperConfigurations.SPIGOT_WORLD_DEFAULTS); + } + @@ -666,6 +639,7 @@ index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d + + @Override + protected YamlConfigurationLoader.Builder createWorldConfigLoaderBuilder(final ContextMap contextMap) { ++ final RegistryAccess access = contextMap.require(REGISTRY_ACCESS); + return super.createWorldConfigLoaderBuilder(contextMap) + .defaultOptions(options -> options + .header(contextMap.require(WORLD_NAME).equals(WORLD_DEFAULTS) ? WORLD_DEFAULTS_HEADER : WORLD_HEADER.apply(contextMap)) @@ -676,15 +650,15 @@ index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d + .register(new StringRepresentableSerializer()) + .register(IntOr.Default.SERIALIZER) + .register(IntOr.Disabled.SERIALIZER) -+ .register(DoubleOrDefault.SERIALIZER) ++ .register(DoubleOr.Default.SERIALIZER) + .register(BooleanOrDefault.SERIALIZER) + .register(Duration.SERIALIZER) + .register(EngineMode.SERIALIZER) + .register(FallbackValueSerializer.create(contextMap.require(PaperConfigurations.SPIGOT_WORLD_CONFIG_CONTEXT_KEY).get(), MinecraftServer::getServer)) -+ .register(new RegistryValueSerializer<>(new TypeToken>() {}, Registries.ENTITY_TYPE, true)) -+ .register(new RegistryValueSerializer<>(Item.class, Registries.ITEM, true)) -+ .register(new RegistryHolderSerializer<>(new TypeToken>() {}, Registries.CONFIGURED_FEATURE, false)) -+ .register(new RegistryHolderSerializer<>(Item.class, Registries.ITEM, true)) ++ .register(new RegistryValueSerializer<>(new TypeToken>() {}, access, Registries.ENTITY_TYPE, true)) ++ .register(new RegistryValueSerializer<>(Item.class, access, Registries.ITEM, true)) ++ .register(new RegistryHolderSerializer<>(new TypeToken>() {}, access, Registries.CONFIGURED_FEATURE, false)) ++ .register(new RegistryHolderSerializer<>(Item.class, access, Registries.ITEM, true)) + ) + ); + } @@ -754,7 +728,7 @@ index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d + public void reloadConfigs(MinecraftServer server) { + try { + this.initializeGlobalConfiguration(reloader(this.globalConfigClass, GaleGlobalConfiguration.get())); -+ this.initializeWorldDefaultsConfiguration(); ++ this.initializeWorldDefaultsConfiguration(server.registryAccess()); + for (ServerLevel level : server.getAllLevels()) { + this.createWorldConfig(PaperConfigurations.createWorldContextMap(level), reloader(this.worldConfigClass, level.galeConfig())); + } @@ -773,6 +747,16 @@ index 0000000000000000000000000000000000000000..9571aae593999d11b3908856b0295a7d + } + + @Override ++ protected int globalConfigVersion() { ++ return GaleGlobalConfiguration.CURRENT_VERSION; ++ } ++ ++ @Override ++ protected int worldConfigVersion() { ++ return getWorldConfigurationCurrentVersion(); ++ } ++ ++ @Override + public int getWorldConfigurationCurrentVersion() { + return GaleWorldConfiguration.CURRENT_VERSION; + } diff --git a/patches/server/0010-Set-Gale-permissions-root.patch b/patches/server/0009-Set-Gale-permissions-root.patch similarity index 100% rename from patches/server/0010-Set-Gale-permissions-root.patch rename to patches/server/0009-Set-Gale-permissions-root.patch diff --git a/patches/server/0011-Gale-commands.patch b/patches/server/0010-Gale-commands.patch similarity index 99% rename from patches/server/0011-Gale-commands.patch rename to patches/server/0010-Gale-commands.patch index 75e3b94..ec2502b 100644 --- a/patches/server/0011-Gale-commands.patch +++ b/patches/server/0010-Gale-commands.patch @@ -13,7 +13,7 @@ As part of: Paper (https://github.com/PaperMC/Paper) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 9d54ef5f12a24131b1504566e09cd9714b93e913..5be4267d88604210b7bfcc03b2c2056e0a9f0fb0 100644 +index a250a1a4e68eb5971cc09b6b2cf2d0576cb7ba64..5ae5eba9b42b3a5adbad4896e692be0b7338ebaa 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -45,6 +45,7 @@ import net.minecraft.world.level.GameRules; diff --git a/patches/server/0012-Include-time-in-startup-logs.patch b/patches/server/0011-Include-time-in-startup-logs.patch similarity index 95% rename from patches/server/0012-Include-time-in-startup-logs.patch rename to patches/server/0011-Include-time-in-startup-logs.patch index dafec6c..b3bc358 100644 --- a/patches/server/0012-Include-time-in-startup-logs.patch +++ b/patches/server/0011-Include-time-in-startup-logs.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 7c29d92362a82330440dff151bcf421f15c68f71..28d7bee4a69cb354dbe4d56c7ee9021b2e574b40 100644 +index c737c5d62407337d3db2899cfc01713a058a6467..e8f4e3620062a507f00c2b76a934ec48b0d5d89e 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -2,6 +2,7 @@ package org.bukkit.craftbukkit; @@ -45,7 +45,7 @@ index 7c29d92362a82330440dff151bcf421f15c68f71..28d7bee4a69cb354dbe4d56c7ee9021b public static void main(String[] args) { // Paper start final String warnWhenLegacyFormattingDetected = String.join(".", "net", "kyori", "adventure", "text", "warnWhenLegacyFormattingDetected"); -@@ -314,13 +335,13 @@ public class Main { +@@ -315,13 +336,13 @@ public class Main { String javaInfo = "Java " + runtimeMX.getSpecVersion() + " (" + runtimeMX.getVmName() + " " + runtimeMX.getVmVersion() + ")"; String osInfo = "Host: " + osMX.getName() + " " + osMX.getVersion() + " (" + osMX.getArch() + ")"; diff --git a/patches/server/0013-Include-server.properties-in-timings.patch b/patches/server/0012-Include-server.properties-in-timings.patch similarity index 100% rename from patches/server/0013-Include-server.properties-in-timings.patch rename to patches/server/0012-Include-server.properties-in-timings.patch diff --git a/patches/server/0014-Include-hardware-specs-in-timings.patch b/patches/server/0013-Include-hardware-specs-in-timings.patch similarity index 100% rename from patches/server/0014-Include-hardware-specs-in-timings.patch rename to patches/server/0013-Include-hardware-specs-in-timings.patch diff --git a/patches/server/0015-Use-timin.gs-by-default.patch b/patches/server/0014-Use-timin.gs-by-default.patch similarity index 84% rename from patches/server/0015-Use-timin.gs-by-default.patch rename to patches/server/0014-Use-timin.gs-by-default.patch index 4a60268..9ab7763 100644 --- a/patches/server/0015-Use-timin.gs-by-default.patch +++ b/patches/server/0014-Use-timin.gs-by-default.patch @@ -13,11 +13,11 @@ As part of: Mirai (https://github.com/etil2jz/Mirai) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 3bc7230ca62ebe3426da293e436a962bb0134f85..8cd33a3cbce5195923317f05bf1d73809300cd52 100644 +index a6f58b3457b7477015c5c6d969e7d83017dd3fa1..53c7802053d01f7d4c92afbd92607605720db7b0 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -92,7 +92,7 @@ public class GlobalConfiguration extends ConfigurationPart { - public class Timings extends ConfigurationPart.Post { +@@ -97,7 +97,7 @@ public class GlobalConfiguration extends ConfigurationPart { + public class Timings extends ConfigurationPart { public boolean enabled = true; public boolean verbose = true; - public String url = "https://timings.aikar.co/"; diff --git a/patches/server/0016-Recommend-disabling-timings-on-startup.patch b/patches/server/0015-Recommend-disabling-timings-on-startup.patch similarity index 88% rename from patches/server/0016-Recommend-disabling-timings-on-startup.patch rename to patches/server/0015-Recommend-disabling-timings-on-startup.patch index ceff222..e49798d 100644 --- a/patches/server/0016-Recommend-disabling-timings-on-startup.patch +++ b/patches/server/0015-Recommend-disabling-timings-on-startup.patch @@ -31,13 +31,13 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 8cd33a3cbce5195923317f05bf1d73809300cd52..3810cae80cb2dcb721ed25d566b1fe3fb87db4c2 100644 +index 53c7802053d01f7d4c92afbd92607605720db7b0..d840237674c67c739e0f990a89f77a31cb706558 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -90,7 +90,10 @@ public class GlobalConfiguration extends ConfigurationPart { - public Timings timings; +@@ -95,7 +95,10 @@ public class GlobalConfiguration extends ConfigurationPart { - public class Timings extends ConfigurationPart.Post { + @Deprecated(forRemoval = true) + public class Timings extends ConfigurationPart { - public boolean enabled = true; + // Gale start - recommend disabling timings on startup + public boolean enabled = false; // Gale - set default value to false @@ -46,10 +46,10 @@ index 8cd33a3cbce5195923317f05bf1d73809300cd52..3810cae80cb2dcb721ed25d566b1fe3f public boolean verbose = true; public String url = "https://timin.gs/"; // Gale - use timin.gs by default public boolean serverNamePrivacy = false; -@@ -104,6 +107,13 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -109,6 +112,13 @@ public class GlobalConfiguration extends ConfigurationPart { - @Override - public void postProcess() { + @PostProcess + private void postProcess() { + // Gale start - recommend disabling timings on startup + if (enabled && warnIfEnabled) { + net.minecraft.server.MinecraftServer.LOGGER.warn("To improve performance, we recommend setting timings.enabled to false in paper-global.yml"); diff --git a/patches/server/0017-Make-timings-calls-final.patch b/patches/server/0016-Make-timings-calls-final.patch similarity index 100% rename from patches/server/0017-Make-timings-calls-final.patch rename to patches/server/0016-Make-timings-calls-final.patch diff --git a/patches/server/0018-Remove-vanilla-profiler.patch b/patches/server/0017-Remove-vanilla-profiler.patch similarity index 94% rename from patches/server/0018-Remove-vanilla-profiler.patch rename to patches/server/0017-Remove-vanilla-profiler.patch index 26b7485..749ed21 100644 --- a/patches/server/0018-Remove-vanilla-profiler.patch +++ b/patches/server/0017-Remove-vanilla-profiler.patch @@ -73,7 +73,7 @@ index 3eec879bf3975636739b2491cc05b8177032d16d..a2ba17ce6ceda1f52cf685783676a49c return b0; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2cf29a74159c9ed9fc2c92a3bbac07b0748e15ec..b875da1afd6d272e2316e47c7eda6078c201a2e3 100644 +index 358330b182544fdeb9d9334c0c57d6ea84cc3776..3810c8e431258c030fcbe9788d24307a24872677 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -106,18 +106,9 @@ import net.minecraft.util.ProgressListener; @@ -504,7 +504,7 @@ index d10abd28c522612934aada8124e5bb67a9b4e9da..0d1d4d2b1ed46a9f4ee383112ea20ac6 ++j; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 0c2617574e21037d94ac56ad08b490f9bca5c5af..bb4e8715c31400092cee5a20214b8996227e9db6 100644 +index caa73632aee15583c6b6ed12a668c8f49b794708..5853b5e31a62b353f38ab47ec7455526534aba12 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -68,7 +68,6 @@ import net.minecraft.server.level.progress.ChunkProgressListener; @@ -515,7 +515,7 @@ index 0c2617574e21037d94ac56ad08b490f9bca5c5af..bb4e8715c31400092cee5a20214b8996 import net.minecraft.util.thread.BlockableEventLoop; import net.minecraft.util.thread.ProcessorHandle; import net.minecraft.util.thread.ProcessorMailbox; -@@ -466,20 +465,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -546,20 +545,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected void tick(BooleanSupplier shouldKeepTicking) { @@ -537,7 +537,7 @@ index 0c2617574e21037d94ac56ad08b490f9bca5c5af..bb4e8715c31400092cee5a20214b8996 public boolean hasWork() { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 17b6925b46f8386dcfc561483693de516465ec12..1e2d362ed0092e393928d6efbcafb60d6597f0b6 100644 +index 8c33a12ca879c46893150d6adfb8aa4d397c6b4c..75f706d580c84deb2faf778552f8129a98bf32c6 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -24,7 +24,6 @@ import net.minecraft.core.SectionPos; @@ -609,7 +609,7 @@ index 17b6925b46f8386dcfc561483693de516465ec12..1e2d362ed0092e393928d6efbcafb60d - gameprofilerfiller.push("pollingChunks"); int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); - boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit - gameprofilerfiller.push("naturalSpawnCount"); this.level.timings.countNaturalMobs.startTiming(); // Paper - timings @@ -663,7 +663,7 @@ index 17b6925b46f8386dcfc561483693de516465ec12..1e2d362ed0092e393928d6efbcafb60d } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1f182049e 100644 +index 6421edda569ae8953f23ccd78996ab3ab811264a..faac60fc85e70619a22a53594c14b19805f96773 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -77,7 +77,6 @@ import net.minecraft.util.Mth; @@ -678,8 +678,8 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error -- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration -+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler +- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration ++ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler this.pvpMode = minecraftserver.isPvpAllowed(); this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); @@ -713,7 +713,7 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 this.updateSkyBrightness(); this.tickTime(); - gameprofilerfiller.popPush("tickPending"); - timings.scheduledBlocks.startTiming(); // Paper + this.timings.scheduledBlocks.startTiming(); // Paper if (!this.isDebug()) { j = this.getGameTime(); - gameprofilerfiller.push("blockTicks"); @@ -722,7 +722,7 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 this.fluidTicks.tick(j, 65536, this::tickFluid); - gameprofilerfiller.pop(); } - timings.scheduledBlocks.stopTiming(); // Paper + this.timings.scheduledBlocks.stopTiming(); // Paper - gameprofilerfiller.popPush("raid"); this.timings.raids.startTiming(); // Paper - timings @@ -733,9 +733,9 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 this.getChunkSource().tick(shouldKeepTicking, true); this.timings.chunkProviderTick.stopTiming(); // Paper - timings - gameprofilerfiller.popPush("blockEvents"); - timings.doSounds.startTiming(); // Spigot + this.timings.doSounds.startTiming(); // Spigot this.runBlockEvents(); - timings.doSounds.stopTiming(); // Spigot + this.timings.doSounds.stopTiming(); // Spigot this.handlingTick = false; - gameprofilerfiller.pop(); boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players @@ -746,7 +746,7 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 if (flag || this.emptyTime++ < 300) { - gameprofilerfiller.push("entities"); - timings.tickEntities.startTiming(); // Spigot + this.timings.tickEntities.startTiming(); // Spigot if (this.dragonFight != null) { - gameprofilerfiller.push("dragonFight"); this.dragonFight.tick(); @@ -775,8 +775,8 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 } } }); - timings.entityTick.stopTiming(); // Spigot - timings.tickEntities.stopTiming(); // Spigot + this.timings.entityTick.stopTiming(); // Spigot + this.timings.tickEntities.stopTiming(); // Spigot - gameprofilerfiller.pop(); this.tickBlockEntities(); } @@ -822,7 +822,7 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 } private void tickIceAndSnow(boolean raining, BlockPos.MutableBlockPos blockposition1, final LevelChunk chunk) { // Paper - optimise chunk ticking -@@ -1371,19 +1343,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1372,19 +1344,13 @@ public class ServerLevel extends Level implements WorldGenLevel { try { // Paper end - timings entity.setOldPosAndRot(); @@ -842,7 +842,7 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 } finally { timer.stopTiming(); } // Paper - timings Iterator iterator = entity.getPassengers().iterator(); -@@ -1412,12 +1378,6 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1413,12 +1379,6 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -855,7 +855,7 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1429,7 +1389,6 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1430,7 +1390,6 @@ public class ServerLevel extends Level implements WorldGenLevel { vehicle.positionRider(passenger); } // Paper end - EAR 2 @@ -864,10 +864,10 @@ index 5702c8a304e20d63b4a3d5221eb1a89f0a11c9b7..336b606b80328634e102620bc9cd5ca1 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d4aec99cac3f83d764e21946cc904c00e084704e..7d96cc4917ab6dd3d1d58b43016177d459ed2b7f 100644 +index 907c8f15f5247f9972c6677ff0f9e1aa22764a04..0915a357207a445e9e89ee4de576e61cadbe246c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1209,7 +1209,6 @@ public class ServerPlayer extends Player { +@@ -1208,7 +1208,6 @@ public class ServerPlayer extends Player { PortalInfo shapedetectorshape = this.findDimensionEntryPoint(worldserver); if (shapedetectorshape != null) { @@ -875,7 +875,7 @@ index d4aec99cac3f83d764e21946cc904c00e084704e..7d96cc4917ab6dd3d1d58b43016177d4 worldserver = shapedetectorshape.world; // CraftBukkit if (worldserver == null) { } else // CraftBukkit - empty to fall through to null to event if (resourcekey == LevelStem.OVERWORLD && worldserver.getTypeKey() == LevelStem.NETHER) { // CraftBukkit -@@ -1232,8 +1231,6 @@ public class ServerPlayer extends Player { +@@ -1231,8 +1230,6 @@ public class ServerPlayer extends Player { worldserver = ((CraftWorld) exit.getWorld()).getHandle(); // CraftBukkit end @@ -884,7 +884,7 @@ index d4aec99cac3f83d764e21946cc904c00e084704e..7d96cc4917ab6dd3d1d58b43016177d4 if (true) { // CraftBukkit this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds -@@ -1250,7 +1247,6 @@ public class ServerPlayer extends Player { +@@ -1249,7 +1246,6 @@ public class ServerPlayer extends Player { this.connection.teleport(exit); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); worldserver.addDuringPortalTeleport(this); @@ -893,10 +893,10 @@ index d4aec99cac3f83d764e21946cc904c00e084704e..7d96cc4917ab6dd3d1d58b43016177d4 this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities())); playerlist.sendLevelInfo(this, worldserver); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index ff01c0e7f1d84a4a6e2684446ef1172754ddc570..e2eac064b91210e9593b864878d421d406142b59 100644 +index 598f807f0d0caac98b81e0e2991f1bd497c4534e..09595e58058e9c91b181c212bb629de463cc48b9 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -193,7 +193,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -190,7 +190,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } protected void keepConnectionAlive() { @@ -904,7 +904,7 @@ index ff01c0e7f1d84a4a6e2684446ef1172754ddc570..e2eac064b91210e9593b864878d421d4 // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings // This should effectively place the keepalive handling back to "as it was" before 1.12.2 long currentTime = Util.getMillis(); -@@ -214,7 +213,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -211,7 +210,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } // Paper end @@ -989,10 +989,10 @@ index 7ab57748b2f2aea1003d9b7e70e76c372aa1e432..47e75ec4a01f8a456ec6ebc13031c1f0 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b15045e0aa 100644 +index fece91254b10b59474056aa730fd420f90cd7bec..26d1189bd3ff5537dee1c12a54dcfd530c1047dd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -778,7 +778,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -811,7 +811,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // CraftBukkit end public void baseTick() { @@ -1000,7 +1000,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking this.feetBlockState = null; if (this.isPassenger() && this.getVehicle().isRemoved()) { -@@ -839,7 +838,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -872,7 +871,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.firstTick = false; @@ -1008,7 +1008,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 } public void setSharedFlagOnFire(boolean onFire) { -@@ -1058,7 +1056,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1091,7 +1089,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } @@ -1016,7 +1016,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1067,7 +1064,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1100,7 +1097,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // Paper start - ignore movement changes while inactive. if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) { setDeltaMovement(Vec3.ZERO); @@ -1024,7 +1024,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 return; } // Paper end -@@ -1088,8 +1084,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1121,8 +1117,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1033,7 +1033,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1107,9 +1101,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1140,9 +1134,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { BlockState iblockdata = this.level().getBlockState(blockposition); this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); @@ -1044,7 +1044,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1245,8 +1237,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1278,8 +1270,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (this.isOnFire() && (this.isInPowderSnow || this.isInWaterRainOrBubble())) { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1053,7 +1053,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 } } // Paper start - detailed watchdog information -@@ -3076,7 +3066,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3114,7 +3104,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey); if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit @@ -1061,7 +1061,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 this.portalTime = i; // Paper start io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER); -@@ -3094,7 +3083,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3132,7 +3121,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } // Paper // CraftBukkit end @@ -1069,7 +1069,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 } this.isInsidePortal = false; -@@ -3569,14 +3557,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3607,14 +3595,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } // Paper end if (this.level() instanceof ServerLevel && !this.isRemoved()) { @@ -1084,7 +1084,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit if (shapedetectorshape == null) { -@@ -3615,7 +3601,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3653,7 +3639,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.unRide(); // CraftBukkit end @@ -1092,7 +1092,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 // Paper start - Change lead drop timing to prevent dupe if (this instanceof Mob) { ((Mob) this).dropLeash(true, true); // Paper drop lead -@@ -3638,10 +3623,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3676,10 +3661,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.removeAfterChangingDimensions(); @@ -1104,7 +1104,7 @@ index f20ae9153b7098980ce6c0e75fcbbb4da652661b..fb0da928b31a3cd6d0c30b03ffa9f1b1 } } else { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e87010b32d 100644 +index 15e1d8c09fad181406a6acb8b3f177cd5e6c0f52..4fc32bb632d2c6e7bcaae11c3c7fee4baeb26fa9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -405,7 +405,6 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1123,7 +1123,7 @@ index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e8 } public boolean canSpawnSoulSpeedParticle() { -@@ -3072,10 +3070,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3077,10 +3075,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.run += (f3 - this.run) * 0.3F; @@ -1134,7 +1134,7 @@ index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e8 // Paper start - stop large pitch and yaw changes from crashing the server this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; -@@ -3087,7 +3082,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3092,7 +3087,6 @@ public abstract class LivingEntity extends Entity implements Attackable { this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Paper end @@ -1142,7 +1142,7 @@ index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e8 this.animStep += f2; if (this.isFallFlying()) { ++this.fallFlyTicks; -@@ -3370,19 +3364,14 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3382,19 +3376,14 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.setDeltaMovement(d0, d1, d2); @@ -1162,7 +1162,7 @@ index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e8 if (this.jumping && this.isAffectedByFluids()) { double d3; -@@ -3409,8 +3398,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3421,8 +3410,6 @@ public abstract class LivingEntity extends Entity implements Attackable { this.noJumpDelay = 0; } @@ -1171,7 +1171,7 @@ index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e8 this.xxa *= 0.98F; this.zza *= 0.98F; this.updateFallFlying(); -@@ -3437,8 +3424,6 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3449,8 +3436,6 @@ public abstract class LivingEntity extends Entity implements Attackable { this.travel(vec3d1); } @@ -1180,7 +1180,7 @@ index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e8 if (!this.level().isClientSide && !this.isDeadOrDying() && !freezeLocked) { // Paper - Freeze Tick Lock API int i = this.getTicksFrozen(); -@@ -3455,15 +3440,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3467,15 +3452,12 @@ public abstract class LivingEntity extends Entity implements Attackable { this.hurt(this.damageSources().freeze(), 1.0F); } @@ -1197,7 +1197,7 @@ index c039c77d0dd6ec1d336948ca6b5351d6fae1d8bb..ca1e693aab66b067a5db10493a2404e8 if (((ServerLevel) this.level()).hasEntityMoveEvent && !(this instanceof net.minecraft.world.entity.player.Player)) { if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index d28c477171c1b6888a45175075017d960464b5cd..0c75e232ec897e2e8c384333e0b17731beea1021 100644 +index 956d05e2ae59978ea9623ca0e167c0afe0b87306..8dafe3126ef152d44b4ae6d84dd1a3b908332a1e 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -145,8 +145,10 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1244,7 +1244,7 @@ index d28c477171c1b6888a45175075017d960464b5cd..0c75e232ec897e2e8c384333e0b17731 } protected Vec3i getPickupReach() { -@@ -905,43 +901,23 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -903,43 +899,23 @@ public abstract class Mob extends LivingEntity implements Targeting { } return; } @@ -1411,7 +1411,7 @@ index 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..26731a659fe3c40fc20135d473bacf10 } diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index aa850cfaa0534d57e83f37360724da2428a48a18..1125b7d7fdb700d692061f163ca742a1aaa560fc 100644 +index d5b97d4316390028f54aa9bb9fa52b0b003e32a0..120fc4e35eb6eedb401b2741a5617bb90d0ee533 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -282,12 +282,8 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder optional = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS); diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 1d9427da270edb447a2c8e031c4f05fe5d39603b..796768ddc04a74792481efe9dacc0d83cbde746d 100644 +index 7dee2d1c4ce038f42334120f5dedb836f4e21723..9d147f34a7aba21a141fff4ccf1a079ed9f4881b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -147,13 +147,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -1583,7 +1583,7 @@ index b2bc3a832c310448046ccde37a04918aa6d63197..db09d5c6b709f746e69111cedebd29f8 if ((this.tickCount + this.getId()) % 120 == 0) { Warden.applyDarknessAround(worldserver, this.position(), this, 20); diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index f555e29c7f9ea4ddb243a018bdc93d2bf1950c3c..bb751dc6afe6d8d56523d53aef0372781bbe730d 100644 +index cbe2a37f74f4fb2abd0b3297699e54335aaed64f..bbd4fadc353d2975a6ff026f78028f4fbb6bef07 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -253,9 +253,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1617,7 +1617,7 @@ index 45243249a561440512ef2a620c60b02e159c80e2..1fbdae6690176c61143f08ff96b52552 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3e0717129b74ad73b78ac47a9a9154fcf47482f3..b6c3ca543e7e89fc29984140c9de7fce8457416b 100644 +index e9ea666a09c9f04e37621bf38e61f698f3aaa43a..72a385929f900a2ef03ec349a24e4bf4b2c899ad 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -129,7 +129,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1652,15 +1652,15 @@ index 3e0717129b74ad73b78ac47a9a9154fcf47482f3..b6c3ca543e7e89fc29984140c9de7fce - ProfilerFiller gameprofilerfiller = this.getProfiler(); - - gameprofilerfiller.push("blockEntities"); - timings.tileEntityPending.startTiming(); // Spigot + this.timings.tileEntityPending.startTiming(); // Spigot this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { @@ -1299,7 +1294,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - timings.tileEntityTick.stopTiming(); // Spigot + this.timings.tileEntityTick.stopTiming(); // Spigot this.tickingBlockEntities = false; co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper - gameprofilerfiller.pop(); - spigotConfig.currentPrimedTnt = 0; // Spigot + this.spigotConfig.currentPrimedTnt = 0; // Spigot } @@ -1502,7 +1496,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1727,7 +1727,7 @@ index 0f1025495237aebe30132ace0832aa5718d6f9bb..efe922810507c96183a56a5e81a7b142 - } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 4abec88caab4116cfa318f7b66c6b1a8346a7401..f75187462c3789ab2a53fe97253ba4094b6ad5fb 100644 +index fa170cc1ce7011d201295b89718292d696c7fc24..c5ab3058f66a54dba397aa4b562ec95e4fd25686 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -25,7 +25,6 @@ import net.minecraft.network.FriendlyByteBuf; @@ -1738,21 +1738,21 @@ index 4abec88caab4116cfa318f7b66c6b1a8346a7401..f75187462c3789ab2a53fe97253ba409 import net.minecraft.world.entity.Entity; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; -@@ -445,13 +444,8 @@ public class LevelChunk extends ChunkAccess { +@@ -441,13 +440,8 @@ public class LevelChunk extends ChunkAccess { } if (LightEngine.hasDifferentLightProperties(this, blockposition, iblockdata1, iblockdata)) { - ProfilerFiller gameprofilerfiller = this.level.getProfiler(); - - gameprofilerfiller.push("updateSkyLightSources"); - this.skyLightSources.update(this, j, i, l); + // Paper - starlight - remove skyLightSources - gameprofilerfiller.popPush("queueCheckLight"); this.level.getChunkSource().getLightEngine().checkBlock(blockposition); - gameprofilerfiller.pop(); } boolean flag3 = iblockdata1.hasBlockEntity(); -@@ -1165,9 +1159,6 @@ public class LevelChunk extends ChunkAccess { +@@ -1161,9 +1155,6 @@ public class LevelChunk extends ChunkAccess { if (LevelChunk.this.isTicking(blockposition)) { try { @@ -1762,7 +1762,7 @@ index 4abec88caab4116cfa318f7b66c6b1a8346a7401..f75187462c3789ab2a53fe97253ba409 this.blockEntity.tickTimer.startTiming(); // Spigot BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); -@@ -1178,8 +1169,6 @@ public class LevelChunk extends ChunkAccess { +@@ -1174,8 +1165,6 @@ public class LevelChunk extends ChunkAccess { this.loggedInvalidBlockState = true; LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), iblockdata}); } @@ -1804,10 +1804,10 @@ index d23481453717f715124156b5d83f6448f720d049..c4052d1a7c2903564a8a6226c1b019d2 startNode.g = 0.0F; startNode.h = this.getBestH(startNode, positions); // Paper - optimize collection diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java -index dd375fffa727db76fa989248b9b836960974c372..e519cdd99bcdb0c9975312d039d986fc6e886175 100644 +index 08f5239d5eea9133340ec9e1a3a7d8d5e792ced0..ecc398c4535dc395aa0108355ef50c98a69a285c 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java -@@ -35,7 +35,7 @@ public class LootDataManager implements PreparableReloadListener, LootDataResolv +@@ -36,7 +36,7 @@ public class LootDataManager implements PreparableReloadListener, LootDataResolv public LootDataManager() {} @Override diff --git a/patches/server/0019-Use-platform-math-functions.patch b/patches/server/0018-Use-platform-math-functions.patch similarity index 100% rename from patches/server/0019-Use-platform-math-functions.patch rename to patches/server/0018-Use-platform-math-functions.patch diff --git a/patches/server/0020-Faster-floating-point-positive-modulo.patch b/patches/server/0019-Faster-floating-point-positive-modulo.patch similarity index 100% rename from patches/server/0020-Faster-floating-point-positive-modulo.patch rename to patches/server/0019-Faster-floating-point-positive-modulo.patch diff --git a/patches/server/0021-Simpler-ShapelessRecipe-comparison-for-vanilla.patch b/patches/server/0020-Simpler-ShapelessRecipe-comparison-for-vanilla.patch similarity index 97% rename from patches/server/0021-Simpler-ShapelessRecipe-comparison-for-vanilla.patch rename to patches/server/0020-Simpler-ShapelessRecipe-comparison-for-vanilla.patch index 81ff2e8..44513a9 100644 --- a/patches/server/0021-Simpler-ShapelessRecipe-comparison-for-vanilla.patch +++ b/patches/server/0020-Simpler-ShapelessRecipe-comparison-for-vanilla.patch @@ -86,11 +86,11 @@ index 38f7d1ece27ec1a3deda21fb6a6f0e788c8ed718..90ae117a63f05dfca97de4586217c001 autorecipestackmanager.initialize(this); // Paper - better exact choice recipes int i = 0; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java -index acfe2676b840d4edc70507aa139f7db212ed90b7..a1d94a39181da858f423c67401b1427293801726 100644 +index 96d772eb02f79f8c478f5e6f065e387aa7665b18..0d27792dcc3deb4cc7835512f4156b490223358d 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftShapelessRecipe.java @@ -45,6 +45,6 @@ public class CraftShapelessRecipe extends ShapelessRecipe implements CraftRecipe - data.set(i, toNMS(ingred.get(i), true)); + data.set(i, this.toNMS(ingred.get(i), true)); } - MinecraftServer.getServer().getRecipeManager().addRecipe(new RecipeHolder<>(CraftNamespacedKey.toMinecraft(this.getKey()), new net.minecraft.world.item.crafting.ShapelessRecipe(this.getGroup(), CraftRecipe.getCategory(this.getCategory()), CraftItemStack.asNMSCopy(this.getResult()), data))); diff --git a/patches/server/0022-Reduce-projectile-chunk-loading.patch b/patches/server/0021-Reduce-projectile-chunk-loading.patch similarity index 98% rename from patches/server/0022-Reduce-projectile-chunk-loading.patch rename to patches/server/0021-Reduce-projectile-chunk-loading.patch index bdfbc7f..166f63b 100644 --- a/patches/server/0022-Reduce-projectile-chunk-loading.patch +++ b/patches/server/0021-Reduce-projectile-chunk-loading.patch @@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . 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..d598a99072bd8eb4a4ed151b9202237dd0c2af8c 100644 +index a90317100d32974e481e14476843f66997a2cf3a..e799b199bee08bfaf5575eb0c0d2194af495d43e 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,45 @@ public abstract class Projectile extends Entity implements TraceableEntity { diff --git a/patches/server/0023-Predict-Halloween.patch b/patches/server/0022-Predict-Halloween.patch similarity index 100% rename from patches/server/0023-Predict-Halloween.patch rename to patches/server/0022-Predict-Halloween.patch diff --git a/patches/server/0024-Move-random-tick-random.patch b/patches/server/0023-Move-random-tick-random.patch similarity index 96% rename from patches/server/0024-Move-random-tick-random.patch rename to patches/server/0023-Move-random-tick-random.patch index d45979e..c50b77a 100644 --- a/patches/server/0024-Move-random-tick-random.patch +++ b/patches/server/0023-Move-random-tick-random.patch @@ -19,7 +19,7 @@ require it to be initialized earlier. By moving it to the superclass, we initialize it earlier, ensuring that it is available sooner. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 336b606b80328634e102620bc9cd5ca1f182049e..13e46fb4de2908799580aaf87fd585beba63daa9 100644 +index 4ae45b7a7d2d5634a1bcf5030fa7851157e29827..39a54bf48dd0bc5b47874e3910cf3c3d3e68c2fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -939,7 +939,6 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0025-Optimize-random-calls-in-chunk-ticking.patch b/patches/server/0024-Optimize-random-calls-in-chunk-ticking.patch similarity index 92% rename from patches/server/0025-Optimize-random-calls-in-chunk-ticking.patch rename to patches/server/0024-Optimize-random-calls-in-chunk-ticking.patch index d2a5b15..33478c2 100644 --- a/patches/server/0025-Optimize-random-calls-in-chunk-ticking.patch +++ b/patches/server/0024-Optimize-random-calls-in-chunk-ticking.patch @@ -52,7 +52,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 1e2d362ed0092e393928d6efbcafb60d6597f0b6..2c8edc272ae598a02531f596f337a94cb3a173ee 100644 +index 75f706d580c84deb2faf778552f8129a98bf32c6..4600ebd99e910287c3c97d6b9179af716da7f4c6 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -507,6 +507,7 @@ public class ServerChunkCache extends ChunkSource { @@ -61,10 +61,10 @@ index 1e2d362ed0092e393928d6efbcafb60d6597f0b6..2c8edc272ae598a02531f596f337a94c + this.level.resetIceAndSnowTick(); // Gale - Airplane - optimize random calls in chunk ticking - reset ice & snow tick random int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); - boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 13e46fb4de2908799580aaf87fd585beba63daa9..4c4f9b3201599af60f16ec613333d966275f3211 100644 +index 67c9dabe4a33fe0335aeaee7759ec52b8ab169e0..a7972fba6490aa9f0a9808119b8343b71314391f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -941,6 +941,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -95,7 +95,7 @@ index 13e46fb4de2908799580aaf87fd585beba63daa9..4c4f9b3201599af60f16ec613333d966 if (this.random.nextInt(48) == 0) { this.getRandomBlockPosition(j, 0, k, 15, blockposition); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index f75187462c3789ab2a53fe97253ba4094b6ad5fb..648481ad582e855e348dee28fa1cdd752ff6761b 100644 +index c5ab3058f66a54dba397aa4b562ec95e4fd25686..cd375184c63453829be96449c4df88372f905d9e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -85,6 +85,18 @@ public class LevelChunk extends ChunkAccess { @@ -117,7 +117,7 @@ index f75187462c3789ab2a53fe97253ba4094b6ad5fb..648481ad582e855e348dee28fa1cdd75 public LevelChunk(Level world, ChunkPos pos) { this(world, pos, UpgradeData.EMPTY, new LevelChunkTicks<>(), new LevelChunkTicks<>(), 0L, (LevelChunkSection[]) null, (LevelChunk.PostLoadProcessor) null, (BlendingData) null); } -@@ -112,6 +124,7 @@ public class LevelChunk extends ChunkAccess { +@@ -108,6 +120,7 @@ public class LevelChunk extends ChunkAccess { this.postLoad = entityLoader; this.blockTicks = blockTickScheduler; this.fluidTicks = fluidTickScheduler; diff --git a/patches/server/0026-Reduce-enderman-teleport-chunk-lookups.patch b/patches/server/0025-Reduce-enderman-teleport-chunk-lookups.patch similarity index 100% rename from patches/server/0026-Reduce-enderman-teleport-chunk-lookups.patch rename to patches/server/0025-Reduce-enderman-teleport-chunk-lookups.patch diff --git a/patches/server/0027-Reduce-acquire-POI-for-stuck-entities.patch b/patches/server/0026-Reduce-acquire-POI-for-stuck-entities.patch similarity index 100% rename from patches/server/0027-Reduce-acquire-POI-for-stuck-entities.patch rename to patches/server/0026-Reduce-acquire-POI-for-stuck-entities.patch diff --git a/patches/server/0028-Remove-iterators-from-Inventory-contains.patch b/patches/server/0027-Remove-iterators-from-Inventory-contains.patch similarity index 100% rename from patches/server/0028-Remove-iterators-from-Inventory-contains.patch rename to patches/server/0027-Remove-iterators-from-Inventory-contains.patch diff --git a/patches/server/0029-Check-targeting-range-before-getting-visibility.patch b/patches/server/0028-Check-targeting-range-before-getting-visibility.patch similarity index 96% rename from patches/server/0029-Check-targeting-range-before-getting-visibility.patch rename to patches/server/0028-Check-targeting-range-before-getting-visibility.patch index 3a75a96..9acccdc 100644 --- a/patches/server/0029-Check-targeting-range-before-getting-visibility.patch +++ b/patches/server/0028-Check-targeting-range-before-getting-visibility.patch @@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java -index 58422f00c7d64dbd1cf6d7211c9838875cbe7778..57bd0b2d01c92f08cc41db59b38641a82653af0e 100644 +index c157309ac78e7af084d3acb6e8b2bcd469a39d5e..09bc539502dada5dfdd95e50141e587c1c3dee4c 100644 --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java @@ -75,9 +75,18 @@ public class TargetingConditions { diff --git a/patches/server/0030-Print-stack-trace-for-plugins-not-shutting-down-task.patch b/patches/server/0029-Print-stack-trace-for-plugins-not-shutting-down-task.patch similarity index 93% rename from patches/server/0030-Print-stack-trace-for-plugins-not-shutting-down-task.patch rename to patches/server/0029-Print-stack-trace-for-plugins-not-shutting-down-task.patch index 217e2c1..705cd4c 100644 --- a/patches/server/0030-Print-stack-trace-for-plugins-not-shutting-down-task.patch +++ b/patches/server/0029-Print-stack-trace-for-plugins-not-shutting-down-task.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 10da68956955b933365bdb1e632b27d8f33a81b1..cd6342743aa36e2de0e0f72641f87a9ef3c09f89 100644 +index 8abeb9dc5c0e2fe95ea408fbaab9c359cb7cd69f..c0b66b8455c35794c055651b687ba9ca2b89af4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1123,6 +1123,13 @@ public final class CraftServer implements Server { +@@ -1125,6 +1125,13 @@ 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/0031-Improve-fluid-direction-caching.patch b/patches/server/0030-Improve-fluid-direction-caching.patch similarity index 100% rename from patches/server/0031-Improve-fluid-direction-caching.patch rename to patches/server/0030-Improve-fluid-direction-caching.patch diff --git a/patches/server/0032-Cache-on-climbable-check.patch b/patches/server/0031-Cache-on-climbable-check.patch similarity index 92% rename from patches/server/0032-Cache-on-climbable-check.patch rename to patches/server/0031-Cache-on-climbable-check.patch index 468cf1f..d6c2da0 100644 --- a/patches/server/0032-Cache-on-climbable-check.patch +++ b/patches/server/0031-Cache-on-climbable-check.patch @@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ca1e693aab66b067a5db10493a2404e87010b32d..6123d7f78cb9bc8baf7df1d038e46293dc3f6dc9 100644 +index 4fc32bb632d2c6e7bcaae11c3c7fee4baeb26fa9..5f7e49d291e93373ba828aafc57fa6df0cd1a3e9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -42,7 +42,7 @@ index ca1e693aab66b067a5db10493a2404e87010b32d..6123d7f78cb9bc8baf7df1d038e46293 public abstract class LivingEntity extends Entity implements Attackable { -@@ -1997,6 +1996,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2002,6 +2001,20 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } @@ -64,7 +64,7 @@ index ca1e693aab66b067a5db10493a2404e87010b32d..6123d7f78cb9bc8baf7df1d038e46293 if (this.isSpectator()) { return false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 2f9e5a1adf9d67ffe18d95f2822ca3d2288fb27a..4fd7512106eb3aa63001ab4617e499d043fb6057 100644 +index 59103744ac6beeb12719fdefcda54eeff498229e..4bce0b788b441afd5ba939cc6d37d6c7072a9155 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -297,7 +297,7 @@ public class ActivationRange diff --git a/patches/server/0033-Make-EntityCollisionContext-a-live-representation.patch b/patches/server/0032-Make-EntityCollisionContext-a-live-representation.patch similarity index 100% rename from patches/server/0033-Make-EntityCollisionContext-a-live-representation.patch rename to patches/server/0032-Make-EntityCollisionContext-a-live-representation.patch diff --git a/patches/server/0034-Improve-container-checking-with-a-bitset.patch b/patches/server/0033-Improve-container-checking-with-a-bitset.patch similarity index 100% rename from patches/server/0034-Improve-container-checking-with-a-bitset.patch rename to patches/server/0033-Improve-container-checking-with-a-bitset.patch diff --git a/patches/server/0035-Better-checking-for-useless-move-packets.patch b/patches/server/0034-Better-checking-for-useless-move-packets.patch similarity index 96% rename from patches/server/0035-Better-checking-for-useless-move-packets.patch rename to patches/server/0034-Better-checking-for-useless-move-packets.patch index a6c55f1..e16db89 100644 --- a/patches/server/0035-Better-checking-for-useless-move-packets.patch +++ b/patches/server/0034-Better-checking-for-useless-move-packets.patch @@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 892a334d1b1c0784ed6838d1aa066403998b9a9f..c9e90e89fea61d1cfbc6a167e67e8288adf48947 100644 +index 35674f92a67f93382103c2766df4b678ba5c862f..e8bb35322d3204e6a126bc6df0beed3f931dae6d 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -178,6 +178,7 @@ public class ServerEntity { diff --git a/patches/server/0036-Use-aging-cache-for-biome-temperatures.patch b/patches/server/0035-Use-aging-cache-for-biome-temperatures.patch similarity index 100% rename from patches/server/0036-Use-aging-cache-for-biome-temperatures.patch rename to patches/server/0035-Use-aging-cache-for-biome-temperatures.patch diff --git a/patches/server/0037-Inline-level-height.patch b/patches/server/0036-Inline-level-height.patch similarity index 100% rename from patches/server/0037-Inline-level-height.patch rename to patches/server/0036-Inline-level-height.patch diff --git a/patches/server/0038-Use-ThreadUnsafeRandom-for-mob-spawning.patch b/patches/server/0037-Use-ThreadUnsafeRandom-for-mob-spawning.patch similarity index 100% rename from patches/server/0038-Use-ThreadUnsafeRandom-for-mob-spawning.patch rename to patches/server/0037-Use-ThreadUnsafeRandom-for-mob-spawning.patch diff --git a/patches/server/0039-Remove-streams-and-iterators-from-range-check.patch b/patches/server/0038-Remove-streams-and-iterators-from-range-check.patch similarity index 93% rename from patches/server/0039-Remove-streams-and-iterators-from-range-check.patch rename to patches/server/0038-Remove-streams-and-iterators-from-range-check.patch index cca7705..518aed9 100644 --- a/patches/server/0039-Remove-streams-and-iterators-from-range-check.patch +++ b/patches/server/0038-Remove-streams-and-iterators-from-range-check.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index bb4e8715c31400092cee5a20214b8996227e9db6..43723cefd08830c6316f668cf8438a29f01cdcdd 100644 +index 5853b5e31a62b353f38ab47ec7455526534aba12..9be4485c46ec40f5ed8a6802bd2e6b66d26aace4 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1323,8 +1323,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1457,8 +1457,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); } @@ -65,7 +65,7 @@ index bb4e8715c31400092cee5a20214b8996227e9db6..43723cefd08830c6316f668cf8438a29 Iterator iterator = this.entity.getIndirectPassengers().iterator(); while (iterator.hasNext()) { -@@ -1336,6 +1358,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1470,6 +1492,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider i = j; } } diff --git a/patches/server/0040-Block-goal-does-not-load-chunks.patch b/patches/server/0039-Block-goal-does-not-load-chunks.patch similarity index 100% rename from patches/server/0040-Block-goal-does-not-load-chunks.patch rename to patches/server/0039-Block-goal-does-not-load-chunks.patch diff --git a/patches/server/0041-Reduce-entity-allocations.patch b/patches/server/0040-Reduce-entity-allocations.patch similarity index 95% rename from patches/server/0041-Reduce-entity-allocations.patch rename to patches/server/0040-Reduce-entity-allocations.patch index 23a6b23..be2d375 100644 --- a/patches/server/0041-Reduce-entity-allocations.patch +++ b/patches/server/0040-Reduce-entity-allocations.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fb0da928b31a3cd6d0c30b03ffa9f1b15045e0aa..106ad95cb4fb97aaed52f5e7b52aa64e397fe3a8 100644 +index f182201f49dd9db41fe987a42c4c7cd19f07543c..c4fcd0fc2eb029daf2b3724cea1e5b8007373949 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -433,6 +433,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -434,6 +434,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return this.originWorld; } // Paper end diff --git a/patches/server/0042-Remove-lambda-from-ticking-guard.patch b/patches/server/0041-Remove-lambda-from-ticking-guard.patch similarity index 97% rename from patches/server/0042-Remove-lambda-from-ticking-guard.patch rename to patches/server/0041-Remove-lambda-from-ticking-guard.patch index 45b2ae1..7a4db19 100644 --- a/patches/server/0042-Remove-lambda-from-ticking-guard.patch +++ b/patches/server/0041-Remove-lambda-from-ticking-guard.patch @@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4c4f9b3201599af60f16ec613333d966275f3211..90d548b4488efdb3580a7023f1029feb10af724e 100644 +index f13daf2e529aa7e877c4882b76369cef8c780434..8105417cd90379642ca362c8b0d6ddcfcbaf47c6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -878,7 +878,20 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0043-Reduce-entity-fluid-lookups-if-no-fluids.patch b/patches/server/0042-Reduce-entity-fluid-lookups-if-no-fluids.patch similarity index 97% rename from patches/server/0043-Reduce-entity-fluid-lookups-if-no-fluids.patch rename to patches/server/0042-Reduce-entity-fluid-lookups-if-no-fluids.patch index 98882eb..0fb5c56 100644 --- a/patches/server/0043-Reduce-entity-fluid-lookups-if-no-fluids.patch +++ b/patches/server/0042-Reduce-entity-fluid-lookups-if-no-fluids.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 106ad95cb4fb97aaed52f5e7b52aa64e397fe3a8..9ec347fe109e169294484223f90ae12e771d3133 100644 +index c66df436e60bb86c91bf3047fa891a0f027aeab1..46ac334995f4771823f03a85388f6b45443331db 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4308,16 +4308,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4346,16 +4346,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -60,7 +60,7 @@ index 106ad95cb4fb97aaed52f5e7b52aa64e397fe3a8..9ec347fe109e169294484223f90ae12e double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4325,14 +4327,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4363,14 +4365,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -128,7 +128,7 @@ index 106ad95cb4fb97aaed52f5e7b52aa64e397fe3a8..9ec347fe109e169294484223f90ae12e if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -4354,9 +4403,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4392,9 +4441,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // CraftBukkit end } } diff --git a/patches/server/0044-SIMD-support.patch b/patches/server/0043-SIMD-support.patch similarity index 97% rename from patches/server/0044-SIMD-support.patch rename to patches/server/0043-SIMD-support.patch index d68e545..c53a9ad 100644 --- a/patches/server/0044-SIMD-support.patch +++ b/patches/server/0043-SIMD-support.patch @@ -13,10 +13,10 @@ As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/build.gradle.kts b/build.gradle.kts -index 16503dd71bbd7f181d0d100367a89cfd1735496e..6c93ba174506822223301535dc5b619e5623927a 100644 +index 266e5e177b23b48eb880565dcafdc16419e516db..de7a3389c66d5cb3123cf4c85d854bc727528b65 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -73,6 +73,7 @@ tasks.withType { +@@ -71,6 +71,7 @@ tasks.withType { compilerArgs.add("-Xlint:-module") compilerArgs.add("-Xlint:-removal") compilerArgs.add("-Xlint:-dep-ann") @@ -24,7 +24,7 @@ index 16503dd71bbd7f181d0d100367a89cfd1735496e..6c93ba174506822223301535dc5b619e } // Gale end - hide irrelevant compilation warnings -@@ -199,6 +200,7 @@ fun TaskContainer.registerRunTask( +@@ -195,6 +196,7 @@ fun TaskContainer.registerRunTask( minHeapSize = "${memoryGb}G" maxHeapSize = "${memoryGb}G" jvmArgs("--enable-preview") // Gale - enable preview features for development runs diff --git a/patches/server/0045-Make-book-writing-configurable.patch b/patches/server/0044-Make-book-writing-configurable.patch similarity index 95% rename from patches/server/0045-Make-book-writing-configurable.patch rename to patches/server/0044-Make-book-writing-configurable.patch index e6b1685..8a23efd 100644 --- a/patches/server/0045-Make-book-writing-configurable.patch +++ b/patches/server/0044-Make-book-writing-configurable.patch @@ -22,7 +22,7 @@ you to easily disable books, should you want to preemptively remove this functionality before additional exploits are found. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b5fe3786b337fb99920aac72b865e6a25bcb9649..4f905fd5a2873163beb362bbbffd0e3e10325411 100644 +index 65bb221993147a558995b36fb835f7b82e0eb4bd..11c0f81a6966ba07be793cd6778a5ce14b156898 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -178,6 +178,8 @@ import net.minecraft.world.phys.Vec3; @@ -34,7 +34,7 @@ index b5fe3786b337fb99920aac72b865e6a25bcb9649..4f905fd5a2873163beb362bbbffd0e3e import org.slf4j.Logger; // CraftBukkit start -@@ -1118,6 +1120,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1119,6 +1121,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleEditBook(ServerboundEditBookPacket packet) { @@ -47,7 +47,7 @@ index b5fe3786b337fb99920aac72b865e6a25bcb9649..4f905fd5a2873163beb362bbbffd0e3e if (!this.cserver.isPrimaryThread()) { List pageList = packet.getPages(); diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java -index 2e23147f807c6620b54d3047fe24a3847900712c..9ae9eff03fa9b240ed736eaa97fee0da7168c41d 100644 +index 0a808c5d242b2d9bea82d9d219227fbaf5741bf4..7d66126c1f5957c109a2426d53f5d0072886309b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java +++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java @@ -7,6 +7,8 @@ public final class CraftDefaultPermissions { diff --git a/patches/server/0046-Optimize-entity-coordinate-key.patch b/patches/server/0045-Optimize-entity-coordinate-key.patch similarity index 90% rename from patches/server/0046-Optimize-entity-coordinate-key.patch rename to patches/server/0045-Optimize-entity-coordinate-key.patch index a4a1f2f..f3e32cc 100644 --- a/patches/server/0046-Optimize-entity-coordinate-key.patch +++ b/patches/server/0045-Optimize-entity-coordinate-key.patch @@ -22,7 +22,7 @@ data is already available in the blockPosition struct, so we use that instead of re-doing the casting. diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index 3bf983d4c51d517db613a00cb31dea5440cec300..8aaefb8df043eb8d6886ec9d49916203071fc7ec 100644 +index 4fd889d717a22c84ebd092d80739c6e7f1fb8534..a7f0c7c0618f004315570801334d52ce3ec4b4e2 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java @@ -211,7 +211,7 @@ public final class MCUtil { @@ -35,10 +35,10 @@ index 3bf983d4c51d517db613a00cb31dea5440cec300..8aaefb8df043eb8d6886ec9d49916203 public static long getCoordinateKey(final ChunkPos pair) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9ec347fe109e169294484223f90ae12e771d3133..eeb81fa2ba4e28a57e534edc82f1324cd2d0cf50 100644 +index 55306f3aaed98307ed0ac662351d18e274095a01..ec0c8205959d451c5f8c15f0aa11d0115f1d8125 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -305,7 +305,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -306,7 +306,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public double yo; public double zo; private Vec3 position; diff --git a/patches/server/0047-Reduce-in-wall-checks.patch b/patches/server/0046-Reduce-in-wall-checks.patch similarity index 95% rename from patches/server/0047-Reduce-in-wall-checks.patch rename to patches/server/0046-Reduce-in-wall-checks.patch index 42ef380..84b0d15 100644 --- a/patches/server/0047-Reduce-in-wall-checks.patch +++ b/patches/server/0046-Reduce-in-wall-checks.patch @@ -28,7 +28,7 @@ but is so much cheaper than the suffocation check that it's worth keeping it. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6123d7f78cb9bc8baf7df1d038e46293dc3f6dc9..471b8dc89987a27e5e7a2b61b7ff2cc29f025508 100644 +index 5f7e49d291e93373ba828aafc57fa6df0cd1a3e9..1794f5d1a8cc912fdd75a18ceccb536f48ab4686 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -412,7 +412,10 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -43,7 +43,7 @@ index 6123d7f78cb9bc8baf7df1d038e46293dc3f6dc9..471b8dc89987a27e5e7a2b61b7ff2cc2 this.hurt(this.damageSources().inWall(), 1.0F); } else if (flag && !this.level().getWorldBorder().isWithinBounds(this.getBoundingBox())) { double d0 = this.level().getWorldBorder().getDistanceToBorder(this) + this.level().getWorldBorder().getDamageSafeZone(); -@@ -1398,6 +1401,15 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1406,6 +1409,15 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.getHealth() <= 0.0F; } diff --git a/patches/server/0048-Make-chat-order-verification-configurable.patch b/patches/server/0047-Make-chat-order-verification-configurable.patch similarity index 93% rename from patches/server/0048-Make-chat-order-verification-configurable.patch rename to patches/server/0047-Make-chat-order-verification-configurable.patch index c4bef68..6a0434c 100644 --- a/patches/server/0048-Make-chat-order-verification-configurable.patch +++ b/patches/server/0047-Make-chat-order-verification-configurable.patch @@ -13,10 +13,10 @@ As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4f905fd5a2873163beb362bbbffd0e3e10325411..046f5705490748a202bf8469ce80b732d1bd853f 100644 +index 11c0f81a6966ba07be793cd6778a5ce14b156898..fd01a4ffb44024e46ea6d45dabd8f851cb8ebfa5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2280,6 +2280,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2281,6 +2281,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } private boolean updateChatOrder(Instant timestamp) { diff --git a/patches/server/0049-Make-ender-dragon-respawn-attempt-after-placing-end-.patch b/patches/server/0048-Make-ender-dragon-respawn-attempt-after-placing-end-.patch similarity index 100% rename from patches/server/0049-Make-ender-dragon-respawn-attempt-after-placing-end-.patch rename to patches/server/0048-Make-ender-dragon-respawn-attempt-after-placing-end-.patch diff --git a/patches/server/0050-Make-saving-fireworks-configurable.patch b/patches/server/0049-Make-saving-fireworks-configurable.patch similarity index 96% rename from patches/server/0050-Make-saving-fireworks-configurable.patch rename to patches/server/0049-Make-saving-fireworks-configurable.patch index b073a50..26349a7 100644 --- a/patches/server/0050-Make-saving-fireworks-configurable.patch +++ b/patches/server/0049-Make-saving-fireworks-configurable.patch @@ -20,7 +20,7 @@ launcher can very easily fill a chunk. Prevent saving Fireworks so that chunk unloads will wipe a chunks fireworks in this case. diff --git a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -index 288910fb168ddc5d3a61971778b8038a56772fa8..a9354adc79b71a206ef7d76f0c59b26478160fb6 100644 +index b2f08889139dc447f7071f1c81456035bf8de31e..3e8cc641cd4dafd4e220a24033a5f58d450c043f 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java @@ -357,4 +357,12 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { diff --git a/patches/server/0051-Don-t-trigger-lootable-refresh-for-non-player-intera.patch b/patches/server/0050-Don-t-trigger-lootable-refresh-for-non-player-intera.patch similarity index 84% rename from patches/server/0051-Don-t-trigger-lootable-refresh-for-non-player-intera.patch rename to patches/server/0050-Don-t-trigger-lootable-refresh-for-non-player-intera.patch index 1d33177..9b6d780 100644 --- a/patches/server/0051-Don-t-trigger-lootable-refresh-for-non-player-intera.patch +++ b/patches/server/0050-Don-t-trigger-lootable-refresh-for-non-player-intera.patch @@ -13,7 +13,7 @@ As part of: EmpireCraft (https://github.com/starlis/empirecraft) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index 6347459c1e7347914642c23fe919526db879d103..d652873922fa89a40f7520f5aff53847637c9771 100644 +index b71638976cacf542662beb1f77fc40182be65215..5ac1667dd79389195f656eff97f83a2dafaf1c28 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java @@ -70,6 +70,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @@ -21,6 +21,6 @@ index 6347459c1e7347914642c23fe919526db879d103..d652873922fa89a40f7520f5aff53847 public void unpackLootTable(@Nullable Player player) { + if (player == null) return; // Gale - EMC - don't trigger lootable refresh for non-player interaction - if (this.lootableData.shouldReplenish(player) && this.level.getServer() != null) { // Paper + if (this.level != null && this.lootableData.shouldReplenish(player) && this.level.getServer() != null) { // Paper - don't unpack loot table if not in world LootTable lootTable = this.level.getServer().getLootData().getLootTable(this.lootTable); if (player instanceof ServerPlayer) { diff --git a/patches/server/0052-Reduce-hopper-item-checks.patch b/patches/server/0051-Reduce-hopper-item-checks.patch similarity index 100% rename from patches/server/0052-Reduce-hopper-item-checks.patch rename to patches/server/0051-Reduce-hopper-item-checks.patch diff --git a/patches/server/0053-Reduce-villager-item-re-pickup.patch b/patches/server/0052-Reduce-villager-item-re-pickup.patch similarity index 100% rename from patches/server/0053-Reduce-villager-item-re-pickup.patch rename to patches/server/0052-Reduce-villager-item-re-pickup.patch diff --git a/patches/server/0054-Variable-entity-wake-up-duration.patch b/patches/server/0053-Variable-entity-wake-up-duration.patch similarity index 100% rename from patches/server/0054-Variable-entity-wake-up-duration.patch rename to patches/server/0053-Variable-entity-wake-up-duration.patch diff --git a/patches/server/0055-Do-not-process-chat-commands-before-player-has-joine.patch b/patches/server/0054-Do-not-process-chat-commands-before-player-has-joine.patch similarity index 88% rename from patches/server/0055-Do-not-process-chat-commands-before-player-has-joine.patch rename to patches/server/0054-Do-not-process-chat-commands-before-player-has-joine.patch index 01946e6..c8f275d 100644 --- a/patches/server/0055-Do-not-process-chat-commands-before-player-has-joine.patch +++ b/patches/server/0054-Do-not-process-chat-commands-before-player-has-joine.patch @@ -13,7 +13,7 @@ As part of: EmpireCraft (https://github.com/starlis/empirecraft) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7d96cc4917ab6dd3d1d58b43016177d459ed2b7f..621c134cb774deca14618f7010335072ffbc68e6 100644 +index db0aa97608cc209ad63a93443498c7ffa362968f..a684be3ed6a464816eabdfe94f0ce1bf5bd91b54 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -268,6 +268,7 @@ public class ServerPlayer extends Player { @@ -25,10 +25,10 @@ index 7d96cc4917ab6dd3d1d58b43016177d459ed2b7f..621c134cb774deca14618f7010335072 public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 046f5705490748a202bf8469ce80b732d1bd853f..48f87201e96ee7cba548de93c8f8c6388453485c 100644 +index fd01a4ffb44024e46ea6d45dabd8f851cb8ebfa5..80140474fc1b43009e757d1fa7d1324ee9f35bca 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2257,6 +2257,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2258,6 +2258,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales this.send(new ClientboundSystemChatPacket(PaperAdventure.asAdventure(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED)), false)); // Paper - Adventure return Optional.empty(); @@ -40,10 +40,10 @@ index 046f5705490748a202bf8469ce80b732d1bd853f..48f87201e96ee7cba548de93c8f8c638 this.player.resetLastActionTime(); return optional; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 48d1444fbad1c57738807d0128b94160a5a17a4d..371efd8410137a8841f0271b210b3a33773482e9 100644 +index 33abcf12b4426572b74ca4c813e4392c823494bc..0f8eac5bf5e8f59c511f4b0040bc8a84b8a05c5c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -328,6 +328,8 @@ public abstract class PlayerList { +@@ -349,6 +349,8 @@ public abstract class PlayerList { return; } diff --git a/patches/server/0056-Do-not-log-invalid-statistics.patch b/patches/server/0055-Do-not-log-invalid-statistics.patch similarity index 100% rename from patches/server/0056-Do-not-log-invalid-statistics.patch rename to patches/server/0055-Do-not-log-invalid-statistics.patch diff --git a/patches/server/0057-Do-not-log-empty-message-warnings.patch b/patches/server/0056-Do-not-log-empty-message-warnings.patch similarity index 91% rename from patches/server/0057-Do-not-log-empty-message-warnings.patch rename to patches/server/0056-Do-not-log-empty-message-warnings.patch index ed3fe77..b81736a 100644 --- a/patches/server/0057-Do-not-log-empty-message-warnings.patch +++ b/patches/server/0056-Do-not-log-empty-message-warnings.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 48f87201e96ee7cba548de93c8f8c6388453485c..853bdac080f5edb53207d01bccfe9fc183c384f9 100644 +index 80140474fc1b43009e757d1fa7d1324ee9f35bca..75b6adb8195fac955dd9c741324b63cfc4d4c578 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -179,6 +179,7 @@ import net.minecraft.world.phys.shapes.BooleanOp; @@ -18,13 +18,13 @@ index 48f87201e96ee7cba548de93c8f8c6388453485c..853bdac080f5edb53207d01bccfe9fc1 import org.galemc.gale.configuration.GaleGlobalConfiguration; import org.slf4j.Logger; -@@ -2442,7 +2443,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2443,7 +2444,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // CraftBukkit start String s = message.signedContent(); if (s.isEmpty()) { - ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send an empty message"); + if (GaleGlobalConfiguration.get().logToConsole.chat.emptyMessageWarning) ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send an empty message"); // Gale - do not log empty message warnings - } else if (getCraftPlayer().isConversing()) { + } else if (this.getCraftPlayer().isConversing()) { final String conversationInput = s; this.server.processQueue.add(new Runnable() { diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java diff --git a/patches/server/0058-Do-not-log-ignored-advancements.patch b/patches/server/0057-Do-not-log-ignored-advancements.patch similarity index 100% rename from patches/server/0058-Do-not-log-ignored-advancements.patch rename to patches/server/0057-Do-not-log-ignored-advancements.patch diff --git a/patches/server/0059-Do-not-log-setBlock-in-far-chunks.patch b/patches/server/0058-Do-not-log-setBlock-in-far-chunks.patch similarity index 95% rename from patches/server/0059-Do-not-log-setBlock-in-far-chunks.patch rename to patches/server/0058-Do-not-log-setBlock-in-far-chunks.patch index c848d09..16dab84 100644 --- a/patches/server/0059-Do-not-log-setBlock-in-far-chunks.patch +++ b/patches/server/0058-Do-not-log-setBlock-in-far-chunks.patch @@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 877498729c66de9aa6a27c9148f7494d7895615c..d2bbbb0e73dafd2294838137bfbd16acf1c76940 100644 +index 50ed7cfe1ecef6d075ba484804827cec83ba2bf2..4c8f27673219187399cb9ba1d23447d42077f3fe 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java @@ -54,6 +54,7 @@ import net.minecraft.world.phys.AABB; @@ -48,7 +48,7 @@ index 877498729c66de9aa6a27c9148f7494d7895615c..d2bbbb0e73dafd2294838137bfbd16ac import org.slf4j.Logger; public class WorldGenRegion implements WorldGenLevel { -@@ -297,6 +298,7 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -318,6 +319,7 @@ public class WorldGenRegion implements WorldGenLevel { return true; } else { // Paper start diff --git a/patches/server/0060-Do-not-log-unrecognized-recipes.patch b/patches/server/0059-Do-not-log-unrecognized-recipes.patch similarity index 100% rename from patches/server/0060-Do-not-log-unrecognized-recipes.patch rename to patches/server/0059-Do-not-log-unrecognized-recipes.patch diff --git a/patches/server/0061-Do-not-log-legacy-Material-initialization.patch b/patches/server/0060-Do-not-log-legacy-Material-initialization.patch similarity index 100% rename from patches/server/0061-Do-not-log-legacy-Material-initialization.patch rename to patches/server/0060-Do-not-log-legacy-Material-initialization.patch diff --git a/patches/server/0062-Do-not-log-plugin-library-loads.patch b/patches/server/0061-Do-not-log-plugin-library-loads.patch similarity index 90% rename from patches/server/0062-Do-not-log-plugin-library-loads.patch rename to patches/server/0061-Do-not-log-plugin-library-loads.patch index 5afd562..85401af 100644 --- a/patches/server/0062-Do-not-log-plugin-library-loads.patch +++ b/patches/server/0061-Do-not-log-plugin-library-loads.patch @@ -37,30 +37,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 5af30bdac9e9315b53d31309956486ca3f0622b5..6a619e8a3084e509d861ec9f57608e4190f9dfe4 100644 +index 5af30bdac9e9315b53d31309956486ca3f0622b5..83fcaa347be906cf42ba853754ac6bda2b39d8f9 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -4,6 +4,7 @@ package org.galemc.gale.configuration; +@@ -4,6 +4,8 @@ package org.galemc.gale.configuration; import io.papermc.paper.configuration.Configuration; import io.papermc.paper.configuration.ConfigurationPart; +import org.bukkit.plugin.java.JavaPluginLoader; ++import org.spongepowered.configurate.objectmapping.meta.PostProcess; import org.spongepowered.configurate.objectmapping.meta.Setting; @SuppressWarnings({"CanBeFinal", "FieldCanBeLocal", "FieldMayBeFinal", "NotNullFieldNotInitialized", "InnerClassMayBeStatic"}) -@@ -98,6 +99,24 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -98,6 +100,24 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public boolean emptyMessageWarning = false; // Gale - do not log empty message warnings } + // Gale start - Purpur - do not log plugin library loads + public PluginLibraryLoader pluginLibraryLoader; -+ public class PluginLibraryLoader extends ConfigurationPart.Post { ++ public class PluginLibraryLoader extends ConfigurationPart { + + public boolean downloads = true; + public boolean startLoadLibrariesForPlugin = true; + public boolean libraryLoaded = true; + -+ @Override ++ @PostProcess + public void postProcess() { + JavaPluginLoader.logDownloads = this.downloads; + JavaPluginLoader.logStartLoadLibrariesForPlugin = this.startLoadLibrariesForPlugin; diff --git a/patches/server/0063-Do-not-log-expired-message-warnings.patch b/patches/server/0062-Do-not-log-expired-message-warnings.patch similarity index 94% rename from patches/server/0063-Do-not-log-expired-message-warnings.patch rename to patches/server/0062-Do-not-log-expired-message-warnings.patch index e60325a..62149c9 100644 --- a/patches/server/0063-Do-not-log-expired-message-warnings.patch +++ b/patches/server/0062-Do-not-log-expired-message-warnings.patch @@ -28,10 +28,10 @@ index c0a80824a0307ea673805015119cc834b268f0dc..d7c6e90ccf3a8ce58e5533c5158ce626 return playerChatMessage; diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 6a619e8a3084e509d861ec9f57608e4190f9dfe4..493eca395097691f797cfa47cb6a701f74d0ab14 100644 +index 83fcaa347be906cf42ba853754ac6bda2b39d8f9..ca6d3712f4552534585b46e921738ec9416095ab 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -97,6 +97,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -98,6 +98,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public Chat chat; public class Chat extends ConfigurationPart { public boolean emptyMessageWarning = false; // Gale - do not log empty message warnings diff --git a/patches/server/0064-Do-not-log-out-of-order-message-warnings.patch b/patches/server/0063-Do-not-log-out-of-order-message-warnings.patch similarity index 88% rename from patches/server/0064-Do-not-log-out-of-order-message-warnings.patch rename to patches/server/0063-Do-not-log-out-of-order-message-warnings.patch index 24e7a07..4eb970c 100644 --- a/patches/server/0064-Do-not-log-out-of-order-message-warnings.patch +++ b/patches/server/0063-Do-not-log-out-of-order-message-warnings.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 853bdac080f5edb53207d01bccfe9fc183c384f9..942be51e68955a768dbd5b8c20f78b260ec7b6a3 100644 +index 75b6adb8195fac955dd9c741324b63cfc4d4c578..b7f3bf0553fe72449f54f45046fe5b8b69eb5b59 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2247,7 +2247,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2248,7 +2248,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { @@ -20,10 +20,10 @@ index 853bdac080f5edb53207d01bccfe9fc183c384f9..942be51e68955a768dbd5b8c20f78b26 this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"), org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event causes }); // Paper - push to main diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 493eca395097691f797cfa47cb6a701f74d0ab14..fc61b3ffc5939590a05ffce81f3b2cf8917d5a32 100644 +index ca6d3712f4552534585b46e921738ec9416095ab..2d95bad5bf426da29aa7a0e573b38b6e158614ea 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -98,6 +98,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -99,6 +99,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public class Chat extends ConfigurationPart { public boolean emptyMessageWarning = false; // Gale - do not log empty message warnings public boolean expiredMessageWarning = false; // Gale - do not log expired message warnings diff --git a/patches/server/0065-Do-not-log-Not-Secure-marker.patch b/patches/server/0064-Do-not-log-Not-Secure-marker.patch similarity index 92% rename from patches/server/0065-Do-not-log-Not-Secure-marker.patch rename to patches/server/0064-Do-not-log-Not-Secure-marker.patch index 6e0f7bc..54d4900 100644 --- a/patches/server/0065-Do-not-log-Not-Secure-marker.patch +++ b/patches/server/0064-Do-not-log-Not-Secure-marker.patch @@ -28,7 +28,7 @@ index e4fd372a1d585887287253a02531cd192929377b..397f985756c5bc6c11a32c844d536000 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 371efd8410137a8841f0271b210b3a33773482e9..516575176f13ec6348dcbee1108f5d79ae499ed8 100644 +index 0f8eac5bf5e8f59c511f4b0040bc8a84b8a05c5c..0353ab33aab3579e82ec0f7115763e190d080e9e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -102,6 +102,7 @@ import net.minecraft.world.scores.Objective; @@ -39,7 +39,7 @@ index 371efd8410137a8841f0271b210b3a33773482e9..516575176f13ec6348dcbee1108f5d79 import org.slf4j.Logger; // CraftBukkit start -@@ -1406,7 +1407,7 @@ public abstract class PlayerList { +@@ -1427,7 +1428,7 @@ public abstract class PlayerList { // Paper end boolean flag = this.verifyChatTrusted(message); @@ -49,10 +49,10 @@ index 371efd8410137a8841f0271b210b3a33773482e9..516575176f13ec6348dcbee1108f5d79 boolean flag1 = false; diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index fc61b3ffc5939590a05ffce81f3b2cf8917d5a32..dbb32baff8ce99adb285a5602ff67165161aff08 100644 +index 2d95bad5bf426da29aa7a0e573b38b6e158614ea..6cc221b02d543c7d5cd9a8b1b544206fd31b04fa 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -99,6 +99,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -100,6 +100,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public boolean emptyMessageWarning = false; // Gale - do not log empty message warnings public boolean expiredMessageWarning = false; // Gale - do not log expired message warnings public boolean outOfOrderMessageWarning = false; // Gale - do not log out-of-order message warnings diff --git a/patches/server/0066-Do-not-log-disconnections-with-null-id.patch b/patches/server/0065-Do-not-log-disconnections-with-null-id.patch similarity index 95% rename from patches/server/0066-Do-not-log-disconnections-with-null-id.patch rename to patches/server/0065-Do-not-log-disconnections-with-null-id.patch index f71d452..da6e0a8 100644 --- a/patches/server/0066-Do-not-log-disconnections-with-null-id.patch +++ b/patches/server/0065-Do-not-log-disconnections-with-null-id.patch @@ -44,10 +44,10 @@ index ff2dd53e9e943aa929188fd9d4c35498b78c497a..a8ebafacbf3f146cb835a4855db54baf } diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index dbb32baff8ce99adb285a5602ff67165161aff08..9ba116ef1f9dff39087dcfea1633de6fb53785ee 100644 +index 6cc221b02d543c7d5cd9a8b1b544206fd31b04fa..91776314125f1101b7b67304b55748bda8c6e09b 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -93,6 +93,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -94,6 +94,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public boolean setBlockInFarChunk = true; // Gale - Purpur - do not log setBlock in far chunks public boolean unrecognizedRecipes = false; // Gale - Purpur - do not log unrecognized recipes public boolean legacyMaterialInitialization = false; // Gale - Purpur - do not log legacy Material initialization diff --git a/patches/server/0067-Do-not-log-run-as-root-warning.patch b/patches/server/0066-Do-not-log-run-as-root-warning.patch similarity index 100% rename from patches/server/0067-Do-not-log-run-as-root-warning.patch rename to patches/server/0066-Do-not-log-run-as-root-warning.patch diff --git a/patches/server/0068-Do-not-log-offline-mode-warning.patch b/patches/server/0067-Do-not-log-offline-mode-warning.patch similarity index 100% rename from patches/server/0068-Do-not-log-offline-mode-warning.patch rename to patches/server/0067-Do-not-log-offline-mode-warning.patch diff --git a/patches/server/0069-Softly-log-invalid-pool-element-errors.patch b/patches/server/0068-Softly-log-invalid-pool-element-errors.patch similarity index 91% rename from patches/server/0069-Softly-log-invalid-pool-element-errors.patch rename to patches/server/0068-Softly-log-invalid-pool-element-errors.patch index 9f121f0..68bdd1f 100644 --- a/patches/server/0069-Softly-log-invalid-pool-element-errors.patch +++ b/patches/server/0068-Softly-log-invalid-pool-element-errors.patch @@ -39,15 +39,16 @@ index d2b4654a9095a678bbc9e004af969cf54da0fcab..d797bac97ec1adec7a25a26c8e052e70 }); this.rotation = Rotation.valueOf(nbt.getString("rotation")); diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 9ba116ef1f9dff39087dcfea1633de6fb53785ee..66f40d92fe9cfec68af2c9b7f35f203066129d62 100644 +index 91776314125f1101b7b67304b55748bda8c6e09b..24c67ac6e8f2572cc2e79350fdf4201825ee9e72 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -4,9 +4,13 @@ package org.galemc.gale.configuration; +@@ -4,10 +4,14 @@ package org.galemc.gale.configuration; import io.papermc.paper.configuration.Configuration; import io.papermc.paper.configuration.ConfigurationPart; +import net.minecraft.world.level.levelgen.structure.PoolElementStructurePiece; import org.bukkit.plugin.java.JavaPluginLoader; + import org.spongepowered.configurate.objectmapping.meta.PostProcess; import org.spongepowered.configurate.objectmapping.meta.Setting; +import java.util.Locale; @@ -56,16 +57,16 @@ index 9ba116ef1f9dff39087dcfea1633de6fb53785ee..66f40d92fe9cfec68af2c9b7f35f2030 @SuppressWarnings({"CanBeFinal", "FieldCanBeLocal", "FieldMayBeFinal", "NotNullFieldNotInitialized", "InnerClassMayBeStatic"}) public class GaleGlobalConfiguration extends ConfigurationPart { static final int CURRENT_VERSION = 1; -@@ -86,7 +90,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -87,7 +91,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { } public LogToConsole logToConsole; - public class LogToConsole extends ConfigurationPart { -+ public class LogToConsole extends ConfigurationPart.Post { // Gale - EMC - softly log invalid pool element errors ++ public class LogToConsole extends ConfigurationPart { // Gale - EMC - softly log invalid pool element errors public boolean invalidStatistics = true; // Gale - EMC - do not log invalid statistics public boolean ignoredAdvancements = true; // Gale - Purpur - do not log ignored advancements -@@ -121,6 +125,21 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -122,6 +126,21 @@ public class GaleGlobalConfiguration extends ConfigurationPart { } // Gale end - Purpur - do not log plugin library loads @@ -73,7 +74,7 @@ index 9ba116ef1f9dff39087dcfea1633de6fb53785ee..66f40d92fe9cfec68af2c9b7f35f2030 + public String invalidPoolElementErrorLogLevel = "info"; + public transient Consumer invalidPoolElementErrorStringConsumer; + -+ @Override ++ @PostProcess + public void postProcess() { + this.invalidPoolElementErrorStringConsumer = switch (this.invalidPoolElementErrorLogLevel.toLowerCase(Locale.ROOT)) { + case "none" -> $ -> {}; diff --git a/patches/server/0070-Fix-outdated-server-showing-in-ping-before-server-fu.patch b/patches/server/0069-Fix-outdated-server-showing-in-ping-before-server-fu.patch similarity index 100% rename from patches/server/0070-Fix-outdated-server-showing-in-ping-before-server-fu.patch rename to patches/server/0069-Fix-outdated-server-showing-in-ping-before-server-fu.patch diff --git a/patches/server/0071-Make-sand-duping-fix-configurable.patch b/patches/server/0070-Make-sand-duping-fix-configurable.patch similarity index 100% rename from patches/server/0071-Make-sand-duping-fix-configurable.patch rename to patches/server/0070-Make-sand-duping-fix-configurable.patch diff --git a/patches/server/0072-Make-tripwire-duping-fix-configurable.patch b/patches/server/0071-Make-tripwire-duping-fix-configurable.patch similarity index 100% rename from patches/server/0072-Make-tripwire-duping-fix-configurable.patch rename to patches/server/0071-Make-tripwire-duping-fix-configurable.patch diff --git a/patches/server/0073-Fix-MC-238526.patch b/patches/server/0072-Fix-MC-238526.patch similarity index 100% rename from patches/server/0073-Fix-MC-238526.patch rename to patches/server/0072-Fix-MC-238526.patch diff --git a/patches/server/0074-Fix-cow-rotation-when-shearing-mooshroom.patch b/patches/server/0073-Fix-cow-rotation-when-shearing-mooshroom.patch similarity index 100% rename from patches/server/0074-Fix-cow-rotation-when-shearing-mooshroom.patch rename to patches/server/0073-Fix-cow-rotation-when-shearing-mooshroom.patch diff --git a/patches/server/0075-Fix-MC-121706.patch b/patches/server/0074-Fix-MC-121706.patch similarity index 100% rename from patches/server/0075-Fix-MC-121706.patch rename to patches/server/0074-Fix-MC-121706.patch diff --git a/patches/server/0076-Fix-MC-110386.patch b/patches/server/0075-Fix-MC-110386.patch similarity index 100% rename from patches/server/0076-Fix-MC-110386.patch rename to patches/server/0075-Fix-MC-110386.patch diff --git a/patches/server/0077-Fix-MC-31819.patch b/patches/server/0076-Fix-MC-31819.patch similarity index 100% rename from patches/server/0077-Fix-MC-31819.patch rename to patches/server/0076-Fix-MC-31819.patch diff --git a/patches/server/0078-Fix-MC-26304.patch b/patches/server/0077-Fix-MC-26304.patch similarity index 100% rename from patches/server/0078-Fix-MC-26304.patch rename to patches/server/0077-Fix-MC-26304.patch diff --git a/patches/server/0079-End-gateway-should-check-if-entity-can-use-portal.patch b/patches/server/0078-End-gateway-should-check-if-entity-can-use-portal.patch similarity index 100% rename from patches/server/0079-End-gateway-should-check-if-entity-can-use-portal.patch rename to patches/server/0078-End-gateway-should-check-if-entity-can-use-portal.patch diff --git a/patches/server/0080-Make-arrow-movement-resetting-despawn-counter-config.patch b/patches/server/0079-Make-arrow-movement-resetting-despawn-counter-config.patch similarity index 100% rename from patches/server/0080-Make-arrow-movement-resetting-despawn-counter-config.patch rename to patches/server/0079-Make-arrow-movement-resetting-despawn-counter-config.patch diff --git a/patches/server/0081-Make-logging-login-locations-configurable.patch b/patches/server/0080-Make-logging-login-locations-configurable.patch similarity index 89% rename from patches/server/0081-Make-logging-login-locations-configurable.patch rename to patches/server/0080-Make-logging-login-locations-configurable.patch index a1e807c..3b769d8 100644 --- a/patches/server/0081-Make-logging-login-locations-configurable.patch +++ b/patches/server/0080-Make-logging-login-locations-configurable.patch @@ -13,10 +13,10 @@ As part of: JettPack (https://gitlab.com/Titaniumtown/JettPack) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 516575176f13ec6348dcbee1108f5d79ae499ed8..426c7e71f4e8e249f721e84eb9191d2688412aa4 100644 +index 0353ab33aab3579e82ec0f7115763e190d080e9e..b1ae1944d3b5b2ac520b087a3059ae6059807f4d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -471,7 +471,13 @@ public abstract class PlayerList { +@@ -492,7 +492,13 @@ public abstract class PlayerList { } // Paper end // CraftBukkit - Moved from above, added world @@ -31,10 +31,10 @@ index 516575176f13ec6348dcbee1108f5d79ae499ed8..426c7e71f4e8e249f721e84eb9191d26 public void updateEntireScoreboard(ServerScoreboard scoreboard, ServerPlayer player) { diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 66f40d92fe9cfec68af2c9b7f35f203066129d62..77c236afd2aa49abb1725efda0a6eb34552e4a16 100644 +index 24c67ac6e8f2572cc2e79350fdf4201825ee9e72..00d511ed75a5e7268737663baad0c25511e35d53 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -98,6 +98,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -99,6 +99,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public boolean unrecognizedRecipes = false; // Gale - Purpur - do not log unrecognized recipes public boolean legacyMaterialInitialization = false; // Gale - Purpur - do not log legacy Material initialization public boolean nullIdDisconnections = true; // Gale - Pufferfish - do not log disconnections with null id diff --git a/patches/server/0082-Reduce-array-allocations.patch b/patches/server/0081-Reduce-array-allocations.patch similarity index 96% rename from patches/server/0082-Reduce-array-allocations.patch rename to patches/server/0081-Reduce-array-allocations.patch index 07f6d23..794e5c3 100644 --- a/patches/server/0082-Reduce-array-allocations.patch +++ b/patches/server/0081-Reduce-array-allocations.patch @@ -325,7 +325,7 @@ index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..43f402d9032e4570a81a80e412215598 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 91fcb63835b0b725c53bc75be782b5c5bcc870e7..b0a4fee32ac348ea26fa18c122e888a348e2ca07 100644 +index c0ea20dcee8bb293df96bc6ee019e50ad6b383fd..e344fe0f2192f20f5d6d1594f7844b539fadcc7a 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -23,7 +23,6 @@ import io.netty.channel.epoll.EpollSocketChannel; @@ -390,7 +390,7 @@ index ec268189b19b6fa5c4521f96ce211a531db35ec5..1577a6aeeaaf6a131008f536a125b9b9 OptionSpec optionspec10 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(-1, new Integer[0]); OptionSpec optionspec11 = optionparser.accepts("serverId").withRequiredArg(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b875da1afd6d272e2316e47c7eda6078c201a2e3..d4bb60b9a5673334ae09af34d5eb435faf95f8e9 100644 +index 3810c8e431258c030fcbe9788d24307a24872677..7db5c6d9a4bab340a2ae95c43388281445690d29 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -50,6 +50,8 @@ import java.util.stream.Collectors; @@ -403,7 +403,7 @@ index b875da1afd6d272e2316e47c7eda6078c201a2e3..d4bb60b9a5673334ae09af34d5eb435f import net.minecraft.ReportedException; import net.minecraft.SharedConstants; diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index c9e90e89fea61d1cfbc6a167e67e8288adf48947..0304740fdc03738df042bdbec8fa9668a02bcb36 100644 +index e8bb35322d3204e6a126bc6df0beed3f931dae6d..6bfa866ce2b3dab86dcbaba9fdf52737d7883925 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -329,7 +329,7 @@ public class ServerEntity { @@ -416,7 +416,7 @@ index c9e90e89fea61d1cfbc6a167e67e8288adf48947..0304740fdc03738df042bdbec8fa9668 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 90d548b4488efdb3580a7023f1029feb10af724e..323608edf6347133f03a4225b3f54b2181ada1ea 100644 +index 0227b2cd2c38b18b958b52c6febca4a836126b7e..c097ea14a9f43f667b91d3a1cf8a61a5c648b979 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -38,6 +38,8 @@ import java.util.stream.Collectors; @@ -437,7 +437,7 @@ index 90d548b4488efdb3580a7023f1029feb10af724e..323608edf6347133f03a4225b3f54b21 // We drop the fluid tick since LAVA is ALREADY TICKED by the above method (See LiquidBlock). // TODO CHECK ON UPDATE (ping the Canadian) } -@@ -1326,7 +1328,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1327,7 +1329,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public static List getCurrentlyTickingEntities() { Entity ticking = currentlyTickingEntity.get(); @@ -447,7 +447,7 @@ index 90d548b4488efdb3580a7023f1029feb10af724e..323608edf6347133f03a4225b3f54b21 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 942be51e68955a768dbd5b8c20f78b260ec7b6a3..208d46c712e09d91cdb70b4b485b5c2a939439e0 100644 +index b7f3bf0553fe72449f54f45046fe5b8b69eb5b59..fadeac3a787350f6b3d4936825b3b02bd0cde31a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -29,6 +29,8 @@ import java.util.function.UnaryOperator; @@ -476,7 +476,7 @@ index 942be51e68955a768dbd5b8c20f78b260ec7b6a3..208d46c712e09d91cdb70b4b485b5c2a import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerInteractAtEntityEvent; -@@ -773,13 +772,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -774,13 +773,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async // CraftBukkit start if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable @@ -492,7 +492,7 @@ index 942be51e68955a768dbd5b8c20f78b260ec7b6a3..208d46c712e09d91cdb70b4b485b5c2a return; } // Paper end -@@ -3209,7 +3208,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3215,7 +3214,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // 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) { @@ -502,7 +502,7 @@ index 942be51e68955a768dbd5b8c20f78b260ec7b6a3..208d46c712e09d91cdb70b4b485b5c2a } } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index a8ebafacbf3f146cb835a4855db54baf2731992e..e1f442b204cdf8c58c4f980af1714368ef9a61b9 100644 +index 07f84c2815d18c6994498ad5e2fca556cca88567..49de4b85a8d8a9c861f8a081a2836bfefec91378 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -14,8 +14,9 @@ import java.util.Objects; @@ -539,7 +539,7 @@ index a8ebafacbf3f146cb835a4855db54baf2731992e..e1f442b204cdf8c58c4f980af1714368 final String s; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 426c7e71f4e8e249f721e84eb9191d2688412aa4..869e3741ad02197973a7c32eac433a484fb564d7 100644 +index b1ae1944d3b5b2ac520b087a3059ae6059807f4d..1f7faf3ad062bf2bc0a0b4a4e6549914a05f0f9d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -25,6 +25,8 @@ import java.util.UUID; @@ -551,7 +551,7 @@ index 426c7e71f4e8e249f721e84eb9191d2688412aa4..869e3741ad02197973a7c32eac433a48 import net.minecraft.ChatFormatting; import net.minecraft.FileUtil; import net.minecraft.commands.CommandSourceStack; -@@ -704,7 +706,7 @@ public abstract class PlayerList { +@@ -725,7 +727,7 @@ public abstract class PlayerList { while (iterator.hasNext()) { entityplayer = (ServerPlayer) iterator.next(); this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved @@ -641,10 +641,10 @@ index 2e324276ea4cd9e528c6a3f9a9ba394b378fe075..8e91714e3167ab0ad16df681bc080772 private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) { this.type = type; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 471b8dc89987a27e5e7a2b61b7ff2cc29f025508..446fd5ed3c5bade5b1c953a542e353771897d168 100644 +index 1794f5d1a8cc912fdd75a18ceccb536f48ab4686..d1d30ddc3c46cc7e5a7069e914f1117e8a8e638e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3136,7 +3136,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3141,7 +3141,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @Nullable private Map collectEquipmentChanges() { Map map = null; @@ -654,10 +654,10 @@ index 471b8dc89987a27e5e7a2b61b7ff2cc29f025508..446fd5ed3c5bade5b1c953a542e35377 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 0c75e232ec897e2e8c384333e0b17731beea1021..10638c0d3afaea9da1f44e40d65ccefb98888e3b 100644 +index 8dafe3126ef152d44b4ae6d84dd1a3b908332a1e..5a587d8901b80da72ac850b95b55a21011ae3fb4 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1057,7 +1057,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1055,7 +1055,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) { super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops); @@ -666,7 +666,7 @@ index 0c75e232ec897e2e8c384333e0b17731beea1021..10638c0d3afaea9da1f44e40d65ccefb int j = aenumitemslot.length; for (int k = 0; k < j; ++k) { -@@ -1119,7 +1119,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1117,7 +1117,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } boolean flag = true; @@ -675,7 +675,7 @@ index 0c75e232ec897e2e8c384333e0b17731beea1021..10638c0d3afaea9da1f44e40d65ccefb int j = aenumitemslot.length; for (int k = 0; k < j; ++k) { -@@ -1206,7 +1206,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1204,7 +1204,7 @@ public abstract class Mob extends LivingEntity implements Targeting { float f = localDifficulty.getSpecialMultiplier(); this.enchantSpawnedWeapon(random, f); @@ -684,7 +684,7 @@ index 0c75e232ec897e2e8c384333e0b17731beea1021..10638c0d3afaea9da1f44e40d65ccefb int i = aenumitemslot.length; for (int j = 0; j < i; ++j) { -@@ -1425,7 +1425,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1423,7 +1423,7 @@ public abstract class Mob extends LivingEntity implements Targeting { t0.setInvulnerable(this.isInvulnerable()); if (flag) { t0.setCanPickUpLoot(this.canPickUpLoot()); @@ -694,7 +694,7 @@ index 0c75e232ec897e2e8c384333e0b17731beea1021..10638c0d3afaea9da1f44e40d65ccefb for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 807cff3fb51269b97d9aecbcc4706f0a139dfeaa..4c7692e660a1edddc833386413a6137f98f627c9 100644 +index 94396ad1a3c280787d36c6c18256d10340ace488..9e139c1291f40fd730754ac2427269b102f7cede 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -237,7 +237,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -707,10 +707,10 @@ index 807cff3fb51269b97d9aecbcc4706f0a139dfeaa..4c7692e660a1edddc833386413a6137f for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 16f087adbf94b8fd6726ffd300b103dd709ad406..4852980f666dd4684dd09760f85b3b0aed0e1295 100644 +index d0f7baa80cb7d0883304abe2ed990c258a0d92b6..266a8e409af8b8d879d21a5d146acfc353484ce7 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -1025,7 +1025,7 @@ public final class ItemStack { +@@ -1027,7 +1027,7 @@ public final class ItemStack { int k; if (ItemStack.shouldShowInTooltip(i, ItemStack.TooltipPart.MODIFIERS)) { @@ -759,7 +759,7 @@ index 2bfbdaeb2b0d99dfd956cd5936403fe8b0eeae64..84f1c4c3ded4f201899f3c74e639349b public Enchantments() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 785f916d303b7601d4eeff5942ea3373f6454eab..ece15febadb5ec9c384027a1027614d42a9e1a9f 100644 +index d0818a177f099817f6735bb341938ce0aa5282f8..4ddf4ad2cdf44841e1ca67a9ba1cce926f92bc6d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -12,6 +12,8 @@ import java.util.function.Consumer; @@ -923,7 +923,7 @@ index 6827979a5b270ced53b46ecb9eff548727dadb81..8cecb6eddee0c3cafaecc3cc4d7cf99f } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java -index bbacf58740f3faea0d555e4012fe2b15fb46ed50..4c8e9a70fd40dbd519a5525c3a3ad90e9f3f3401 100644 +index b25dc23b81687dd4d4e70b3615ffb91f8c03c68b..b662ebb89f8b00238e6c96de3c134413ea28def8 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java +++ b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java @@ -7,6 +7,8 @@ import java.util.Collection; diff --git a/patches/server/0083-Optimize-sun-burn-tick.patch b/patches/server/0082-Optimize-sun-burn-tick.patch similarity index 92% rename from patches/server/0083-Optimize-sun-burn-tick.patch rename to patches/server/0082-Optimize-sun-burn-tick.patch index 1248329..b4e2810 100644 --- a/patches/server/0083-Optimize-sun-burn-tick.patch +++ b/patches/server/0082-Optimize-sun-burn-tick.patch @@ -13,10 +13,10 @@ As part of: JettPack (https://gitlab.com/Titaniumtown/JettPack) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index eeb81fa2ba4e28a57e534edc82f1324cd2d0cf50..bf977a462711da04e281aaff77de40070a8a83ee 100644 +index ec0c8205959d451c5f8c15f0aa11d0115f1d8125..3229280ed3e019958ae3c475c81397de979bb813 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -304,7 +304,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -305,7 +305,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public double xo; public double yo; public double zo; @@ -25,7 +25,7 @@ index eeb81fa2ba4e28a57e534edc82f1324cd2d0cf50..bf977a462711da04e281aaff77de4007 public BlockPos blockPosition; // Gale - Pufferfish - optimize entity coordinate key - private -> public private ChunkPos chunkPosition; private Vec3 deltaMovement; -@@ -1967,9 +1967,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2000,9 +2000,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { /** @deprecated */ @Deprecated public float getLightLevelDependentMagicValue() { @@ -45,10 +45,10 @@ index eeb81fa2ba4e28a57e534edc82f1324cd2d0cf50..bf977a462711da04e281aaff77de4007 this.absMoveTo(x, y, z); this.setYRot(yaw % 360.0F); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 10638c0d3afaea9da1f44e40d65ccefb98888e3b..23900bc67d20aaf773d593fef6eb7308a96bbe51 100644 +index 5a587d8901b80da72ac850b95b55a21011ae3fb4..b35d9c04f0a9d73d6483526e396035d72fa33825 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1687,13 +1687,29 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1685,13 +1685,29 @@ public abstract class Mob extends LivingEntity implements Targeting { } diff --git a/patches/server/0084-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch b/patches/server/0083-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch similarity index 100% rename from patches/server/0084-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch rename to patches/server/0083-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch diff --git a/patches/server/0085-Replace-AI-goal-set-with-optimized-collection.patch b/patches/server/0084-Replace-AI-goal-set-with-optimized-collection.patch similarity index 100% rename from patches/server/0085-Replace-AI-goal-set-with-optimized-collection.patch rename to patches/server/0084-Replace-AI-goal-set-with-optimized-collection.patch diff --git a/patches/server/0086-Replace-game-rules-map-with-optimized-collection.patch b/patches/server/0085-Replace-game-rules-map-with-optimized-collection.patch similarity index 100% rename from patches/server/0086-Replace-game-rules-map-with-optimized-collection.patch rename to patches/server/0085-Replace-game-rules-map-with-optimized-collection.patch diff --git a/patches/server/0087-Replace-AI-attributes-with-optimized-collections.patch b/patches/server/0086-Replace-AI-attributes-with-optimized-collections.patch similarity index 100% rename from patches/server/0087-Replace-AI-attributes-with-optimized-collections.patch rename to patches/server/0086-Replace-AI-attributes-with-optimized-collections.patch diff --git a/patches/server/0088-Replace-class-map-with-optimized-collection.patch b/patches/server/0087-Replace-class-map-with-optimized-collection.patch similarity index 100% rename from patches/server/0088-Replace-class-map-with-optimized-collection.patch rename to patches/server/0087-Replace-class-map-with-optimized-collection.patch diff --git a/patches/server/0089-Replace-throttle-tracker-map-with-optimized-collecti.patch b/patches/server/0088-Replace-throttle-tracker-map-with-optimized-collecti.patch similarity index 100% rename from patches/server/0089-Replace-throttle-tracker-map-with-optimized-collecti.patch rename to patches/server/0088-Replace-throttle-tracker-map-with-optimized-collecti.patch diff --git a/patches/server/0090-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch b/patches/server/0089-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch similarity index 100% rename from patches/server/0090-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch rename to patches/server/0089-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch diff --git a/patches/server/0091-Cache-BlockStatePairKey-hash.patch b/patches/server/0090-Cache-BlockStatePairKey-hash.patch similarity index 100% rename from patches/server/0091-Cache-BlockStatePairKey-hash.patch rename to patches/server/0090-Cache-BlockStatePairKey-hash.patch diff --git a/patches/server/0092-Cache-CubeVoxelShape-shape-array.patch b/patches/server/0091-Cache-CubeVoxelShape-shape-array.patch similarity index 100% rename from patches/server/0092-Cache-CubeVoxelShape-shape-array.patch rename to patches/server/0091-Cache-CubeVoxelShape-shape-array.patch diff --git a/patches/server/0093-Replace-division-by-multiplication-in-CubePointRange.patch b/patches/server/0092-Replace-division-by-multiplication-in-CubePointRange.patch similarity index 100% rename from patches/server/0093-Replace-division-by-multiplication-in-CubePointRange.patch rename to patches/server/0092-Replace-division-by-multiplication-in-CubePointRange.patch diff --git a/patches/server/0094-Replace-parts-by-size-in-CubePointRange.patch b/patches/server/0093-Replace-parts-by-size-in-CubePointRange.patch similarity index 100% rename from patches/server/0094-Replace-parts-by-size-in-CubePointRange.patch rename to patches/server/0093-Replace-parts-by-size-in-CubePointRange.patch diff --git a/patches/server/0095-Check-frozen-ticks-before-landing-block.patch b/patches/server/0094-Check-frozen-ticks-before-landing-block.patch similarity index 95% rename from patches/server/0095-Check-frozen-ticks-before-landing-block.patch rename to patches/server/0094-Check-frozen-ticks-before-landing-block.patch index c2b0ec4..7e91058 100644 --- a/patches/server/0095-Check-frozen-ticks-before-landing-block.patch +++ b/patches/server/0094-Check-frozen-ticks-before-landing-block.patch @@ -13,7 +13,7 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric) Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 446fd5ed3c5bade5b1c953a542e353771897d168..a250c3e9c2f5f927b99d17376dbf323ff153801f 100644 +index 4c707d81158e79554f1af41e3f8d4337cd99d836..0458695fa5cfff003d07ad049d7810acefe6d26e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -583,11 +583,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0096-Faster-chunk-serialization.patch b/patches/server/0095-Faster-chunk-serialization.patch similarity index 100% rename from patches/server/0096-Faster-chunk-serialization.patch rename to patches/server/0095-Faster-chunk-serialization.patch diff --git a/patches/server/0097-Update-boss-bar-within-tick.patch b/patches/server/0096-Update-boss-bar-within-tick.patch similarity index 100% rename from patches/server/0097-Update-boss-bar-within-tick.patch rename to patches/server/0096-Update-boss-bar-within-tick.patch diff --git a/patches/server/0098-Cache-ominous-banner-item.patch b/patches/server/0097-Cache-ominous-banner-item.patch similarity index 100% rename from patches/server/0098-Cache-ominous-banner-item.patch rename to patches/server/0097-Cache-ominous-banner-item.patch diff --git a/patches/server/0099-Optimize-world-generation-chunk-and-block-access.patch b/patches/server/0098-Optimize-world-generation-chunk-and-block-access.patch similarity index 96% rename from patches/server/0099-Optimize-world-generation-chunk-and-block-access.patch rename to patches/server/0098-Optimize-world-generation-chunk-and-block-access.patch index 70a5a26..baf4aa8 100644 --- a/patches/server/0099-Optimize-world-generation-chunk-and-block-access.patch +++ b/patches/server/0098-Optimize-world-generation-chunk-and-block-access.patch @@ -115,7 +115,7 @@ index 0000000000000000000000000000000000000000..f2f10b651e4fbecdd1ea1bc28ebf40d6 + +} diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index d2bbbb0e73dafd2294838137bfbd16acf1c76940..2ddfeb9edf691bbf10f1b1578ac3c132cea12739 100644 +index 4c8f27673219187399cb9ba1d23447d42077f3fe..719587d86c293cb759632a872213d8e4184c768d 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java @@ -8,6 +8,7 @@ import java.util.concurrent.atomic.AtomicLong; @@ -148,8 +148,8 @@ index d2bbbb0e73dafd2294838137bfbd16acf1c76940..2ddfeb9edf691bbf10f1b1578ac3c132 + // Gale end - Lithium - optimize world generation chunk and block access } - public boolean isOldChunkAround(ChunkPos chunkPos, int checkRadius) { -@@ -123,9 +133,29 @@ public class WorldGenRegion implements WorldGenLevel { + // Paper start - starlight +@@ -144,9 +154,29 @@ public class WorldGenRegion implements WorldGenLevel { @Override public ChunkAccess getChunk(int chunkX, int chunkZ) { @@ -180,7 +180,7 @@ index d2bbbb0e73dafd2294838137bfbd16acf1c76940..2ddfeb9edf691bbf10f1b1578ac3c132 @Nullable @Override public ChunkAccess getChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) { -@@ -183,7 +213,17 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -204,7 +234,17 @@ public class WorldGenRegion implements WorldGenLevel { @Override public BlockState getBlockState(BlockPos pos) { diff --git a/patches/server/0100-Cache-world-generator-sea-level.patch b/patches/server/0099-Cache-world-generator-sea-level.patch similarity index 100% rename from patches/server/0100-Cache-world-generator-sea-level.patch rename to patches/server/0099-Cache-world-generator-sea-level.patch diff --git a/patches/server/0101-Skip-secondary-POI-sensor-if-absent.patch b/patches/server/0100-Skip-secondary-POI-sensor-if-absent.patch similarity index 100% rename from patches/server/0101-Skip-secondary-POI-sensor-if-absent.patch rename to patches/server/0100-Skip-secondary-POI-sensor-if-absent.patch diff --git a/patches/server/0102-Optimize-villager-data-storage.patch b/patches/server/0101-Optimize-villager-data-storage.patch similarity index 100% rename from patches/server/0102-Optimize-villager-data-storage.patch rename to patches/server/0101-Optimize-villager-data-storage.patch diff --git a/patches/server/0103-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0102-Skip-entity-move-if-movement-is-zero.patch similarity index 88% rename from patches/server/0103-Skip-entity-move-if-movement-is-zero.patch rename to patches/server/0102-Skip-entity-move-if-movement-is-zero.patch index 1cdb664..636088e 100644 --- a/patches/server/0103-Skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0102-Skip-entity-move-if-movement-is-zero.patch @@ -13,10 +13,10 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bf977a462711da04e281aaff77de40070a8a83ee..91a00c0b9d751deac746ce096781fa071770f5c8 100644 +index 80ef2ce17898095a35efc4d47b7b32349fc503c3..dfd6a487b0ab06d5f071806689a85b08da6a9715 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -313,6 +313,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -314,6 +314,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public float yRotO; public float xRotO; private AABB bb; @@ -24,7 +24,7 @@ index bf977a462711da04e281aaff77de40070a8a83ee..91a00c0b9d751deac746ce096781fa07 public boolean onGround; public boolean horizontalCollision; public boolean verticalCollision; -@@ -1034,6 +1035,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1067,6 +1068,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // Paper end - detailed watchdog information public void move(MoverType movementType, Vec3 movement) { @@ -36,7 +36,7 @@ index bf977a462711da04e281aaff77de40070a8a83ee..91a00c0b9d751deac746ce096781fa07 // Paper start - detailed watchdog information io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); synchronized (this.posLock) { -@@ -4000,6 +4006,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4038,6 +4044,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0104-Store-mob-counts-in-an-array.patch b/patches/server/0103-Store-mob-counts-in-an-array.patch similarity index 100% rename from patches/server/0104-Store-mob-counts-in-an-array.patch rename to patches/server/0103-Store-mob-counts-in-an-array.patch diff --git a/patches/server/0105-Use-linked-map-for-entity-trackers.patch b/patches/server/0104-Use-linked-map-for-entity-trackers.patch similarity index 91% rename from patches/server/0105-Use-linked-map-for-entity-trackers.patch rename to patches/server/0104-Use-linked-map-for-entity-trackers.patch index c800c42..301f664 100644 --- a/patches/server/0105-Use-linked-map-for-entity-trackers.patch +++ b/patches/server/0104-Use-linked-map-for-entity-trackers.patch @@ -13,7 +13,7 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 43723cefd08830c6316f668cf8438a29f01cdcdd..1d6b75467166def7f0573f5cabe19aafb18de3c7 100644 +index 9be4485c46ec40f5ed8a6802bd2e6b66d26aace4..7fab09e8edf26bd841ab6e51ddf45ac316aa113b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -14,6 +14,7 @@ import com.mojang.datafixers.util.Either; @@ -24,7 +24,7 @@ index 43723cefd08830c6316f668cf8438a29f01cdcdd..1d6b75467166def7f0573f5cabe19aaf import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ByteMap; -@@ -213,7 +214,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -251,7 +252,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper - rewrite chunk system this.tickingGenerated = new AtomicInteger(); this.playerMap = new PlayerMap(); diff --git a/patches/server/0106-Optimize-noise-generation.patch b/patches/server/0105-Optimize-noise-generation.patch similarity index 100% rename from patches/server/0106-Optimize-noise-generation.patch rename to patches/server/0105-Optimize-noise-generation.patch diff --git a/patches/server/0107-Optimize-sheep-offspring-color.patch b/patches/server/0106-Optimize-sheep-offspring-color.patch similarity index 100% rename from patches/server/0107-Optimize-sheep-offspring-color.patch rename to patches/server/0106-Optimize-sheep-offspring-color.patch diff --git a/patches/server/0108-Hide-flames-on-entities-with-fire-resistance.patch b/patches/server/0107-Hide-flames-on-entities-with-fire-resistance.patch similarity index 94% rename from patches/server/0108-Hide-flames-on-entities-with-fire-resistance.patch rename to patches/server/0107-Hide-flames-on-entities-with-fire-resistance.patch index 4296c9b..8828b79 100644 --- a/patches/server/0108-Hide-flames-on-entities-with-fire-resistance.patch +++ b/patches/server/0107-Hide-flames-on-entities-with-fire-resistance.patch @@ -13,10 +13,10 @@ As part of: Slice (https://github.com/Cryptite/Slice) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 91a00c0b9d751deac746ce096781fa071770f5c8..7068fac81b8c66e8fae125b7566ac82e249678a2 100644 +index bd3db2d1978c5195bbdb70d2ec58550a2d7abdf1..bc36a10a918763ad00268374e88f2037916f1ca6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -836,7 +836,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -869,7 +869,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.checkBelowWorld(); if (!this.level().isClientSide) { diff --git a/patches/server/0109-Skip-cloning-advancement-criteria.patch b/patches/server/0108-Skip-cloning-advancement-criteria.patch similarity index 100% rename from patches/server/0109-Skip-cloning-advancement-criteria.patch rename to patches/server/0108-Skip-cloning-advancement-criteria.patch diff --git a/patches/server/0110-Reduce-block-destruction-packet-allocations.patch b/patches/server/0109-Reduce-block-destruction-packet-allocations.patch similarity index 89% rename from patches/server/0110-Reduce-block-destruction-packet-allocations.patch rename to patches/server/0109-Reduce-block-destruction-packet-allocations.patch index b7f76f6..1e25294 100644 --- a/patches/server/0110-Reduce-block-destruction-packet-allocations.patch +++ b/patches/server/0109-Reduce-block-destruction-packet-allocations.patch @@ -13,10 +13,10 @@ As part of: SportPaper (https://github.com/Electroid/SportPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 323608edf6347133f03a4225b3f54b2181ada1ea..064281266350872693029069ee732bd4ff66448a 100644 +index 786f0d50aefec0f76b6ad4df57b1389fa66f21ea..fbfef5678423f1224bfcfe62073e0603bb0bd58d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1727,7 +1727,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1728,7 +1728,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void destroyBlockProgress(int entityId, BlockPos pos, int progress) { @@ -35,7 +35,7 @@ index 323608edf6347133f03a4225b3f54b2181ada1ea..064281266350872693029069ee732bd4 // CraftBukkit start Player entityhuman = null; -@@ -1750,7 +1760,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1751,7 +1761,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end if (d0 * d0 + d1 * d1 + d2 * d2 < 1024.0D) { diff --git a/patches/server/0111-Spread-out-sending-all-player-info.patch b/patches/server/0110-Spread-out-sending-all-player-info.patch similarity index 95% rename from patches/server/0111-Spread-out-sending-all-player-info.patch rename to patches/server/0110-Spread-out-sending-all-player-info.patch index 7140d92..84804d5 100644 --- a/patches/server/0111-Spread-out-sending-all-player-info.patch +++ b/patches/server/0110-Spread-out-sending-all-player-info.patch @@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 869e3741ad02197973a7c32eac433a484fb564d7..66ef21f2b970db4bd24fe9db52173083c37f8d71 100644 +index 1f7faf3ad062bf2bc0a0b4a4e6549914a05f0f9d..45eefa9fd18950fbd913cef7c1e78f7d188d4d90 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -13,6 +13,8 @@ import java.net.SocketAddress; @@ -62,7 +62,7 @@ index 869e3741ad02197973a7c32eac433a484fb564d7..66ef21f2b970db4bd24fe9db52173083 private final Map playersByUUID = Maps.newHashMap(); private final UserBanList bans; private final IpBanList ipBans; -@@ -308,6 +311,7 @@ public abstract class PlayerList { +@@ -329,6 +332,7 @@ public abstract class PlayerList { // entityplayer.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(this.players)); // CraftBukkit - replaced with loop below this.players.add(player); @@ -70,7 +70,7 @@ index 869e3741ad02197973a7c32eac433a484fb564d7..66ef21f2b970db4bd24fe9db52173083 this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player); // Spigot this.playersByUUID.put(player.getUUID(), player); // this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer))); // CraftBukkit - replaced with loop below -@@ -652,6 +656,7 @@ public abstract class PlayerList { +@@ -673,6 +677,7 @@ public abstract class PlayerList { entityplayer.retireScheduler(); // Paper - Folia schedulers entityplayer.getAdvancements().stopListening(); this.players.remove(entityplayer); @@ -78,7 +78,7 @@ index 869e3741ad02197973a7c32eac433a484fb564d7..66ef21f2b970db4bd24fe9db52173083 this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer); UUID uuid = entityplayer.getUUID(); -@@ -813,6 +818,7 @@ public abstract class PlayerList { +@@ -834,6 +839,7 @@ public abstract class PlayerList { // Paper end entityplayer.stopRiding(); // CraftBukkit this.players.remove(entityplayer); @@ -86,7 +86,7 @@ index 869e3741ad02197973a7c32eac433a484fb564d7..66ef21f2b970db4bd24fe9db52173083 this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot entityplayer.serverLevel().removePlayerImmediately(entityplayer, Entity.RemovalReason.DISCARDED); BlockPos blockposition = entityplayer.getRespawnPosition(); -@@ -949,6 +955,7 @@ public abstract class PlayerList { +@@ -970,6 +976,7 @@ public abstract class PlayerList { if (!entityplayer.connection.isDisconnected()) { worldserver1.addRespawnedPlayer(entityplayer1); this.players.add(entityplayer1); @@ -94,7 +94,7 @@ index 869e3741ad02197973a7c32eac433a484fb564d7..66ef21f2b970db4bd24fe9db52173083 this.playersByName.put(entityplayer1.getScoreboardName().toLowerCase(java.util.Locale.ROOT), entityplayer1); // Spigot this.playersByUUID.put(entityplayer1.getUUID(), entityplayer1); } -@@ -1001,20 +1008,55 @@ public abstract class PlayerList { +@@ -1022,20 +1029,55 @@ public abstract class PlayerList { this.sendPlayerPermissionLevel(player, i); } @@ -157,7 +157,7 @@ index 869e3741ad02197973a7c32eac433a484fb564d7..66ef21f2b970db4bd24fe9db52173083 } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 67775a81f88de1523b20bd22695ec161b682417b..e2ce9790e5b996ee25970820a5cd82f6f057ebd8 100644 +index fc4b9144cb093fe84b0d5cb27f0efee23c7a39ed..ff17428fc260f4737cda81bca5f4fdb8e50dbd67 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -39,6 +39,7 @@ import net.minecraft.network.syncher.SynchedEntityData; diff --git a/patches/server/0112-Optimize-player-list-for-sending-player-info.patch b/patches/server/0111-Optimize-player-list-for-sending-player-info.patch similarity index 95% rename from patches/server/0112-Optimize-player-list-for-sending-player-info.patch rename to patches/server/0111-Optimize-player-list-for-sending-player-info.patch index 9072398..0e09300 100644 --- a/patches/server/0112-Optimize-player-list-for-sending-player-info.patch +++ b/patches/server/0111-Optimize-player-list-for-sending-player-info.patch @@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 66ef21f2b970db4bd24fe9db52173083c37f8d71..5c5698720be50d89fc92550d6d87aa9e02e34f92 100644 +index 45eefa9fd18950fbd913cef7c1e78f7d188d4d90..b4ca4f9e418086a156823d2afd16fd2c8d47a542 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1044,14 +1044,18 @@ public abstract class PlayerList { +@@ -1065,14 +1065,18 @@ public abstract class PlayerList { // Gale start - Purpur - spread out sending all player info ServerPlayer[] sendAllPlayerInfoBucket = this.sendAllPlayerInfoBuckets[this.sendAllPlayerInfoIn]; if (sendAllPlayerInfoBucket != null) { diff --git a/patches/server/0113-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch b/patches/server/0112-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch similarity index 100% rename from patches/server/0113-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch rename to patches/server/0112-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch diff --git a/patches/server/0114-Send-multiple-keep-alive-packets.patch b/patches/server/0113-Send-multiple-keep-alive-packets.patch similarity index 90% rename from patches/server/0114-Send-multiple-keep-alive-packets.patch rename to patches/server/0113-Send-multiple-keep-alive-packets.patch index a45cc20..4d0ad47 100644 --- a/patches/server/0114-Send-multiple-keep-alive-packets.patch +++ b/patches/server/0113-Send-multiple-keep-alive-packets.patch @@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index e2eac064b91210e9593b864878d421d406142b59..9045be8b757fe4ed9b1acf7f749a7eb51d89080d 100644 +index 09595e58058e9c91b181c212bb629de463cc48b9..9019bbc86f3e94b8f4033f2e5fb43dd7efac15f9 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -4,6 +4,9 @@ import com.mojang.authlib.GameProfile; @@ -70,10 +70,10 @@ index e2eac064b91210e9593b864878d421d406142b59..9045be8b757fe4ed9b1acf7f749a7eb5 + private static final long KEEPALIVE_LIMIT_IN_SECONDS = Long.getLong("paper.playerconnection.keepalive", 30); // Paper - provide property to set keepalive limit + private static final long KEEPALIVE_LIMIT = KEEPALIVE_LIMIT_IN_SECONDS * 1000; + // Gale end - Purpur - send multiple keep-alive packets - private @Nullable String clientBrandName = null; // Paper - Brand name protected static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support -@@ -92,6 +100,16 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack + public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit +@@ -91,6 +99,16 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { //PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // CraftBukkit // Paper - This shouldn't be on the main thread @@ -90,7 +90,7 @@ index e2eac064b91210e9593b864878d421d406142b59..9045be8b757fe4ed9b1acf7f749a7eb5 if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { int i = (int) (Util.getMillis() - this.keepAliveTime); -@@ -104,6 +122,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -103,6 +121,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack }); // Paper endg } @@ -98,7 +98,7 @@ index e2eac064b91210e9593b864878d421d406142b59..9045be8b757fe4ed9b1acf7f749a7eb5 } -@@ -198,6 +217,20 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -195,6 +214,20 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack long currentTime = Util.getMillis(); long elapsedTime = currentTime - this.keepAliveTime; @@ -119,7 +119,7 @@ index e2eac064b91210e9593b864878d421d406142b59..9045be8b757fe4ed9b1acf7f749a7eb5 if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -211,6 +244,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -208,6 +241,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack this.send(new ClientboundKeepAlivePacket(this.keepAliveChallenge)); } } @@ -128,7 +128,7 @@ index e2eac064b91210e9593b864878d421d406142b59..9045be8b757fe4ed9b1acf7f749a7eb5 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 208d46c712e09d91cdb70b4b485b5c2a939439e0..1f58079114314a26e6d04ae0d84ee1a5d225b82e 100644 +index fadeac3a787350f6b3d4936825b3b02bd0cde31a..f81ec0b6e542ac697769f6b7392d62e9e0aac0a6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -8,6 +8,8 @@ import com.mojang.brigadier.StringReader; @@ -140,7 +140,7 @@ index 208d46c712e09d91cdb70b4b485b5c2a939439e0..1f58079114314a26e6d04ae0d84ee1a5 import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectIterator; import java.net.SocketAddress; -@@ -3401,6 +3403,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3407,6 +3409,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } @Override @@ -149,10 +149,10 @@ index 208d46c712e09d91cdb70b4b485b5c2a939439e0..1f58079114314a26e6d04ae0d84ee1a5 PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // CraftBukkit start diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 77c236afd2aa49abb1725efda0a6eb34552e4a16..5aeac04cf6d79bd381424954180df8d61b1f37f2 100644 +index 00d511ed75a5e7268737663baad0c25511e35d53..d6d5bb73db5eb3f620e2c0d4858a96901f364462 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -87,6 +87,11 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -88,6 +88,11 @@ public class GaleGlobalConfiguration extends ConfigurationPart { } diff --git a/patches/server/0115-Make-slow-login-timeout-configurable.patch b/patches/server/0114-Make-slow-login-timeout-configurable.patch similarity index 92% rename from patches/server/0115-Make-slow-login-timeout-configurable.patch rename to patches/server/0114-Make-slow-login-timeout-configurable.patch index 4d2445a..fbeb8bc 100644 --- a/patches/server/0115-Make-slow-login-timeout-configurable.patch +++ b/patches/server/0114-Make-slow-login-timeout-configurable.patch @@ -23,10 +23,10 @@ index e1f442b204cdf8c58c4f980af1714368ef9a61b9..4dc8365202fe851933545635bd14c763 } diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 5aeac04cf6d79bd381424954180df8d61b1f37f2..67c94cd227449b6371a4635a1884d47ec5221997 100644 +index d6d5bb73db5eb3f620e2c0d4858a96901f364462..f53328d3be9238c01bf2ec9b6ed0a854696a60f0 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -51,6 +51,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -52,6 +52,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public class Misc extends ConfigurationPart { public boolean verifyChatOrder = true; // Gale - Pufferfish - make chat order verification configurable diff --git a/patches/server/0116-Make-max-interaction-distance-configurable.patch b/patches/server/0115-Make-max-interaction-distance-configurable.patch similarity index 88% rename from patches/server/0116-Make-max-interaction-distance-configurable.patch rename to patches/server/0115-Make-max-interaction-distance-configurable.patch index 98c9e22..870bd1b 100644 --- a/patches/server/0116-Make-max-interaction-distance-configurable.patch +++ b/patches/server/0115-Make-max-interaction-distance-configurable.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index b2c2bd5ec0afd479973f7237a5c610f21231c505..921af5bba8f1f67bcdfe2b7fb7489f7f5ef80e7b 100644 +index 106a312aba249d1e83e4b535fc6e741e04ccfd14..58e3ac1e155fcd352efcc90401e4e13ae4c6a2ca 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -174,7 +174,7 @@ public class ServerPlayerGameMode { @@ -20,7 +20,7 @@ index b2c2bd5ec0afd479973f7237a5c610f21231c505..921af5bba8f1f67bcdfe2b7fb7489f7f this.debugLogging(pos, false, sequence, "too far"); } else if (pos.getY() >= worldHeight) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1f58079114314a26e6d04ae0d84ee1a5d225b82e..4c13544652f8fe21a69e843b338ac04e7234f065 100644 +index f81ec0b6e542ac697769f6b7392d62e9e0aac0a6..477c343670599ba16dc34a5d4c07392ae1cc873b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -247,7 +247,7 @@ import org.bukkit.inventory.SmithingInventory; @@ -46,7 +46,7 @@ index 1f58079114314a26e6d04ae0d84ee1a5d225b82e..4c13544652f8fe21a69e843b338ac04e @Override public void tick() { if (this.ackBlockChangesUpTo > -1) { -@@ -1900,7 +1907,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1901,7 +1908,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl BlockPos blockposition = movingobjectpositionblock.getBlockPos(); Vec3 vec3d1 = Vec3.atCenterOf(blockposition); @@ -55,7 +55,7 @@ index 1f58079114314a26e6d04ae0d84ee1a5d225b82e..4c13544652f8fe21a69e843b338ac04e Vec3 vec3d2 = vec3d.subtract(vec3d1); double d0 = 1.0000001D; -@@ -2715,7 +2722,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2716,7 +2723,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = entity.getBoundingBox(); @@ -86,19 +86,18 @@ index e111bbbba63ec53d709f23ad12b96c2d3766a146..72718684cf99a3b74ea7dce1e2e9d7a3 private void spawnDustParticles(Level world, BlockHitResult hitResult, BlockState state, Vec3 userRotation, HumanoidArm arm) { diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -index 492a279f080432b2340007be159d9bcba02f174b..4ac4350a6a03ed2542d50033822ed1f55248a1ce 100644 +index 492a279f080432b2340007be159d9bcba02f174b..68373c02373d9452613710915beb0d5951c2b531 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -@@ -95,7 +95,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { - } +@@ -9,6 +9,7 @@ import io.papermc.paper.configuration.PaperConfigurations; + import net.minecraft.resources.ResourceLocation; + import org.slf4j.Logger; + import org.spigotmc.SpigotWorldConfig; ++import org.spongepowered.configurate.objectmapping.meta.PostProcess; + import org.spongepowered.configurate.objectmapping.meta.Setting; - public GameplayMechanics gameplayMechanics; -- public class GameplayMechanics extends ConfigurationPart { -+ public class GameplayMechanics extends ConfigurationPart.Post { - - public Fixes fixes; - public class Fixes extends ConfigurationPart { -@@ -132,6 +132,16 @@ public class GaleWorldConfiguration extends ConfigurationPart { + @SuppressWarnings({"FieldCanBeLocal", "FieldMayBeFinal", "NotNullFieldNotInitialized", "InnerClassMayBeStatic"}) +@@ -132,6 +133,16 @@ public class GaleWorldConfiguration extends ConfigurationPart { public boolean hideFlamesOnEntitiesWithFireResistance = false; // Gale - Slice - hide flames on entities with fire resistance public boolean tryRespawnEnderDragonAfterEndCrystalPlace = true; // Gale - Pufferfish - make ender dragon respawn attempt after placing end crystals configurable @@ -107,7 +106,7 @@ index 492a279f080432b2340007be159d9bcba02f174b..4ac4350a6a03ed2542d50033822ed1f5 + public transient double playerMaxInteractionDistanceSquared; + // Gale end - make max interaction distance configurable + -+ @Override ++ @PostProcess + public void postProcess() { + this.playerMaxInteractionDistanceSquared = this.playerMaxInteractionDistance * this.playerMaxInteractionDistance; // Gale - make max interaction distance configurable + } diff --git a/patches/server/0117-Load-portal-destination-chunk-before-entity-teleport.patch b/patches/server/0116-Load-portal-destination-chunk-before-entity-teleport.patch similarity index 89% rename from patches/server/0117-Load-portal-destination-chunk-before-entity-teleport.patch rename to patches/server/0116-Load-portal-destination-chunk-before-entity-teleport.patch index 3acae70..726b999 100644 --- a/patches/server/0117-Load-portal-destination-chunk-before-entity-teleport.patch +++ b/patches/server/0116-Load-portal-destination-chunk-before-entity-teleport.patch @@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7068fac81b8c66e8fae125b7566ac82e249678a2..23eb4e72152c77d3f8992bd846bd73f69c7078cd 100644 +index 1ec01ffb3c0b7e62304b5342927d81d5140e02d1..92b5d832427af60a5a0efc33c54f7ba49a0de9c4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3630,6 +3630,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3668,6 +3668,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { Entity entity = this.getType().create(worldserver); if (entity != null) { @@ -31,10 +31,10 @@ index 7068fac81b8c66e8fae125b7566ac82e249678a2..23eb4e72152c77d3f8992bd846bd73f6 entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - use EntityPortalExitEvent values entity.setDeltaMovement(velocity); // Paper - use EntityPortalExitEvent values diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -index 4ac4350a6a03ed2542d50033822ed1f55248a1ce..a6949c198f9530eda5c38019cc978876538391f4 100644 +index 68373c02373d9452613710915beb0d5951c2b531..04e7ba1e2a80dffacc4063872ce4458577876f9f 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -@@ -127,6 +127,11 @@ public class GaleWorldConfiguration extends ConfigurationPart { +@@ -128,6 +128,11 @@ public class GaleWorldConfiguration extends ConfigurationPart { } diff --git a/patches/server/0118-Don-t-load-chunks-to-spawn-phantoms.patch b/patches/server/0117-Don-t-load-chunks-to-spawn-phantoms.patch similarity index 95% rename from patches/server/0118-Don-t-load-chunks-to-spawn-phantoms.patch rename to patches/server/0117-Don-t-load-chunks-to-spawn-phantoms.patch index 7e7c9f4..0cfa559 100644 --- a/patches/server/0118-Don-t-load-chunks-to-spawn-phantoms.patch +++ b/patches/server/0117-Don-t-load-chunks-to-spawn-phantoms.patch @@ -34,10 +34,10 @@ index dfeb3e336e06ef01f5401a362755030db942bb07..518b40a27a8d4d015caa7e67d3558396 if (NaturalSpawner.isValidEmptySpawnBlock(world, blockposition1, iblockdata, fluid, EntityType.PHANTOM)) { diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -index a6949c198f9530eda5c38019cc978876538391f4..566d33b127879c4c84557fce4ea4eb1c8c1130d5 100644 +index 04e7ba1e2a80dffacc4063872ce4458577876f9f..7c9ae73edd465e7cfc365ca45c298b6a384faba3 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -@@ -92,6 +92,11 @@ public class GaleWorldConfiguration extends ConfigurationPart { +@@ -93,6 +93,11 @@ public class GaleWorldConfiguration extends ConfigurationPart { } diff --git a/patches/server/0119-Don-t-load-chunks-to-activate-climbing-entities.patch b/patches/server/0118-Don-t-load-chunks-to-activate-climbing-entities.patch similarity index 89% rename from patches/server/0119-Don-t-load-chunks-to-activate-climbing-entities.patch rename to patches/server/0118-Don-t-load-chunks-to-activate-climbing-entities.patch index fdf4db1..21dbe07 100644 --- a/patches/server/0119-Don-t-load-chunks-to-activate-climbing-entities.patch +++ b/patches/server/0118-Don-t-load-chunks-to-activate-climbing-entities.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 23eb4e72152c77d3f8992bd846bd73f69c7078cd..694080da9fe3a0094227b25eb23c3144afa0a63e 100644 +index 92b5d832427af60a5a0efc33c54f7ba49a0de9c4..f27b32d5e1acf83527930f25a7b026d243bf4d26 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4527,6 +4527,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4565,6 +4565,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return this.feetBlockState; } @@ -28,10 +28,10 @@ index 23eb4e72152c77d3f8992bd846bd73f69c7078cd..694080da9fe3a0094227b25eb23c3144 return this.chunkPosition; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a250c3e9c2f5f927b99d17376dbf323ff153801f..a83a02c1f2402fe63e54b5343cdc9527d0fc78e6 100644 +index ad7b59a9b49d3d9c4a506fef24412b065b904578..61178e3e8a64b4d01db0ce5361d0e1edc6d746e5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2013,19 +2013,43 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2018,19 +2018,43 @@ public abstract class LivingEntity extends Entity implements Attackable { public boolean onClimbableCached() { if (!this.blockPosition().equals(this.lastClimbingPosition)) { @@ -79,10 +79,10 @@ index a250c3e9c2f5f927b99d17376dbf323ff153801f..a83a02c1f2402fe63e54b5343cdc9527 if (iblockdata.is(BlockTags.CLIMBABLE)) { this.lastClimbablePos = Optional.of(blockposition); diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -index 566d33b127879c4c84557fce4ea4eb1c8c1130d5..3bcfcbb9bf085192c55aae58ddb231fb18dcabcd 100644 +index 7c9ae73edd465e7cfc365ca45c298b6a384faba3..ef86f9e4b7f91b79f657b04cf3f745f3828719a9 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -@@ -95,6 +95,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { +@@ -96,6 +96,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { public LoadChunks loadChunks; public class LoadChunks extends ConfigurationPart { public boolean toSpawnPhantoms = false; // Gale - MultiPaper - don't load chunks to spawn phantoms diff --git a/patches/server/0120-Broadcast-crit-animations-as-the-entity-being-critte.patch b/patches/server/0119-Broadcast-crit-animations-as-the-entity-being-critte.patch similarity index 90% rename from patches/server/0120-Broadcast-crit-animations-as-the-entity-being-critte.patch rename to patches/server/0119-Broadcast-crit-animations-as-the-entity-being-critte.patch index 05ce7a2..ec7be7b 100644 --- a/patches/server/0120-Broadcast-crit-animations-as-the-entity-being-critte.patch +++ b/patches/server/0119-Broadcast-crit-animations-as-the-entity-being-critte.patch @@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 621c134cb774deca14618f7010335072ffbc68e6..d63aa48a2de93e3626fa83c2480c6462a17f4384 100644 +index c651cef360efe8f80a49c3d572064ee16c786205..58bed6f664fc82665f680695070ee785a441f9bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1917,12 +1917,18 @@ public class ServerPlayer extends Player { +@@ -1916,12 +1916,18 @@ public class ServerPlayer extends Player { @Override public void crit(Entity target) { @@ -38,10 +38,10 @@ index 621c134cb774deca14618f7010335072ffbc68e6..d63aa48a2de93e3626fa83c2480c6462 @Override diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -index 3bcfcbb9bf085192c55aae58ddb231fb18dcabcd..6c9eacf9b4ec0a2eead062bd69a037c5c2d8722f 100644 +index ef86f9e4b7f91b79f657b04cf3f745f3828719a9..bb98290de37db5b4addc85ee2e3a5b5932dd58ee 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -@@ -108,6 +108,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { +@@ -109,6 +109,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { public boolean sandDuping = true; // Gale - Purpur - make sand duping fix configurable public boolean tripwireDuping = true; // Gale - Leaf - make tripwire duping fix configurable diff --git a/patches/server/0121-Ignore-null-legacy-structure-data.patch b/patches/server/0120-Ignore-null-legacy-structure-data.patch similarity index 95% rename from patches/server/0121-Ignore-null-legacy-structure-data.patch rename to patches/server/0120-Ignore-null-legacy-structure-data.patch index 064fd78..195665d 100644 --- a/patches/server/0121-Ignore-null-legacy-structure-data.patch +++ b/patches/server/0120-Ignore-null-legacy-structure-data.patch @@ -46,10 +46,10 @@ index 541314ba47ea158e4751aa4e853117f8861fad82..eb61a0f1cea465884baa17c2d0a0768d continue; } diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 67c94cd227449b6371a4635a1884d47ec5221997..1cc02389bf53cf4c77145117a68b83505c4a5d6b 100644 +index f53328d3be9238c01bf2ec9b6ed0a854696a60f0..f83fa90b2ed4a60d5f3b305a99ae16498a20aef1 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -52,6 +52,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -53,6 +53,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { public boolean verifyChatOrder = true; // Gale - Pufferfish - make chat order verification configurable public int premiumAccountSlowLoginTimeout = -1; // Gale - make slow login timeout configurable diff --git a/patches/server/0122-Skip-unnecessary-mob-spawning-computations.patch b/patches/server/0121-Skip-unnecessary-mob-spawning-computations.patch similarity index 93% rename from patches/server/0122-Skip-unnecessary-mob-spawning-computations.patch rename to patches/server/0121-Skip-unnecessary-mob-spawning-computations.patch index 2eafedb..ae4b421 100644 --- a/patches/server/0122-Skip-unnecessary-mob-spawning-computations.patch +++ b/patches/server/0121-Skip-unnecessary-mob-spawning-computations.patch @@ -13,12 +13,12 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 2c8edc272ae598a02531f596f337a94cb3a173ee..18e521e77e58a9f786937192249c884aa317988c 100644 +index 4600ebd99e910287c3c97d6b9179af716da7f4c6..292a6450a2031756b3037c77dfc501e9396d7440 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -511,10 +511,15 @@ public class ServerChunkCache extends ChunkSource { int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); - boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + // Gale start - MultiPaper - skip unnecessary mob spawning computations + NaturalSpawner.SpawnState spawnercreature_d; // moved down diff --git a/patches/server/0123-Prevent-entities-random-strolling-into-non-ticking-c.patch b/patches/server/0122-Prevent-entities-random-strolling-into-non-ticking-c.patch similarity index 94% rename from patches/server/0123-Prevent-entities-random-strolling-into-non-ticking-c.patch rename to patches/server/0122-Prevent-entities-random-strolling-into-non-ticking-c.patch index f077b22..899ec87 100644 --- a/patches/server/0123-Prevent-entities-random-strolling-into-non-ticking-c.patch +++ b/patches/server/0122-Prevent-entities-random-strolling-into-non-ticking-c.patch @@ -36,10 +36,10 @@ index 676e1580849e8942eb41c7a3a80f464138b22764..9e4d0493aa814a392742c9ddc1815211 } else { this.wantedX = vec3.x; diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -index 6c9eacf9b4ec0a2eead062bd69a037c5c2d8722f..4a4a8360c4286e06d88049512bf44237d2622f01 100644 +index bb98290de37db5b4addc85ee2e3a5b5932dd58ee..5fe6f626b63274e33f7c8b46441d17cf4ff9d533 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -@@ -140,6 +140,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { +@@ -141,6 +141,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { } public boolean arrowMovementResetsDespawnCounter = true; // Gale - Purpur - make arrow movement resetting despawn counter configurable diff --git a/patches/server/0124-Do-not-place-player-in-world-if-kicked-before-being-.patch b/patches/server/0123-Do-not-place-player-in-world-if-kicked-before-being-.patch similarity index 92% rename from patches/server/0124-Do-not-place-player-in-world-if-kicked-before-being-.patch rename to patches/server/0123-Do-not-place-player-in-world-if-kicked-before-being-.patch index 41a06db..655eb29 100644 --- a/patches/server/0124-Do-not-place-player-in-world-if-kicked-before-being-.patch +++ b/patches/server/0123-Do-not-place-player-in-world-if-kicked-before-being-.patch @@ -14,10 +14,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5c5698720be50d89fc92550d6d87aa9e02e34f92..21b01e5c3fd1b419c81df9628a635ae207e46a7c 100644 +index b4ca4f9e418086a156823d2afd16fd2c8d47a542..29d33dcbf3787bd28176021d2eb7c9290ccce802 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -257,6 +257,13 @@ public abstract class PlayerList { +@@ -278,6 +278,13 @@ public abstract class PlayerList { org.spigotmc.event.player.PlayerSpawnLocationEvent ev = new com.destroystokyo.paper.event.player.PlayerInitialSpawnEvent(spawnPlayer, spawnPlayer.getLocation()); // Paper use our duplicate event this.cserver.getPluginManager().callEvent(ev); diff --git a/patches/server/0125-CraftBukkit-UUID-to-world-map.patch b/patches/server/0124-CraftBukkit-UUID-to-world-map.patch similarity index 85% rename from patches/server/0125-CraftBukkit-UUID-to-world-map.patch rename to patches/server/0124-CraftBukkit-UUID-to-world-map.patch index c976521..8cb5f09 100644 --- a/patches/server/0125-CraftBukkit-UUID-to-world-map.patch +++ b/patches/server/0124-CraftBukkit-UUID-to-world-map.patch @@ -13,20 +13,20 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index cd6342743aa36e2de0e0f72641f87a9ef3c09f89..fbf535daf3705a4188aabbdf55b30a5251865d81 100644 +index c0b66b8455c35794c055651b687ba9ca2b89af4c..05e81adc990eaea4fd4d78ef7f53efd6ae8df35f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -44,6 +44,9 @@ import java.util.logging.Level; - import java.util.logging.Logger; +@@ -44,6 +44,9 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import javax.imageio.ImageIO; + // import jline.console.ConsoleReader; + +import it.unimi.dsi.fastutil.objects.Object2ObjectMap; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; - import net.minecraft.advancements.Advancement; import net.minecraft.advancements.AdvancementHolder; import net.minecraft.commands.CommandSourceStack; -@@ -282,6 +285,7 @@ public final class CraftServer implements Server { + import net.minecraft.commands.Commands; +@@ -284,6 +287,7 @@ public final class CraftServer implements Server { protected final DedicatedServer console; protected final DedicatedPlayerList playerList; private final Map worlds = new LinkedHashMap(); @@ -34,7 +34,7 @@ index cd6342743aa36e2de0e0f72641f87a9ef3c09f89..fbf535daf3705a4188aabbdf55b30a52 private final Map, Registry> registries = new HashMap<>(); private YamlConfiguration configuration; private YamlConfiguration commandsConfiguration; -@@ -1412,6 +1416,7 @@ public final class CraftServer implements Server { +@@ -1415,6 +1419,7 @@ public final class CraftServer implements Server { this.getLogger().log(Level.SEVERE, null, ex); } @@ -42,7 +42,7 @@ index cd6342743aa36e2de0e0f72641f87a9ef3c09f89..fbf535daf3705a4188aabbdf55b30a52 this.worlds.remove(world.getName().toLowerCase(java.util.Locale.ENGLISH)); this.console.removeLevel(handle); return true; -@@ -1430,12 +1435,7 @@ public final class CraftServer implements Server { +@@ -1433,12 +1438,7 @@ public final class CraftServer implements Server { @Override public World getWorld(UUID uid) { @@ -56,7 +56,7 @@ index cd6342743aa36e2de0e0f72641f87a9ef3c09f89..fbf535daf3705a4188aabbdf55b30a52 } // Paper start -@@ -1453,6 +1453,7 @@ public final class CraftServer implements Server { +@@ -1456,6 +1456,7 @@ public final class CraftServer implements Server { System.out.println("World " + world.getName() + " is a duplicate of another world and has been prevented from loading. Please delete the uid.dat file from " + world.getName() + "'s world directory if you want to be able to load the duplicate world."); return; } diff --git a/patches/server/0126-Global-EULA-file.patch b/patches/server/0125-Global-EULA-file.patch similarity index 100% rename from patches/server/0126-Global-EULA-file.patch rename to patches/server/0125-Global-EULA-file.patch diff --git a/patches/server/0127-Specific-interval-TPS-API.patch b/patches/server/0126-Specific-interval-TPS-API.patch similarity index 88% rename from patches/server/0127-Specific-interval-TPS-API.patch rename to patches/server/0126-Specific-interval-TPS-API.patch index 4e9f9bb..6238762 100644 --- a/patches/server/0127-Specific-interval-TPS-API.patch +++ b/patches/server/0126-Specific-interval-TPS-API.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fbf535daf3705a4188aabbdf55b30a5251865d81..e8bf9e70d83c01c26a92e327bbca2a6cdbe35fb4 100644 +index 05e81adc990eaea4fd4d78ef7f53efd6ae8df35f..b105cf508e1d605155ac9248e7701bee6efc3953 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2883,6 +2883,25 @@ public final class CraftServer implements Server { +@@ -2947,6 +2947,25 @@ public final class CraftServer implements Server { }; } diff --git a/patches/server/0128-5-second-TPS-average.patch b/patches/server/0127-5-second-TPS-average.patch similarity index 95% rename from patches/server/0128-5-second-TPS-average.patch rename to patches/server/0127-5-second-TPS-average.patch index be944d1..ce07d3a 100644 --- a/patches/server/0128-5-second-TPS-average.patch +++ b/patches/server/0127-5-second-TPS-average.patch @@ -59,7 +59,7 @@ index fa56cd09102a89692b42f1d14257990508c5c720..fac07dda413002c12276131efbe4ee38 setListData(vector); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d4bb60b9a5673334ae09af34d5eb435faf95f8e9..1e9770e2c5be38d334583a502cb30e4c8ae5be7a 100644 +index 7db5c6d9a4bab340a2ae95c43388281445690d29..754c56b9ceb5d5eac9625571e5eaffd3bf05f0c6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1012,6 +1012,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Mon, 21 Aug 2023 21:46:10 +0200 -Subject: [PATCH] Pre-compute VarInt and VarLong sizes +Subject: [PATCH] Pre-compute VarLong sizes License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org @@ -20,33 +20,6 @@ Given that we do a lot of varint writing as well, this should provide a small pe This includes a test to ensure that the behavior is as expected and fixes the initialization loop so that the correct results will be given. Much thanks to @octylFractal for acting as my duck while trying to figure this out. -diff --git a/src/main/java/net/minecraft/network/VarInt.java b/src/main/java/net/minecraft/network/VarInt.java -index 18d5a22ad3ef4cb279475531dbc2c65e07c69929..2f4a8970f3de335f3846f6f88524bb1924b4258b 100644 ---- a/src/main/java/net/minecraft/network/VarInt.java -+++ b/src/main/java/net/minecraft/network/VarInt.java -@@ -8,7 +8,22 @@ public class VarInt { - private static final int CONTINUATION_BIT_MASK = 128; - private static final int DATA_BITS_PER_BYTE = 7; - -+ // Gale start - Velocity - pre-compute VarInt and VarLong sizes -+ private static final int[] EXACT_BYTE_LENGTHS = new int[33]; -+ static { -+ for (int i = 0; i < 32; ++i) { -+ EXACT_BYTE_LENGTHS[i] = (32 - i + 6) / 7; -+ } -+ EXACT_BYTE_LENGTHS[32] = 1; // Special case for the number 0 -+ } -+ // Gale end - Velocity - pre-compute VarInt and VarLong sizes - public static int getByteSize(int i) { -+ // Gale start - Velocity - pre-compute VarInt and VarLong sizes -+ return EXACT_BYTE_LENGTHS[Integer.numberOfLeadingZeros(i)]; -+ } -+ -+ static int getByteSizeOriginal(int i) { // public -> package-private -+ // Gale end - Velocity - pre-compute VarInt and VarLong sizes - for(int j = 1; j < 5; ++j) { - if ((i & -1 << j * 7) == 0) { - return j; diff --git a/src/main/java/net/minecraft/network/VarLong.java b/src/main/java/net/minecraft/network/VarLong.java index 3ea9f42b7ad50c0dc4466849e3432ebddcfe2f7b..4c1fbf3e2e6cfaf5f5db199b232d007ec6a9d226 100644 --- a/src/main/java/net/minecraft/network/VarLong.java @@ -76,7 +49,7 @@ index 3ea9f42b7ad50c0dc4466849e3432ebddcfe2f7b..4c1fbf3e2e6cfaf5f5db199b232d007e return i; diff --git a/src/test/java/net/minecraft/network/VarIntLongTest.java b/src/test/java/net/minecraft/network/VarIntLongTest.java new file mode 100644 -index 0000000000000000000000000000000000000000..682996bf3802ddd2be78f25944a32235ca86accf +index 0000000000000000000000000000000000000000..a1892a904042fcfad9137df592dabd46d4d1c30b --- /dev/null +++ b/src/test/java/net/minecraft/network/VarIntLongTest.java @@ -0,0 +1,159 @@ @@ -88,8 +61,8 @@ index 0000000000000000000000000000000000000000..682996bf3802ddd2be78f25944a32235 +import it.unimi.dsi.fastutil.ints.IntSet; +import it.unimi.dsi.fastutil.longs.LongOpenHashSet; +import it.unimi.dsi.fastutil.longs.LongSet; -+import org.junit.Assert; -+import org.junit.Test; ++import org.junit.jupiter.api.Assertions; ++import org.junit.jupiter.api.Test; + +public class VarIntLongTest { + @@ -210,16 +183,16 @@ index 0000000000000000000000000000000000000000..682996bf3802ddd2be78f25944a32235 + + // Gale start - Velocity - pre-compute VarInt and VarLong sizes + @Test -+ public void testGetVarIntSizeComparedToOriginal() { ++ public void testGetVarIntSizeComparedToOld() { + integerCases.forEach(value -> { + // given -+ int originalSize = VarInt.getByteSizeOriginal(value); ++ int originalSize = VarInt.getByteSizeOld(value); + + // when + int size = VarInt.getByteSize(value); + + // then -+ Assert.assertEquals("Optimized size (" + size + ") is not equal to original size (" + originalSize + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(value), 32) + ")", originalSize, size); ++ Assertions.assertEquals(Float.parseFloat("Optimized size (" + size + ") is not equal to original size (" + originalSize + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(value), 32) + ")"), originalSize, size); + }); + } + @@ -233,7 +206,7 @@ index 0000000000000000000000000000000000000000..682996bf3802ddd2be78f25944a32235 + int size = VarLong.getByteSize(value); + + // then -+ Assert.assertEquals("Optimized size (" + size + ") is not equal to original size (" + originalSize + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Long.toBinaryString(value), 64) + ")", originalSize, size); ++ Assertions.assertEquals(Float.parseFloat("Optimized size (" + size + ") is not equal to original size (" + originalSize + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Long.toBinaryString(value), 64) + ")"), originalSize, size); + }); + } + // Gale end - Velocity - pre-compute VarInt and VarLong sizes diff --git a/patches/server/0137-Optimize-VarInt-write-and-VarLong-write.patch b/patches/server/0136-Optimize-VarLong-write.patch similarity index 70% rename from patches/server/0137-Optimize-VarInt-write-and-VarLong-write.patch rename to patches/server/0136-Optimize-VarLong-write.patch index 30124bb..1d692be 100644 --- a/patches/server/0137-Optimize-VarInt-write-and-VarLong-write.patch +++ b/patches/server/0136-Optimize-VarLong-write.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martijn Muijsers Date: Tue, 22 Aug 2023 21:38:37 +0200 -Subject: [PATCH] Optimize VarInt#write and VarLong#write +Subject: [PATCH] Optimize VarLong#write License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org @@ -20,52 +20,6 @@ Given that we do a lot of varint writing as well, this should provide a small pe This includes a test to ensure that the behavior is as expected and fixes the initialization loop so that the correct results will be given. Much thanks to @octylFractal for acting as my duck while trying to figure this out. -diff --git a/src/main/java/net/minecraft/network/VarInt.java b/src/main/java/net/minecraft/network/VarInt.java -index 2f4a8970f3de335f3846f6f88524bb1924b4258b..1e837a30311c93436f59050fe8f09a40615916e7 100644 ---- a/src/main/java/net/minecraft/network/VarInt.java -+++ b/src/main/java/net/minecraft/network/VarInt.java -@@ -54,6 +54,41 @@ public class VarInt { - } - - public static ByteBuf write(ByteBuf buf, int i) { -+ // Gale start - Velocity - optimized VarInt#write -+ if ((i & 0xFFFFFF80) == 0) { -+ buf.writeByte(i); -+ } else if ((i & 0xFFFFC000) == 0) { -+ int w = (i & 0x7F) << 8 -+ | (i >>> 7) -+ | 0x00008000; -+ buf.writeShort(w); -+ } else if ((i & 0xFFE00000) == 0) { -+ int w = (i & 0x7F) << 16 -+ | (i & 0x3F80) << 1 -+ | (i >>> 14) -+ | 0x00808000; -+ buf.writeMedium(w); -+ } else if ((i & 0xF0000000) == 0) { -+ int w = (i & 0x7F) << 24 -+ | ((i & 0x3F80) << 9) -+ | (i & 0x1FC000) >> 6 -+ | (i >>> 21) -+ | 0x80808000; -+ buf.writeInt(w); -+ } else { -+ int w = (i & 0x7F) << 24 -+ | (i & 0x3F80) << 9 -+ | (i & 0x1FC000) >> 6 -+ | ((i >>> 21) & 0x7F) -+ | 0x80808080; -+ buf.writeInt(w); -+ buf.writeByte(i >>> 28); -+ } -+ return buf; -+ } -+ -+ static ByteBuf writeOriginal(ByteBuf buf, int i) { // public -> package-private -+ // Gale end - Velocity - optimized VarInt#write - while((i & -128) != 0) { - buf.writeByte(i & 127 | 128); - i >>>= 7; diff --git a/src/main/java/net/minecraft/network/VarLong.java b/src/main/java/net/minecraft/network/VarLong.java index 4c1fbf3e2e6cfaf5f5db199b232d007ec6a9d226..10546fb8b47b54989f5f98ddf37f202699abfb6d 100644 --- a/src/main/java/net/minecraft/network/VarLong.java @@ -199,7 +153,7 @@ index 4c1fbf3e2e6cfaf5f5db199b232d007ec6a9d226..10546fb8b47b54989f5f98ddf37f2026 buf.writeByte((int)(l & 127L) | 128); l >>>= 7; diff --git a/src/test/java/net/minecraft/network/VarIntLongTest.java b/src/test/java/net/minecraft/network/VarIntLongTest.java -index 682996bf3802ddd2be78f25944a32235ca86accf..f2e312c46b2e01400ba37bef3b6771f946901e86 100644 +index a1892a904042fcfad9137df592dabd46d4d1c30b..892877b1a1ebfe42bb7a7af7555606329c39e9b3 100644 --- a/src/test/java/net/minecraft/network/VarIntLongTest.java +++ b/src/test/java/net/minecraft/network/VarIntLongTest.java @@ -2,6 +2,7 @@ @@ -216,21 +170,21 @@ index 682996bf3802ddd2be78f25944a32235ca86accf..f2e312c46b2e01400ba37bef3b6771f9 + // Gale - Velocity - optimized VarInt#write and VarLong#write + @Test -+ public void testWriteVarIntComparedToOriginal() { ++ public void testWriteVarIntComparedToOld() { + integerCases.forEach(value -> { + // given + int capacity = 5; + FriendlyByteBuf buf1 = new FriendlyByteBuf(Unpooled.buffer(capacity)); + FriendlyByteBuf buf2 = new FriendlyByteBuf(Unpooled.buffer(capacity)); -+ VarInt.writeOriginal(buf1, value); ++ VarInt.writeOld(buf1, value); + + // when + buf2.writeVarInt(value); + + // then -+ Assert.assertEquals("Writer index of optimized buffer (" + buf2.writerIndex() + ") is not equal to writer index of original buffer (" + buf1.writerIndex() + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(value), 32) + ")", buf1.writerIndex(), buf2.writerIndex()); ++ Assertions.assertEquals(Float.parseFloat("Writer index of optimized buffer (" + buf2.writerIndex() + ") is not equal to writer index of original buffer (" + buf1.writerIndex() + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(value), 32) + ")"), buf1.writerIndex(), buf2.writerIndex()); + for (int i = 0; i < capacity; i++) { -+ Assert.assertEquals("Buffer byte (at index " + i + ") in optimized buffer (" + buf2.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf2.getByte(i))), 8) + ")) is not equal to the same byte in original buffer (" + buf1.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf1.getByte(i))), 8) + ")) for test case value " + value + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(value), 32) + ")", buf1.getByte(i), buf2.getByte(i)); ++ Assertions.assertEquals(Float.parseFloat("Buffer byte (at index " + i + ") in optimized buffer (" + buf2.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf2.getByte(i))), 8) + ")) is not equal to the same byte in original buffer (" + buf1.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf1.getByte(i))), 8) + ")) for test case value " + value + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(value), 32) + ")"), buf1.getByte(i), buf2.getByte(i)); + } + }); + } @@ -248,9 +202,9 @@ index 682996bf3802ddd2be78f25944a32235ca86accf..f2e312c46b2e01400ba37bef3b6771f9 + buf2.writeVarLong(value); + + // then -+ Assert.assertEquals("Writer index of optimized buffer (" + buf2.writerIndex() + ") is not equal to writer index of original buffer (" + buf1.writerIndex() + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Long.toBinaryString(value), 64) + ")", buf1.writerIndex(), buf2.writerIndex()); ++ Assertions.assertEquals(Float.parseFloat("Writer index of optimized buffer (" + buf2.writerIndex() + ") is not equal to writer index of original buffer (" + buf1.writerIndex() + ") for test case value " + value + " (binary: " + padStringWithLeadingZeros(Long.toBinaryString(value), 64) + ")"), buf1.writerIndex(), buf2.writerIndex()); + for (int i = 0; i < capacity; i++) { -+ Assert.assertEquals("Buffer byte (at index " + i + ") in optimized buffer (" + buf2.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf2.getByte(i))), 8) + ")) is not equal to the same byte in original buffer (" + buf1.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf1.getByte(i))), 8) + ")) for test case value " + value + " (binary: " + padStringWithLeadingZeros(Long.toBinaryString(value), 64) + ")", buf1.getByte(i), buf2.getByte(i)); ++ Assertions.assertEquals(Float.parseFloat("Buffer byte (at index " + i + ") in optimized buffer (" + buf2.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf2.getByte(i))), 8) + ")) is not equal to the same byte in original buffer (" + buf1.getByte(i) + " (binary: " + padStringWithLeadingZeros(Integer.toBinaryString(Byte.toUnsignedInt(buf1.getByte(i))), 8) + ")) for test case value " + value + " (binary: " + padStringWithLeadingZeros(Long.toBinaryString(value), 64) + ")"), buf1.getByte(i), buf2.getByte(i)); + } + }); + } diff --git a/patches/server/0138-Reduce-RandomSource-instances.patch b/patches/server/0137-Reduce-RandomSource-instances.patch similarity index 97% rename from patches/server/0138-Reduce-RandomSource-instances.patch rename to patches/server/0137-Reduce-RandomSource-instances.patch index 32fdde4..8c397e3 100644 --- a/patches/server/0138-Reduce-RandomSource-instances.patch +++ b/patches/server/0137-Reduce-RandomSource-instances.patch @@ -26,10 +26,10 @@ index f5bc3497831877e0c2b7dc1cbd8abe3a67d7695b..5783a8014e3faf93b81903c947b2534e double d1 = (double) (center.y - maxRange); double d2 = (double) (center.x + maxRange); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d63aa48a2de93e3626fa83c2480c6462a17f4384..3998a67ea984b6b7eeedcbc0446ef9fd057c0faa 100644 +index 9ed1757b6d3de9d4cc3c317b48b4156da2551761..032ae1af757f0241467fddd0c7c735d53a1eb473 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -445,7 +445,7 @@ public class ServerPlayer extends Player { +@@ -446,7 +446,7 @@ public class ServerPlayer extends Player { long l = k * k; int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l; int j1 = this.getCoprime(i1); @@ -38,7 +38,7 @@ index d63aa48a2de93e3626fa83c2480c6462a17f4384..3998a67ea984b6b7eeedcbc0446ef9fd for (int l1 = 0; l1 < i1; ++l1) { int i2 = (k1 + j1 * l1) % i1; -@@ -482,7 +482,7 @@ public class ServerPlayer extends Player { +@@ -483,7 +483,7 @@ public class ServerPlayer extends Player { long l = k * k; int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l; int j1 = this.getCoprime(i1); diff --git a/patches/server/0139-Add-xor-shift-random.patch b/patches/server/0138-Add-xor-shift-random.patch similarity index 97% rename from patches/server/0139-Add-xor-shift-random.patch rename to patches/server/0138-Add-xor-shift-random.patch index 87b834f..ef72031 100644 --- a/patches/server/0139-Add-xor-shift-random.patch +++ b/patches/server/0138-Add-xor-shift-random.patch @@ -62,10 +62,10 @@ index 9248769e6d357f6eec68945fd7700e79b2942c41..5b91ccafbdc7582e50272953f3ab2b8c } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0e670de77a7f9926e295e1dd63d909bed1a959ca..b017cfd4671488cebdcf3e0fe9ae10b09f759889 100644 +index 90c76ddcb8af13409490b8976263d27a71954668..656394bd8e4de8f3292a7781c0dcbf30c2a2ed6b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -228,7 +228,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -237,7 +237,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { } // Paper end @@ -75,7 +75,7 @@ index 0e670de77a7f9926e295e1dd63d909bed1a959ca..b017cfd4671488cebdcf3e0fe9ae10b0 public CraftWorld(ServerLevel world, ChunkGenerator gen, BiomeProvider biomeProvider, Environment env) { this.world = world; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -index 68c5af9b67a2834ee6e2f80ceefa19c3a982b8ed..bf9deb9a5f7eae6517fcd6d4476a7961ae3b23b1 100644 +index c13cdbaf7abdf120a3969f8e887b4c3b78989c9c..2c054f16d2503f0443d3986314f68fa0b2dcebd4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java @@ -14,7 +14,7 @@ import org.bukkit.inventory.meta.FireworkMeta; @@ -88,10 +88,10 @@ index 68c5af9b67a2834ee6e2f80ceefa19c3a982b8ed..bf9deb9a5f7eae6517fcd6d4476a7961 public CraftFirework(CraftServer server, FireworkRocketEntity entity) { diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index 84331e863c6ae0cd634b41ddf859571a300ae5f3..ac8a36585e7f77e5789bc6f17489cf12f21ddfcc 100644 +index c57fbc979a931b694d13365e9f538f534d4d9e67..3cf07d814ffad808a2adb3c10abf7277a3a77c9d 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -9,6 +9,7 @@ import org.bukkit.plugin.java.JavaPluginLoader; +@@ -10,6 +10,7 @@ import org.spongepowered.configurate.objectmapping.meta.PostProcess; import org.spongepowered.configurate.objectmapping.meta.Setting; import java.util.Locale; @@ -99,7 +99,7 @@ index 84331e863c6ae0cd634b41ddf859571a300ae5f3..ac8a36585e7f77e5789bc6f17489cf12 import java.util.function.Consumer; @SuppressWarnings({"CanBeFinal", "FieldCanBeLocal", "FieldMayBeFinal", "NotNullFieldNotInitialized", "InnerClassMayBeStatic"}) -@@ -40,13 +41,26 @@ public class GaleGlobalConfiguration extends ConfigurationPart { +@@ -41,13 +42,26 @@ public class GaleGlobalConfiguration extends ConfigurationPart { } @@ -110,7 +110,7 @@ index 84331e863c6ae0cd634b41ddf859571a300ae5f3..ac8a36585e7f77e5789bc6f17489cf12 - public boolean logVectorSizesToConsole = false; + // Gale start - xor-shift random + public UseXorShiftRandom useXorShiftRandom; -+ public class UseXorShiftRandom extends ConfigurationPart.Post { ++ public class UseXorShiftRandom extends ConfigurationPart { + + public boolean autoReplenishLootableRefill = true; + public boolean elytraFireworkSpeed = true; @@ -119,7 +119,7 @@ index 84331e863c6ae0cd634b41ddf859571a300ae5f3..ac8a36585e7f77e5789bc6f17489cf12 + @Setting("generate-tree-with-bukkit-api") + public boolean generateTreeWithBukkitAPI = true; + -+ @Override ++ @PostProcess + public void postProcess() { + com.destroystokyo.paper.loottable.PaperLootableInventoryData.RANDOM = autoReplenishLootableRefill ? new org.galemc.gale.random.XorShiftRandom() : new Random(); + org.spigotmc.ActivationRange.wakeUpDurationRandom = entityWakeUpDuration ? new org.galemc.gale.random.XorShiftRandom() : new java.util.Random(); @@ -543,7 +543,7 @@ index 0000000000000000000000000000000000000000..60dc2c1deb0749168d03c5d94136e613 + } +} diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 5ecdc3b51baae26edbcdc76ed3bb0f806ef31555..c5924bd66cc238a361cb56f623ea3e2c1579b02c 100644 +index efa0ba731095501fa56823806f08511efcb2b18b..7f9efe9429f9dcceb52d72f231a7a4bbae0f9738 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -38,6 +38,7 @@ import co.aikar.timings.MinecraftTimings; diff --git a/patches/server/0140-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch b/patches/server/0139-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch similarity index 95% rename from patches/server/0140-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch rename to patches/server/0139-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch index a42885c..dff588c 100644 --- a/patches/server/0140-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch +++ b/patches/server/0139-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch @@ -18,7 +18,7 @@ this patch is focused around the sensors used for ai delete the line of sight cache less often and use a faster nearby comparison diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a83a02c1f2402fe63e54b5343cdc9527d0fc78e6..16d036443087bec4f36052290aef11ece746a3fb 100644 +index f1d48ef527782a43df595c4b68e8be7838b5400f..37db21b3d2426dec69f378669b2ba8f0c8130bfc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1023,10 +1023,9 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0141-Initialize-line-of-sight-cache-with-low-capacity.patch b/patches/server/0140-Initialize-line-of-sight-cache-with-low-capacity.patch similarity index 100% rename from patches/server/0141-Initialize-line-of-sight-cache-with-low-capacity.patch rename to patches/server/0140-Initialize-line-of-sight-cache-with-low-capacity.patch diff --git a/patches/server/0142-Reduce-line-of-sight-updates-and-cache-lookups.patch b/patches/server/0141-Reduce-line-of-sight-updates-and-cache-lookups.patch similarity index 96% rename from patches/server/0142-Reduce-line-of-sight-updates-and-cache-lookups.patch rename to patches/server/0141-Reduce-line-of-sight-updates-and-cache-lookups.patch index 54e9503..71c96d7 100644 --- a/patches/server/0142-Reduce-line-of-sight-updates-and-cache-lookups.patch +++ b/patches/server/0141-Reduce-line-of-sight-updates-and-cache-lookups.patch @@ -115,14 +115,14 @@ index 57472cb54e9fd83e980e3c57f28d6e6643f422e8..ce50852a9b18679a80e9393e8d904935 return bl; } diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -index ac8a36585e7f77e5789bc6f17489cf12f21ddfcc..5b7e2afd8ecc5b8bbe524d4ba6e1d0ac0282878b 100644 +index 3cf07d814ffad808a2adb3c10abf7277a3a77c9d..104316a79771cfd9fce6883499fca268eed223c4 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java -@@ -33,6 +33,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { - public class ReducedIntervals extends ConfigurationPart.Post { +@@ -34,6 +34,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { + public class ReducedIntervals extends ConfigurationPart { public int increaseTimeStatistics = 20; // Gale - Hydrinity - increase time statistics in intervals + public int updateEntityLineOfSight = 4; // Gale - Petal - reduce line of sight updates - @Override + @PostProcess public void postProcess() { diff --git a/patches/server/0143-Server-thread-priority-environment-variable.patch b/patches/server/0142-Server-thread-priority-environment-variable.patch similarity index 100% rename from patches/server/0143-Server-thread-priority-environment-variable.patch rename to patches/server/0142-Server-thread-priority-environment-variable.patch diff --git a/patches/server/0144-Instantly-continue-on-world-upgrade-finish.patch b/patches/server/0143-Instantly-continue-on-world-upgrade-finish.patch similarity index 100% rename from patches/server/0144-Instantly-continue-on-world-upgrade-finish.patch rename to patches/server/0143-Instantly-continue-on-world-upgrade-finish.patch diff --git a/patches/server/0145-Virtual-thread-support.patch b/patches/server/0144-Virtual-thread-support.patch similarity index 100% rename from patches/server/0145-Virtual-thread-support.patch rename to patches/server/0144-Virtual-thread-support.patch diff --git a/patches/server/0146-Temporarily-revert-PaperMC-Paper-eb60bff.patch b/patches/server/0146-Temporarily-revert-PaperMC-Paper-eb60bff.patch deleted file mode 100644 index 6998cdf..0000000 --- a/patches/server/0146-Temporarily-revert-PaperMC-Paper-eb60bff.patch +++ /dev/null @@ -1,158 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: granny -Date: Sat, 16 Sep 2023 21:28:59 -0700 -Subject: [PATCH] Temporarily revert PaperMC/Paper@eb60bff - -License: MIT (https://opensource.org/licenses/MIT) -Gale - https://galemc.org - -This patch is based on the following patch: -"temporarily revert PaperMC/Paper@eb60bff" -By: granny -As part of: Purpur (https://github.com/PurpurMC/Purpur) -Licensed under: MIT (https://opensource.org/licenses/MIT) - -* Purpur description * - -updating paperweight to v1.5.6 breaks compileJava tasks - -since changes in PaperMC/Paper@eb60bff require functions added by paperweight v1.5.6, the commit needs to be reverted - -this patch can be deleted once createReobfBundlerJar and createReobfPaperclipJar don't throw an error while using the latest paperweight version - -* Purpur copyright * - -MIT License - -Copyright (c) 2019-2022 PurpurMC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -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 6c93ba174506822223301535dc5b619e5623927a..e1a366999943b321c499af95417a029137417af1 100644 ---- a/build.gradle.kts -+++ b/build.gradle.kts -@@ -226,16 +226,18 @@ tasks.registerRunTask("runReobf") { - classpath(runtimeClasspathWithoutVanillaServer) - } - --val runtimeClasspathForRunDev = sourceSets.main.flatMap { src -> -+/*val runtimeClasspathForRunDev = sourceSets.main.flatMap { src -> // Purpur - src.runtimeClasspath.elements.map { elements -> - elements.filterNot { file -> file.asFile.endsWith("minecraft.jar") } - } --} -+}*/ // Purpur - tasks.registerRunTask("runDev") { - description = "Spin up a non-relocated Mojang-mapped test server" -- classpath(tasks.filterProjectDir.flatMap { it.outputJar }) -- classpath(runtimeClasspathForRunDev) -- jvmArgs("-DPaper.isRunDev=true") -+ // Purpur start -+ classpath(sourceSets.main.map { it.runtimeClasspath }) -+ // classpath(runtimeClasspathForRunDev) -+ // jvmArgs("-DPaper.isRunDev=true") -+ // Purpur end - } - - // Gale start - package license into jar -diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java -index 397f985756c5bc6c11a32c844d536000dd922ed1..bbfa50babc84f1c6b160c286f871042f522745e3 100644 ---- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java -+++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java -@@ -222,7 +222,7 @@ public final class ChatProcessor { - final ChatRenderer renderer = event.renderer(); - - final Set viewers = event.viewers(); -- final ResourceKey chatTypeKey = renderer instanceof ChatRenderer.Default ? ChatType.CHAT : PAPER_RAW; -+ final ResourceKey chatTypeKey = renderer instanceof ChatRenderer.Default ? ChatType.CHAT : ChatType.RAW; // Purpur - final ChatType.Bound chatType = ChatType.bind(chatTypeKey, this.player.level().registryAccess(), PaperAdventure.asVanilla(displayName(player))); - - OutgoingChat outgoingChat = viewers instanceof LazyChatAudienceSet lazyAudienceSet && lazyAudienceSet.isLazy() ? new ServerOutgoingChat() : new ViewersOutgoingChat(); -diff --git a/src/main/java/net/minecraft/network/chat/ChatType.java b/src/main/java/net/minecraft/network/chat/ChatType.java -index 618a9335faf9df4a7d0cc971a8e62a0e3b239aa3..160600470c2bdb4c58f5375626a194b1b372f458 100644 ---- a/src/main/java/net/minecraft/network/chat/ChatType.java -+++ b/src/main/java/net/minecraft/network/chat/ChatType.java -@@ -26,6 +26,7 @@ public record ChatType(ChatTypeDecoration chat, ChatTypeDecoration narration) { - public static final ResourceKey TEAM_MSG_COMMAND_INCOMING = create("team_msg_command_incoming"); - public static final ResourceKey TEAM_MSG_COMMAND_OUTGOING = create("team_msg_command_outgoing"); - public static final ResourceKey EMOTE_COMMAND = create("emote_command"); -+ public static final ResourceKey RAW = create("raw"); // Purpur - - private static ResourceKey create(String id) { - return ResourceKey.create(Registries.CHAT_TYPE, new ResourceLocation(id)); -@@ -39,6 +40,7 @@ public record ChatType(ChatTypeDecoration chat, ChatTypeDecoration narration) { - messageTypeRegisterable.register(TEAM_MSG_COMMAND_INCOMING, new ChatType(ChatTypeDecoration.teamMessage("chat.type.team.text"), ChatTypeDecoration.withSender("chat.type.text.narrate"))); - messageTypeRegisterable.register(TEAM_MSG_COMMAND_OUTGOING, new ChatType(ChatTypeDecoration.teamMessage("chat.type.team.sent"), ChatTypeDecoration.withSender("chat.type.text.narrate"))); - messageTypeRegisterable.register(EMOTE_COMMAND, new ChatType(ChatTypeDecoration.withSender("chat.type.emote"), ChatTypeDecoration.withSender("chat.type.emote"))); -+ messageTypeRegisterable.register(RAW, new ChatType(new ChatTypeDecoration("%s", java.util.List.of(ChatTypeDecoration.Parameter.CONTENT), Style.EMPTY), new ChatTypeDecoration("%s", java.util.List.of(ChatTypeDecoration.Parameter.CONTENT), Style.EMPTY))); // Purpur - } - - public static ChatType.Bound bind(ResourceKey typeKey, Entity entity) { -diff --git a/src/main/java/net/minecraft/resources/RegistryDataLoader.java b/src/main/java/net/minecraft/resources/RegistryDataLoader.java -index 5f051cb22ae77f4d8994b07ac5b963bd0ff05673..aab07057606ee9c0893286bb3df82e84b87793f9 100644 ---- a/src/main/java/net/minecraft/resources/RegistryDataLoader.java -+++ b/src/main/java/net/minecraft/resources/RegistryDataLoader.java -@@ -61,6 +61,11 @@ public class RegistryDataLoader { - RegistryOps.RegistryInfoLookup registryInfoLookup = createContext(baseRegistryManager, list); - list.forEach((loader) -> { - loader.getSecond().load(resourceManager, registryInfoLookup); -+ // Purpur start -+ if (loader.getFirst().key() == Registries.CHAT_TYPE) { -+ Registry.register((Registry) loader.getFirst(), ChatType.RAW, new ChatType(new net.minecraft.network.chat.ChatTypeDecoration("%s", List.of(net.minecraft.network.chat.ChatTypeDecoration.Parameter.CONTENT), net.minecraft.network.chat.Style.EMPTY), new net.minecraft.network.chat.ChatTypeDecoration("%s", List.of(net.minecraft.network.chat.ChatTypeDecoration.Parameter.CONTENT), net.minecraft.network.chat.Style.EMPTY))); // CraftBukkit -+ } -+ // Purpur end - }); - list.forEach((loader) -> { - Registry registry = loader.getFirst(); -diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 1577a6aeeaaf6a131008f536a125b9b986f3139e..68d623d1ab1b7aad1fa7eacbb67c2a05e67c27e0 100644 ---- a/src/main/java/net/minecraft/server/Main.java -+++ b/src/main/java/net/minecraft/server/Main.java -@@ -109,7 +109,7 @@ public class Main { - - try { - // Paper start -- if (Boolean.getBoolean("Paper.isRunDev")) { -+ /*if (Boolean.getBoolean("Paper.isRunDev")) { // Purpur - net.minecraft.server.packs.VanillaPackResourcesBuilder.developmentConfig = builder -> { - try { - builder.pushAssetPath(net.minecraft.server.packs.PackType.SERVER_DATA, net.minecraft.server.packs.VanillaPackResourcesBuilder.safeGetPath(java.util.Objects.requireNonNull(Main.class.getResource("/data/.paperassetsroot"), "Missing required .paperassetsroot file").toURI()).getParent()); -@@ -117,7 +117,7 @@ public class Main { - throw new RuntimeException(ex); - } - }; -- } -+ }*/ // Purpur - // Paper end - - Path path = (Path) optionset.valueOf("pidFile"); // CraftBukkit -diff --git a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java -index 4ed8f38ba9c7b075b99a0da0e213a1e9d03ac717..1770525285a557e3587d45bfb52b9822c1d4acd8 100644 ---- a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java -+++ b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java -@@ -32,7 +32,7 @@ public class ServerPacksSource extends BuiltInPackSource { - - @VisibleForTesting - public static VanillaPackResources createVanillaPackSource() { -- return (new VanillaPackResourcesBuilder()).setMetadata(BUILT_IN_METADATA).exposeNamespace("minecraft", ResourceLocation.PAPER_NAMESPACE).applyDevelopmentConfig().pushJarResources().build(); // Paper -+ return (new VanillaPackResourcesBuilder()).setMetadata(BUILT_IN_METADATA).exposeNamespace("minecraft").applyDevelopmentConfig().pushJarResources().build(); // Paper // Purpur - } - - @Override diff --git a/settings.gradle.kts b/settings.gradle.kts index c062a9a..c909659 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,7 +3,7 @@ import java.util.Locale pluginManagement { repositories { gradlePluginPortal() - maven("https://repo.galemc.org/repository/maven-public/") + //maven("https://repo.galemc.org/repository/maven-public/") // Dreeam - site is down, fallback to papermc's default repo maven("https://repo.papermc.io/repository/maven-public/") } }