קוד PHP:
package net.login.handler;
import java.net.InetAddress;
import java.net.UnknownHostException;
import client.MapleClient;
import java.util.logging.Level;
import net.AbstractMaplePacketHandler;
import net.channel.ChannelServer;
import net.login.LoginServer;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
import server.authentication.RegisteredAuthenticates;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CharSelectedWithPicHandler extends AbstractMaplePacketHandler {
private String channelServerIP;
@Override
/*/* 1E 00 06 00 31 30 30 30 30 30 19 78 00 00 11 00 30 31 2D 30 32 2D 37 32 2D 37 31 2D 46
* 32 2D 44 46
* [1E 00] [06 00] [31 30 30 30 30 30] [19 78 00 00] [11 00] [30 30 2D 30 32 2D 37 32 2D 37 31 2D 46
* 32 2D 44 46] 15 00 30 30 35 30 42 41 30 41 33 37 41 39 5F 38 41 34 34 46 43 30 43
*/
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
String pic = slea.readMapleAsciiString();
int charId = slea.readInt();
String macs = slea.readMapleAsciiString();
c.updateMacs(macs);
String mac = macs;
if(macs.contains(", ")){
mac = mac.split(", ")[0];
}
if(c.gmLevel() > 0 && RegisteredAuthenticates.getByMac(mac, c).equals(RegisteredAuthenticates.UNAUTHORIZED)){
c.sendUnauthorizedLogin();
return;
}
if (c.hasBannedMac()) {
c.getSession().close(true);
return;
}
if (1==1) {
try {
if (c.getIdleTask() != null) {
c.getIdleTask().cancel(true);
}
c.updateLoginState(MapleClient.LOGIN_SERVER_TRANSITION);
String channelServerIP = MapleClient.getChannelServerIPFromSubnet(c.getSession().getRemoteAddress().toString().replace("/", "").split(":")[0], c.getChannel());
if (channelServerIP.equals("0.0.0.0")) {
String[] socket = LoginServer.getInstance().getIP(c.getChannel()).split(":");
if(c.getWorld() != 1){
c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId));
} else {
c.announce(MaplePacketCreator.getTestServerIP(Integer.parseInt(socket[1]), charId));
}
} else {
if(c.getWorld() != 1){
c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(channelServerIP), Integer.parseInt(LoginServer.getInstance().getIP(c.getChannel()).split(":")[1]), charId));
} else {
c.announce(MaplePacketCreator.getTestServerIP(Integer.parseInt(LoginServer.getInstance().getIP(c.getChannel()).split(":")[1]), charId));
}
}
} catch (UnknownHostException e) {
try {
c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(channelServerIP), Integer.parseInt(LoginServer.getInstance().getIP(c.getChannel()).split(":")[1]), charId));
} catch (UnknownHostException ex) {
java.util.logging.Logger.getLogger(CharSelectedWithPicHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}
} else {
}
}
}