diff --git a/Paper-MojangAPI/build.gradle.kts b/Paper-MojangAPI/build.gradle.kts index 3275a3bf46..a278ee93d7 100644 --- a/Paper-MojangAPI/build.gradle.kts +++ b/Paper-MojangAPI/build.gradle.kts @@ -25,3 +25,12 @@ configure<PublishingExtension> { from(components["java"]) } } + +val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { + badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;") + jarToScan.set(tasks.jar.flatMap { it.archiveFile }) + classpath.from(configurations.compileClasspath) +} +tasks.check { + dependsOn(scanJar) +} diff --git a/patches/api/Build-system-changes.patch b/patches/api/Build-system-changes.patch index ccb6eb4a9c..443358d0c3 100644 --- a/patches/api/Build-system-changes.patch +++ b/patches/api/Build-system-changes.patch @@ -46,3 +46,42 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 "https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/", ) +@@ -0,0 +0,0 @@ tasks.withType<Javadoc> { + } + } + } ++ ++// Paper start ++val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { ++ badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;") ++ jarToScan.set(tasks.jar.flatMap { it.archiveFile }) ++ classpath.from(configurations.compileClasspath) ++} ++tasks.check { ++ dependsOn(scanJar) ++} ++// Paper end +diff --git a/src/main/java/io/papermc/paper/annotation/DoNotUse.java b/src/main/java/io/papermc/paper/annotation/DoNotUse.java +new file mode 100644 +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/annotation/DoNotUse.java +@@ -0,0 +0,0 @@ ++package io.papermc.paper.annotation; ++ ++import java.lang.annotation.ElementType; ++import java.lang.annotation.Retention; ++import java.lang.annotation.RetentionPolicy; ++import java.lang.annotation.Target; ++import org.jetbrains.annotations.ApiStatus; ++ ++/** ++ * Annotation used to mark methods or constructors which should not be called. ++ * ++ * <p>Separate from {@link Deprecated} to differentiate from the large amount of deprecations.</p> ++ */ ++@ApiStatus.Internal ++@Retention(RetentionPolicy.RUNTIME) ++@Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) ++public @interface DoNotUse { ++} diff --git a/patches/server/Build-system-changes.patch b/patches/server/Build-system-changes.patch index d8cd7b674d..3ddabd96bb 100644 --- a/patches/server/Build-system-changes.patch +++ b/patches/server/Build-system-changes.patch @@ -48,6 +48,24 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 ) for (tld in setOf("net", "com", "org")) { attributes("$tld/bukkit", "Sealed" to true) +@@ -0,0 +0,0 @@ tasks.shadowJar { + } + } + ++// Paper start ++val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { ++ badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;") ++ jarToScan.set(tasks.shadowJar.flatMap { it.archiveFile }) ++ classpath.from(configurations.compileClasspath) ++} ++tasks.check { ++ dependsOn(scanJar) ++} ++// Paper end ++ + tasks.test { + exclude("org/bukkit/craftbukkit/inventory/ItemStack*Test.class") + } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/patches/server/Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 0ecd25b1d4..78bfcf0b6f 100644 --- a/patches/server/Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -31,9 +31,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 runtimeOnly("org.xerial:sqlite-jdbc:3.36.0.3") runtimeOnly("mysql:mysql-connector-java:8.0.29") runtimeOnly("com.lmax:disruptor:3.4.4") // Paper -@@ -0,0 +0,0 @@ tasks.shadowJar { - } +@@ -0,0 +0,0 @@ tasks.check { } + // Paper end +// Paper start - include reobf mappings in jar for stacktrace deobfuscation +abstract class IncludeMappings : BaseTask() {