import org.apache.tools.ant.filters.ReplaceTokens plugins { id 'com.github.johnrengelman.shadow' version '8.1.1' id 'org.cadixdev.licenser' version '0.6.1' id 'org.ajoberstar.grgit' version '5.0.0' id 'java' } group 'net.william278' version "$ext.plugin_version${versionMetadata()}" description "$ext.plugin_description" defaultTasks 'licenseFormat', 'build' ext { set 'version', version.toString() set 'description', description.toString() } repositories { mavenCentral() maven { url = 'https://repo.papermc.io/repository/maven-public/' } maven { url = 'https://jitpack.io/' } maven { url = 'https://repo.minebench.de/' } maven { url = 'https://mvn.exceptionflug.de/repository/exceptionflug-public/' } } dependencies { compileOnly 'com.velocitypowered:velocity-api:3.1.1' compileOnly 'net.luckperms:api:5.4' compileOnly 'dev.simplix:protocolize-api:2.2.6' compileOnly 'io.netty:netty-codec-http:4.1.91.Final' compileOnly 'io.github.miniplaceholders:miniplaceholders-api:2.0.0' compileOnly 'net.william278:PAPIProxyBridge:1.0' compileOnly 'org.projectlombok:lombok:1.18.26' compileOnly 'net.kyori:adventure-text-minimessage:4.13.0' implementation 'org.apache.commons:commons-text:1.10.0' implementation 'net.william278:Annotaml:2.0.1' implementation 'dev.dejvokep:boosted-yaml:1.3.1' implementation 'de.themoep:minedown-adventure:1.7.2-SNAPSHOT' implementation 'net.william278:DesertWell:1.1.1' annotationProcessor 'org.projectlombok:lombok:1.18.26' } processResources { filesMatching(['**/*.json', '**/*.yml']) { filter ReplaceTokens as Class, beginToken: '${', endToken: '}', tokens: rootProject.ext.properties } } license { header = rootProject.file('HEADER') include '**/*.java' newLine = true } logger.lifecycle("Building Velocitab ${version} by William278") version rootProject.version archivesBaseName = "${rootProject.name}" shadowJar { relocate 'org.apache.commons.text', 'net.william278.velocitab.libraries.commons.text' relocate 'org.apache.commons.lang3', 'net.william278.velocitab.libraries.commons.lang3' relocate 'org.jetbrains', 'net.william278.velocitab.libraries' relocate 'org.intellij', 'net.william278.velocitab.libraries' relocate 'de.themoep', 'net.william278.velocitab.libraries' relocate 'dev.dejvokep.boostedyaml', 'net.william278.velocitab.libraries.boostedyaml' relocate 'net.william278.annotaml', 'net.william278.velocitab.libraries.annotaml' relocate 'net.william278.desertwell', 'net.william278.velocitab.libraries.desertwell' dependencies { //noinspection GroovyAssignabilityCheck exclude dependency(':slf4j-api') } destinationDirectory.set(file("$rootDir/target")) archiveClassifier.set('') } jar.dependsOn shadowJar clean.delete "$rootDir/target" @SuppressWarnings('GrMethodMayBeStatic') def versionMetadata() { // Get if there is a tag for this commit def tag = grgit.tag.list().find { it.commit.id == grgit.head().id } if (tag != null) { return '' } // Otherwise, get the last commit hash and if it's a clean head if (grgit == null) { return '-' + System.getenv("GITHUB_RUN_NUMBER") ? 'build.' + System.getenv("GITHUB_RUN_NUMBER") : 'unknown' } return '-' + grgit.head().abbreviatedId + (grgit.status().clean ? '' : '-indev') }