plugins { id("java-library") id("xyz.jpenilla.run-paper") version "3.0.2" } repositories { mavenCentral() maven("https://repo.papermc.io/repository/maven-public/") maven("https://repo.dmulloy2.net/repository/public/") } val proguardConfig by configurations.creating dependencies { compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT") compileOnly("com.comphenix.protocol:ProtocolLib:5.3.0") proguardConfig("com.guardsquare:proguard-base:7.4.2") } java { toolchain.languageVersion = JavaLanguageVersion.of(21) } val obfuscateTask = tasks.register("obfuscate") { description = "Obfuscate the plugin jar using ProGuard" mainClass.set("proguard.ProGuard") classpath = proguardConfig val inJar = tasks.named("jar").get().archiveFile.get().asFile.path val outJar = layout.buildDirectory.file("libs/${project.name}-${version}-obf.jar").get().asFile.path args( "-injars", inJar, "-outjars", outJar, "-dontwarn", "-ignorewarnings", "-keep", "class dev.loki.mdbd", "-keep", "class dev.loki.mdbdBootstrap", "-keep", "class dev.loki.mdbdLoader", "-keep", "class dev.loki.command.**", "-keep", "class dev.loki.listener.**", "-keepclassmembers", "class * { @org.bukkit.event.EventHandler *; }", "-keepnames", "class dev.loki.**", "-dontoptimize", "-allowaccessmodification", "-repackageclasses", "mdbd", "-keepattributes", "Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,EnclosingMethod" ) dependsOn(tasks.named("jar")) } tasks { runServer { minecraftVersion("1.21.1") jvmArgs("-Xms2G", "-Xmx2G") } processResources { val props = mapOf("version" to version) filesMatching("*.yml") { expand(props) } } named("build") { dependsOn(obfuscateTask) } }