Launcher/LaunchServer/src/main/java/ru/gravit/launchserver/integration/plugin/LaunchServerPluginBridge.java

57 lines
1.6 KiB
Java

package ru.gravit.launchserver.integration.plugin;
import java.nio.file.Path;
import java.time.Duration;
import java.time.Instant;
import ru.gravit.launcher.helper.JVMHelper;
import ru.gravit.launcher.helper.LogHelper;
import ru.gravit.launchserver.LaunchServer;
public final class LaunchServerPluginBridge implements Runnable, AutoCloseable {
/**
* Permission.
*/
public static final String perm = "launchserver.corecmdcall";
/**
* Err text.
*/
public static final String nonInitText = "Лаунчсервер не был полностью загружен";
static {
//SecurityHelper.verifyCertificates(LaunchServer.class);
JVMHelper.verifySystemProperties(LaunchServer.class, false);
}
private final LaunchServer server;
public LaunchServerPluginBridge(Path dir) throws Throwable {
LogHelper.addOutput(dir.resolve("LaunchServer.log"));
LogHelper.printVersion("LaunchServer");
// Create new LaunchServer
Instant start = Instant.now();
try {
server = new LaunchServer(dir, true);
} catch (Throwable exc) {
LogHelper.error(exc);
throw exc;
}
Instant end = Instant.now();
LogHelper.debug("LaunchServer started in %dms", Duration.between(start, end).toMillis());
}
@Override
public void close() {
server.close();
}
public void eval(String... command) {
server.commandHandler.eval(command, false);
}
@Override
public void run() {
server.run();
}
}