diff --git a/gradle.properties b/gradle.properties index da1be72a..d70338fb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=cn.dreeam.leaf mcVersion=1.21.5 version=1.21.5-R0.1-SNAPSHOT -paperCommit=62256c5182f0c12ca286708e9e7ac5e8f442fcd3 +paperCommit=7d5695d7745ef05b4cad5e089d54b8d217b000f7 org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/leaf-api/build.gradle.kts.patch b/leaf-api/build.gradle.kts.patch index 344f6357..29b9432a 100644 --- a/leaf-api/build.gradle.kts.patch +++ b/leaf-api/build.gradle.kts.patch @@ -1,15 +1,11 @@ --- a/paper-api/build.gradle.kts +++ b/paper-api/build.gradle.kts -@@ -9,11 +_,13 @@ - withJavadocJar() - } - --val annotationsVersion = "26.0.1" -+val annotationsVersion = "26.0.2" // Leaf - Bump Dependencies - val adventureVersion = "4.20.0" +@@ -14,8 +_,10 @@ + val adventureVersion = "4.21.0-mc1215-SNAPSHOT" // FIXME move to release asap + val adventureJavadocVersion = "4.20.0" // Fixme remove me val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21" --val slf4jVersion = "2.0.9" --val log4jVersion = "2.17.1" +-val slf4jVersion = "2.0.16" +-val log4jVersion = "2.24.1" +// Leaf start - Bump Dependencies +val slf4jVersion = "2.0.17" +val log4jVersion = "2.24.3" @@ -17,9 +13,9 @@ val apiAndDocs: Configuration by configurations.creating { attributes { -@@ -41,9 +_,11 @@ - dependencies { +@@ -42,9 +_,11 @@ + dependencies { // api dependencies are listed transitively to API consumers - api("com.google.guava:guava:33.3.1-jre") - api("com.google.code.gson:gson:2.11.0") @@ -32,7 +28,7 @@ api("org.joml:joml:1.10.8") { isTransitive = false // https://github.com/JOML-CI/JOML/issues/352 } -@@ -54,6 +_,7 @@ +@@ -52,6 +_,7 @@ api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion") api("com.mojang:brigadier:1.3.10") @@ -40,9 +36,9 @@ // Deprecate bungeecord-chat in favor of adventure api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") { -@@ -68,32 +_,42 @@ - apiAndDocs("net.kyori:adventure-text-serializer-plain") - apiAndDocs("net.kyori:adventure-text-logger-slf4j") +@@ -68,9 +_,11 @@ + apiAndDocs("$adventureGroup:adventure-text-serializer-plain") + apiAndDocs("$adventureGroup:adventure-text-logger-slf4j") - api("org.apache.maven:maven-resolver-provider:3.9.6") // make API dependency for Paper Plugins - compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") @@ -55,28 +51,17 @@ // Annotations - Slowly migrate to jspecify val annotations = "org.jetbrains:annotations:$annotationsVersion" - compileOnly(annotations) - testCompileOnly(annotations) - -- val checkerQual = "org.checkerframework:checker-qual:3.33.0" -+ val checkerQual = "org.checkerframework:checker-qual:3.49.1" // Leaf - Bump Dependencies - compileOnlyApi(checkerQual) - testCompileOnly(checkerQual) - - api("org.jspecify:jspecify:1.0.0") - +@@ -86,14 +_,22 @@ // Test dependencies -- testImplementation("org.apache.commons:commons-lang3:3.12.0") -- testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") + testImplementation("org.apache.commons:commons-lang3:3.17.0") + testImplementation("org.junit.jupiter:junit-jupiter:5.12.2") - testImplementation("org.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.14.1") + // Leaf start - Bump Dependencies -+ testImplementation("org.apache.commons:commons-lang3:3.17.0") -+ testImplementation("org.junit.jupiter:junit-jupiter:5.12.1") + testImplementation("org.hamcrest:hamcrest:3.0") + testImplementation("org.mockito:mockito-core:5.16.1") + // Leaf end - Bump Dependencies - testImplementation("org.ow2.asm:asm-tree:9.7.1") + testImplementation("org.ow2.asm:asm-tree:9.8") - mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // configure mockito agent that is needed in newer java versions + mockitoAgent("org.mockito:mockito-core:5.16.1") { isTransitive = false } // configure mockito agent that is needed in newer java versions // Leaf - Bump Dependencies testRuntimeOnly("org.junit.platform:junit-platform-launcher") @@ -159,13 +144,11 @@ "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", "https://javadoc.io/doc/org.joml/joml/1.10.8/", "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0", -@@ -187,8 +_,8 @@ - "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", - "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", +@@ -188,7 +_,7 @@ + "https://jd.advntr.dev/text-logger-slf4j/$adventureJavadocVersion/", "https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/", -- "https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/$log4jVersion/", + "https://logging.apache.org/log4j/2.x/javadoc/log4j-api/", - "https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3", -+ "https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/2.20.0/", // Leaf - Bump Dependencies + "https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.9.22", // Leaf - Bump Dependencies ) options.tags("apiNote:a:API Note:") diff --git a/leaf-api/paper-patches/features/0013-Purpur-API-Changes.patch b/leaf-api/paper-patches/features/0013-Purpur-API-Changes.patch index c944659d..4955f9e6 100644 --- a/leaf-api/paper-patches/features/0013-Purpur-API-Changes.patch +++ b/leaf-api/paper-patches/features/0013-Purpur-API-Changes.patch @@ -811,10 +811,10 @@ index 332c55fd6b4b3a8c0cad920a6e765ecc40e684e4..10a8d64ad2da0be2c14f34c3e7d1957c // Paper start /** diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 5a3a538c56892a1f3dd5bd437f77b1659da9bd99..5031e3b170af96c4aab85c0aea07f679d9711575 100644 +index bb6c6b3477c1d30a228ecb35ef7c4f6e54c083e5..bee034fd48b567a64a152196a0b80f2f1a9661e4 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1215,4 +1215,59 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1224,4 +1224,59 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ void broadcastHurtAnimation(@NotNull java.util.Collection players); // Paper end - broadcast hurt animation @@ -1329,7 +1329,7 @@ index f1f97a85ec713c05c882d7588f4a3e4a017f4795..813f6cd253322538bdf96eb323dd23a7 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index 41d000b81a793277e330fb62c848ab4c8c56d657..1f524abf07666e325a877c90414d6838f485ca71 100644 +index 3179607e892b609160e9673df5745279a722ae95..1cc6f1a988715224d0168c97ae418037573e2204 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -23,6 +23,13 @@ import org.bukkit.material.MaterialData; @@ -1346,7 +1346,7 @@ index 41d000b81a793277e330fb62c848ab4c8c56d657..1f524abf07666e325a877c90414d6838 /** * Represents a stack of items. -@@ -1372,4 +1379,482 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat +@@ -1363,4 +1370,482 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount); } // Paper end - data component API diff --git a/leaf-api/paper-patches/features/0014-Remove-Timings.patch b/leaf-api/paper-patches/features/0014-Remove-Timings.patch index b2f3d40f..15f0057f 100644 --- a/leaf-api/paper-patches/features/0014-Remove-Timings.patch +++ b/leaf-api/paper-patches/features/0014-Remove-Timings.patch @@ -2113,10 +2113,10 @@ index dae84243804b4b076cafb3e1b29bdcf614efc93f..00000000000000000000000000000000 -} diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java deleted file mode 100644 -index c105a1429ca58b37be265708ec345e00f0d43ed8..0000000000000000000000000000000000000000 +index 232bf09e1a7bc176bfd34b1acb5326a06a92fe79..0000000000000000000000000000000000000000 --- a/src/main/java/co/aikar/util/JSONUtil.java +++ /dev/null -@@ -1,141 +0,0 @@ +@@ -1,138 +0,0 @@ -package co.aikar.util; - -import com.google.common.base.Function; @@ -2124,10 +2124,7 @@ index c105a1429ca58b37be265708ec345e00f0d43ed8..00000000000000000000000000000000 -import com.google.common.collect.Maps; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; --import org.json.simple.JSONArray; --import org.json.simple.JSONObject; - --import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; diff --git a/leaf-server/build.gradle.kts.patch b/leaf-server/build.gradle.kts.patch index 660b8d20..2e178e8b 100644 --- a/leaf-server/build.gradle.kts.patch +++ b/leaf-server/build.gradle.kts.patch @@ -87,14 +87,14 @@ + implementation("org.jline:jline-terminal-ffm:3.29.0") // use ffm on java 22+ // Leaf - Bump Dependencies + implementation("org.jline:jline-terminal-jni:3.29.0") // fall back to jni on java 21 // Leaf - Bump Dependencies implementation("net.minecrell:terminalconsoleappender:1.3.0") - implementation("net.kyori:adventure-text-serializer-ansi:4.18.0") // Keep in sync with adventureVersion from Paper-API build file + implementation("io.papermc.adventure:adventure-text-serializer-ansi:4.21.0-mc1215-SNAPSHOT") // Keep in sync with adventureVersion from Paper-API build file // FIXME back to release runtimeConfiguration(sourceSets.main.map { it.runtimeClasspath }) -@@ -144,36 +_,53 @@ +@@ -144,16 +_,20 @@ all its classes to check if they are plugins. Scanning takes about 1-2 seconds so adding this speeds up the server start. */ -- implementation("org.apache.logging.log4j:log4j-core:2.19.0") -- log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.19.0") // Needed to generate meta for our Log4j plugins +- implementation("org.apache.logging.log4j:log4j-core:2.24.1") +- log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.24.1") // Needed to generate meta for our Log4j plugins + // Leaf start - Bump Dependencies + implementation("org.apache.logging.log4j:log4j-core:2.24.3") + log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.24.3") // Needed to generate meta for our Log4j plugins @@ -105,38 +105,34 @@ implementation("com.velocitypowered:velocity-native:3.4.0-SNAPSHOT") { isTransitive = false } -- implementation("io.netty:netty-codec-haproxy:4.1.115.Final") // Add support for proxy protocol +- implementation("io.netty:netty-codec-haproxy:4.1.118.Final") // Add support for proxy protocol - implementation("org.apache.logging.log4j:log4j-iostreams:2.24.1") + // Leaf start - Bump Dependencies + implementation("io.netty:netty-codec-haproxy:4.1.119.Final") // Add support for proxy protocol + implementation("org.apache.logging.log4j:log4j-iostreams:2.24.3") + // Leaf end - Bump Dependencies - implementation("org.ow2.asm:asm-commons:9.7.1") + implementation("org.ow2.asm:asm-commons:9.8") implementation("org.spongepowered:configurate-yaml:4.2.0-20250225.064233-199") implementation("org.spongepowered:configurate-core:4.2.0-20250225.064233-204") // Pinned dependency of above pinned yaml snapshot. - implementation("commons-lang:commons-lang:2.6") -- runtimeOnly("org.xerial:sqlite-jdbc:3.47.0.0") -- runtimeOnly("com.mysql:mysql-connector-j:9.1.0") +@@ -161,24 +_,37 @@ + // Deps that were previously in the API but have now been moved here for backwards compat, eventually to be removed + runtimeOnly("commons-lang:commons-lang:2.6") + runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0") +- runtimeOnly("com.mysql:mysql-connector-j:9.2.0") - runtimeOnly("com.lmax:disruptor:3.4.4") -- -- runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6") -- runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") -- runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") -- -- testImplementation("io.github.classgraph:classgraph:4.8.47") // For mob goal test -- testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") -- testImplementation("org.junit.platform:junit-platform-suite-engine:1.10.0") -- testImplementation("org.hamcrest:hamcrest:2.2") -- testImplementation("org.mockito:mockito-core:5.14.1") -- mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // Configure mockito agent that is needed in newer java versions -+ runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0") // Leaf - Bump Dependencies + runtimeOnly("com.mysql:mysql-connector-j:9.2.0") { + exclude("com.google.protobuf", "protobuf-java") // Leaf - Exclude outdated protobuf version + } + runtimeOnly("com.google.protobuf:protobuf-java:4.30.1") + // Leaf start - Bump Dependencies + runtimeOnly("com.lmax:disruptor:3.4.4") // Dreeam TODO - Waiting Log4j 3.x to support disruptor 4.0.0 -+ + implementation("com.googlecode.json-simple:json-simple:1.1.1") { // change to runtimeOnly once Timings is removed + isTransitive = false // includes junit + } + +- runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6") +- runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") +- runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.9") + runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") // Dreeam TODO - Update to 2.0.1 + runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") // Dreeam TODO - Update to 2.0.1 @@ -147,25 +143,28 @@ + implementation("org.mozilla:rhino-engine:1.7.15") + implementation("dev.omega24:upnp4j:1.0") + // Purpur end -+ + + testImplementation("io.github.classgraph:classgraph:4.8.179") // For mob goal test + testImplementation("org.junit.jupiter:junit-jupiter:5.12.2") + testImplementation("org.junit.platform:junit-platform-suite-engine:1.12.2") +- testImplementation("org.hamcrest:hamcrest:2.2") +- testImplementation("org.mockito:mockito-core:5.14.1") +- mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // Configure mockito agent that is needed in newer java versions + // Leaf start - Bump Dependencies -+ testImplementation("io.github.classgraph:classgraph:4.8.179") // For mob goal test -+ testImplementation("org.junit.jupiter:junit-jupiter:5.12.1") -+ testImplementation("org.junit.platform:junit-platform-suite-engine:1.12.1") + testImplementation("org.hamcrest:hamcrest:3.0") + testImplementation("org.mockito:mockito-core:5.16.1") + mockitoAgent("org.mockito:mockito-core:5.16.1") { isTransitive = false } // Configure mockito agent that is needed in newer java versions - testImplementation("org.ow2.asm:asm-tree:9.7.1") + testImplementation("org.ow2.asm:asm-tree:9.8") - testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // CartesianTest + testImplementation("org.junit-pioneer:junit-pioneer:2.3.0") // CartesianTest + // Leaf end - Bump Dependencies implementation("net.neoforged:srgutils:1.0.9") // Mappings handling implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins -@@ -187,28 +_,40 @@ +@@ -192,28 +_,40 @@ // Spark implementation("me.lucko:spark-api:0.1-20240720.200737-2") - implementation("me.lucko:spark-paper:1.10.119-20241121.092015-1") + implementation("me.lucko:spark-paper:1.10.133-20250413.112336-1") -} + + implementation("io.netty:netty-all:4.1.119.Final") // Leaf - Bump Dependencies // Dreeam TODO - Update to 4.2.0 @@ -210,7 +209,7 @@ "Build-Number" to (build ?: ""), "Build-Time" to buildTime.toString(), "Git-Branch" to gitBranch, -@@ -262,7 +_,7 @@ +@@ -267,7 +_,7 @@ jvmArgumentProviders.add(provider) } @@ -219,7 +218,7 @@ idea { module { generatedSourceDirs.add(generatedDir.toFile()) -@@ -320,6 +_,8 @@ +@@ -325,6 +_,8 @@ val memoryGb = providers.gradleProperty("paper.runMemoryGb").getOrElse("2") minHeapSize = "${memoryGb}G" maxHeapSize = "${memoryGb}G" @@ -228,7 +227,7 @@ doFirst { workingDir.mkdirs() -@@ -365,3 +_,62 @@ +@@ -370,3 +_,62 @@ classpath(tasks.createReobfPaperclipJar.flatMap { it.outputZip }) mainClass.set(null as String?) } diff --git a/leaf-server/minecraft-patches/features/0005-Remove-vanilla-profiler.patch b/leaf-server/minecraft-patches/features/0005-Remove-vanilla-profiler.patch index a9cc60f8..5d80b467 100644 --- a/leaf-server/minecraft-patches/features/0005-Remove-vanilla-profiler.patch +++ b/leaf-server/minecraft-patches/features/0005-Remove-vanilla-profiler.patch @@ -1360,7 +1360,7 @@ index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf } } diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 9129f87af75412bfeb43f9f55aee8fe253cc6251..07df62b79a4ee9c9da77cac8615fad5463628204 100644 +index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..79f499fea47a9c675da1aed718c713290bc008d0 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -70,8 +70,6 @@ import net.minecraft.tags.FluidTags; @@ -1447,7 +1447,7 @@ index 9129f87af75412bfeb43f9f55aee8fe253cc6251..07df62b79a4ee9c9da77cac8615fad54 - profilerFiller.pop(); if (this.level() instanceof ServerLevel serverLevel) { - profilerFiller.push("freezing"); - if (!this.isInPowderSnow || !this.canFreeze() && !this.freezeLocked) { // Paper - Freeze Tick Lock API + if ((!this.isInPowderSnow || !this.canFreeze()) && !this.freezeLocked) { // Paper - Freeze Tick Lock API this.setTicksFrozen(Math.max(0, this.getTicksFrozen() - 2)); } @@ -3506,18 +3486,14 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/leaf-server/minecraft-patches/features/0204-Remove-iterators-from-Inventory.patch b/leaf-server/minecraft-patches/features/0204-Remove-iterators-from-Inventory.patch index c1b5a219..5eae0d7d 100644 --- a/leaf-server/minecraft-patches/features/0204-Remove-iterators-from-Inventory.patch +++ b/leaf-server/minecraft-patches/features/0204-Remove-iterators-from-Inventory.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove iterators from Inventory diff --git a/net/minecraft/world/entity/player/Inventory.java b/net/minecraft/world/entity/player/Inventory.java -index dd406c5becacbc2d05b062726a8af88a1d6faba9..4b46bc712e20bd5f841d2d7caaad52068969bdc1 100644 +index d9cb4f0ed0c4f63362c837aeef3c4194911455c9..a31b6b8b56ecced421ead0119a4423b0229ae188 100644 --- a/net/minecraft/world/entity/player/Inventory.java +++ b/net/minecraft/world/entity/player/Inventory.java -@@ -435,13 +435,16 @@ public class Inventory implements Container, Nameable { +@@ -439,13 +439,16 @@ public class Inventory implements Container, Nameable { } } @@ -26,7 +26,7 @@ index dd406c5becacbc2d05b062726a8af88a1d6faba9..4b46bc712e20bd5f841d2d7caaad5206 } @Override -@@ -500,17 +503,21 @@ public class Inventory implements Container, Nameable { +@@ -504,17 +507,21 @@ public class Inventory implements Container, Nameable { @Override public boolean isEmpty() { @@ -50,7 +50,7 @@ index dd406c5becacbc2d05b062726a8af88a1d6faba9..4b46bc712e20bd5f841d2d7caaad5206 return true; } -@@ -557,31 +564,61 @@ public class Inventory implements Container, Nameable { +@@ -561,31 +568,61 @@ public class Inventory implements Container, Nameable { } public boolean contains(ItemStack stack) { @@ -115,7 +115,7 @@ index dd406c5becacbc2d05b062726a8af88a1d6faba9..4b46bc712e20bd5f841d2d7caaad5206 return false; } -@@ -601,9 +638,12 @@ public class Inventory implements Container, Nameable { +@@ -605,9 +642,12 @@ public class Inventory implements Container, Nameable { } public void fillStackedContents(StackedItemContents contents) { diff --git a/leaf-server/paper-patches/features/0001-Rebrand.patch b/leaf-server/paper-patches/features/0001-Rebrand.patch index 6ecaf4af..dd0416ba 100644 --- a/leaf-server/paper-patches/features/0001-Rebrand.patch +++ b/leaf-server/paper-patches/features/0001-Rebrand.patch @@ -429,10 +429,10 @@ index 1354ccfbf525e5e64483ac5f443cc2325ba63850..f6f787db016f4d1ac14648ebf2b8e162 // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 41b2026c87dea247d39c73b0e3eae892fb729cd5..498a642d243925eefa11d5997dc999bb9aa2fcda 100644 +index 060f0c5f1e54bf4809e28d1857965ff8254698a9..f318d4c8a3455f9acb1aff6fed04d4e0757624a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -481,7 +481,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -484,7 +484,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @Override public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { diff --git a/leaf-server/paper-patches/features/0009-Purpur-Server-Paper-Changes.patch b/leaf-server/paper-patches/features/0009-Purpur-Server-Paper-Changes.patch index 86ab976c..8c641db0 100644 --- a/leaf-server/paper-patches/features/0009-Purpur-Server-Paper-Changes.patch +++ b/leaf-server/paper-patches/features/0009-Purpur-Server-Paper-Changes.patch @@ -893,7 +893,7 @@ index 4d5958405e1c86c289d24500705686e7da02c3f6..86541e322fcacb6c525af39ba2675b71 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 9e271f0e587be1ab9258937774121763b34e9e0f..8f9af0c5396abf25534eaee17b81982024eb9fcd 100644 +index c8caeba7737c2386f7194207a5ea11b74c6179e4..8feb78c4d7fa793f01991756b618fc49de023db6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -98,6 +98,25 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -930,7 +930,7 @@ index 9e271f0e587be1ab9258937774121763b34e9e0f..8f9af0c5396abf25534eaee17b819820 return false; } -@@ -1281,4 +1301,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1293,4 +1313,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.entity.get(io.papermc.paper.datacomponent.PaperDataComponentType.bukkitToMinecraft(type)) != null; } @@ -1080,10 +1080,10 @@ index bd39ecac806a008583eaf041c75e1bb95a3912b7..5b74ca7c52fb0437726a2a0048313488 + // Purpur end - API for any mob to burn daylight } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java -index 845a0941fbaf6e1235526d93cacc5a7fcd858dce..cd78e48b8853fad1a31a56ef5ab6ffc5c222294b 100644 +index 9aaaf2fc6a7bc49d1c3d0be68854e7fb2524fd25..a8e045af6b3b20027877d958d58dc09ca078aaf1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java -@@ -89,4 +89,17 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys +@@ -92,4 +92,17 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys public Llama getCaravanTail() { return this.getHandle().caravanTail == null ? null : (Llama) this.getHandle().caravanTail.getBukkitEntity(); }