Refactor PacketProcessor, split into more methods
This commit is contained in:
@@ -21,34 +21,15 @@
|
||||
*/
|
||||
package net;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import net.opcodes.RecvOpcode;
|
||||
import net.server.channel.handlers.*;
|
||||
import net.server.handlers.CustomPacketHandler;
|
||||
import net.server.handlers.KeepAliveHandler;
|
||||
import net.server.handlers.LoginRequiringNoOpHandler;
|
||||
import net.server.handlers.login.AcceptToSHandler;
|
||||
import net.server.handlers.login.AfterLoginHandler;
|
||||
import net.server.handlers.login.CharSelectedHandler;
|
||||
import net.server.handlers.login.CharSelectedWithPicHandler;
|
||||
import net.server.handlers.login.CharlistRequestHandler;
|
||||
import net.server.handlers.login.CheckCharNameHandler;
|
||||
import net.server.handlers.login.CreateCharHandler;
|
||||
import net.server.handlers.login.DeleteCharHandler;
|
||||
import net.server.handlers.login.GuestLoginHandler;
|
||||
import net.server.handlers.login.LoginPasswordHandler;
|
||||
import net.server.handlers.login.RegisterPicHandler;
|
||||
import net.server.handlers.login.RegisterPinHandler;
|
||||
import net.server.handlers.login.RelogRequestHandler;
|
||||
import net.server.handlers.login.ServerStatusRequestHandler;
|
||||
import net.server.handlers.login.ServerlistRequestHandler;
|
||||
import net.server.handlers.login.SetGenderHandler;
|
||||
import net.server.handlers.login.ViewAllCharHandler;
|
||||
import net.server.handlers.login.ViewAllCharRegisterPicHandler;
|
||||
import net.server.handlers.login.ViewAllCharSelectedHandler;
|
||||
import net.server.handlers.login.ViewAllCharSelectedWithPicHandler;
|
||||
import net.server.handlers.login.*;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public final class PacketProcessor {
|
||||
|
||||
@@ -65,6 +46,14 @@ public final class PacketProcessor {
|
||||
handlers = new MaplePacketHandler[maxRecvOp + 1];
|
||||
}
|
||||
|
||||
public static PacketProcessor getLoginServerProcessor() {
|
||||
return getProcessor(-1, -1);
|
||||
}
|
||||
|
||||
public static PacketProcessor getChannelServerProcessor(int world, int channel) {
|
||||
return getProcessor(world, channel);
|
||||
}
|
||||
|
||||
public MaplePacketHandler getHandler(short packetId) {
|
||||
if (packetId > handlers.length) {
|
||||
return null;
|
||||
@@ -86,12 +75,12 @@ public final class PacketProcessor {
|
||||
}
|
||||
|
||||
public synchronized static PacketProcessor getProcessor(int world, int channel) {
|
||||
final String lolpair = world + " " + channel;
|
||||
PacketProcessor processor = instances.get(lolpair);
|
||||
final String processorId = world + " " + channel;
|
||||
PacketProcessor processor = instances.get(processorId);
|
||||
if (processor == null) {
|
||||
processor = new PacketProcessor();
|
||||
processor.reset(channel);
|
||||
instances.put(lolpair, processor);
|
||||
instances.put(processorId, processor);
|
||||
}
|
||||
return processor;
|
||||
}
|
||||
@@ -99,10 +88,21 @@ public final class PacketProcessor {
|
||||
public void reset(int channel) {
|
||||
handlers = new MaplePacketHandler[handlers.length];
|
||||
|
||||
registerCommonHandlers();
|
||||
|
||||
if (channel < 0) {
|
||||
registerLoginHandlers();
|
||||
} else {
|
||||
registerChannelHandlers();
|
||||
}
|
||||
}
|
||||
|
||||
private void registerCommonHandlers() {
|
||||
registerHandler(RecvOpcode.PONG, new KeepAliveHandler());
|
||||
registerHandler(RecvOpcode.CUSTOM_PACKET, new CustomPacketHandler());
|
||||
if (channel < 0) {
|
||||
//LOGIN HANDLERS
|
||||
}
|
||||
|
||||
private void registerLoginHandlers() {
|
||||
registerHandler(RecvOpcode.ACCEPT_TOS, new AcceptToSHandler());
|
||||
registerHandler(RecvOpcode.AFTER_LOGIN, new AfterLoginHandler());
|
||||
registerHandler(RecvOpcode.SERVERLIST_REREQUEST, new ServerlistRequestHandler());
|
||||
@@ -124,8 +124,9 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.SET_GENDER, new SetGenderHandler());
|
||||
registerHandler(RecvOpcode.VIEW_ALL_WITH_PIC, new ViewAllCharSelectedWithPicHandler());
|
||||
registerHandler(RecvOpcode.VIEW_ALL_PIC_REGISTER, new ViewAllCharRegisterPicHandler());
|
||||
} else {
|
||||
//CHANNEL HANDLERS
|
||||
}
|
||||
|
||||
private void registerChannelHandlers() {
|
||||
registerHandler(RecvOpcode.NAME_TRANSFER, new TransferNameHandler());
|
||||
registerHandler(RecvOpcode.CHECK_CHAR_NAME, new TransferNameResultHandler());
|
||||
registerHandler(RecvOpcode.WORLD_TRANSFER, new TransferWorldHandler());
|
||||
@@ -275,5 +276,4 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.USE_ITEMUI, new RaiseIncExpHandler());
|
||||
registerHandler(RecvOpcode.CHANGE_QUICKSLOT, new QuickslotKeyMappedModifiedHandler());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user