Skip to content

Commit

Permalink
Add support for connecting to remote servers
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexProgrammerDE committed Mar 12, 2024
1 parent 11001ac commit 13f169f
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 55 deletions.
Expand Up @@ -38,51 +38,49 @@ public static void bootstrap(String[] args, List<ClassLoader> classLoaders) {
new SoulFireClientBootstrap().internalBootstrap(args, classLoaders);
}

private static void runHeadless(String host, int port, String[] args) {
var soulFire =
new SoulFireServer(
host,
port,
SoulFireClientBootstrap.PLUGIN_MANAGER,
SoulFireClientBootstrap.START_TIME,
new DefaultAuthSystem());
@Override
protected void postMixinMain(String[] args) {
String host;
int port;
String jwtToken;

var rpcClient = new RPCClient(host, port, soulFire.generateLocalCliJWT());
var cliManager = new CLIManager(rpcClient, SoulFireClientBootstrap.PLUGIN_MANAGER);
cliManager.initCLI(args);
}
if (System.getProperty("soulfire.remoteHost") != null) {
host = System.getProperty("soulfire.remoteHost");
port = Integer.getInteger("soulfire.remotePort");

private static void runGUI(String host, int port) {
var soulFire =
new SoulFireServer(
host,
port,
SoulFireClientBootstrap.PLUGIN_MANAGER,
SoulFireClientBootstrap.START_TIME,
new DefaultAuthSystem());
log.info("Using remote server on {}:{}", host, port);
jwtToken = System.getProperty("soulfire.remoteJWT");
} else {
host = getRPCHost();
port = getRPCPort();

var rpcClient = new RPCClient(host, port, soulFire.generateAdminJWT());
var guiManager = new GUIManager(rpcClient, SoulFireClientBootstrap.PLUGIN_MANAGER);
guiManager.initGUI();
}
log.info("Starting integrated server on {}:{}", host, port);
var soulFire =
new SoulFireServer(
host,
port,
SoulFireClientBootstrap.PLUGIN_MANAGER,
SoulFireClientBootstrap.START_TIME,
new DefaultAuthSystem());

@Override
protected void postMixinMain(String[] args) {
var host = getRPCHost();
var port = getRPCPort();
jwtToken = soulFire.generateIntegratedUserJWT();
}

// We may split client and server mixins in the future
var runServer = GraphicsEnvironment.isHeadless() || args.length > 0;
var runHeadless = GraphicsEnvironment.isHeadless() || args.length > 0;

if (runServer) {
log.info("Starting server on {}:{}", host, port);
runHeadless(host, port, args);
var rpcClient = new RPCClient(host, port, jwtToken);
if (runHeadless) {
log.info("Starting CLI");
var cliManager = new CLIManager(rpcClient, PLUGIN_MANAGER);
cliManager.initCLI(args);
} else {
log.info("Starting GUI and server on {}:{}", host, port);
GUIManager.injectTheme();
GUIManager.loadGUIProperties();

runGUI(host, port);
log.info("Starting GUI");
var guiManager = new GUIManager(rpcClient, PLUGIN_MANAGER);
guiManager.initGUI();
}
}
}
Expand Up @@ -65,7 +65,7 @@ public abstract class SoulFireAbstractBootstrap {
protected SoulFireAbstractBootstrap() {}

public static int getRPCPort() {
var portProperty = System.getProperty("sw.grpc.port");
var portProperty = System.getProperty("sf.grpc.port");
if (portProperty != null) {
return Integer.parseInt(portProperty);
}
Expand All @@ -74,7 +74,7 @@ public static int getRPCPort() {
}

public static String getRPCHost() {
return System.getProperty("sw.grpc.host", "localhost");
return System.getProperty("sf.grpc.host", "localhost");
}

public static void injectExceptionHandler() {
Expand Down
Expand Up @@ -36,31 +36,27 @@ public static void bootstrap(String[] args, List<ClassLoader> classLoaders) {
new SoulFireDedicatedBootstrap().internalBootstrap(args, classLoaders);
}

private static void runDedicated(String host, int port) {
GenericTerminalConsole.setupStreams();
@Override
protected void postMixinMain(String[] args) {
var host = getRPCHost();
var port = getRPCPort();

log.info("Starting dedicated server on {}:{}", host, port);

GenericTerminalConsole.setupStreams();
var soulFire =
new SoulFireServer(
host,
port,
SoulFireDedicatedBootstrap.PLUGIN_MANAGER,
SoulFireDedicatedBootstrap.START_TIME,
PLUGIN_MANAGER,
START_TIME,
new DefaultAuthSystem());

new GenericTerminalConsole(
soulFire.shutdownManager(),
soulFire.injector().getSingleton(ServerCommandManager.class))
soulFire.shutdownManager(),
soulFire.injector().getSingleton(ServerCommandManager.class))
.start();

soulFire.shutdownManager().awaitShutdown();
}

@Override
protected void postMixinMain(String[] args) {
var host = getRPCHost();
var port = getRPCPort();

log.info("Starting server on {}:{}", host, port);
runDedicated(host, port);
}
}
Expand Up @@ -288,12 +288,12 @@ private void registerServerExtensions() {
pluginManager.getExtensions(ServerPlugin.class).forEach(SoulFireAPI::registerServerExtension);
}

public String generateAdminJWT() {
return generateJWT("admin");
public String generateRemoteUserJWT() {
return generateJWT("remote-user");
}

public String generateLocalCliJWT() {
return generateJWT("local-cli");
public String generateIntegratedUserJWT() {
return generateJWT("integrated-user");
}

private String generateJWT(String subject) {
Expand Down

0 comments on commit 13f169f

Please sign in to comment.