diff --git a/src/de/steamwar/bungeecore/Node.java b/src/de/steamwar/bungeecore/Node.java index f07293a..6d67b89 100644 --- a/src/de/steamwar/bungeecore/Node.java +++ b/src/de/steamwar/bungeecore/Node.java @@ -81,6 +81,8 @@ public abstract class Node { protected void constructServerstart(File directory, List cmd, String serverJar, String worldDir, String levelName, int port, String xmx, String... dParams) { if (JAVA_8.contains(serverJar)) cmd.add("/usr/lib/jvm/java-8-openj9-amd64/bin/java"); + else if(serverJar.equals("paper-1.19.jar")) + cmd.add("/usr/lib/jvm/java-17-openjdk-amd64/bin/java"); else cmd.add("java"); @@ -88,8 +90,30 @@ public abstract class Node { cmd.add("-D" + param); } cmd.add("-Xmx" + xmx); - cmd.add("-Xshareclasses:nonfatal,name=" + directory.getName()); - cmd.addAll(OPENJ9_ARGS); + if(serverJar.equals("paper-1.19.jar")) { + cmd.add("-XX:+UseG1GC"); + cmd.add("-XX:+ParallelRefProcEnabled"); + cmd.add("-XX:MaxGCPauseMillis=200"); + cmd.add("-XX:+UnlockExperimentalVMOptions"); + cmd.add("-XX:+DisableExplicitGC"); + cmd.add("-XX:+AlwaysPreTouch"); + cmd.add("-XX:G1NewSizePercent=30"); + cmd.add("-XX:G1MaxNewSizePercent=40"); + cmd.add("-XX:G1HeapRegionSize=8M"); + cmd.add("-XX:G1ReservePercent=20"); + cmd.add("-XX:G1HeapWastePercent=5"); + cmd.add("-XX:G1MixedGCCountTarget=4"); + cmd.add("-XX:InitiatingHeapOccupancyPercent=15"); + cmd.add("-XX:G1MixedGCLiveThresholdPercent=90"); + cmd.add("-XX:G1RSetUpdatingPauseTimePercent=5"); + cmd.add("-XX:SurvivorRatio=32"); + cmd.add("-XX:+PerfDisableSharedMem"); + cmd.add("-XX:MaxTenuringThreshold=1"); + } else { + cmd.add("-Xshareclasses:nonfatal,name=" + directory.getName()); + cmd.addAll(OPENJ9_ARGS); + } + if (!JAVA_8.contains(serverJar)) { cmd.add("--add-opens"); cmd.add("java.base/jdk.internal.misc=ALL-UNNAMED");