diff --git a/pom.xml b/pom.xml index 858390b..3ee5921 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.openautonomousconnection INSServer - 1.0.0-BETA.1.1 + 1.0.0-BETA.1.2 Open Autonomous Connection https://open-autonomous-connection.org/ @@ -104,7 +104,7 @@ org.openautonomousconnection Protocol - 1.0.0-BETA.5.4 + 1.0.0-BETA.6.0 org.projectlombok diff --git a/src/main/java/org/openautonomousconnection/insserver/DatabaseINSServer.java b/src/main/java/org/openautonomousconnection/insserver/DatabaseINSServer.java index 6042265..d2e1733 100644 --- a/src/main/java/org/openautonomousconnection/insserver/DatabaseINSServer.java +++ b/src/main/java/org/openautonomousconnection/insserver/DatabaseINSServer.java @@ -4,7 +4,6 @@ import dev.unlegitdqrk.unlegitlibrary.file.ConfigurationManager; import org.openautonomousconnection.protocol.side.ins.ProtocolINSServer; import org.openautonomousconnection.protocol.versions.v1_0_0.beta.INSRecord; import org.openautonomousconnection.protocol.versions.v1_0_0.beta.INSRecordType; -import org.openautonomousconnection.protocol.versions.v1_0_0.classic.helper.TargetName; import java.io.File; import java.io.IOException; @@ -24,48 +23,18 @@ public final class DatabaseINSServer extends ProtocolINSServer { private final String jdbcUser; private final String jdbcPassword; - private final ConfigurationManager config; - /** * Creates a new database-backed INS server. * * @throws IOException If the base server initialization fails. * @throws CertificateException If required certificate files are missing or invalid. */ - public DatabaseINSServer() throws Exception { - super(new File("config.properties")); + public DatabaseINSServer(String insInfoSite, String insFrontendSite, int tcpPort, int udpPort, String jdbcUrl, String jdbcUser, String jdbcPassword) throws Exception { + super(insInfoSite, insFrontendSite, tcpPort, udpPort); - config = new ConfigurationManager(new File("config.properties")); - config.loadProperties(); - - 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")) { - config.set("port", 1023); - config.saveProperties(); - } - - jdbcUrl = config.getString("db.url"); - jdbcUser = config.getString("db.user"); - jdbcPassword = config.getString("db.password"); - - Main.getSettings().port = config.getInt("port"); + this.jdbcUrl = jdbcUrl; + this.jdbcUser = jdbcUser; + this.jdbcPassword = jdbcPassword; } private Connection openConnection() throws SQLException { @@ -200,9 +169,9 @@ public final class DatabaseINSServer extends ProtocolINSServer { // recurse on the target name to fetch the original requested type List resolvedTarget = resolveInternal( - target.tln(), - target.name(), - target.sub(), + target.tln, + target.name, + target.sub, requestedType, depth + 1, visited @@ -363,4 +332,17 @@ public final class DatabaseINSServer extends ProtocolINSServer { return new TargetName(tln, name, sub); } + + private static final class TargetName { + final String tln; + final String name; + final String sub; + + TargetName(String tln, String name, String sub) { + this.tln = tln; + this.name = name; + this.sub = sub; + } + } + } diff --git a/src/main/java/org/openautonomousconnection/insserver/Main.java b/src/main/java/org/openautonomousconnection/insserver/Main.java index b9ed53f..5c3ccac 100644 --- a/src/main/java/org/openautonomousconnection/insserver/Main.java +++ b/src/main/java/org/openautonomousconnection/insserver/Main.java @@ -4,12 +4,12 @@ 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.ProtocolSettings; +import org.openautonomousconnection.protocol.ProtocolValues; import org.openautonomousconnection.protocol.versions.ProtocolVersion; -import org.openautonomousconnection.protocol.versions.v1_0_0.classic.handlers.builtin.INSClassic; import java.io.File; import java.util.Scanner; @@ -23,21 +23,70 @@ public class Main { private static ProtocolBridge protocolBridge; @Getter - private static ProtocolSettings settings; + private static ProtocolValues values; public static void main(String[] args) throws Exception { - settings = new ProtocolSettings(); - settings.packetHandler = new PacketHandler(); - settings.eventManager = new EventManager(); - settings.eventManager.registerListener(Listener.class); - settings.port = 1023; + values = new ProtocolValues(); + values.packetHandler = new PacketHandler(); + values.eventManager = new EventManager(); + values.eventManager.registerListener(Listener.class); - DatabaseINSServer server = new DatabaseINSServer(); - protocolBridge = new ProtocolBridge(server, settings, ProtocolVersion.PV_1_0_0_BETA, new File("logs")); - protocolBridge.setClassicHandlerINSServer(new INSClassic(protocolBridge)); - server.getPipelineServer().start(); + ConfigurationManager config = new ConfigurationManager(new File("config.properties")); - commandManager = new CommandManager(protocolBridge.getProtocolSettings().eventManager); + + 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:IP)"); + config.saveProperties(); + } + + if (!config.isSet("ins.frontend")) { + config.set("ins.frontend", "INS FRONTEND SITE (HOST:IP)"); + 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) {