forked from SteamWar/SteamWar
Implement Velocity changes
This commit is contained in:
@@ -63,7 +63,7 @@ public abstract class Node {
|
||||
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);
|
||||
|
||||
@@ -97,7 +97,8 @@ public abstract class Node {
|
||||
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)) {
|
||||
cmd.add("/usr/lib/jvm/openj9-8/bin/java");
|
||||
} else {
|
||||
@@ -107,6 +108,10 @@ public abstract class Node {
|
||||
for (String param : dParams) {
|
||||
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("-Xmx768M");
|
||||
cmd.addAll(OPENJ9_ARGS);
|
||||
@@ -145,9 +150,9 @@ public abstract class Node {
|
||||
}
|
||||
|
||||
@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<>();
|
||||
constructServerstart(directory, cmd, serverJar, worldDir, levelName, port, dParams);
|
||||
constructServerstart(directory, cmd, version, worldDir, levelName, port, dParams);
|
||||
ProcessBuilder builder = new ProcessBuilder(cmd);
|
||||
builder.directory(directory);
|
||||
return builder;
|
||||
@@ -177,7 +182,7 @@ public abstract class Node {
|
||||
}
|
||||
|
||||
@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<>();
|
||||
cmd.add("ssh");
|
||||
cmd.add("-L");
|
||||
@@ -186,7 +191,7 @@ public abstract class Node {
|
||||
cmd.add("cd");
|
||||
cmd.add(directory.getPath());
|
||||
cmd.add(";");
|
||||
constructServerstart(directory, cmd, serverJar, worldDir, levelName, port, dParams);
|
||||
constructServerstart(directory, cmd, version, worldDir, levelName, port, dParams);
|
||||
return new ProcessBuilder(cmd);
|
||||
}
|
||||
|
||||
|
||||
@@ -325,7 +325,7 @@ public class ServerStarter {
|
||||
|
||||
private void regularStart(String serverName, int port) {
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.velocitypowered.api.network.ProtocolVersion;
|
||||
import de.steamwar.sql.GameModeConfig;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
@@ -33,6 +34,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@RequiredArgsConstructor
|
||||
public enum ServerVersion {
|
||||
SPIGOT_8("spigot-1.8.8.jar", 8, ProtocolVersion.MINECRAFT_1_8),
|
||||
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_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_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<>();
|
||||
|
||||
@@ -104,6 +106,10 @@ public enum ServerVersion {
|
||||
private final String serverJar;
|
||||
private final int versionSuffix;
|
||||
private final ProtocolVersion protocolVersion;
|
||||
/**
|
||||
* Adding AccessWidener agent and setting System Property (paper.disablePluginRemapping) to true
|
||||
*/
|
||||
private boolean extendedStartup;
|
||||
|
||||
public String getWorldFolder(String base) {
|
||||
return base + versionSuffix + "/";
|
||||
|
||||
Reference in New Issue
Block a user