forked from MagicBane/Server
Methods moved out of old login handler
This commit is contained in:
@@ -13,15 +13,18 @@ import engine.Enum;
|
||||
import engine.gameManager.*;
|
||||
import engine.job.JobScheduler;
|
||||
import engine.jobs.CSessionCleanupJob;
|
||||
import engine.jobs.DisconnectJob;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.Network;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.ClientConnectionManager;
|
||||
import engine.net.client.Protocol;
|
||||
import engine.net.client.msg.login.ServerStatusMsg;
|
||||
import engine.net.client.msg.login.VersionInfoMsg;
|
||||
import engine.net.client.msg.login.*;
|
||||
import engine.objects.*;
|
||||
import engine.server.MBServerStatics;
|
||||
import engine.server.world.WorldServer;
|
||||
import engine.session.Session;
|
||||
import engine.util.ByteUtils;
|
||||
import engine.util.ThreadUtils;
|
||||
import org.pmw.tinylog.Configurator;
|
||||
@@ -170,6 +173,52 @@ public class LoginServer {
|
||||
return portInUse;
|
||||
}
|
||||
|
||||
public static void sendInvalidNameMsg(String firstName, String lastName, int errorCode, ClientConnection clientConnection) {
|
||||
|
||||
InvalidNameMsg invalidNameMessage;
|
||||
|
||||
if (firstName.length() > 256 || lastName.length() > 256)
|
||||
invalidNameMessage = new InvalidNameMsg(firstName, lastName, errorCode);
|
||||
else
|
||||
invalidNameMessage = new InvalidNameMsg(firstName, lastName, errorCode);
|
||||
|
||||
clientConnection.sendMsg(invalidNameMessage);
|
||||
}
|
||||
|
||||
public static void KickToLogin(int errCode, String message, ClientConnection origin) {
|
||||
LoginErrorMsg msg = new LoginErrorMsg(errCode, message);
|
||||
|
||||
PlayerCharacter player = origin.getPlayerCharacter();
|
||||
|
||||
if (player == null) {
|
||||
origin.sendMsg(msg);
|
||||
} else {
|
||||
Dispatch dispatch = Dispatch.borrow(player, msg);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.PRIMARY);
|
||||
}
|
||||
|
||||
|
||||
Logger.info("Kicking to Login. Message: '" + message + '\'');
|
||||
|
||||
DisconnectJob dj = new DisconnectJob(origin);
|
||||
JobScheduler.getInstance().scheduleJob(dj, 250);
|
||||
}
|
||||
|
||||
public static void sendCharacterSelectScreen(Session s) {
|
||||
sendCharacterSelectScreen(s, false);
|
||||
}
|
||||
|
||||
public static void sendCharacterSelectScreen(Session s, boolean fromCommit) {
|
||||
|
||||
if (s.getAccount() != null) {
|
||||
CharSelectScreenMsg cssm = new CharSelectScreenMsg(s, fromCommit);
|
||||
s.getConn().sendMsg(cssm);
|
||||
} else {
|
||||
Logger.error("No Account Found: Unable to Send Character Select Screen");
|
||||
KickToLogin(MBServerStatics.LOGINERROR_UNABLE_TO_LOGIN, "Unable to send Character Select Screen to client.", s.getConn());
|
||||
}
|
||||
}
|
||||
|
||||
private void exec() {
|
||||
|
||||
|
||||
|
||||
@@ -9,21 +9,10 @@
|
||||
|
||||
package engine.server.login;
|
||||
|
||||
import engine.Enum.DispatchChannel;
|
||||
import engine.job.JobScheduler;
|
||||
import engine.jobs.DisconnectJob;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.NetMsgHandler;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.Protocol;
|
||||
import engine.net.client.msg.ClientNetMsg;
|
||||
import engine.net.client.msg.login.CharSelectScreenMsg;
|
||||
import engine.net.client.msg.login.InvalidNameMsg;
|
||||
import engine.net.client.msg.login.LoginErrorMsg;
|
||||
import engine.objects.PlayerCharacter;
|
||||
import engine.server.MBServerStatics;
|
||||
import engine.session.Session;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
public class LoginServerMsgHandler implements NetMsgHandler {
|
||||
@@ -35,18 +24,6 @@ public class LoginServerMsgHandler implements NetMsgHandler {
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
public static void sendInvalidNameMsg(String firstName, String lastName, int errorCode, ClientConnection clientConnection) {
|
||||
|
||||
InvalidNameMsg invalidNameMessage;
|
||||
|
||||
if (firstName.length() > 256 || lastName.length() > 256)
|
||||
invalidNameMessage = new InvalidNameMsg(firstName, lastName, errorCode);
|
||||
else
|
||||
invalidNameMessage = new InvalidNameMsg(firstName, lastName, errorCode);
|
||||
|
||||
clientConnection.sendMsg(invalidNameMessage);
|
||||
}
|
||||
|
||||
/*
|
||||
* =========================================================================
|
||||
* Client Messages
|
||||
@@ -67,38 +44,4 @@ public class LoginServerMsgHandler implements NetMsgHandler {
|
||||
}
|
||||
|
||||
|
||||
public static void KickToLogin(int errCode, String message, ClientConnection origin) {
|
||||
LoginErrorMsg msg = new LoginErrorMsg(errCode, message);
|
||||
|
||||
PlayerCharacter player = origin.getPlayerCharacter();
|
||||
|
||||
if (player == null) {
|
||||
origin.sendMsg(msg);
|
||||
} else {
|
||||
Dispatch dispatch = Dispatch.borrow(player, msg);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.PRIMARY);
|
||||
}
|
||||
|
||||
|
||||
Logger.info("Kicking to Login. Message: '" + message + '\'');
|
||||
|
||||
DisconnectJob dj = new DisconnectJob(origin);
|
||||
JobScheduler.getInstance().scheduleJob(dj, 250);
|
||||
}
|
||||
|
||||
public static void sendCharacterSelectScreen(Session s) {
|
||||
sendCharacterSelectScreen(s, false);
|
||||
}
|
||||
|
||||
public static void sendCharacterSelectScreen(Session s, boolean fromCommit) {
|
||||
|
||||
if (s.getAccount() != null) {
|
||||
CharSelectScreenMsg cssm = new CharSelectScreenMsg(s, fromCommit);
|
||||
s.getConn().sendMsg(cssm);
|
||||
} else {
|
||||
Logger.error("No Account Found: Unable to Send Character Select Screen");
|
||||
LoginServerMsgHandler.KickToLogin(MBServerStatics.LOGINERROR_UNABLE_TO_LOGIN, "Unable to send Character Select Screen to client.", s.getConn());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user