diff --git a/build.gradle b/build.gradle
index 72b25a8..f4a478c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,14 +17,12 @@
* along with this program. If not, see .
*/
-
-import org.apache.tools.ant.taskdefs.condition.Os
-
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '5.0.0'
+ id 'de.steamwar.gradle' version 'RELEASE'
}
group 'de.steamwar'
@@ -32,26 +30,6 @@ version ''
mainClassName = ''
-Properties steamwarProperties = new Properties()
-if (file("steamwar.properties").exists()) {
- steamwarProperties.load(file("steamwar.properties").newDataInputStream())
-}
-
-ext {
- buildName = 'PersistentBungeeCore'
- artifactName = 'persistentbungeecore'
-
- uberJarName = "${buildName}-all.jar"
- jarName = "${artifactName}.jar"
- libs = "${buildDir}/libs"
-
- if (Os.isFamily(Os.FAMILY_WINDOWS)) {
- operatingSystem = "windows"
- } else {
- operatingSystem = "unix"
- }
-}
-
compileJava.options.encoding = 'UTF-8'
sourceCompatibility = 1.8
@@ -61,6 +39,7 @@ sourceSets {
main {
java {
srcDirs = ['src/']
+ include '**/*.java', '**/*.kt'
}
resources {
srcDirs = ['src/']
@@ -71,10 +50,6 @@ sourceSets {
repositories {
mavenCentral()
-
- maven {
- url = uri('https://steamwar.de/maven')
- }
}
dependencies {
@@ -83,153 +58,9 @@ dependencies {
annotationProcessor 'org.projectlombok:lombok:1.18.22'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
- compileOnly 'de.steamwar:waterfall:RELEASE'
+ compileOnly swdep("waterfall")
}
-task buildProject {
- description 'Build this project'
- group "Steamwar"
-
- dependsOn build
+steamwar {
+ publishing = true
}
-
-task finalizeProject {
- description 'Finalize this project'
- group "Steamwar"
-
- doLast {
- if ("${buildDir}" == null) {
- return
- }
- delete fileTree("${libs}").matching {
- exclude("${uberJarName}")
- }
- file(libs + "/" + uberJarName).renameTo(file(libs + "/" + jarName))
- }
-}
-build.finalizedBy(finalizeProject)
-
-if (steamwarProperties.containsKey("hostname")) {
- String hostname = steamwarProperties.get("hostname")
- String uploadPath = steamwarProperties.getOrDefault("uploadPath", "~")
-
- String server = steamwarProperties.getOrDefault("server", "Dev1.15")
- String serverStartFlags = steamwarProperties.getOrDefault("serverStartFlags", "")
-
- task uploadProject {
- description 'Upload this project'
- group "Steamwar"
-
- doLast {
- await(shell("scp ${libs}/${jarName} ${hostname}:${uploadPath}/${server}/plugins"))
- if (steamwarProperties.getOrDefault("directStart", "false") == "false" && !answer("Start ${server} server?")) {
- return
- }
- serverStart(server, serverStartFlags, hostname)
- }
- }
- uploadProject.dependsOn(buildProject)
-
- task startDevServer {
- description 'Start the DevServer'
- group "Steamwar"
-
- doLast {
- serverStart(server, serverStartFlags, hostname)
- }
- }
-}
-
-private def await(Process proc) {
- def out = new StringBuilder()
- def err = new StringBuilder()
- proc.waitForProcessOutput(out, err)
- return [out, err, proc.exitValue()]
-}
-
-private def shell(String command) {
- if (operatingSystem == "unix") {
- return ['bash', '-c', command].execute()
- } else {
- return ["cmd", "/c", command].execute()
- }
-}
-
-private def serverStart(String serverName, String serverFlags, String hostname) {
- def proc = shell("ssh -t ${hostname} \"./mc ${serverFlags} ${serverName}\"")
-
- Set strings = new HashSet<>()
- File file = new File("${projectDir}/ignoredlog");
- if (file.exists()) {
- new BufferedReader(new InputStreamReader(new FileInputStream(file))).readLines().forEach({ s ->
- strings.add(s)
- })
- }
-
- Thread outputThread = new Thread({
- Reader reader = proc.getInputStream().newReader();
- Writer writer = System.out.newWriter();
- try {
- while (proc.alive) {
- String s = reader.readLine()
- if (s == null) {
- return
- }
- if (strings.stream().anyMatch({check -> s.contains(check)})) {
- continue
- }
- writer.write(s + "\n")
- writer.flush()
- }
- } catch (IOException e) {
- // Ignored
- }
- })
- outputThread.setName("${serverName} - OutputThread")
- outputThread.start()
-
- Writer writer
- Thread inputThread = new Thread({
- Reader reader = System.in.newReader()
- writer = proc.getOutputStream().newWriter()
- try {
- while (proc.alive) {
- String s = reader.readLine()
- writer.write(s + "\n")
- writer.flush()
- }
- } catch (IOException e) {
- // Ignored
- }
- })
- inputThread.setName("${serverName} - InputThread")
- inputThread.start()
-
- gradle.buildFinished { buildResult ->
- if (!proc.alive) {
- return
- }
- writer = proc.getOutputStream().newWriter()
- writer.write("stop\n")
- writer.flush()
- awaitClose(proc, outputThread, inputThread)
- }
- awaitClose(proc, outputThread, inputThread)
-};
-
-private static def awaitClose(Process proc, Thread outputThread, Thread inputThread) {
- while (proc.alive) {
- Thread.sleep(10)
- }
- proc.closeStreams()
- outputThread.interrupt()
- inputThread.interrupt()
-}
-
-private def answer(String question) {
- while (System.in.available() > 0) System.in.read()
- println(question)
- boolean valid = "Yy".contains(((char) System.in.read()).toString())
- while (System.in.available() > 0) System.in.read()
- return valid
-}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 5da555c..f7829bc 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -17,4 +17,13 @@
* along with this program. If not, see .
*/
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ maven {
+ url = uri("https://steamwar.de/maven/")
+ }
+ }
+}
+
rootProject.name = 'PersistentBungeeCore'
diff --git a/steamwarci.yml b/steamwarci.yml
index 3dc05d7..9be866a 100644
--- a/steamwarci.yml
+++ b/steamwarci.yml
@@ -6,4 +6,5 @@ artifacts:
"/binarys/persistentbungeecore.jar": "build/libs/persistentbungeecore.jar"
release:
- - "mvn deploy:deploy-file -DgroupId=de.steamwar -DartifactId=persistentbungeecore -Dversion=RELEASE -Dpackaging=jar -Dfile=build/libs/persistentbungeecore.jar -Durl=file:///var/www/html/maven/"
\ No newline at end of file
+ - "./gradlew release"
+ - "./gradlew --stop"
\ No newline at end of file