Index: C:/Documents and Settings/AresXP/workspace/L2J-free_LoginServer_c5/src/main/java/net/sf/l2j/loginserver/ClientThread.java =================================================================== --- C:/Documents and Settings/AresXP/workspace/L2J-free_LoginServer_c5/src/main/java/net/sf/l2j/loginserver/ClientThread.java (revision 411) +++ C:/Documents and Settings/AresXP/workspace/L2J-free_LoginServer_c5/src/main/java/net/sf/l2j/loginserver/ClientThread.java (working copy) @@ -190,6 +190,8 @@ { RequestAuthLogin ral = new RequestAuthLogin(decrypt, _privateKey); account = ral.getUser().toLowerCase(); + System.out.println(account+" attempting to login."); + System.out.println("Decrypted: "+ral.getDecrypted()); if (Config.DEBUG) _log.info("RequestAuthLogin from user:" + account); LoginController lc = LoginController.getInstance(); @@ -200,6 +202,7 @@ //Login BANNED LoginFail lok = new LoginFail(LoginFail.REASON_ACCOUNT_BANNED); sendPacket(lok); + _log.warning("Account "+account+" is banned. Not logged"); } else { @@ -215,7 +218,10 @@ else { ServerList sl = GameServerTable.getInstance().makeServerList(lc.isGM(account), _internalIP); - sendPacket(sl); + if(GameServerTable.getInstance().getGSAmount() <= GameServerTable.getInstance().getGSAmountDown()) + sendPacket(new LoginFail(LoginFail.REASON_SERVER_MAINTENANCE)); + else + sendPacket(sl); } } else @@ -238,6 +244,7 @@ lc.removeGameServerLogin(account); } LoginFail lok = new LoginFail(LoginFail.REASON_ACCOUNT_IN_USE); + _log.warning("Account "+account+" is in use. Kicked."); sendPacket(lok); } } @@ -246,6 +253,7 @@ { LoginFail lok = new LoginFail(LoginFail.REASON_USER_OR_PASS_WRONG); sendPacket(lok); + _log.warning("Wrong password."); if (Config.DEBUG) _log.fine("login failed sent"); } @@ -290,7 +298,10 @@ byte [] content = sl.getContent(); _log.info(Util.printData(content)); } - sendPacket(sl); + if(GameServerTable.getInstance().getGSAmount() <= GameServerTable.getInstance().getGSAmountDown()) + sendPacket(new LoginFail(LoginFail.REASON_SERVER_MAINTENANCE)); + else + sendPacket(sl); break; } Index: C:/Documents and Settings/AresXP/workspace/L2J-free_LoginServer_c5/src/main/java/net/sf/l2j/loginserver/GameServerTable.java =================================================================== --- C:/Documents and Settings/AresXP/workspace/L2J-free_LoginServer_c5/src/main/java/net/sf/l2j/loginserver/GameServerTable.java (revision 411) +++ C:/Documents and Settings/AresXP/workspace/L2J-free_LoginServer_c5/src/main/java/net/sf/l2j/loginserver/GameServerTable.java (working copy) @@ -600,6 +600,19 @@ } return false; } + public int getGSAmount() { + return _gameServerList.size(); + } + public int getGSAmountDown() { + int x = 0; + for(GameServer gs : _gameServerList) { + if(gs.status == ServerStatus.STATUS_DOWN) + { + x++; + } + } + return x; + } public List status() {