plugins { id 'java' id 'com.github.johnrengelman.shadow' version '8.1.1' } group = 'me.theclashfruit' version = project.plugin_version repositories { mavenCentral() maven { name = "Spigot" url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" } maven { name = "Sonatype" url = "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { compileOnly("org.spigotmc:spigot-api:${project.bukkit_version}") implementation 'org.eclipse.jetty:jetty-server:12.0.8' implementation 'org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.8' implementation 'org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server:12.0.8' implementation 'com.google.code.gson:gson:2.10.1' } processResources { inputs.property "version", project.version inputs.property "bukkit_version", project.bukkit_version filteringCharset "UTF-8" filesMatching("plugin.yml") { expand "version": project.version, "bukkit_version": project.bukkit_version } } tasks.register("launchMinecraftServer", JavaExec) { group('minecraft') dependsOn("build") classpath = sourceSets.main.runtimeClasspath main = "me.theclashfruit.devrunner.DevRunner" doFirst { copy { from(layout.buildDirectory.file("libs/${project.name}-${project.version}.jar")) into(layout.projectDirectory.file("run/plugins")) } copy { from(configurations.runtimeClasspath) into(layout.projectDirectory.file("run")) include "spigot*" // rename("spigot-${project.bukkit_version}.jar", "server.jar") } } } shadowJar { // exclude devrunner from jar exclude('me/theclashfruit/devrunner') // relocate stuff relocate('com.google.gson', 'me.theclashfruit.deps.gson') relocate('org.eclipse.jetty', 'me.theclashfruit.deps.jetty') relocate('jakarta', 'me.theclashfruit.deps.jakarta') relocate('org.slf4j', 'me.theclashfruit.deps.slf4j') relocate('org.objectweb.asm', 'me.theclashfruit.deps.asm') archiveBaseName.set(rootProject.name) archiveClassifier.set('') archiveVersion.set(project.version) } tasks.jar.enabled = false tasks.build { dependsOn tasks.processResources dependsOn tasks.shadowJar } test { useJUnitPlatform() }