package org.openautonomousconnection.insserver; import dev.unlegitdqrk.unlegitlibrary.command.CommandExecutor; import dev.unlegitdqrk.unlegitlibrary.command.CommandManager; import dev.unlegitdqrk.unlegitlibrary.command.CommandPermission; import dev.unlegitdqrk.unlegitlibrary.event.EventManager; import dev.unlegitdqrk.unlegitlibrary.file.ConfigurationManager; import dev.unlegitdqrk.unlegitlibrary.network.system.packets.PacketHandler; import lombok.Getter; import org.openautonomousconnection.protocol.ProtocolBridge; import org.openautonomousconnection.protocol.ProtocolValues; import org.openautonomousconnection.protocol.versions.ProtocolVersion; import java.io.File; import java.util.Scanner; public class Main { private static final CommandPermission PERMISSION_ALL = new CommandPermission("all", 1); private static final CommandExecutor commandExecutor = new CommandExecutor("INS", PERMISSION_ALL) {}; 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(); values.eventManager.registerListener(Listener.class); ConfigurationManager config = new ConfigurationManager(new File("config.properties")); if (!config.isSet("db.url")) { config.set( "db.url", "jdbc:mysql://localhost:3306/ins?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC" ); config.saveProperties(); } if (!config.isSet("db.user")) { config.set("db.user", "username"); config.saveProperties(); } if (!config.isSet("db.password")) { config.set("db.password", "password"); config.saveProperties(); } if (!config.isSet("port.udp")) { config.set("port.udp", 1025); config.saveProperties(); } if (!config.isSet("port.tcp")) { config.set("port.tcp", 1026); config.saveProperties(); } if (!config.isSet("ins.info")) { config.set("ins.info", "INS INFO SITE (HOST)"); config.saveProperties(); } if (!config.isSet("ins.frontend")) { config.set("ins.frontend", "INS FRONTEND SITE (HOST)"); config.saveProperties(); } String url = config.getString("db.url"); String user = config.getString("db.user"); String password = config.getString("db.password"); int tcpPort = config.getInt("port.tcp"); int udpPort = config.getInt("port.udp"); String info = config.getString("ins.info"); String frontend = config.getString("ins.frontend"); DatabaseINSServer server = new DatabaseINSServer(info, frontend, tcpPort, udpPort, url, user, password); protocolBridge = new ProtocolBridge(server, values, ProtocolVersion.PV_1_0_0_BETA, new File("logs")); server.getNetwork().start(); commandManager = new CommandManager(values.eventManager); Scanner scanner = new Scanner(System.in); while (true) { System.out.print(commandExecutor.getName() + "> "); String line = scanner.nextLine(); commandManager.execute(commandExecutor, line); } } }