plugins { id 'com.github.johnrengelman.shadow' version '8.1.1' id 'kr.entree.spigradle' version '2.4.3' id 'io.freefair.lombok' version '8.6' id 'java' id 'jacoco' } sourceCompatibility = 17 targetCompatibility = 17 ext { mcVersion = "1.20.4" } archivesBaseName = "WorldSystem" version = "2.4.37" spigot { group "de.butzlabben" name = "WorldSystem" authors = [" Trainerlord, Butzlabben & CrazyCloudCraft "] apiVersion = "1.20" depends = ["WorldEdit"] load = STARTUP commands { "ws" { description = 'All WorldSystem Commands' permissionMessage = 'You do not have permission!' } } permissions { 'ws.*' { description = 'gives all Perms' defaults = 'op' children = [ 'ws.tp.*':true, 'ws.get':true, 'ws.sethome':true, 'ws.tp.world':true, 'ws.tp.toother':true, 'ws.tp.other':true, 'ws.build':true, 'ws.gamemode':true, 'ws.delete':true, 'ws.lag':true, 'ws.big':true, 'ws.large':true, //'ws.confirm':true ] } 'ws.sethome' { description = 'You can set a different worldspawn' defaults = true } 'ws.tp' { description = 'You can teleport everything' defaults = 'op' children = ['ws.tp.toother':true,'ws.tp.other':true,'ws.tp.world':true] } 'ws.build' { description = 'You can build on other Worlds without WorldPermissions' defaults = 'op' } 'ws.get' { description = 'You can create a world via /ws get' defaults = true } 'ws.delete' { description = 'You can delete a world' defaults = 'op' } 'ws.gamemode' { description = 'You can change GameMode on other worlds' defaults = 'op' } 'ws.tp.other' { description = 'You can teleport other persons' defaults = 'op' } 'ws.tp.toother' { description = 'You can teleport across worlds' defaults = 'op' } 'ws.tp.world' { description = 'You can teleport to without rights World' defaults = 'op' } 'ws.lag' { description = 'You can see lag messages' defaults = 'op' } 'ws.big' { description = 'Gives you a bigger world (if set)' defaults = 'op' } 'ws.large' { defaults = 'op' children = ['ws.big':true] /*} 'ws.confirm' { description = 'You can confirm (if needed) an auto-update' defaults = 'op'*/ } } } repositories { mavenCentral() maven { url "https://hub.spigotmc.org/nexus/content/repositories/public/" } maven { url "https://repo.extendedclip.com/content/repositories/placeholderapi/" } maven { url "https://ci.athion.net/job/FastAsyncWorldEdit/ws" } maven { url "https://jitpack.io" } maven { url "https://libraries.minecraft.net" } maven { url "https://repo.onarandombox.com/content/groups/public/" } maven { url "https://maven.enginehub.org/repo/" } maven { url "https://ci.athion.net/job/FastAsyncWorldEdit/changes/" } maven { url "https://mvnrepository.com/artifact/commons-io/commons-io/" } // Commons - IO maven { url "https://maven.enginehub.org/repo/" } // WorldEdit maven { url "https://mvn.intellectualsites.com/content/repositories/releases/" } } dependencies { implementation("org.yaml:snakeyaml:2.2") implementation("net.kyori:adventure-text-minimessage:4.14.0") compileOnly lombok() annotationProcessor lombok() //Test dependencies testImplementation 'org.junit.jupiter:junit-jupiter:5.+' testImplementation "org.mockito:mockito-core:5.+" testImplementation 'org.assertj:assertj-core:3.+' testImplementation lombok() testAnnotationProcessor lombok() implementation group: 'commons-io', name: 'commons-io', version: '2.15.1' compileOnly("me.clip:placeholderapi:2.11.5") compileOnly("com.github.MilkBowl:VaultAPI:1.7.1") compileOnly("com.mojang:authlib:1.5.26") compileOnly("org.projectlombok:lombok:1.18.30") compileOnly("org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT") compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.2.21-SNAPSHOT") compileOnly("com.sk89q.worldedit:worldedit-core:7.2.21-SNAPSHOT") compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit:2.9.0") compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core:2.9.0") } shadowJar { minimize() archiveFileName.set("${project.name}-${project.version}.jar") } javadoc { options.links( 'https://javadoc.io/static/org.jetbrains/annotations/20.1.0/', 'https://docs.oracle.com/javase/17/docs/api/', 'https://papermc.io/javadocs/paper/1.20/' ) source = sourceSets.main.allJava include("**/api/*") destinationDir = new File("build/javadocs") } processResources { project.properties.put("version", this.version) expand project.properties from(sourceSets.main.resources.srcDirs) { duplicatesStrategy DuplicatesStrategy.INCLUDE } } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' options.compilerArgs += ["-parameters"] options.fork = true } test { useJUnitPlatform() testLogging { events "passed", "skipped", "failed" } ignoreFailures = false } tasks.build.dependsOn tasks.shadowJar defaultTasks 'build'