WorldSystem/build.gradle
CrazyCloudCraft | Argantiu b4c6347f1b
Added Source
2023-08-19 16:34:15 +02:00

180 lines
5.8 KiB
Groovy

plugins {
id 'com.github.johnrengelman.shadow' version '8.1.1'
id 'kr.entree.spigradle' version '2.4.3'
id 'io.freefair.lombok' version '8.2.2'
id 'java'
id 'jacoco'
}
sourceCompatibility = 17
targetCompatibility = 17
ext {
mcVersion = "1.20.1"
}
archivesBaseName = "WorldSystem"
version = "2.4.35-dev"
spigot {
group "de.butzlabben"
name = "WorldSystem"
authors = [" Trainerlord, Butzlabben & CrazyCloudCraft "]
apiVersion = "1.13"
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.0")
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.11.0'
compileOnly("me.clip:placeholderapi:2.11.3")
compileOnly("com.github.MilkBowl:VaultAPI:1.7.1")
compileOnly("com.mojang:authlib:1.5.26")
compileOnly("org.projectlombok:lombok:1.18.26")
compileOnly("org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT")
compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.2.16-SNAPSHOT")
compileOnly("com.sk89q.worldedit:worldedit-core:7.2.16-SNAPSHOT")
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit:2.7.0")
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core:2.7.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'