Files
WebServer/src/main/java/org/openautonomousconnection/webserver/Main.java
UnlegitDqrk b21887a409 Bug fixes
2026-02-08 22:43:56 +01:00

107 lines
4.2 KiB
Java

package org.openautonomousconnection.webserver;
import dev.unlegitdqrk.unlegitlibrary.command.CommandExecutor;
import dev.unlegitdqrk.unlegitlibrary.command.CommandManager;
import dev.unlegitdqrk.unlegitlibrary.command.CommandPermission;
import dev.unlegitdqrk.unlegitlibrary.event.EventListener;
import dev.unlegitdqrk.unlegitlibrary.event.EventManager;
import dev.unlegitdqrk.unlegitlibrary.event.Listener;
import dev.unlegitdqrk.unlegitlibrary.file.ConfigurationManager;
import dev.unlegitdqrk.unlegitlibrary.network.system.client.events.state.ClientConnectedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.packets.PacketHandler;
import dev.unlegitdqrk.unlegitlibrary.network.system.server.NetworkServer;
import dev.unlegitdqrk.unlegitlibrary.network.system.server.events.packets.S_PacketSendEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.server.events.state.ServerStoppedEvent;
import dev.unlegitdqrk.unlegitlibrary.network.system.utils.ClientAuthMode;
import lombok.Getter;
import org.openautonomousconnection.protocol.ProtocolBridge;
import org.openautonomousconnection.protocol.ProtocolValues;
import org.openautonomousconnection.protocol.side.server.events.S_CustomClientConnectedEvent;
import org.openautonomousconnection.protocol.versions.ProtocolVersion;
import org.openautonomousconnection.webserver.commands.StopCommand;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Scanner;
public class Main {
public static final CommandPermission PERMISSION_ALL = new CommandPermission("all", 1);
private static final CommandExecutor commandExecutor = new CommandExecutor("WebServer", PERMISSION_ALL) {
};
@Getter
private static CommandManager commandManager;
@Getter
private static ProtocolBridge protocolBridge;
@Getter
private static ProtocolValues values;
public static void main(String[] args) throws Exception {
values = new ProtocolValues();
values.packetHandler = new PacketHandler();
values.eventManager = new EventManager();
if (!Files.exists(new File("config.properties").toPath())) Files.createFile(new File("config.properties").toPath());
ConfigurationManager config = new ConfigurationManager(new File("config.properties"));
config.loadProperties();
if (!config.isSet("port.udp")) {
config.set("port.udp", 1027);
config.saveProperties();
}
if (!config.isSet("port.tcp")) {
config.set("port.tcp", 1028);
config.saveProperties();
}
if (!config.isSet("sessionexpiremin")) {
config.set("sessionexpiremin", 1000);
config.saveProperties();
}
if (!config.isSet("maxuploadmb")) {
config.set("maxuploadmb", 1024);
config.saveProperties();
}
if (!config.isSet("clientauth")) {
config.set("clientauth.info", "Select between NONE, OPTIONAL and REQUIRED");
config.set("clientauth", ClientAuthMode.OPTIONAL.name());
config.saveProperties();
}
int tcpPort = config.getInt("port.tcp");
int udpPort = config.getInt("port.udp");
int sessionExpire = config.getInt("sessionexpiremin");
int maxUpload = config.getInt("maxuploadmb");
ClientAuthMode authMode = ClientAuthMode.valueOf(config.getString("clientauth").toUpperCase());
values.authMode = authMode;
protocolBridge = new ProtocolBridge(new WebServer(
new File("auth.ini"), new File("rules.ini"),
sessionExpire, maxUpload),
values, ProtocolVersion.PV_1_0_0_BETA, new File("logs"));
protocolBridge.getProtocolServer().getNetwork().start(tcpPort, udpPort);
commandManager = new CommandManager(values.eventManager);
commandManager.registerCommand(StopCommand.class);
Scanner scanner = new Scanner(System.in);
while (protocolBridge.getProtocolServer().getNetwork().isServerOnline()) {
System.out.print(commandExecutor.getName() + "> ");
String line = scanner.nextLine();
commandManager.execute(commandExecutor, line);
}
System.exit(0);
}
}