plugins { `java-library` id("com.google.protobuf") version "0.10.0" id("io.papermc.paperweight.userdev") version "2.0.0-SNAPSHOT" } val protobufVersion = "4.35.1" sourceSets { main { proto { srcDir("../../proto") } } } protobuf { protoc { artifact = "com.google.protobuf:protoc:$protobufVersion" } plugins { create("ffi") { path = "${rootProject.projectDir}/protoc-gen-ffi/build/libs/protoc-gen-ffi.jar" } } generateProtoTasks { all().forEach { task -> task.plugins { create("ffi") } } } } tasks.named("generateProto") { dependsOn(":protoc-gen-ffi:jar") } repositories { mavenCentral() maven { name = "papermc" url = uri("https://repo.papermc.io/repository/maven-public/") } } dependencies { paperweight.paperDevBundle("26.2.build.117-stable") implementation("net.sf.jopt-simple:jopt-simple:6.0-alpha-3") implementation("org.apache.maven:maven-resolver-provider:3.9.6") implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-util:1.9.18") implementation("com.google.protobuf:protobuf-java:$protobufVersion") implementation("org.slf4j:slf4j-jdk14:2.0.16") testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.named("test") { useJUnitPlatform() } java { toolchain { languageVersion = JavaLanguageVersion.of(25) } } tasks.withType { options.isWarnings = false options.compilerArgs.addAll(listOf( "-Xlint:none", "-nowarn" )) } tasks.named("jar") { duplicatesStrategy = DuplicatesStrategy.EXCLUDE dependsOn(configurations.compileClasspath) from({ configurations.compileClasspath.get().map { file -> if (file.isDirectory) file else zipTree(file) } }) exclude( "META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA" ) }