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.insserver.commands.StopCommand; 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 { public static final CommandPermission PERMISSION_ALL = new CommandPermission("all", 1); private static final CommandExecutor commandExecutor = new CommandExecutor("INS", 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(); values.eventManager.registerListener(new Listener()); if (!new File("config.properties").exists()) { new File("config.properties").createNewFile(); } ConfigurationManager config = new ConfigurationManager(new File("config.properties")); config.loadProperties(); if (!config.isSet("db.url")) { config.set( "db.url", "jdbc:mariadb://localhost:3306/ins?useUnicode=true&characterEncoding=utf8" ); 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")) { config.set("port", 1026); config.saveProperties(); } if (!config.isSet("ins.info")) { config.set("ins.info", "INS INFO SITE (HOST)"); config.saveProperties(); } if (!config.isSet("ins.ins.frontend")) { config.set("ins.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"); String info = config.getString("ins.info"); String frontend = config.getString("ins.ins.frontend"); DatabaseINSServer server = new DatabaseINSServer(info, frontend, url, user, password); protocolBridge = new ProtocolBridge(server, values, ProtocolVersion.PV_1_0_0_BETA, new File("logs")); server.start(tcpPort); commandManager = new CommandManager(values.eventManager); commandManager.registerCommand(StopCommand.class); Scanner scanner = new Scanner(System.in); while (true) { System.out.print(commandExecutor.getName() + "> "); String line = scanner.nextLine(); commandManager.execute(commandExecutor, line); } } }