plugins { id 'java' id 'com.github.johnrengelman.shadow' version '7.0.0' id 'maven-publish' } group 'WildLoaders' version = "1.0.1" subprojects { apply plugin: 'java' apply plugin: 'com.github.johnrengelman.shadow' repositories { maven { url 'https://repo.bg-software.com/repository/nms/' } maven { url 'https://repo.bg-software.com/repository/common/' } } dependencies { compileOnly 'com.bgsoftware.common.reflection:ReflectionUtils:latest' } shadowJar { archiveName = "${project.name}.jar" destinationDir = file("../archive/") } build { dependsOn shadowJar } } repositories { maven { url 'https://repo.bg-software.com/repository/nms/' } maven { url 'https://repo.bg-software.com/repository/api/' } maven { url 'https://repo.bg-software.com/repository/public-libs/' } maven { url 'https://repo.bg-software.com/repository/common/' } String mavenUsername = project.hasProperty('mavenUsername') ? project.mavenUsername : System.getenv('mavenUsername'); String mavenPassword = project.hasProperty('mavenPassword') ? project.mavenPassword : System.getenv('mavenPassword'); if(mavenUsername != null && mavenPassword != null) { maven { url 'https://repo.bg-software.com/repository/private-libs/' credentials { username mavenUsername password mavenPassword } } } } dependencies { implementation project(":API") implementation fileTree("archive") implementation 'com.bgsoftware.common.reflection:ReflectionUtils:latest' // Spigot jars compileOnly "org.spigotmc:v1_8_R3:latest" compileOnly 'org.spigotmc:v1_16_R3-Tuinity:latest' // Plugin Hooks compileOnly "com.massivecraft:Factions:latest" compileOnly "com.drtshock:FactionsUUID:latest" compileOnly "net.prosavage:FactionsX:latest" compileOnly "com.massivecraft:MassiveCore:latest" compileOnly "com.bgsoftware:SuperiorSkyblockAPI:latest" compileOnly "com.songoda:EpicSpawners-6:latest" } jar { from { for (File file : new File("archive").listFiles()) { zipTree(file) } } } processResources { outputs.upToDateWhen {false} String versionNumber = System.getenv("BUILD_NUMBER") == null ? version : version + "." + System.getenv("BUILD_NUMBER") eachFile { details -> if (details.name.contentEquals('plugin.yml')) { filter { String line -> line.replace('${project.version}', versionNumber) } } } } shadowJar { dependsOn(jar) if(System.getenv("BUILD_NUMBER") == null){ archiveName = rootProject.name + "-" + version + ".jar" } else{ archiveName = rootProject.name + "-" + version + "-b" + System.getenv("BUILD_NUMBER") + ".jar" } delete fileTree('./target/') { exclude archiveName } destinationDir = file("./target/") from sourceSets.getByName("main").output configurations = [project.configurations.getByName("runtimeClasspath")] } task copyAPI(type: Copy) { from './archive/API.jar' into './target/' rename('API.jar', rootProject.name + 'API.jar') } clean { delete file('./archive/') } build { dependsOn shadowJar dependsOn copyAPI dependsOn clean } publish.shouldRunAfter shadowJar shadowJar.shouldRunAfter build build.shouldRunAfter subprojects.build