forked from SteamWar/SteamWar
Implement Velocity changes
This commit is contained in:
@@ -63,7 +63,7 @@ public abstract class Node {
|
|||||||
nodes.forEach(consumer);
|
nodes.forEach(consumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract ProcessBuilder startServer(String serverJar, File directory, String worldDir, String levelName, int port, String... dParams);
|
public abstract ProcessBuilder startServer(ServerVersion version, File directory, String worldDir, String levelName, int port, String... dParams);
|
||||||
|
|
||||||
protected abstract ProcessBuilder prepareExecution(String... command);
|
protected abstract ProcessBuilder prepareExecution(String... command);
|
||||||
|
|
||||||
@@ -97,7 +97,8 @@ public abstract class Node {
|
|||||||
return hostname;
|
return hostname;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void constructServerstart(File directory, List<String> cmd, String serverJar, String worldDir, String levelName, int port, String... dParams) {
|
protected void constructServerstart(File directory, List<String> cmd, ServerVersion version, String worldDir, String levelName, int port, String... dParams) {
|
||||||
|
String serverJar = version.getServerJar();
|
||||||
if (JAVA_8.contains(serverJar)) {
|
if (JAVA_8.contains(serverJar)) {
|
||||||
cmd.add("/usr/lib/jvm/openj9-8/bin/java");
|
cmd.add("/usr/lib/jvm/openj9-8/bin/java");
|
||||||
} else {
|
} else {
|
||||||
@@ -107,6 +108,10 @@ public abstract class Node {
|
|||||||
for (String param : dParams) {
|
for (String param : dParams) {
|
||||||
cmd.add("-D" + param);
|
cmd.add("-D" + param);
|
||||||
}
|
}
|
||||||
|
if (version.isExtendedStartup()) {
|
||||||
|
cmd.add("-Dpaper.disablePluginRemapping=true");
|
||||||
|
cmd.add("-javaagent:/jars/AccessWidener.jar=start");
|
||||||
|
}
|
||||||
cmd.add("-Xshareclasses:nonfatal,name=" + directory.getName());
|
cmd.add("-Xshareclasses:nonfatal,name=" + directory.getName());
|
||||||
cmd.add("-Xmx768M");
|
cmd.add("-Xmx768M");
|
||||||
cmd.addAll(OPENJ9_ARGS);
|
cmd.addAll(OPENJ9_ARGS);
|
||||||
@@ -145,9 +150,9 @@ public abstract class Node {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessBuilder startServer(String serverJar, File directory, String worldDir, String levelName, int port, String... dParams) {
|
public ProcessBuilder startServer(ServerVersion version, File directory, String worldDir, String levelName, int port, String... dParams) {
|
||||||
List<String> cmd = new ArrayList<>();
|
List<String> cmd = new ArrayList<>();
|
||||||
constructServerstart(directory, cmd, serverJar, worldDir, levelName, port, dParams);
|
constructServerstart(directory, cmd, version, worldDir, levelName, port, dParams);
|
||||||
ProcessBuilder builder = new ProcessBuilder(cmd);
|
ProcessBuilder builder = new ProcessBuilder(cmd);
|
||||||
builder.directory(directory);
|
builder.directory(directory);
|
||||||
return builder;
|
return builder;
|
||||||
@@ -177,7 +182,7 @@ public abstract class Node {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessBuilder startServer(String serverJar, File directory, String worldDir, String levelName, int port, String... dParams) {
|
public ProcessBuilder startServer(ServerVersion version, File directory, String worldDir, String levelName, int port, String... dParams) {
|
||||||
List<String> cmd = new ArrayList<>();
|
List<String> cmd = new ArrayList<>();
|
||||||
cmd.add("ssh");
|
cmd.add("ssh");
|
||||||
cmd.add("-L");
|
cmd.add("-L");
|
||||||
@@ -186,7 +191,7 @@ public abstract class Node {
|
|||||||
cmd.add("cd");
|
cmd.add("cd");
|
||||||
cmd.add(directory.getPath());
|
cmd.add(directory.getPath());
|
||||||
cmd.add(";");
|
cmd.add(";");
|
||||||
constructServerstart(directory, cmd, serverJar, worldDir, levelName, port, dParams);
|
constructServerstart(directory, cmd, version, worldDir, levelName, port, dParams);
|
||||||
return new ProcessBuilder(cmd);
|
return new ProcessBuilder(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -325,7 +325,7 @@ public class ServerStarter {
|
|||||||
|
|
||||||
private void regularStart(String serverName, int port) {
|
private void regularStart(String serverName, int port) {
|
||||||
postStart(constructor.construct(serverName, port, node.startServer(
|
postStart(constructor.construct(serverName, port, node.startServer(
|
||||||
version.getServerJar(), directory, worldDir, worldName, port, arguments.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()).toArray(String[]::new)
|
version, directory, worldDir, worldName, port, arguments.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()).toArray(String[]::new)
|
||||||
), worldCleanup, null));
|
), worldCleanup, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import com.velocitypowered.api.network.ProtocolVersion;
|
|||||||
import de.steamwar.sql.GameModeConfig;
|
import de.steamwar.sql.GameModeConfig;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -33,6 +34,7 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@RequiredArgsConstructor
|
||||||
public enum ServerVersion {
|
public enum ServerVersion {
|
||||||
SPIGOT_8("spigot-1.8.8.jar", 8, ProtocolVersion.MINECRAFT_1_8),
|
SPIGOT_8("spigot-1.8.8.jar", 8, ProtocolVersion.MINECRAFT_1_8),
|
||||||
SPIGOT_9("spigot-1.9.4.jar", 9, ProtocolVersion.MINECRAFT_1_9),
|
SPIGOT_9("spigot-1.9.4.jar", 9, ProtocolVersion.MINECRAFT_1_9),
|
||||||
@@ -47,7 +49,7 @@ public enum ServerVersion {
|
|||||||
PAPER_18("paper-1.18.2.jar", 15, ProtocolVersion.MINECRAFT_1_18_2),
|
PAPER_18("paper-1.18.2.jar", 15, ProtocolVersion.MINECRAFT_1_18_2),
|
||||||
PAPER_19("paper-1.19.3.jar", 19, ProtocolVersion.MINECRAFT_1_19_3),
|
PAPER_19("paper-1.19.3.jar", 19, ProtocolVersion.MINECRAFT_1_19_3),
|
||||||
PAPER_20("paper-1.20.1.jar", 20, ProtocolVersion.MINECRAFT_1_20),
|
PAPER_20("paper-1.20.1.jar", 20, ProtocolVersion.MINECRAFT_1_20),
|
||||||
PAPER_21("paper-1.21.6.jar", 21, ProtocolVersion.MINECRAFT_1_21_6);
|
PAPER_21("paper-1.21.6.jar", 21, ProtocolVersion.MINECRAFT_1_21_6, true);
|
||||||
|
|
||||||
private static final Map<String, ServerVersion> chatMap = new HashMap<>();
|
private static final Map<String, ServerVersion> chatMap = new HashMap<>();
|
||||||
|
|
||||||
@@ -104,6 +106,10 @@ public enum ServerVersion {
|
|||||||
private final String serverJar;
|
private final String serverJar;
|
||||||
private final int versionSuffix;
|
private final int versionSuffix;
|
||||||
private final ProtocolVersion protocolVersion;
|
private final ProtocolVersion protocolVersion;
|
||||||
|
/**
|
||||||
|
* Adding AccessWidener agent and setting System Property (paper.disablePluginRemapping) to true
|
||||||
|
*/
|
||||||
|
private boolean extendedStartup;
|
||||||
|
|
||||||
public String getWorldFolder(String base) {
|
public String getWorldFolder(String base) {
|
||||||
return base + versionSuffix + "/";
|
return base + versionSuffix + "/";
|
||||||
|
|||||||
Reference in New Issue
Block a user