From a4f8086da1107077dfbd5143592aaf62b120ee2a Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 3 Oct 2024 21:36:19 +0200 Subject: [PATCH] Log out everyone on startup --- src/main/java/database/account/AccountRepository.java | 11 +++++++++++ src/main/java/net/server/Server.java | 8 +------- src/main/java/service/AccountService.java | 4 ++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/database/account/AccountRepository.java b/src/main/java/database/account/AccountRepository.java index e4a47d13b5..b04aaac7d5 100644 --- a/src/main/java/database/account/AccountRepository.java +++ b/src/main/java/database/account/AccountRepository.java @@ -61,6 +61,17 @@ public class AccountRepository { } } + public void setAllLoginState(LoginState loginState) { + String sql = """ + UPDATE account + SET login_state = :loginState"""; + try (Handle handle = connection.getHandle()) { + handle.createUpdate(sql) + .bind("loginState", loginState.getValue()) + .execute(); + } + } + public Integer insert(Account account) { String sql = """ INSERT INTO account (name, password, birthdate, chr_slots, login_state) diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index ffc82c6597..c175b4920b 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -731,7 +731,7 @@ public class Server { final int worldCount = Math.min(GameConstants.WORLD_NAMES.length, YamlConfig.config.server.WORLDS); try (Connection con = DatabaseConnection.getConnection()) { - setAllLoggedOut(con); + channelDependencies.accountService().setAllLoggedOut(); setAllMerchantsInactive(con); cleanNxcodeCoupons(con); loadCouponRates(con); @@ -873,12 +873,6 @@ public class Server { return loginServer; } - private static void setAllLoggedOut(Connection con) throws SQLException { - try (PreparedStatement ps = con.prepareStatement("UPDATE accounts SET loggedin = 0")) { - ps.executeUpdate(); - } - } - private static void setAllMerchantsInactive(Connection con) throws SQLException { try (PreparedStatement ps = con.prepareStatement("UPDATE characters SET HasMerchant = 0")) { ps.executeUpdate(); diff --git a/src/main/java/service/AccountService.java b/src/main/java/service/AccountService.java index 41015c5ad8..c71877506b 100644 --- a/src/main/java/service/AccountService.java +++ b/src/main/java/service/AccountService.java @@ -95,6 +95,10 @@ public class AccountService { return accountRepository.findByChrNameIgnoreCase(chrName); } + public void setAllLoggedOut() { + accountRepository.setAllLoginState(LoginState.LOGGED_OUT); + } + public boolean acceptTos(int accountId) { acceptTosMysql(accountId); acceptTosPostgres(accountId);