diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml index fff1d1d4..afe1f4ea 100644 --- a/.github/workflows/auto-update.yml +++ b/.github/workflows/auto-update.yml @@ -10,13 +10,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Leaf repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: path: 'Leaf' token: ${{ secrets.GITHUB_TOKEN }} - name: Checkout Paper repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: path: 'Paper' repository: "PaperMC/Paper" @@ -49,7 +49,7 @@ jobs: git config --global user.email 61569423+Dreeam-qwq@users.noreply.github.com chmod +x gradlew - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'zulu' java-version: '21' diff --git a/.github/workflows/build-1218.yml b/.github/workflows/build-1218.yml index 173514e4..60d188d8 100644 --- a/.github/workflows/build-1218.yml +++ b/.github/workflows/build-1218.yml @@ -13,7 +13,7 @@ jobs: GRADLE_MEMORY: "-Xmx4g -XX:MaxMetaspaceSize=2g" steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 @@ -91,7 +91,7 @@ jobs: BUILD_NUMBER: ${{ env.BUILD_NUMBER }} - name: Upload Leaf - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: Leaf 1.21.8 path: ./leaf-1.21.8-${{ env.BUILD_NUMBER }}.jar diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 2f314927..7e3ff7ab 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup java uses: useblacksmith/setup-java@v5 @@ -36,7 +36,7 @@ jobs: run: | mv leaf-server/build/libs/leaf-paperclip-1.21.8-R0.1-SNAPSHOT-mojmap.jar ./leaf-1.21.8.jar - name: Upload Leaf as build artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: Leaf 1.21.8 path: ./leaf-1.21.8.jar diff --git a/.github/workflows/publish-api.yml b/.github/workflows/publish-api.yml index bfb70c7f..35de5cb9 100644 --- a/.github/workflows/publish-api.yml +++ b/.github/workflows/publish-api.yml @@ -12,7 +12,7 @@ jobs: GRADLE_MEMORY: "-Xmx4g -XX:MaxMetaspaceSize=2g" steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8bdaf60c..f8e1ee31 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e111328..bad7c246 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-9.1.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/leaf-api/build.gradle.kts.patch b/leaf-api/build.gradle.kts.patch index 61a6d3db..2d4f50e7 100644 --- a/leaf-api/build.gradle.kts.patch +++ b/leaf-api/build.gradle.kts.patch @@ -1,6 +1,11 @@ --- a/paper-api/build.gradle.kts +++ b/paper-api/build.gradle.kts -@@ -13,8 +_,10 @@ +@@ -9,12 +_,14 @@ + withJavadocJar() + } + +-val annotationsVersion = "26.0.2" ++val annotationsVersion = "26.0.2-1" // Leaf - Bump Dependencies // Keep in sync with paper-server adventure-text-serializer-ansi dep val adventureVersion = "4.24.0" val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21" @@ -8,36 +13,40 @@ -val log4jVersion = "2.24.1" +// Leaf start - Bump Dependencies +val slf4jVersion = "2.0.17" -+val log4jVersion = "2.24.3" ++val log4jVersion = "2.25.2" +// Leaf end - Bump Dependencies val apiAndDocs: Configuration by configurations.creating { attributes { -@@ -41,9 +_,13 @@ +@@ -41,16 +_,24 @@ dependencies { // api dependencies are listed transitively to API consumers - api("com.google.guava:guava:33.3.1-jre") + // Leaf start - Bump Dependencies -+ api("com.google.guava:guava:33.4.0-jre") -+ // Waiting Paper, Gson has breaking change since 2.12.0 -+ // See https://github.com/google/gson/commit/6c2e3db7d25ceceabe056aeb8b65477fdd509214 ++ api("com.google.guava:guava:33.5.0-jre") ++ // TODO: Waiting Paper, Gson has breaking change since 2.12.0 ++ // TODO: See https://github.com/google/gson/commit/6c2e3db7d25ceceabe056aeb8b65477fdd509214 api("com.google.code.gson:gson:2.11.0") - api("org.yaml:snakeyaml:2.2") -+ api("org.yaml:snakeyaml:2.3") // 2.4 removed `org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder` ++ // TODO: 2.4, moved location of `org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder` ++ api("org.yaml:snakeyaml:2.3") + // Leaf end - Bump Dependencies api("org.joml:joml:1.10.8") { isTransitive = false // https://github.com/JOML-CI/JOML/issues/352 } -@@ -51,6 +_,7 @@ +- api("it.unimi.dsi:fastutil:8.5.15") ++ // TODO: Breaking changes in 8.5.17/18 ++ // TODO: See https://github.com/vigna/fastutil/commit/c6434abd1177b9933c68f11005ec457d5abf58d3 ++ api("it.unimi.dsi:fastutil:8.5.15") // Leaf - Bump Dependencies api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion") api("com.mojang:brigadier:1.3.10") -+ api("io.sentry:sentry:8.13.2") // Pufferfish ++ api("io.sentry:sentry:8.25.0") // Pufferfish // Deprecate bungeecord-chat in favor of adventure api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") { -@@ -65,9 +_,11 @@ +@@ -65,32 +_,42 @@ apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") @@ -45,32 +54,44 @@ - implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") - implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + // Leaf start - Bump Dependencies -+ api("org.apache.maven:maven-resolver-provider:3.9.9") // make API dependency for Paper Plugins ++ api("org.apache.maven:maven-resolver-provider:3.9.11") // make API dependency for Paper Plugins + implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") // Dreeam TODO - Update to 2.0.1 + implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") // Dreeam TODO - Update to 2.0.1 -+ // Leaf start - Bump Dependencies ++ // Leaf end - Bump Dependencies // Annotations - Slowly migrate to jspecify val annotations = "org.jetbrains:annotations:$annotationsVersion" -@@ -83,14 +_,22 @@ + compileOnly(annotations) + testCompileOnly(annotations) + +- val checkerQual = "org.checkerframework:checker-qual:3.49.2" ++ val checkerQual = "org.checkerframework:checker-qual:3.51.1" // Leaf - Bump Dependencies + compileOnlyApi(checkerQual) + testCompileOnly(checkerQual) + + api("org.jspecify:jspecify:1.0.0") + // Test dependencies - testImplementation("org.apache.commons:commons-lang3:3.17.0") - testImplementation("org.junit.jupiter:junit-jupiter:5.12.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.hamcrest:hamcrest:3.0") -+ testImplementation("org.mockito:mockito-core:5.16.1") -+ // Leaf end - Bump Dependencies - testImplementation("org.ow2.asm:asm-tree:9.8") +- 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 ++ // Leaf start - Bump Dependencies ++ testImplementation("org.apache.commons:commons-lang3:3.19.0") ++ testImplementation("org.junit.jupiter:junit-jupiter:6.0.1") ++ testImplementation("org.hamcrest:hamcrest:3.0") ++ testImplementation("org.mockito:mockito-core:5.20.0") ++ testImplementation("org.ow2.asm:asm-tree:9.9") ++ mockitoAgent("org.mockito:mockito-core:5.20.0") { isTransitive = false } // configure mockito agent that is needed in newer java versions ++ // Leaf end - Bump Dependencies testRuntimeOnly("org.junit.platform:junit-platform-launcher") + + // Leaf start - Bump Dependencies + // commons-lang3 is removed in maven-resolver-provider since 3.9.8 + // Add this because bukkit api still need it. -+ compileOnly("org.apache.commons:commons-lang3:3.17.0") ++ compileOnly("org.apache.commons:commons-lang3:3.19.0") + // Leaf end - Bump Dependencies } @@ -129,7 +150,7 @@ } abstract class Services { -@@ -166,15 +_,19 @@ +@@ -166,15 +_,17 @@ tasks.withType().configureEach { val options = options as StandardJavadocDocletOptions @@ -140,15 +161,16 @@ options.links( - "https://guava.dev/releases/33.3.1-jre/api/docs/", - "https://javadoc.io/doc/org.yaml/snakeyaml/2.2/", -+ "https://guava.dev/releases/33.4.0-jre/api/docs/", // Leaf - Bump Dependencies -+ // Leaf start - Temp fix api publish since javadoc.io is down -+ /* -+ "https://javadoc.io/doc/org.yaml/snakeyaml/2.3/", // Leaf - Bump Dependencies - "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", -+ */ -+ // Leaf end - Temp fix api publish since javadoc.io is down +- "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", ++ // Leaf start - Bump Dependencies ++ "https://guava.dev/releases/33.5.0-jre/api/docs/", ++ "https://www.javadocs.dev/org.yaml/snakeyaml/2.3/", ++ "https://www.javadocs.dev/org.jetbrains/annotations/$annotationsVersion/", ++ "https://www.javadocs.dev/org.joml/joml/1.10.8/", ++ "https://www.javadocs.dev/com.google.code.gson/gson/2.11.0", ++ // Leaf end - Bump Dependencies "https://jspecify.dev/docs/api/", "https://jd.advntr.dev/api/$adventureVersion/", "https://jd.advntr.dev/key/$adventureVersion/", @@ -157,10 +179,10 @@ "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", - "https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/", -+ //"https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/", // Leaf - Temp fix api publish since javadoc.io is down ++ "https://www.javadocs.dev/org.slf4j/slf4j-api/$slf4jVersion/", // Leaf - Bump Dependencies "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.maven.resolver/maven-resolver-api/1.9.22", // Leaf - Bump Dependencies // Leaf - Temp fix api publish since javadoc.io is down ++ "https://www.javadocs.dev/org.apache.maven.resolver/maven-resolver-api/1.9.22", // Leaf - Bump Dependencies ) options.tags("apiNote:a:API Note:") diff --git a/leaf-server/build.gradle.kts.patch b/leaf-server/build.gradle.kts.patch index 3a15a772..a369d234 100644 --- a/leaf-server/build.gradle.kts.patch +++ b/leaf-server/build.gradle.kts.patch @@ -76,28 +76,28 @@ + implementation("com.github.thatsmusic99:ConfigurationMaster-API:v2.0.0-rc.3") { // Leaf config + exclude(group = "org.yaml", module = "snakeyaml") + } -+ implementation("com.github.luben:zstd-jni:1.5.7-3") // LinearPaper -+ implementation("org.lz4:lz4-java:1.8.0") // LinearPaper -+ implementation("com.github.ben-manes.caffeine:caffeine:3.2.0") ++ //implementation("com.github.luben:zstd-jni:1.5.7-6") // LinearPaper // TODO - move to buffered linear ++ //implementation("org.lz4:lz4-java:1.8.0") // LinearPaper // TODO - move to buffered linear ++ implementation("com.github.ben-manes.caffeine:caffeine:3.2.3") + // Leaf end - Libraries + implementation("ca.spottedleaf:concurrentutil:0.0.3") - implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+ - implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21 -+ 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("org.jline:jline-terminal-ffm:3.30.6") // use ffm on java 22+ // Leaf - Bump Dependencies ++ implementation("org.jline:jline-terminal-jni:3.30.6") // fall back to jni on java 21 // Leaf - Bump Dependencies implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.kyori:adventure-text-serializer-ansi") runtimeConfiguration(sourceSets.main.map { it.runtimeClasspath }) -@@ -143,24 +_,39 @@ +@@ -143,36 +_,53 @@ 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.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 ++ implementation("org.apache.logging.log4j:log4j-core:2.25.2") ++ log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.25.2") // Needed to generate meta for our Log4j plugins + // Leaf end - Bump Dependencies runtimeOnly(log4jPlugins.output) alsoShade(log4jPlugins.output) @@ -107,11 +107,12 @@ } - 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") +- implementation("org.ow2.asm:asm-commons:9.8") + // Leaf start - Bump Dependencies + implementation("io.netty:netty-codec-haproxy:4.2.7.Final") // Add support for proxy protocol // Leaf - Bump netty to 4.2.x -+ implementation("org.apache.logging.log4j:log4j-iostreams:2.24.3") ++ implementation("org.apache.logging.log4j:log4j-iostreams:2.25.2") ++ implementation("org.ow2.asm:asm-commons:9.9") + // Leaf end - Bump Dependencies - implementation("org.ow2.asm:asm-commons:9.8") implementation("org.spongepowered:configurate-yaml:4.2.0") + // Purpur start @@ -122,32 +123,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("org.xerial:sqlite-jdbc:3.49.1.0") - runtimeOnly("com.mysql:mysql-connector-j:9.2.0") - runtimeOnly("com.lmax:disruptor:3.4.4") + // Leaf start - Bump Dependencies -+ runtimeOnly("com.mysql:mysql-connector-j:9.2.0") { ++ runtimeOnly("org.xerial:sqlite-jdbc:3.50.3.0") ++ runtimeOnly("com.mysql:mysql-connector-j:9.5.0") { + exclude("com.google.protobuf", "protobuf-java") // Leaf - Exclude outdated protobuf version + } -+ runtimeOnly("com.google.protobuf:protobuf-java:4.30.1") ++ runtimeOnly("com.google.protobuf:protobuf-java:4.33.0") + runtimeOnly("com.lmax:disruptor:3.4.4") // Dreeam TODO - Waiting Log4j 3.x to support disruptor 4.0.0 + // Leaf end - Bump Dependencies implementation("com.googlecode.json-simple:json-simple:1.1.1") { // change to runtimeOnly once Timings is removed isTransitive = false // includes junit } -@@ -168,11 +_,13 @@ - 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("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("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.8") +- testImplementation("org.ow2.asm:asm-tree:9.8") - testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // CartesianTest ++ // Leaf start - Bump Dependencies ++ testImplementation("io.github.classgraph:classgraph:4.8.184") // For mob goal test ++ testImplementation("org.junit.jupiter:junit-jupiter:6.0.1") ++ testImplementation("org.junit.platform:junit-platform-suite-engine:6.0.1") ++ testImplementation("org.hamcrest:hamcrest:3.0") ++ testImplementation("org.mockito:mockito-core:5.20.0") ++ mockitoAgent("org.mockito:mockito-core:5.20.0") { isTransitive = false } // Configure mockito agent that is needed in newer java versions ++ testImplementation("org.ow2.asm:asm-tree:9.9") + testImplementation("org.junit-pioneer:junit-pioneer:2.3.0") // CartesianTest + // Leaf end - Bump Dependencies @@ -162,8 +168,8 @@ - implementation("me.lucko:spark-api:0.1-20240720.200737-2") - implementation("me.lucko:spark-paper:1.10.133-20250413.112336-1") -} -+ implementation("me.lucko:spark-api:0.1-dev-462d7f8-SNAPSHOT") -+ implementation("me.lucko:spark-paper:1.10-dev-462d7f8-SNAPSHOT") ++ implementation("me.lucko:spark-api:0.1-dev-9a706d5-SNAPSHOT") ++ implementation("me.lucko:spark-paper:1.10-dev-9a706d5-SNAPSHOT") + + implementation("io.netty:netty-all:4.2.7.Final") // Leaf - Bump netty to 4.2.x + // Leaf end - Bump Dependencies