diff --git a/.github/workflows/build-1206.yml b/.github/workflows/build-1206.yml index 3c0c1305..3cb0bee4 100644 --- a/.github/workflows/build-1206.yml +++ b/.github/workflows/build-1206.yml @@ -28,7 +28,7 @@ jobs: run: ./gradlew -Dorg.gradle.jvmargs="-Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true --add-modules jdk.incubator.vector" applyPatches --stacktrace --no-daemon - name: Create MojmapPaperclipJar run: ./gradlew -Dorg.gradle.jvmargs="-Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true --add-modules jdk.incubator.vector" createMojmapPaperclipJar --stacktrace --no-daemon - - name: Create createReobfPaperclipJar + - name: Create ReobfPaperclipJar run: ./gradlew -Dorg.gradle.jvmargs="-Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true --add-modules jdk.incubator.vector" createReobfPaperclipJar --stacktrace --no-daemon - name: Rename Paperclip Jar diff --git a/build.gradle.kts b/build.gradle.kts index 3ea35793..3f5db9e9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,7 +20,7 @@ dependencies { paperclip("cn.dreeam:quantumleaper:1.0.0-SNAPSHOT") } -subprojects { +allprojects { apply(plugin = "java") apply(plugin = "maven-publish") @@ -29,7 +29,9 @@ subprojects { languageVersion.set(JavaLanguageVersion.of(21)) } } +} +subprojects { tasks.withType { options.encoding = Charsets.UTF_8.name() options.release.set(21) diff --git a/gradle.properties b/gradle.properties index ede657db..7d8f8356 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,8 @@ group = cn.dreeam.leaf +mcVersion = 1.20.6 version = 1.20.6-R0.1-SNAPSHOT -galeCommit = c3d6cff782c0b3eba6311873327bac76669003e3 +galeCommit = 92855c65222446b288938dfc39cc9a19d3749257 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Rebrand.patch b/patches/api/0001-Rebrand.patch new file mode 100644 index 00000000..b4eb28cb --- /dev/null +++ b/patches/api/0001-Rebrand.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> +Date: Tue, 21 May 2024 11:43:49 +0800 +Subject: [PATCH] Rebrand + + +diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java +index bdc8d830f54e4567ec0b03041221fdcd016ce76c..957f15a91f6aa1235c12b82079e32bb42449c78d 100644 +--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java ++++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java +@@ -25,6 +25,13 @@ public interface ServerBuildInfo { + Key BRAND_GALE_ID = Key.key("galemc", "gale"); + // Gale end - branding changes + ++ // Leaf start ++ /** ++ * The brand id for Leaf. ++ */ ++ Key BRAND_LEAF_ID = Key.key("winds-studio", "leaf"); ++ // Leaf end ++ + /** + * Gets the {@code ServerBuildInfo}. + * diff --git a/patches/api/0001-Leaf-config-files.patch b/patches/api/0002-Leaf-config-files.patch similarity index 89% rename from patches/api/0001-Leaf-config-files.patch rename to patches/api/0002-Leaf-config-files.patch index 58975780..651f4293 100644 --- a/patches/api/0001-Leaf-config-files.patch +++ b/patches/api/0002-Leaf-config-files.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Leaf config files diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 359dcc9e25a49df5b79e568bfbf7a03e79b6d645..4fefbde12a189a481efd0fd0fec06ff0bd02a57b 100644 +index 6d77d7989e757f18ba5d72b07e3b82016a5e28a2..52bd9bab6315a3b962f4cab215a979a802bec182 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -2310,6 +2310,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0002-Pufferfish-Sentry.patch b/patches/api/0003-Pufferfish-Sentry.patch similarity index 100% rename from patches/api/0002-Pufferfish-Sentry.patch rename to patches/api/0003-Pufferfish-Sentry.patch diff --git a/patches/api/0003-Purpur-API-Changes.patch b/patches/api/0004-Purpur-API-Changes.patch similarity index 98% rename from patches/api/0003-Purpur-API-Changes.patch rename to patches/api/0004-Purpur-API-Changes.patch index 032cb51c..33fce11c 100644 --- a/patches/api/0003-Purpur-API-Changes.patch +++ b/patches/api/0004-Purpur-API-Changes.patch @@ -6,12 +6,11 @@ Subject: [PATCH] Purpur API Changes Original license: MIT Original project: https://github.com/PurpurMC/Purpur -Commit: 9dcfdf13c206866ec56b4044f4a7905886a669ea +Commit: 3d2569397afa45a8988762081cdff594e96a2c6c Patches below are removed in this patch: Pufferfish-API-Changes.patch Fix-pufferfish-issues.patch -Rebrand.patch Build-System-Changes.patch Remove-Timings.patch Add-log-suppression-for-LibraryLoader.patch @@ -33,11 +32,29 @@ index a736d7bcdc5861a01b66ba36158db1c716339346..22fc165fd9c95f0f3ae1be7a0857e48c class DummyVersionFetcher implements VersionFetcher { @Override +diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java +index 957f15a91f6aa1235c12b82079e32bb42449c78d..9fa8d7fac5bf415b40c3a9a38108fa5476ed7619 100644 +--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java ++++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java +@@ -25,6 +25,13 @@ public interface ServerBuildInfo { + Key BRAND_GALE_ID = Key.key("galemc", "gale"); + // Gale end - branding changes + ++ // Purpur start ++ /** ++ * The brand id for Purpur. ++ */ ++ Key BRAND_PURPUR_ID = Key.key("purpurmc", "purpur"); ++ // Purpur end ++ + // Leaf start + /** + * The brand id for Leaf. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 445b422c14af83cb5c88d36590ab2eca895515ac..60615e802a134adae9108210e4c669eeab304753 100644 +index dec4ad04ac3dc2e869ea78f354cdf37d7a305a55..15274b07fea8e25e8acebbc0e688013cb7498a42 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2974,4 +2974,127 @@ public final class Bukkit { +@@ -2980,4 +2980,127 @@ public final class Bukkit { public static Server.Spigot spigot() { return server.spigot(); } @@ -412,7 +429,7 @@ index 30298a629b39bd43ce14b414fc697b2dfcbea89c..ce00af9121de7a910aaea4e0685a06d4 + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index e5aeb7003575a1900266454dd464a1956556ad89..c0a118f7aac40a240739976f0ecc34e89a8878c9 100644 +index 52bd9bab6315a3b962f4cab215a979a802bec182..0d38fe01e2a59eb50fec8597f634adaba672ff2d 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -2310,6 +2310,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -434,7 +451,7 @@ index e5aeb7003575a1900266454dd464a1956556ad89..c0a118f7aac40a240739976f0ecc34e8 // Leaf start @NotNull public org.bukkit.configuration.file.YamlConfiguration getLeafConfig() -@@ -2629,4 +2641,104 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2633,4 +2645,104 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi long getLastTickOversleepTime(); // Gale end - YAPFA - last tick time - API @@ -997,7 +1014,7 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc + // Purpur end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index ba3edf4cb1a2fc0529465d6973ec086291bae41c..04392bebe3a0ca1cff8932610393cb3dbec1c722 100644 +index 2d63d61fcfe87c4f07b1d752facbb1bae6f2b0ca..d09618735f42fc3a0f9fd0de15499860f96ce0b3 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3816,4 +3816,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -1870,7 +1887,7 @@ index c64413a6740b604282984dea2a8430a6e7478d68..5c609d916e2d2f08ba90ebd23f13c5c9 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java -index c143b0d8b97d514566bac8413d0346cf50822aeb..032a21766ce91471cb7d91b663d70e0d9fa66a26 100644 +index 1cd6601c9d2e86ef850011fcb9e59811207b4af7..5ec7d9dab1935bb743e3264d9f7390795fd9f55c 100644 --- a/src/main/java/org/bukkit/inventory/RecipeChoice.java +++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java @@ -10,6 +10,7 @@ import java.util.function.Predicate; @@ -1881,7 +1898,7 @@ index c143b0d8b97d514566bac8413d0346cf50822aeb..032a21766ce91471cb7d91b663d70e0d /** * Represents a potential item match within a recipe. All choices within a -@@ -157,6 +158,7 @@ public interface RecipeChoice extends Predicate, Cloneable { +@@ -180,6 +181,7 @@ public interface RecipeChoice extends Predicate, Cloneable { public static class ExactChoice implements RecipeChoice { private List choices; @@ -1889,7 +1906,7 @@ index c143b0d8b97d514566bac8413d0346cf50822aeb..032a21766ce91471cb7d91b663d70e0d public ExactChoice(@NotNull ItemStack stack) { this(Arrays.asList(stack)); -@@ -206,6 +208,7 @@ public interface RecipeChoice extends Predicate, Cloneable { +@@ -229,6 +231,7 @@ public interface RecipeChoice extends Predicate, Cloneable { @Override public boolean test(@NotNull ItemStack t) { @@ -1897,7 +1914,7 @@ index c143b0d8b97d514566bac8413d0346cf50822aeb..032a21766ce91471cb7d91b663d70e0d for (ItemStack match : choices) { if (t.isSimilar(match)) { return true; -@@ -215,6 +218,17 @@ public interface RecipeChoice extends Predicate, Cloneable { +@@ -238,6 +241,17 @@ public interface RecipeChoice extends Predicate, Cloneable { return false; } diff --git a/patches/api/0004-Remove-Timings.patch b/patches/api/0005-Remove-Timings.patch similarity index 100% rename from patches/api/0004-Remove-Timings.patch rename to patches/api/0005-Remove-Timings.patch diff --git a/patches/api/0005-Bump-Dependencies.patch b/patches/api/0006-Bump-Dependencies.patch similarity index 87% rename from patches/api/0005-Bump-Dependencies.patch rename to patches/api/0006-Bump-Dependencies.patch index 6116ac83..f355315d 100644 --- a/patches/api/0005-Bump-Dependencies.patch +++ b/patches/api/0006-Bump-Dependencies.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies diff --git a/build.gradle.kts b/build.gradle.kts -index eccc64e2baa4c8d511b968f49ff23261f1c78f16..1106cdb5e07a879f7548bc17351ddf0fe9dbb107 100644 +index eccc64e2baa4c8d511b968f49ff23261f1c78f16..52b4fa28dacf35c0c5309f0ab4513b126cb44f66 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,8 +12,10 @@ java { @@ -21,15 +21,17 @@ index eccc64e2baa4c8d511b968f49ff23261f1c78f16..1106cdb5e07a879f7548bc17351ddf0f val apiAndDocs: Configuration by configurations.creating { attributes { attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION)) -@@ -29,7 +31,7 @@ configurations.api { +@@ -29,8 +31,8 @@ configurations.api { dependencies { api("com.mojang:brigadier:1.2.9") // Paper - Brigadier command api // api dependencies are listed transitively to API consumers - api("com.google.guava:guava:32.1.2-jre") -+ api("com.google.guava:guava:33.1.0-jre") // Leaf - Bump Dependencies - api("com.google.code.gson:gson:2.10.1") +- api("com.google.code.gson:gson:2.10.1") ++ api("com.google.guava:guava:33.2.0-jre") // Leaf - Bump Dependencies ++ api("com.google.code.gson:gson:2.11.0") // Leaf - Bump Dependencies // Paper start - adventure api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.18") { + exclude("com.google.guava", "guava") @@ -42,7 +44,7 @@ dependencies { api("com.googlecode.json-simple:json-simple:1.1.1") { isTransitive = false // includes junit @@ -39,12 +41,12 @@ index eccc64e2baa4c8d511b968f49ff23261f1c78f16..1106cdb5e07a879f7548bc17351ddf0f apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion")) apiAndDocs("net.kyori:adventure-api") apiAndDocs("net.kyori:adventure-text-minimessage") -@@ -52,28 +54,32 @@ dependencies { +@@ -52,30 +54,34 @@ dependencies { apiAndDocs("net.kyori:adventure-text-logger-slf4j") api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion") - api("io.sentry:sentry:5.4.0") // Pufferfish -+ api("io.sentry:sentry:7.8.0") // Pufferfish // Leaf - Bump Dependencies ++ api("io.sentry:sentry:7.9.0") // Pufferfish // Leaf - Bump Dependencies implementation("org.ow2.asm:asm:9.7") implementation("org.ow2.asm:asm-commons:9.7") @@ -54,8 +56,8 @@ index eccc64e2baa4c8d511b968f49ff23261f1c78f16..1106cdb5e07a879f7548bc17351ddf0f - compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") - compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + // Leaf start - Bump Dependencies -+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.19") -+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.19") ++ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.20") ++ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.20") + // Leaf end - Bump Dependencies val annotations = "org.jetbrains:annotations:$annotationsVersion" // Paper - we don't want Java 5 annotations... @@ -64,7 +66,7 @@ index eccc64e2baa4c8d511b968f49ff23261f1c78f16..1106cdb5e07a879f7548bc17351ddf0f // Paper start - add checker - val checkerQual = "org.checkerframework:checker-qual:3.33.0" -+ val checkerQual = "org.checkerframework:checker-qual:3.42.0" // Leaf - Bump Dependencies ++ val checkerQual = "org.checkerframework:checker-qual:3.43.0" // Leaf - Bump Dependencies compileOnlyApi(checkerQual) testCompileOnly(checkerQual) // Paper end @@ -73,11 +75,14 @@ index eccc64e2baa4c8d511b968f49ff23261f1c78f16..1106cdb5e07a879f7548bc17351ddf0f - testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") + // Leaf start - Bump Dependencies + testImplementation("org.apache.commons:commons-lang3:3.14.0") -+ testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M1") ++ testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M2") + // Leaf end - Bump Dependencies testImplementation("org.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.11.0") +- testImplementation("org.mockito:mockito-core:5.11.0") ++ testImplementation("org.mockito:mockito-core:5.12.0") // Leaf - Bump Dependencies testImplementation("org.ow2.asm:asm-tree:9.7") + } + @@ -164,12 +170,12 @@ tasks.withType { options.use() options.isDocFilesSubDirs = true diff --git a/patches/api/0006-KTP-Allow-unknown-event-thread-execution.patch b/patches/api/0007-KTP-Allow-unknown-event-thread-execution.patch similarity index 100% rename from patches/api/0006-KTP-Allow-unknown-event-thread-execution.patch rename to patches/api/0007-KTP-Allow-unknown-event-thread-execution.patch diff --git a/patches/api/0007-KeYi-Player-Skull-API.patch b/patches/api/0008-KeYi-Player-Skull-API.patch similarity index 92% rename from patches/api/0007-KeYi-Player-Skull-API.patch rename to patches/api/0008-KeYi-Player-Skull-API.patch index 6c134b85..523e7e29 100644 --- a/patches/api/0007-KeYi-Player-Skull-API.patch +++ b/patches/api/0008-KeYi-Player-Skull-API.patch @@ -7,7 +7,7 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 04392bebe3a0ca1cff8932610393cb3dbec1c722..2d454fb1446c2d8808253b4f020c0afda341545c 100644 +index d09618735f42fc3a0f9fd0de15499860f96ce0b3..f5a371a55c17adda48d988be8b249ae63f2e3b19 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3935,4 +3935,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0008-Slice-Smooth-Teleports.patch b/patches/api/0009-Slice-Smooth-Teleports.patch similarity index 93% rename from patches/api/0008-Slice-Smooth-Teleports.patch rename to patches/api/0009-Slice-Smooth-Teleports.patch index 53cb64a9..cac03567 100644 --- a/patches/api/0008-Slice-Smooth-Teleports.patch +++ b/patches/api/0009-Slice-Smooth-Teleports.patch @@ -7,7 +7,7 @@ Original license: MIT Original project: https://github.com/Cryptite/Slice diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 2d454fb1446c2d8808253b4f020c0afda341545c..e2dbb6bf5a424d7d8b9e9b233badc2fe8cbbf28f 100644 +index f5a371a55c17adda48d988be8b249ae63f2e3b19..c0a334713576621f2e134db7264ae2dadbe69b1f 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3638,6 +3638,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0009-Configurable-LibraryLoader-maven-repos.patch b/patches/api/0010-Configurable-LibraryLoader-maven-repos.patch similarity index 100% rename from patches/api/0009-Configurable-LibraryLoader-maven-repos.patch rename to patches/api/0010-Configurable-LibraryLoader-maven-repos.patch diff --git a/patches/generated-api/0001-Purpur-generated-api-Changes.patch b/patches/generated-api/0001-Purpur-generated-api-Changes.patch index d7fb5707..7636d2e1 100644 --- a/patches/generated-api/0001-Purpur-generated-api-Changes.patch +++ b/patches/generated-api/0001-Purpur-generated-api-Changes.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Purpur generated-api Changes Original license: MIT Original project: https://github.com/PurpurMC/Purpur -Commit: 9dcfdf13c206866ec56b4044f4a7905886a669ea +Commit: 3d2569397afa45a8988762081cdff594e96a2c6c diff --git a/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/com/destroystokyo/paper/entity/ai/VanillaGoal.java index 43f4deacef349502cbb207aafc4f9cb7a75177c5..6b692c24a62e2172116a6b9c371b1c0e2411c27e 100644 diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 56613668..32b3d3b8 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -84,21 +84,41 @@ index e45e6b44b2a8f2cdae6e0048a812b92126aa17ca..b5f3f213da8a40d5184098af017c8e26 .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -index 7823cf3cdb11062491deaa0eae5aa5e9f5a3e3ba..5f54035bbb7567f595d2e1a96e56d57d3f1b976a 100644 +index 2596e0ee4df5b96f181e28a742ef345981fc97e3..023016de1732f0b299428ec0544128cc17407333 100644 --- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -@@ -42,9 +42,9 @@ public record ServerBuildInfoImpl( +@@ -32,6 +32,7 @@ public record ServerBuildInfoImpl( + + private static final String BRAND_PAPER_NAME = "Paper"; + private static final String BRAND_GALE_NAME = "Gale"; // Gale - branding changes ++ private static final String BRAND_LEAF_NAME = "Leaf"; // Leaf + + private static final String BUILD_DEV = "DEV"; + +@@ -43,9 +44,9 @@ public record ServerBuildInfoImpl( this( getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID) .map(Key::key) -- .orElse(Key.key("galemc", "gale")), // Gale - branding changes -+ .orElse(Key.key("winds-studio", "leaf")), // Gale - branding changes // Leaf +- .orElse(BRAND_GALE_ID), // Gale - branding changes ++ .orElse(BRAND_LEAF_ID), // Gale - branding changes // Leaf getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME) -- .orElse("Gale"), // Gale - branding changes -+ .orElse("Leaf"), // Gale - branding changes // Leaf +- .orElse(BRAND_GALE_NAME), // Gale - branding changes ++ .orElse(BRAND_LEAF_NAME), // Gale - branding changes // Leaf SharedConstants.getCurrentVersion().getId(), SharedConstants.getCurrentVersion().getName(), getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER) +@@ -62,7 +63,10 @@ public record ServerBuildInfoImpl( + + @Override + public boolean isBrandCompatible(final @NotNull Key brandId) { +- return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID); // Gale - branding changes ++ return brandId.equals(this.brandId) ++ || brandId.equals(BRAND_PAPER_ID) ++ || brandId.equals(BRAND_GALE_ID) ++ || brandId.equals(BRAND_PURPUR_ID); // Gale - branding changes // Leaf + } + + @Override diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java index 4f3cc14d48690bb183d09bb7a5ba1e23e8a0c08a..d8ebcd1c94ce0f78e9d16c603a79a492263990fd 100644 --- a/src/main/java/net/minecraft/CrashReport.java diff --git a/patches/server/0002-Leaf-Config.patch b/patches/server/0002-Leaf-Config.patch index 4eda5fe3..9a44cb14 100644 --- a/patches/server/0002-Leaf-Config.patch +++ b/patches/server/0002-Leaf-Config.patch @@ -3,12 +3,12 @@ From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Wed, 12 Oct 2022 10:42:15 -0400 Subject: [PATCH] Leaf Config -TODO - Dreeam: Add header comment, world config +TODO - Dreeam: Add header comment, world config, Bump Night Config to 3.7.1 Co-authored-by: MrHua269 diff --git a/build.gradle.kts b/build.gradle.kts -index 4ee48737f52e24f6e7148709068c568b36a736da..2200d656214d5db35d15a6fe145982c3fe8573cc 100644 +index 4ee48737f52e24f6e7148709068c568b36a736da..f7c47c49b91952bf24995332b2d7d57a277b76cf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,6 +14,9 @@ val alsoShade: Configuration by configurations.creating @@ -16,7 +16,7 @@ index 4ee48737f52e24f6e7148709068c568b36a736da..2200d656214d5db35d15a6fe145982c3 dependencies { implementation(project(":leaf-api")) // Gale start - project setup - Depend on own API // Leaf + -+ implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config ++ implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config // Dreeam TODO: Bump to 3.7.1 + // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") diff --git a/patches/server/0003-Leaf-Config-legacy-converter.patch b/patches/server/0003-Leaf-Config-legacy-converter.patch index 1c87da12..620367b5 100644 --- a/patches/server/0003-Leaf-Config-legacy-converter.patch +++ b/patches/server/0003-Leaf-Config-legacy-converter.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Leaf Config legacy converter diff --git a/build.gradle.kts b/build.gradle.kts -index 2200d656214d5db35d15a6fe145982c3fe8573cc..909b46295cf87fbc000cd7328c8d1322c8969ecf 100644 +index f7c47c49b91952bf24995332b2d7d57a277b76cf..63c6997be675696b47ec168374e93bd240d11ad8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,6 +17,13 @@ dependencies { - implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config + implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config // Dreeam TODO: Bump to 3.7.1 + // Leaf start - Legacy config + implementation("org.yaml:snakeyaml:2.2") diff --git a/patches/server/0010-Purpur-Server-Changes.patch b/patches/server/0010-Purpur-Server-Changes.patch index 4865db89..aab24b1f 100644 --- a/patches/server/0010-Purpur-Server-Changes.patch +++ b/patches/server/0010-Purpur-Server-Changes.patch @@ -9,7 +9,7 @@ Fix-pufferfish-issues.patch Original license: MIT Original project: https://github.com/PurpurMC/Purpur -Commit: 9dcfdf13c206866ec56b4044f4a7905886a669ea +Commit: 3d2569397afa45a8988762081cdff594e96a2c6c Patches below are removed in this patch: Metrics changes in Purpur-config-files.patch @@ -32,7 +32,7 @@ Remove-Mojang-Profiler.patch MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch diff --git a/build.gradle.kts b/build.gradle.kts -index 909b46295cf87fbc000cd7328c8d1322c8969ecf..431ac399769057642fdf4694b68d84b4423a7103 100644 +index 63c6997be675696b47ec168374e93bd240d11ad8..59b84e4c4566e0185c6f7b002374e51c8415cad9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -57,6 +57,12 @@ dependencies { @@ -40,8 +40,8 @@ index 909b46295cf87fbc000cd7328c8d1322c8969ecf..431ac399769057642fdf4694b68d84b4 runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + // Purpur start -+ implementation("org.mozilla:rhino-runtime:1.7.14") -+ implementation("org.mozilla:rhino-engine:1.7.14") ++ implementation("org.mozilla:rhino-runtime:1.7.15") ++ implementation("org.mozilla:rhino-engine:1.7.15") + implementation("dev.omega24:upnp4j:1.0") + // Purpur end + @@ -149,26 +149,10 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a + } +} diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java -index 6fca13221ef3e0bbcad2ebbe74d6aadf8ed2c539..5ff732297a8697277ada5f25a20db6ad7775b143 100644 +index 6fca13221ef3e0bbcad2ebbe74d6aadf8ed2c539..2d655cfddb6e7d6528b928c9270960bc0c6148f9 100644 --- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java +++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java -@@ -3,15 +3,12 @@ package com.destroystokyo.paper; - import com.google.common.base.Charsets; - import com.google.common.io.Resources; - import com.google.gson.Gson; --import com.google.gson.JsonArray; --import com.google.gson.JsonElement; - import com.google.gson.JsonObject; - import com.google.gson.JsonSyntaxException; - import io.papermc.paper.ServerBuildInfo; - import java.io.BufferedReader; - import java.io.IOException; - import java.net.URI; --import java.util.stream.StreamSupport; - import org.checkerframework.checker.nullness.qual.NonNull; - import org.checkerframework.framework.qual.DefaultQualifier; - import org.galemc.gale.version.AbstractPaperVersionFetcher; -@@ -46,11 +43,8 @@ public class PaperVersionFetcher extends AbstractPaperVersionFetcher { +@@ -46,11 +46,8 @@ public class PaperVersionFetcher extends AbstractPaperVersionFetcher { Charsets.UTF_8 ).openBufferedStream()) { final JsonObject json = new Gson().fromJson(reader, JsonObject.class); @@ -197,6 +181,18 @@ index c72d6bccf7d72d08d388c65936a89c92261c7860..ee746753515c9cea8dd246f4f56e6781 ignored.add("goal_selector_1"); ignored.add("goal_selector_2"); +diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java +index 023016de1732f0b299428ec0544128cc17407333..9d003c2ae45a057c0274a34fe5012cf17d1a2681 100644 +--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java ++++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java +@@ -32,6 +32,7 @@ public record ServerBuildInfoImpl( + + private static final String BRAND_PAPER_NAME = "Paper"; + private static final String BRAND_GALE_NAME = "Gale"; // Gale - branding changes ++ private static final String BRAND_PURPUR_NAME = "Purpur"; // Purpur + private static final String BRAND_LEAF_NAME = "Leaf"; // Leaf + + private static final String BUILD_DEV = "DEV"; diff --git a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java index f0fce4113fb07c64adbec029d177c236cbdcbae8..e94224ed280247ee69dfdff8dc960f2b8729be33 100644 --- a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java @@ -1919,7 +1915,7 @@ index a2c9ca5bab0b78fdddcfb110aed9718f9ac99c06..52c5ce7339029d7cc3bb1164131a9f96 } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0e570a7320eb6c65cb5d43fd7912d17a54b64eb3..743e1487048f70ed577452c27c7919d74d26ab19 100644 +index d297f558045f13a3c64776de8250bff23d3fe50e..ce4763458258bd5685d3ec02278b6ed829ebf705 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -502,6 +502,7 @@ public abstract class PlayerList { @@ -16961,7 +16957,7 @@ index 9d93130f23addb18b97d7f5ec013faef17a74529..29d2fb87a65778926aea2cfc7a5b486c + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c79dfb84412e9718d19415ac0d6d1cd82f0318d7..2a2f979fad5710ed35991671e54d1c2d52b95bbe 100644 +index 2d46b81faf0f4fdf73ebe26b561e960c6ef451d0..c735be3db72fc0bb9000476a41758711ca551d17 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -409,6 +409,20 @@ public final class CraftServer implements Server { @@ -17084,7 +17080,7 @@ index c79dfb84412e9718d19415ac0d6d1cd82f0318d7..2a2f979fad5710ed35991671e54d1c2d @Override public void restart() { org.spigotmc.RestartCommand.restart(); -@@ -3336,4 +3414,15 @@ public final class CraftServer implements Server { +@@ -3333,4 +3411,15 @@ public final class CraftServer implements Server { } // Gale end - YAPFA - last tick time - API @@ -17866,7 +17862,7 @@ index 9ee14589d63bbfc0880f2eee5e924fe946ee0035..0a5841fa26698e60bdeadbb58b9343fe + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java -index 6ba29875d78ede4aa7978ff689e588f7fed11528..4afec4387971612f62b825e9e56c2ead7424a7c2 100644 +index c76c78bb7757d407102271463e14716a1b012deb..458b91582a22fb1e6deb1551c38d2a10e33e24f1 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java @@ -29,6 +29,7 @@ public interface CraftRecipe extends Recipe { @@ -17874,9 +17870,9 @@ index 6ba29875d78ede4aa7978ff689e588f7fed11528..4afec4387971612f62b825e9e56c2ead stack = new Ingredient(((RecipeChoice.ExactChoice) bukkit).getChoices().stream().map((mat) -> new net.minecraft.world.item.crafting.Ingredient.ItemValue(CraftItemStack.asNMSCopy(mat)))); stack.exact = true; + stack.predicate = ((RecipeChoice.ExactChoice) bukkit).getPredicate(); // Purpur - } else { - throw new IllegalArgumentException("Unknown recipe stack instance " + bukkit); - } + // Paper start - support "empty" choices + } else if (bukkit == RecipeChoice.empty()) { + stack = Ingredient.EMPTY; diff --git a/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java b/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java index 0cbbd915631904fe8c6effefb92895422b33eff6..aef19cfbecb4ddfc8dc71c4f3b2a011364c12dc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java diff --git a/patches/server/0014-Remove-Timings.patch b/patches/server/0014-Remove-Timings.patch index 1d643e74..ac7014dd 100644 --- a/patches/server/0014-Remove-Timings.patch +++ b/patches/server/0014-Remove-Timings.patch @@ -828,6 +828,35 @@ index 56b07a3306e5735816c8d89601b519cb0db6379a..524d9f0e2cc9a840fdf74bfa98537b5c return executedUnloadTask | canSaveChunk | canSaveEntities | canSavePOI ? new SaveStat(executedUnloadTask || canSaveChunk, canSaveEntities, canSavePOI): null; } +diff --git a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java +index 10a113b057b0a4d27cce3bae975e1108aaa7b517..9611ab3f4a3a146a28eaa5b2c0c6e77bea8d4187 100644 +--- a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java ++++ b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java +@@ -1,6 +1,5 @@ + package io.papermc.paper.command.brigadier.bukkit; + +-import co.aikar.timings.Timing; + import com.mojang.brigadier.arguments.StringArgumentType; + import com.mojang.brigadier.builder.RequiredArgumentBuilder; + import com.mojang.brigadier.context.CommandContext; +@@ -74,17 +73,12 @@ public class BukkitCommandNode extends LiteralCommandNode { + CommandSender sender = context.getSource().getSender(); + + // Plugins do weird things to workaround normal registration +- if (this.command.timings == null) { +- this.command.timings = co.aikar.timings.TimingsManager.getCommandTiming(null, this.command); +- } + + String content = context.getRange().get(context.getInput()); + String[] args = org.apache.commons.lang3.StringUtils.split(content, ' '); // fix adjacent spaces (from console/plugins) causing empty array elements + +- try (Timing ignored = this.command.timings.startTiming()) { + // Note: we don't return the result of target.execute as thats success / failure, we return handled (true) or not handled (false) + this.command.execute(sender, this.literal, Arrays.copyOfRange(args, 1, args.length)); +- } + + // return true as command was handled + return 1; diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java index e246171b3eb3b8d8caab2c2535f305e8af2f3701..f6dd905176605228cbd6673ca2f77431a48248ad 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -1519,7 +1548,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 743e1487048f70ed577452c27c7919d74d26ab19..c9673051ce9f4096b981087eefe8b72bbe34819a 100644 +index ce4763458258bd5685d3ec02278b6ed829ebf705..9250db41e26d2ffa96146782e898165591f9e819 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1,6 +1,5 @@ @@ -1833,7 +1862,7 @@ index 35147d7a6649708c2b068065eb44831f40c3ab8e..1a2ef85cd8a62824b23f4212a5e2a70c @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2a2f979fad5710ed35991671e54d1c2d52b95bbe..aa588fe83d508e1888ce9fb1c9fa9c1fe54d4cef 100644 +index c735be3db72fc0bb9000476a41758711ca551d17..5a5619667e68379b810bf8c2912a8c64caa38991 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -472,7 +472,6 @@ public final class CraftServer implements Server { diff --git a/patches/server/0015-Bump-Dependencies.patch b/patches/server/0015-Bump-Dependencies.patch index 6d7e8362..c9a4dae0 100644 --- a/patches/server/0015-Bump-Dependencies.patch +++ b/patches/server/0015-Bump-Dependencies.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies diff --git a/build.gradle.kts b/build.gradle.kts -index 431ac399769057642fdf4694b68d84b4423a7103..fa5b046a865672cfa9e9eabcb54236455e2193f5 100644 +index 59b84e4c4566e0185c6f7b002374e51c8415cad9..cd3d9b098b13c01f1ac6e7b27043e391531bd42e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,7 +25,7 @@ dependencies { @@ -13,7 +13,7 @@ index 431ac399769057642fdf4694b68d84b4423a7103..fa5b046a865672cfa9e9eabcb5423645 // Paper start - implementation("org.jline:jline-terminal-jansi:3.21.0") -+ implementation("org.jline:jline-terminal-jansi:3.26.0") // Leaf - Bump Dependencies ++ implementation("org.jline:jline-terminal-jansi:3.26.1") // Leaf - Bump Dependencies implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file /* @@ -38,8 +38,9 @@ index 431ac399769057642fdf4694b68d84b4423a7103..fa5b046a865672cfa9e9eabcb5423645 implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("commons-lang:commons-lang:2.6") runtimeOnly("org.xerial:sqlite-jdbc:3.45.3.0") - runtimeOnly("com.mysql:mysql-connector-j:8.3.0") +- runtimeOnly("com.mysql:mysql-connector-j:8.3.0") - runtimeOnly("com.lmax:disruptor:3.4.4") // Paper ++ runtimeOnly("com.mysql:mysql-connector-j:8.4.0") // Leaf - Bump Dependencies + runtimeOnly("com.lmax:disruptor:3.4.4") // Paper // Leaf - Bump Dependencies - Waiting Log4j 3.x to support disruptor 4.0.0 // Paper start - Use Velocity cipher - implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") { @@ -52,21 +53,26 @@ index 431ac399769057642fdf4694b68d84b4423a7103..fa5b046a865672cfa9e9eabcb5423645 - runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") - runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + // Leaf start - Bump Dependencies -+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.19") -+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.19") ++ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.20") ++ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.20") + // Leaf end // Purpur start - implementation("org.mozilla:rhino-runtime:1.7.14") -@@ -63,7 +67,7 @@ dependencies { + implementation("org.mozilla:rhino-runtime:1.7.15") +@@ -63,10 +67,10 @@ dependencies { implementation("dev.omega24:upnp4j:1.0") // Purpur end - testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test +- testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") + testImplementation("io.github.classgraph:classgraph:4.8.172") // Paper - mob goal test // Leaf - Bump Dependencies - testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") ++ testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M2") // Leaf - Bump Dependencies testImplementation("org.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.11.0") +- testImplementation("org.mockito:mockito-core:5.11.0") ++ testImplementation("org.mockito:mockito-core:5.12.0") // Leaf - Bump Dependencies + testImplementation("org.ow2.asm:asm-tree:9.7") + testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // Paper - CartesianTest + implementation("net.neoforged:srgutils:1.0.9") // Paper - mappings handling @@ -77,6 +81,8 @@ dependencies { implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion") implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion") diff --git a/patches/server/0063-Cache-player-profileResult.patch b/patches/server/0063-Cache-player-profileResult.patch index 7251a62d..6a450c5b 100644 --- a/patches/server/0063-Cache-player-profileResult.patch +++ b/patches/server/0063-Cache-player-profileResult.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache player profileResult diff --git a/build.gradle.kts b/build.gradle.kts -index fa5b046a865672cfa9e9eabcb54236455e2193f5..d0a7999ae12f0e5314234ca6a97d5cd8124bd702 100644 +index cd3d9b098b13c01f1ac6e7b27043e391531bd42e..d5d3b8b48528082fc0967ad1398cc972dc0eb127 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -24,6 +24,10 @@ dependencies { @@ -17,7 +17,7 @@ index fa5b046a865672cfa9e9eabcb54236455e2193f5..d0a7999ae12f0e5314234ca6a97d5cd8 + // Leaf end + // Paper start - implementation("org.jline:jline-terminal-jansi:3.26.0") // Leaf - Bump Dependencies + implementation("org.jline:jline-terminal-jansi:3.26.1") // Leaf - Bump Dependencies implementation("net.minecrell:terminalconsoleappender:1.3.0") diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java index 1d496b2efc44065e91b4d612e17f38382489e876..d991c875c8f2965ca26e87dc11bba0d347de9c5c 100644 diff --git a/patches/server/0069-Faster-Random-Generator.patch b/patches/server/0069-Faster-Random-Generator.patch index 83fdb896..3e7e7d97 100644 --- a/patches/server/0069-Faster-Random-Generator.patch +++ b/patches/server/0069-Faster-Random-Generator.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: HaHaWTH Date: Fri, 3 May 2024 01:12:58 +0800 -Subject: [PATCH] Faster-Random-Generator +Subject: [PATCH] Faster Random Generator diff --git a/src/main/java/net/minecraft/util/RandomSource.java b/src/main/java/net/minecraft/util/RandomSource.java diff --git a/patches/server/0070-Skip-null-banner-pattern.patch b/patches/server/0070-Skip-null-banner-pattern.patch index 224dcdb1..a468e5ea 100644 --- a/patches/server/0070-Skip-null-banner-pattern.patch +++ b/patches/server/0070-Skip-null-banner-pattern.patch @@ -4,99 +4,8 @@ Date: Thu, 9 May 2024 20:30:32 -0400 Subject: [PATCH] Skip null banner pattern Try to fix https://github.com/PaperMC/Paper/issues/10677 +And waiting https://github.com/PaperMC/Paper/pull/10740 -diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 16dba0fe00150ea919deff052b5dc7a2732741c1..f838839aba8b00474c6f7c95c37a88bb3bf4a884 100644 ---- a/src/main/java/net/minecraft/server/players/PlayerList.java -+++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -377,6 +377,7 @@ public abstract class PlayerList { - ClientboundPlayerInfoUpdatePacket packet = ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player)); // Paper - Add Listing API for Player - - final List onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - Use single player info update packet on join -+ System.out.println("看380: " + this.players.size()); - for (int i = 0; i < this.players.size(); ++i) { - ServerPlayer entityplayer1 = (ServerPlayer) this.players.get(i); - -@@ -698,6 +699,7 @@ public abstract class PlayerList { - // CraftBukkit start - // this.broadcastAll(new ClientboundPlayerInfoRemovePacket(List.of(entityplayer.getUUID()))); - ClientboundPlayerInfoRemovePacket packet = new ClientboundPlayerInfoRemovePacket(List.of(entityplayer.getUUID())); -+ System.out.println("看702: " + this.players.size()); - for (int i = 0; i < this.players.size(); i++) { - ServerPlayer entityplayer2 = (ServerPlayer) this.players.get(i); - -@@ -724,6 +726,7 @@ public abstract class PlayerList { - - ServerPlayer entityplayer; - -+ System.out.println("看729: " + this.players.size()); - for (int i = 0; i < this.players.size(); ++i) { - entityplayer = (ServerPlayer) this.players.get(i); - if (entityplayer.getUUID().equals(uuid) || (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && entityplayer.getGameProfile().getName().equalsIgnoreCase(gameprofile.getName()))) { // Paper - validate usernames -@@ -776,6 +779,7 @@ public abstract class PlayerList { - event.disallow(PlayerLoginEvent.Result.KICK_BANNED, io.papermc.paper.adventure.PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure - } else { - // return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null; -+ System.out.println("看782: " + this.players.size()); - if (this.players.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameprofile))) { // Purpur - event.disallow(PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure - } -@@ -1080,6 +1084,7 @@ public abstract class PlayerList { - for (ServerPlayer targetPlayer : sendAllPlayerInfoBucket) { - // Gale end - Purpur - spread out sending all player info - var target = targetPlayer.getBukkitEntity();; -+ System.out.println("看1087: " + this.players.size()); - final List list = new java.util.ArrayList<>(this.players.size()); - for (ServerPlayer player : this.players) { - if (target.canSee(player.getUUID())) { -@@ -1111,6 +1116,7 @@ public abstract class PlayerList { - - // CraftBukkit start - add a world/entity limited version - public void broadcastAll(Packet packet, net.minecraft.world.entity.player.Player entityhuman) { -+ System.out.println("看1119: " + this.players.size()); - for (int i = 0; i < this.players.size(); ++i) { - ServerPlayer entityplayer = this.players.get(i); - if (entityhuman != null && !entityplayer.getBukkitEntity().canSee(entityhuman.getBukkitEntity())) { -@@ -1121,6 +1127,7 @@ public abstract class PlayerList { - } - - public void broadcastAll(Packet packet, Level world) { -+ System.out.println("看1130: " + this.players.size()); - for (int i = 0; i < world.players().size(); ++i) { - ((ServerPlayer) world.players().get(i)).connection.send(packet); - } -@@ -1180,6 +1187,7 @@ public abstract class PlayerList { - if (scoreboardteam == null) { - this.broadcastSystemMessage(message, false); - } else { -+ System.out.println("看1190: " + this.players.size()); - for (int i = 0; i < this.players.size(); ++i) { - ServerPlayer entityplayer = (ServerPlayer) this.players.get(i); - -@@ -1192,6 +1200,7 @@ public abstract class PlayerList { - } - - public String[] getPlayerNamesArray() { -+ System.out.println("看1203: " + this.players.size()); - String[] astring = new String[this.players.size()]; - - for (int i = 0; i < this.players.size(); ++i) { -@@ -1307,6 +1316,7 @@ public abstract class PlayerList { - } - - public void broadcast(@Nullable net.minecraft.world.entity.player.Player player, double x, double y, double z, double distance, ResourceKey worldKey, Packet packet) { -+ System.out.println("看1319: " + this.players.size()); - for (int i = 0; i < this.players.size(); ++i) { - ServerPlayer entityplayer = (ServerPlayer) this.players.get(i); - -@@ -1338,6 +1348,7 @@ public abstract class PlayerList { - io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main - int numSaved = 0; - long now = MinecraftServer.currentTick; -+ System.out.println("看1351: " + this.players.size()); - for (int i = 0; i < this.players.size(); ++i) { - ServerPlayer entityplayer = this.players.get(i); - if (interval == -1 || now - entityplayer.lastSave >= interval) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java index 6a3b0c7f0cc3ffb17a231383ad103fa792d7b7ba..3286a2a485dab1fb35910ffa350b1d85fde3ad80 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java