--- a/paper-api/build.gradle.kts +++ b/paper-api/build.gradle.kts @@ -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" -val slf4jVersion = "2.0.16" -val log4jVersion = "2.24.1" +// Leaf start - Bump Dependencies +val slf4jVersion = "2.0.17" +val log4jVersion = "2.25.2" +// Leaf end - Bump Dependencies val apiAndDocs: Configuration by configurations.creating { attributes { @@ -41,16 +_,25 @@ dependencies { // api dependencies are listed transitively to API consumers - api("com.google.guava:guava:33.3.1-jre") + // Leaf start - Bump Dependencies + // TODO: Waiting Paper, breaks with Eco/EcoEnchant since 33.5.0 + api("com.google.guava:guava:33.4.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") + // 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 } - 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.25.0") // Pufferfish // Deprecate bungeecord-chat in favor of adventure api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") { @@ -65,32 +_,42 @@ apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") - api("org.apache.maven:maven-resolver-provider:3.9.6") // make API dependency for Paper Plugins - 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.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 end - Bump Dependencies // Annotations - Slowly migrate to jspecify val annotations = "org.jetbrains:annotations:$annotationsVersion" 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.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.14.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 + // 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.19.0") + // Leaf end - Bump Dependencies } -val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath() +val generatedDir: java.nio.file.Path = rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.toPath() // Leaf - project setup idea { module { generatedSourceDirs.add(generatedDir.toFile()) @@ -100,6 +_,20 @@ main { java { srcDir(generatedDir) + // Leaf start - project setup + srcDir(file("../paper-api/src/main/java")) + } + resources { + srcDir(file("../paper-api/src/main/resources")) + } + } + test { + java { + srcDir(file("../paper-api/src/test/java")) + } + resources { + srcDir(file("../paper-api/src/test/resources")) + // Leaf end - project setup } } } @@ -137,6 +_,15 @@ } } +// Gale start - hide irrelevant compilation warnings +tasks.withType { + val compilerArgs = options.compilerArgs + compilerArgs.add("-Xlint:-module") + compilerArgs.add("-Xlint:-removal") + compilerArgs.add("-Xlint:-dep-ann") + compilerArgs.add("--add-modules=jdk.incubator.vector") // Gale - Pufferfish - SIMD support +} +// Gale end - hide irrelevant compilation warnings val generateApiVersioningFile by tasks.registering { inputs.property("version", project.version) val pomProps = layout.buildDirectory.file("pom.properties") @@ -156,6 +_,12 @@ "Automatic-Module-Name" to "org.bukkit" ) } + + // Gale start - package license into jar + from("${project.projectDir}/LICENSE.txt") { + into("") + } + // Gale end - package license into jar } abstract class Services { @@ -166,15 +_,17 @@ tasks.withType().configureEach { val options = options as StandardJavadocDocletOptions - options.overview = "src/main/javadoc/overview.html" + options.overview = "../paper-api/src/main/javadoc/overview.html" // Leaf - project setup options.use() options.isDocFilesSubDirs = true options.links( - "https://guava.dev/releases/33.3.1-jre/api/docs/", - "https://javadoc.io/doc/org.yaml/snakeyaml/2.2/", - "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/", @@ -183,9 +_,9 @@ "https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/", "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://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://www.javadocs.dev/org.apache.maven.resolver/maven-resolver-api/1.9.22", // Leaf - Bump Dependencies ) options.tags("apiNote:a:API Note:") @@ -199,16 +_,19 @@ } // workaround for https://github.com/gradle/gradle/issues/4046 - inputs.dir("src/main/javadoc").withPropertyName("javadoc-sourceset") + inputs.dir("../paper-api/src/main/javadoc").withPropertyName("javadoc-sourceset") // Leaf - project setup val fsOps = services.fileSystemOperations doLast { fsOps.copy { - from("src/main/javadoc") { + from("../paper-api/src/main/javadoc") { // Leaf - project setup include("**/doc-files/**") } into("build/docs/javadoc") } } + + options.addStringOption("Xdoclint:none", "-quiet") // Gale - hide irrelevant compilation warnings + options.addStringOption("-add-modules", "jdk.incubator.vector") // Gale - Pufferfish - SIMD support } tasks.test { @@ -230,6 +_,11 @@ jarToScan.set(tasks.jar.flatMap { it.archiveFile }) classpath.from(configurations.compileClasspath) } +// Leaf start - Bump Dependencies +repositories { + mavenCentral() +} +// Leaf end - Bump Dependencies tasks.check { dependsOn(scanJarForBadCalls) }