plugins { id 'java' } group = 'ru.bitheaven' version = '1.0.0' repositories { mavenCentral() maven { name = "papermc-repo" url = "https://repo.papermc.io/repository/maven-public/" } maven { name = "sonatype" url = "https://oss.sonatype.org/content/groups/public/" } } configurations { includedJars } dependencies { compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT") implementation group: 'org.yaml', name: 'snakeyaml', version: '2.3' includedJars group: 'org.yaml', name: 'snakeyaml', version: '2.3' implementation group: 'org.json', name: 'json', version: '20240303' includedJars group: 'org.json', name: 'json', version: '20240303' } def targetJavaVersion = 21 java { def javaVersion = JavaVersion.toVersion(targetJavaVersion) sourceCompatibility = javaVersion targetCompatibility = javaVersion if (JavaVersion.current() < javaVersion) { toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) } } jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE from { configurations.includedJars.collect { it.isDirectory() ? it : zipTree(it) } } } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { options.release.set(targetJavaVersion) } } processResources { def props = [version: version] inputs.properties props filteringCharset 'UTF-8' filesMatching('paper-plugin.yml') { expand props } }