import org.gradle.api.GradleException plugins { id 'java' id 'com.github.johnrengelman.shadow' version '7.0.0' id 'maven-publish' } group 'WildLoaders' version = "2022.7" allprojects { 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/api/' } maven { url 'https://repo.bg-software.com/repository/common/' } maven { url 'https://repo.bg-software.com/repository/dependencies/' } } dependencies { compileOnly "com.bgsoftware.common.reflection:ReflectionUtils:latest" } task checkDebug() { Set filesWithDebug = fileTree('src/main/java').filter { file -> file.text.contains('Bukkit.broadcastMessage') }.getFiles() if(!filesWithDebug.isEmpty()) throw new GradleException("Found debug messages: " + filesWithDebug) } build { dependsOn checkDebug dependsOn shadowJar } } subprojects { shadowJar { archiveFileName = "${project.name}.jar" destinationDirectory = file("../archive/") } } dependencies { implementation project(":API") implementation fileTree("archive") implementation 'com.bgsoftware.common.reflection:ReflectionUtils:latest' implementation 'com.bgsoftware.common.config:CommentedConfiguration:1.0.3' // Spigot jars compileOnly "org.spigotmc:v1_8_R3:latest" compileOnly 'org.spigotmc:v1_16_R3-Tuinity: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 + "-b" + 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 } exclude '*exclude.jar' 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