diff --git a/build.gradle.kts b/build.gradle.kts index d0568a914..1296a32f2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,10 +2,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import java.io.ByteArrayOutputStream import java.net.URL -import java.nio.channels.Channels -import java.nio.file.Files -import java.nio.file.Paths -import java.nio.file.StandardCopyOption + plugins { java @@ -117,41 +114,7 @@ tasks.build { // testWithPaper.mustRunAfter(tasks.shadowJar) } -val testDir = "target/server/" -val setupServer = tasks.create("setupServer") { - dependsOn(tasks.shadowJar) - doFirst { - // clean - file("${testDir}/").deleteRecursively() - file("${testDir}/plugins").mkdirs() - - // Downloading latest paper jar. - val paperUrl = URL("https://papermc.io/api/v1/paper/1.16.4/latest/download") - val paperReadableByteChannel = Channels.newChannel(paperUrl.openStream()) - val paperFile = file("${testDir}/paper.jar") - val paperFileOutputStream = paperFile.outputStream() - val paperFileChannel = paperFileOutputStream.channel - paperFileChannel.transferFrom(paperReadableByteChannel, 0, Long.MAX_VALUE) - - // Cloning test setup. - gitClone("https://github.com/PolyhedralDev/WorldGenTestServer") - // Copying plugins - Files.move(Paths.get("WorldGenTestServer/plugins"), - Paths.get("$testDir/plugins"), - StandardCopyOption.REPLACE_EXISTING) - // Copying config - val serverText = URL("https://raw.githubusercontent.com/PolyhedralDev/WorldGenTestServer/master/server.properties").readText() - file("${testDir}/server.properties").writeText(serverText) - val bukkitText = URL("https://raw.githubusercontent.com/PolyhedralDev/WorldGenTestServer/master/bukkit.yml").readText() - file("${testDir}/bukkit.yml").writeText(bukkitText.replace("\${world}", "world").replace("\${gen}", "Terra:DEFAULT")) - - File("${testDir}/eula.txt").writeText("eula=true") - - // clean up - file("WorldGenTestServer").deleteRecursively() - } -} val downloadDefaultPacks = tasks.create("downloadDefaultPacks") { doFirst { @@ -168,31 +131,6 @@ val downloadDefaultPacks = tasks.create("downloadDefaultPacks") { } } -val testWithPaper = task(name = "testWithPaper") { - standardInput = System.`in` - dependsOn(tasks.shadowJar) - // Copy Terra into dir - doFirst { - copy { - from("${project("platforms:bukkit").buildDir}/libs/Terra-${versionObj}.jar") - into("${testDir}/plugins/") - } - } - - main = "io.papermc.paperclip.Paperclip" - jvmArgs = listOf("-XX:+UseG1GC", "-XX:+ParallelRefProcEnabled", "-XX:MaxGCPauseMillis=200", - "-XX:+UnlockExperimentalVMOptions", "-XX:+DisableExplicitGC", "-XX:+AlwaysPreTouch", - "-XX:G1NewSizePercent=30", "-XX:G1MaxNewSizePercent=40", "-XX:G1HeapRegionSize=8M", - "-XX:G1ReservePercent=20", "-XX:G1HeapWastePercent=5", "-XX:G1MixedGCCountTarget=4", - "-XX:InitiatingHeapOccupancyPercent=15", "-XX:G1MixedGCLiveThresholdPercent=90", - "-XX:G1RSetUpdatingPauseTimePercent=5", "-XX:SurvivorRatio=32", "-XX:+PerfDisableSharedMem", - "-XX:MaxTenuringThreshold=1", "-Dusing.aikars.flags=https://mcflags.emc.gs", - "-Daikars.new.flags=true", "-DIReallyKnowWhatIAmDoingISwear") - maxHeapSize = "2G" - args = listOf("nogui") - workingDir = file("${testDir}/") - classpath = files("${testDir}/paper.jar") -} /** diff --git a/platforms/bukkit/build.gradle.kts b/platforms/bukkit/build.gradle.kts index b9a051d8b..913bba658 100644 --- a/platforms/bukkit/build.gradle.kts +++ b/platforms/bukkit/build.gradle.kts @@ -1,3 +1,10 @@ +import java.io.ByteArrayOutputStream +import java.net.URL +import java.nio.channels.Channels +import java.nio.file.Files +import java.nio.file.Paths +import java.nio.file.StandardCopyOption + plugins { java maven @@ -48,6 +55,68 @@ tasks.withType { ) } +val testDir = "target/server/" + +val setupServer = tasks.create("setupServer") { + dependsOn(tasks.shadowJar) + doFirst { + // clean + file("${testDir}/").deleteRecursively() + file("${testDir}/plugins").mkdirs() + + // Downloading latest paper jar. + val paperUrl = URL("https://papermc.io/api/v1/paper/1.16.4/latest/download") + val paperReadableByteChannel = Channels.newChannel(paperUrl.openStream()) + val paperFile = file("${testDir}/paper.jar") + val paperFileOutputStream = paperFile.outputStream() + val paperFileChannel = paperFileOutputStream.channel + paperFileChannel.transferFrom(paperReadableByteChannel, 0, Long.MAX_VALUE) + + // Cloning test setup. + gitClone("https://github.com/PolyhedralDev/WorldGenTestServer") + // Copying plugins + Files.move(Paths.get("WorldGenTestServer/plugins"), + Paths.get("$testDir/plugins"), + StandardCopyOption.REPLACE_EXISTING) + // Copying config + val serverText = URL("https://raw.githubusercontent.com/PolyhedralDev/WorldGenTestServer/master/server.properties").readText() + file("${testDir}/server.properties").writeText(serverText) + val bukkitText = URL("https://raw.githubusercontent.com/PolyhedralDev/WorldGenTestServer/master/bukkit.yml").readText() + file("${testDir}/bukkit.yml").writeText(bukkitText.replace("\${world}", "world").replace("\${gen}", "Terra:DEFAULT")) + + File("${testDir}/eula.txt").writeText("eula=true") + + // clean up + file("WorldGenTestServer").deleteRecursively() + } +} + +val testWithPaper = task(name = "testWithPaper") { + standardInput = System.`in` + dependsOn(tasks.shadowJar) + // Copy Terra into dir + doFirst { + copy { + from("${buildDir}/libs/Terra-${version}.jar") + into("${testDir}/plugins/") + } + } + + main = "io.papermc.paperclip.Paperclip" + jvmArgs = listOf("-XX:+UseG1GC", "-XX:+ParallelRefProcEnabled", "-XX:MaxGCPauseMillis=200", + "-XX:+UnlockExperimentalVMOptions", "-XX:+DisableExplicitGC", "-XX:+AlwaysPreTouch", + "-XX:G1NewSizePercent=30", "-XX:G1MaxNewSizePercent=40", "-XX:G1HeapRegionSize=8M", + "-XX:G1ReservePercent=20", "-XX:G1HeapWastePercent=5", "-XX:G1MixedGCCountTarget=4", + "-XX:InitiatingHeapOccupancyPercent=15", "-XX:G1MixedGCLiveThresholdPercent=90", + "-XX:G1RSetUpdatingPauseTimePercent=5", "-XX:SurvivorRatio=32", "-XX:+PerfDisableSharedMem", + "-XX:MaxTenuringThreshold=1", "-Dusing.aikars.flags=https://mcflags.emc.gs", + "-Daikars.new.flags=true", "-DIReallyKnowWhatIAmDoingISwear") + maxHeapSize = "2G" + args = listOf("nogui") + workingDir = file("${testDir}/") + classpath = files("${testDir}/paper.jar") +} + tasks.named("shadowJar") { archiveClassifier.set("") @@ -61,4 +130,12 @@ tasks.named("shadowJ relocate("com.dfsek.tectonic", "com.dfsek.terra.lib.tectonic") relocate("net.jafama", "com.dfsek.terra.lib.jafama") minimize() +} + +fun gitClone(name: String) { + val stdout = ByteArrayOutputStream() + exec { + commandLine = mutableListOf("git", "clone", name) + standardOutput = stdout + } } \ No newline at end of file