11plugins {
22 `java- library`
33 `maven- publish`
4- idea // Paper
4+ idea
55}
66
77java {
@@ -14,6 +14,7 @@ val bungeeCordChatVersion = "1.20-R0.2"
1414val adventureVersion = " 4.17.0"
1515val slf4jVersion = " 2.0.9"
1616val log4jVersion = " 2.17.1"
17+
1718val apiAndDocs: Configuration by configurations.creating {
1819 attributes {
1920 attribute(Category .CATEGORY_ATTRIBUTE , objects.named(Category .DOCUMENTATION ))
@@ -26,7 +27,7 @@ configurations.api {
2627 extendsFrom(apiAndDocs)
2728}
2829
29- // Paper start - configure mockito agent that is needed in newer java versions
30+ // Configure mockito agent that is needed in newer Java versions
3031val mockitoAgent = configurations.register(" mockitoAgent" )
3132abstract class MockitoAgentProvider : CommandLineArgumentProvider {
3233 @get:CompileClasspath
@@ -36,66 +37,65 @@ abstract class MockitoAgentProvider : CommandLineArgumentProvider {
3637 return listOf (" -javaagent:" + fileCollection.files.single().absolutePath)
3738 }
3839}
39- // Paper end - configure mockito agent that is needed in newer java versions
4040
4141dependencies {
42- api( " com.mojang:brigadier:1.3.10 " ) // Paper - Brigadier command api
42+
4343 // api dependencies are listed transitively to API consumers
4444 api(" com.google.guava:guava:33.3.1-jre" )
4545 api(" com.google.code.gson:gson:2.11.0" )
46- // Paper start - adventure
47- api(" net.md-5:bungeecord-chat:$bungeeCordChatVersion -deprecated+build.19" ) {
48- exclude(" com.google.guava" , " guava" )
49- }
50- // Paper - adventure
5146 api(" org.yaml:snakeyaml:2.2" )
5247 api(" org.joml:joml:1.10.8" ) {
5348 isTransitive = false // https://github.com/JOML-CI/JOML/issues/352
5449 }
55- // Paper start
5650 api(" com.googlecode.json-simple:json-simple:1.1.1" ) {
5751 isTransitive = false // includes junit
5852 }
5953 api(" it.unimi.dsi:fastutil:8.5.15" )
54+ api(" org.apache.logging.log4j:log4j-api:$log4jVersion " )
55+ api(" org.slf4j:slf4j-api:$slf4jVersion " )
56+ api(" com.mojang:brigadier:1.3.10" )
57+
58+ // Deprecate bungeecord-chat in favor of adventure
59+ api(" net.md-5:bungeecord-chat:$bungeeCordChatVersion -deprecated+build.19" ) {
60+ exclude(" com.google.guava" , " guava" )
61+ }
62+
6063 apiAndDocs(platform(" net.kyori:adventure-bom:$adventureVersion " ))
6164 apiAndDocs(" net.kyori:adventure-api" )
6265 apiAndDocs(" net.kyori:adventure-text-minimessage" )
6366 apiAndDocs(" net.kyori:adventure-text-serializer-gson" )
6467 apiAndDocs(" net.kyori:adventure-text-serializer-legacy" )
6568 apiAndDocs(" net.kyori:adventure-text-serializer-plain" )
6669 apiAndDocs(" net.kyori:adventure-text-logger-slf4j" )
67- api(" org.apache.logging.log4j:log4j-api:$log4jVersion " )
68- api(" org.slf4j:slf4j-api:$slf4jVersion " )
6970
7071 implementation(" org.ow2.asm:asm:9.7.1" )
7172 implementation(" org.ow2.asm:asm-commons:9.7.1" )
72- // Paper end
7373
74- api(" org.apache.maven:maven-resolver-provider:3.9.6" ) // Paper - make API dependency for Paper Plugins
74+ api(" org.apache.maven:maven-resolver-provider:3.9.6" ) // make API dependency for Paper Plugins
7575 compileOnly(" org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18" )
7676 compileOnly(" org.apache.maven.resolver:maven-resolver-transport-http:1.9.18" )
7777
78- val annotations = " org.jetbrains:annotations:$annotationsVersion " // Paper - we don't want Java 5 annotations...
78+ // Annotations - Slowly migrate to jspecify
79+ val annotations = " org.jetbrains:annotations:$annotationsVersion "
7980 compileOnly(annotations)
8081 testCompileOnly(annotations)
8182
82- // Paper start - add checker
8383 val checkerQual = " org.checkerframework:checker-qual:3.33.0"
8484 compileOnlyApi(checkerQual)
8585 testCompileOnly(checkerQual)
86- // Paper end
87- api(" org.jspecify:jspecify:1.0.0" ) // Paper - add jspecify
8886
87+ api(" org.jspecify:jspecify:1.0.0" )
88+
89+ // Test dependencies
8990 testImplementation(" org.apache.commons:commons-lang3:3.12.0" )
9091 testImplementation(" org.junit.jupiter:junit-jupiter:5.10.2" )
9192 testImplementation(" org.hamcrest:hamcrest:2.2" )
9293 testImplementation(" org.mockito:mockito-core:5.14.1" )
9394 testImplementation(" org.ow2.asm:asm-tree:9.7.1" )
94- mockitoAgent(" org.mockito:mockito-core:5.14.1" ) { isTransitive = false } // Paper - configure mockito agent that is needed in newer java versions
95+ mockitoAgent(" org.mockito:mockito-core:5.14.1" ) { isTransitive = false } // configure mockito agent that is needed in newer java versions
9596 testRuntimeOnly(" org.junit.platform:junit-platform-launcher" )
9697}
9798
98- // Paper start
9999val generatedApiPath: java.nio.file.Path = rootProject.projectDir.toPath().resolve(" paper-api-generator/generated" )
100100idea {
101101 module {
@@ -109,8 +109,7 @@ sourceSets {
109109 }
110110 }
111111}
112- // Paper end
113- // Paper start - brigadier API
112+
114113val outgoingVariants = arrayOf(" runtimeElements" , " apiElements" , " sourcesElements" , " javadocElements" )
115114val mainCapability = " ${project.group} :${project.name} :${project.version} "
116115configurations {
@@ -133,15 +132,13 @@ configurations {
133132 }
134133 }
135134}
136- // Paper end
137135
138136configure<PublishingExtension > {
139137 publications.create<MavenPublication >(" maven" ) {
140- // Paper start - brigadier API
138+ // For Brigadier API
141139 outgoingVariants.forEach {
142140 suppressPomMetadataWarningsFor(it)
143141 }
144- // Paper end
145142 from(components[" java" ])
146143 }
147144}
@@ -181,14 +178,10 @@ tasks.withType<Javadoc> {
181178 options.links(
182179 " https://guava.dev/releases/33.3.1-jre/api/docs/" ,
183180 " https://javadoc.io/doc/org.yaml/snakeyaml/2.2/" ,
184- " https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion /" , // Paper - we don't want Java 5 annotations
185- // "https://javadoc.io/doc/net.md-5/bungeecord-chat/$bungeeCordChatVersion/", // Paper - don't link to bungee chat
186- // Paper start - add missing javadoc links
181+ " https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion /" ,
187182 " https://javadoc.io/doc/org.joml/joml/1.10.8/index.html" ,
188183 " https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0" ,
189184 " https://jspecify.dev/docs/api/" ,
190- // Paper end
191- // Paper start
192185 " https://jd.advntr.dev/api/$adventureVersion /" ,
193186 " https://jd.advntr.dev/key/$adventureVersion /" ,
194187 " https://jd.advntr.dev/text-minimessage/$adventureVersion /" ,
@@ -198,8 +191,7 @@ tasks.withType<Javadoc> {
198191 " https://jd.advntr.dev/text-logger-slf4j/$adventureVersion /" ,
199192 " https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion /" ,
200193 " https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/$log4jVersion /" ,
201- // Paper end
202- " https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3" , // Paper
194+ " https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3" ,
203195 )
204196 options.tags(" apiNote:a:API Note:" )
205197
@@ -227,20 +219,18 @@ tasks.withType<Javadoc> {
227219
228220tasks.test {
229221 useJUnitPlatform()
230- // Paper start - configure mockito agent that is needed in newer java versions
222+
223+ // configure mockito agent that is needed in newer java versions
231224 val provider = objects.newInstance<MockitoAgentProvider >()
232225 provider.fileCollection.from(mockitoAgent)
233226 jvmArgumentProviders.add(provider)
234- // Paper end - configure mockito agent that is needed in newer java versions
235227}
236228
237- // Paper start - compile tests with -parameters for better junit parameterized test names
229+ // Compile tests with -parameters for better junit parameterized test names
238230tasks.compileTestJava {
239231 options.compilerArgs.add(" -parameters" )
240232}
241- // Paper end
242233
243- // Paper start
244234val scanJar = tasks.register(" scanJarForBadCalls" , io.papermc.paperweight.tasks.ScanJarForBadCalls ::class ) {
245235 badAnnotations.add(" Lio/papermc/paper/annotation/DoNotUse;" )
246236 jarToScan.set(tasks.jar.flatMap { it.archiveFile })
@@ -249,8 +239,7 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.
249239tasks.check {
250240 dependsOn(scanJar)
251241}
252- // Paper end
253- // Paper start
242+
254243val scanJarForOldGeneratedCode = tasks.register(" scanJarForOldGeneratedCode" , io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode ::class ) {
255244 mcVersion.set(providers.gradleProperty(" mcVersion" ))
256245 annotation.set(" Lio/papermc/paper/generated/GeneratedFrom;" )
@@ -260,4 +249,3 @@ val scanJarForOldGeneratedCode = tasks.register("scanJarForOldGeneratedCode", io
260249tasks.check {
261250 dependsOn(scanJarForOldGeneratedCode)
262251}
263- // Paper end
0 commit comments