diff --git a/LaunchServer/source/auth/handler/CachedAuthHandler.java b/LaunchServer/source/auth/handler/CachedAuthHandler.java index ec3e768..6e40b38 100644 --- a/LaunchServer/source/auth/handler/CachedAuthHandler.java +++ b/LaunchServer/source/auth/handler/CachedAuthHandler.java @@ -25,7 +25,7 @@ @Override public final synchronized UUID auth(String username, String accessToken) throws IOException { Entry entry = getEntry(username); - if (entry == null || !updateAccessToken(entry.uuid, accessToken)) { + if (entry == null || !updateAuth(entry.uuid, username, accessToken)) { return null; // Account doesn't exist } @@ -80,7 +80,7 @@ protected abstract Entry fetchEntry(String username) throws IOException; @LauncherAPI - protected abstract boolean updateAccessToken(UUID uuid, String accessToken) throws IOException; + protected abstract boolean updateAuth(UUID uuid, String username, String accessToken) throws IOException; @LauncherAPI protected abstract boolean updateServerID(UUID uuid, String serverID) throws IOException; diff --git a/LaunchServer/source/auth/handler/MySQLAuthHandler.java b/LaunchServer/source/auth/handler/MySQLAuthHandler.java index f086d38..7ec628a 100644 --- a/LaunchServer/source/auth/handler/MySQLAuthHandler.java +++ b/LaunchServer/source/auth/handler/MySQLAuthHandler.java @@ -23,11 +23,10 @@ private final String serverIDColumn; // Prepared SQL queries - private final String queryAllSQL; private final String queryByUUIDSQL; private final String queryByUsernameSQL; + private final String updateAuthSQL; private final String updateServerIDSQL; - private final String updateAccessTokenSQL; public MySQLAuthHandler(BlockConfigEntry block) { super(block); @@ -39,19 +38,21 @@ serverIDColumn = block.getEntryValue("serverIDColumn", StringConfigEntry.class); // Prepare SQL queries - queryAllSQL = String.format("SELECT %s, %s, %s, %s FROM %s", - uuidColumn, usernameColumn, accessTokenColumn, serverIDColumn, table); queryByUUIDSQL = String.format("SELECT %s, %s, %s, %s FROM %s WHERE %s=?", uuidColumn, usernameColumn, accessTokenColumn, serverIDColumn, table, uuidColumn); queryByUsernameSQL = String.format("SELECT %s, %s, %s, %s FROM %s WHERE %s=?", uuidColumn, usernameColumn, accessTokenColumn, serverIDColumn, table, usernameColumn); - updateServerIDSQL = String.format("UPDATE %s SET %s=? WHERE %s=?", table, serverIDColumn, uuidColumn); - updateAccessTokenSQL = String.format("UPDATE %s SET %s=? WHERE %s=?", table, accessTokenColumn, uuidColumn); + updateAuthSQL = String.format("UPDATE %s SET %s=?, %s=? WHERE %s=?", + table, usernameColumn, accessTokenColumn, uuidColumn); + updateServerIDSQL = String.format("UPDATE %s SET %s=? WHERE %s=?", + table, serverIDColumn, uuidColumn); // Fetch all entries if (block.getEntryValue("fetchAll", BooleanConfigEntry.class)) { LogHelper.info("Fetching all AuthHandler entries"); - try (Connection c = mySQLHolder.getConnection(); ResultSet set = c.createStatement().executeQuery(queryAllSQL)) { + String query = String.format("SELECT %s, %s, %s, %s FROM %s", + uuidColumn, usernameColumn, accessTokenColumn, serverIDColumn, table); + try (Connection c = mySQLHolder.getConnection(); ResultSet set = c.createStatement().executeQuery(query)) { for (Entry entry = constructEntry(set); entry != null; entry = constructEntry(set)) { addEntry(entry); } @@ -87,13 +88,28 @@ } @Override - protected boolean updateAccessToken(UUID uuid, String accessToken) throws IOException { - return update(updateAccessTokenSQL, uuid.toString(), accessToken); + protected boolean updateAuth(UUID uuid, String username, String accessToken) throws IOException { + try (Connection c = mySQLHolder.getConnection(); + PreparedStatement s = c.prepareStatement(updateAuthSQL)) { + s.setString(1, username); // Username case + s.setString(2, accessToken); + s.setString(3, uuid.toString()); + return s.executeUpdate() > 0; + } catch (SQLException e) { + throw new IOException(e); + } } @Override protected boolean updateServerID(UUID uuid, String serverID) throws IOException { - return update(updateServerIDSQL, uuid.toString(), serverID); + try (Connection c = mySQLHolder.getConnection(); + PreparedStatement s = c.prepareStatement(updateServerIDSQL)) { + s.setString(1, serverID); + s.setString(2, uuid.toString()); + return s.executeUpdate() > 0; + } catch (SQLException e) { + throw new IOException(e); + } } private Entry constructEntry(ResultSet set) throws SQLException { @@ -111,14 +127,4 @@ throw new IOException(e); } } - - private boolean update(String sql, String key, String newValue) throws IOException { - try (Connection c = mySQLHolder.getConnection(); PreparedStatement s = c.prepareStatement(sql)) { - s.setString(1, newValue); - s.setString(2, key); - return s.executeUpdate() > 0; - } catch (SQLException e) { - throw new IOException(e); - } - } } diff --git a/LaunchServer/source/binary/EXEL4JLauncherBinary.java b/LaunchServer/source/binary/EXEL4JLauncherBinary.java index f9670b1..10fd1a6 100644 --- a/LaunchServer/source/binary/EXEL4JLauncherBinary.java +++ b/LaunchServer/source/binary/EXEL4JLauncherBinary.java @@ -23,7 +23,7 @@ private static final Path FAVICON_FILE = IOHelper.WORKING_DIR.resolve("favicon.ico"); @LauncherAPI - public EXEL4JLauncherBinary(LaunchServer server) throws IOException { + public EXEL4JLauncherBinary(LaunchServer server) { super(server, EXE_BINARY_FILE); } diff --git a/LaunchServer/source/binary/EXELauncherBinary.java b/LaunchServer/source/binary/EXELauncherBinary.java index 87bf7c9..15bc9c8 100644 --- a/LaunchServer/source/binary/EXELauncherBinary.java +++ b/LaunchServer/source/binary/EXELauncherBinary.java @@ -13,7 +13,7 @@ @LauncherAPI public static final Path EXE_BINARY_FILE = IOHelper.toPath("Launcher.exe"); @LauncherAPI - public EXELauncherBinary(LaunchServer server) throws IOException { + public EXELauncherBinary(LaunchServer server) { super(server, IOHelper.WORKING_DIR.resolve(EXE_BINARY_FILE)); } diff --git a/LaunchServer/source/binary/LauncherBinary.java b/LaunchServer/source/binary/LauncherBinary.java index 45cec19..0235982 100644 --- a/LaunchServer/source/binary/LauncherBinary.java +++ b/LaunchServer/source/binary/LauncherBinary.java @@ -14,7 +14,7 @@ private volatile SignedBytesHolder binary; @LauncherAPI - protected LauncherBinary(LaunchServer server, Path binaryFile) throws IOException { + protected LauncherBinary(LaunchServer server, Path binaryFile) { this.server = server; this.binaryFile = binaryFile; } diff --git a/LaunchServer/source/command/handler/JLineCommandHandler.java b/LaunchServer/source/command/handler/JLineCommandHandler.java index 7671253..fd6aa12 100644 --- a/LaunchServer/source/command/handler/JLineCommandHandler.java +++ b/LaunchServer/source/command/handler/JLineCommandHandler.java @@ -5,7 +5,6 @@ import jline.console.ConsoleReader; import launcher.helper.LogHelper; import launchserver.LaunchServer; -import org.fusesource.jansi.Ansi; public final class JLineCommandHandler extends CommandHandler { private final ConsoleReader reader; @@ -38,13 +37,10 @@ } private final class JLineOutput implements LogHelper.Output { - private final String ANSI_RESET = LogHelper.JANSI ? - Ansi.ansi().reset().toString() : "\u0027[m"; - @Override public void println(String message) { try { - reader.println(ConsoleReader.RESET_LINE + message + ANSI_RESET); + reader.println(ConsoleReader.RESET_LINE + message); reader.drawLine(); reader.flush(); } catch (IOException ignored) {