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); } }