Use LoginState everywhere
This commit is contained in:
@@ -86,10 +86,6 @@ public class Client extends ChannelInboundHandlerAdapter {
|
||||
private static final int MAX_FAILED_LOGIN_ATTEMPTS = 5;
|
||||
private static final int MAX_CHR_SLOTS = 15;
|
||||
|
||||
public static final int LOGIN_NOTLOGGEDIN = 0;
|
||||
public static final int LOGIN_SERVER_TRANSITION = 1;
|
||||
public static final int LOGIN_LOGGEDIN = 2;
|
||||
|
||||
private final Type type;
|
||||
private final long sessionId;
|
||||
private final PacketProcessor packetProcessor;
|
||||
@@ -460,11 +456,11 @@ public class Client extends ChannelInboundHandlerAdapter {
|
||||
public boolean finishLogin() {
|
||||
encoderLock.lock();
|
||||
try {
|
||||
if (getLoginState() > LOGIN_NOTLOGGEDIN) { // 0 = LOGIN_NOTLOGGEDIN, 1= LOGIN_SERVER_TRANSITION, 2 = LOGIN_LOGGEDIN
|
||||
if (getLoginState() > LoginState.NOT_LOGGED_IN) { // 0 = LOGIN_NOTLOGGEDIN, 1= LOGIN_SERVER_TRANSITION, 2 = LOGIN_LOGGEDIN
|
||||
loggedIn = false;
|
||||
return false;
|
||||
}
|
||||
updateLoginState(Client.LOGIN_LOGGEDIN);
|
||||
updateLoginState(LoginState.LOGGED_IN);
|
||||
} finally {
|
||||
encoderLock.unlock();
|
||||
}
|
||||
@@ -621,7 +617,7 @@ public class Client extends ChannelInboundHandlerAdapter {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (newState == LOGIN_NOTLOGGEDIN) {
|
||||
if (newState == LoginState.NOT_LOGGED_IN) {
|
||||
loggedIn = false;
|
||||
serverTransition = false;
|
||||
setAccID(0);
|
||||
@@ -682,19 +678,19 @@ public class Client extends ChannelInboundHandlerAdapter {
|
||||
}
|
||||
|
||||
state = rs.getInt("loggedin");
|
||||
if (state == LOGIN_SERVER_TRANSITION) {
|
||||
if (state == LoginState.SERVER_TRANSITION) {
|
||||
if (rs.getTimestamp("lastlogin").getTime() + 30000 < Server.getInstance().getCurrentTime()) {
|
||||
int accountId = accId;
|
||||
state = LOGIN_NOTLOGGEDIN;
|
||||
updateLoginState(Client.LOGIN_NOTLOGGEDIN); // ACCID = 0, issue found thanks to Tochi & K u ssss o & Thora & Omo Oppa
|
||||
state = LoginState.NOT_LOGGED_IN;
|
||||
updateLoginState(LoginState.NOT_LOGGED_IN); // ACCID = 0, issue found thanks to Tochi & K u ssss o & Thora & Omo Oppa
|
||||
this.setAccID(accountId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (state == LOGIN_LOGGEDIN) {
|
||||
if (state == LoginState.LOGGED_IN) {
|
||||
loggedIn = true;
|
||||
} else if (state == LOGIN_SERVER_TRANSITION) {
|
||||
} else if (state == LoginState.SERVER_TRANSITION) {
|
||||
try (PreparedStatement ps2 = con.prepareStatement("UPDATE accounts SET loggedin = 0 WHERE id = ?")) {
|
||||
ps2.setInt(1, getAccID());
|
||||
ps2.executeUpdate();
|
||||
@@ -746,7 +742,7 @@ public class Client extends ChannelInboundHandlerAdapter {
|
||||
}
|
||||
|
||||
public void setCharacterOnSessionTransitionState(int cid) {
|
||||
this.updateLoginState(Client.LOGIN_SERVER_TRANSITION);
|
||||
this.updateLoginState(LoginState.SERVER_TRANSITION);
|
||||
this.inTransition = true;
|
||||
Server.getInstance().setCharacteridInTransition(this, cid);
|
||||
}
|
||||
@@ -822,7 +818,7 @@ public class Client extends ChannelInboundHandlerAdapter {
|
||||
if (lastPong < pingedAt) {
|
||||
if (ioChannel.isActive()) {
|
||||
log.info("Disconnected {} due to idling. Reason: {}", remoteAddress, event.state());
|
||||
updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
updateLoginState(LoginState.NOT_LOGGED_IN);
|
||||
disconnectSession();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import client.Client;
|
||||
import client.Disease;
|
||||
import client.Family;
|
||||
import client.FamilyEntry;
|
||||
import client.LoginState;
|
||||
import client.Mount;
|
||||
import client.SkillFactory;
|
||||
import client.inventory.Equip;
|
||||
@@ -174,7 +175,7 @@ public final class PlayerLoggedinHandler extends AbstractPacketHandler {
|
||||
boolean allowLogin = true;
|
||||
|
||||
/* is this check really necessary?
|
||||
if (state == Client.LOGIN_SERVER_TRANSITION || state == Client.LOGIN_NOTLOGGEDIN) {
|
||||
if (state == LoginState.SERVER_TRANSITION || state == LoginState.NOT_LOGGED_IN) {
|
||||
List<String> charNames = c.loadCharacterNames(c.getWorld());
|
||||
if(!newcomer) {
|
||||
charNames.remove(player.getName());
|
||||
@@ -193,11 +194,11 @@ public final class PlayerLoggedinHandler extends AbstractPacketHandler {
|
||||
if (tryAcquireAccount(accId)) { // Sync this to prevent wrong login state for double loggedin handling
|
||||
try {
|
||||
int state = c.getLoginState();
|
||||
if (state != Client.LOGIN_SERVER_TRANSITION || !allowLogin) {
|
||||
if (state != LoginState.SERVER_TRANSITION || !allowLogin) {
|
||||
c.setPlayer(null);
|
||||
c.setAccID(0);
|
||||
|
||||
if (state == Client.LOGIN_LOGGEDIN) {
|
||||
if (state == LoginState.LOGGED_IN) {
|
||||
throw new GameViolationException("Attempt to log in when already logged in");
|
||||
} else {
|
||||
c.sendPacket(PacketCreator.getAfterLoginError(7));
|
||||
@@ -205,7 +206,7 @@ public final class PlayerLoggedinHandler extends AbstractPacketHandler {
|
||||
|
||||
return;
|
||||
}
|
||||
c.updateLoginState(Client.LOGIN_LOGGEDIN);
|
||||
c.updateLoginState(LoginState.LOGGED_IN);
|
||||
} finally {
|
||||
releaseAccount(accId);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
package net.server.handlers.login;
|
||||
|
||||
import client.Client;
|
||||
import client.LoginState;
|
||||
import net.AbstractPacketHandler;
|
||||
import net.packet.InPacket;
|
||||
import net.server.coordinator.session.SessionCoordinator;
|
||||
@@ -58,7 +59,7 @@ public final class AfterLoginHandler extends AbstractPacketHandler {
|
||||
}
|
||||
} else if (c2 == 0 && c3 == 5) {
|
||||
SessionCoordinator.getInstance().closeSession(c, false);
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
c.updateLoginState(LoginState.NOT_LOGGED_IN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ package net.server.handlers.login;
|
||||
import client.Character;
|
||||
import client.Client;
|
||||
import client.DefaultDates;
|
||||
import client.LoginState;
|
||||
import config.YamlConfig;
|
||||
import constants.game.GameConstants;
|
||||
import database.account.Account;
|
||||
@@ -110,7 +111,7 @@ public final class LoginPasswordHandler implements PacketHandler {
|
||||
|
||||
c.setAccount(account);
|
||||
|
||||
if (c.getLoginState(account) > Client.LOGIN_NOTLOGGEDIN) {
|
||||
if (c.getLoginState(account) > LoginState.NOT_LOGGED_IN) {
|
||||
c.sendPacket(PacketCreator.getLoginFailed(7));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
package net.server.handlers.login;
|
||||
|
||||
import client.Client;
|
||||
import client.LoginState;
|
||||
import net.AbstractPacketHandler;
|
||||
import net.packet.InPacket;
|
||||
import net.server.coordinator.session.SessionCoordinator;
|
||||
@@ -44,7 +45,7 @@ public final class RegisterPinHandler extends AbstractPacketHandler {
|
||||
boolean cancel = p.readByte() == 0;
|
||||
if (cancel) {
|
||||
SessionCoordinator.getInstance().closeSession(c, false);
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
c.updateLoginState(LoginState.NOT_LOGGED_IN);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -54,6 +55,6 @@ public final class RegisterPinHandler extends AbstractPacketHandler {
|
||||
c.sendPacket(PacketCreator.pinRegistered());
|
||||
|
||||
SessionCoordinator.getInstance().closeSession(c, false);
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
c.updateLoginState(LoginState.NOT_LOGGED_IN);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ package net.server.handlers.login;
|
||||
|
||||
import client.Client;
|
||||
import client.Gender;
|
||||
import client.LoginState;
|
||||
import net.AbstractPacketHandler;
|
||||
import net.packet.InPacket;
|
||||
import net.server.Server;
|
||||
@@ -73,7 +74,7 @@ public class SetGenderHandler extends AbstractPacketHandler {
|
||||
|
||||
private void close(Client c) {
|
||||
SessionCoordinator.getInstance().closeSession(c, false);
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
c.updateLoginState(LoginState.NOT_LOGGED_IN);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package service;
|
||||
|
||||
import client.BuddyList;
|
||||
import client.Client;
|
||||
import client.LoginState;
|
||||
import client.inventory.InventoryType;
|
||||
import config.YamlConfig;
|
||||
import constants.id.MapId;
|
||||
@@ -171,11 +172,11 @@ public class TransitionService {
|
||||
|
||||
|
||||
if (!c.isInTransition() && c.isLoggedIn()) {
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
c.updateLoginState(LoginState.NOT_LOGGED_IN);
|
||||
c.clear();
|
||||
} else {
|
||||
if (!Server.getInstance().hasCharacteridInTransition(c)) {
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
c.updateLoginState(LoginState.NOT_LOGGED_IN);
|
||||
}
|
||||
|
||||
c.clearEngines();
|
||||
|
||||
Reference in New Issue
Block a user