Add NoteService to handle note operations
NoteService should be the only class with access to NoteDao; nowhere else should NoteDao be accessed directly. Channel dependencies are static in PacketProcessor, for now. Ideally they would be injected in the constructor, but since the constructor is private and I don't want to open up that can of worms, I'll leave it like this. At the very least, now we have a way of injecting services into the handlers. This will make further restructuring way easier.
This commit is contained in:
@@ -37,6 +37,9 @@ import java.util.Map;
|
||||
public final class PacketProcessor {
|
||||
private static final Logger log = LoggerFactory.getLogger(PacketProcessor.class);
|
||||
private static final Map<String, PacketProcessor> instances = new LinkedHashMap<>();
|
||||
|
||||
private static ChannelDependencies channelDependencies;
|
||||
|
||||
private PacketHandler[] handlers;
|
||||
|
||||
private PacketProcessor() {
|
||||
@@ -49,11 +52,19 @@ public final class PacketProcessor {
|
||||
handlers = new PacketHandler[maxRecvOp + 1];
|
||||
}
|
||||
|
||||
public static void registerGameHandlerDependencies(ChannelDependencies channelDependencies) {
|
||||
PacketProcessor.channelDependencies = channelDependencies;
|
||||
}
|
||||
|
||||
public static PacketProcessor getLoginServerProcessor() {
|
||||
return getProcessor(LoginServer.WORLD_ID, LoginServer.CHANNEL_ID);
|
||||
}
|
||||
|
||||
public static PacketProcessor getChannelServerProcessor(int world, int channel) {
|
||||
if (channelDependencies == null) {
|
||||
throw new IllegalStateException("Unable to get channel server processor - dependencies are not registered");
|
||||
}
|
||||
|
||||
return getProcessor(world, channel);
|
||||
}
|
||||
|
||||
@@ -141,7 +152,7 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.ITEM_SORT, new InventoryMergeHandler());
|
||||
registerHandler(RecvOpcode.ITEM_MOVE, new ItemMoveHandler());
|
||||
registerHandler(RecvOpcode.MESO_DROP, new MesoDropHandler());
|
||||
registerHandler(RecvOpcode.PLAYER_LOGGEDIN, new PlayerLoggedinHandler());
|
||||
registerHandler(RecvOpcode.PLAYER_LOGGEDIN, new PlayerLoggedinHandler(channelDependencies.noteService()));
|
||||
registerHandler(RecvOpcode.CHANGE_MAP, new ChangeMapHandler());
|
||||
registerHandler(RecvOpcode.MOVE_LIFE, new MoveLifeHandler());
|
||||
registerHandler(RecvOpcode.CLOSE_RANGE_ATTACK, new CloseRangeDamageHandler());
|
||||
@@ -149,7 +160,7 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.MAGIC_ATTACK, new MagicDamageHandler());
|
||||
registerHandler(RecvOpcode.TAKE_DAMAGE, new TakeDamageHandler());
|
||||
registerHandler(RecvOpcode.MOVE_PLAYER, new MovePlayerHandler());
|
||||
registerHandler(RecvOpcode.USE_CASH_ITEM, new UseCashItemHandler());
|
||||
registerHandler(RecvOpcode.USE_CASH_ITEM, new UseCashItemHandler(channelDependencies.noteService()));
|
||||
registerHandler(RecvOpcode.USE_ITEM, new UseItemHandler());
|
||||
registerHandler(RecvOpcode.USE_RETURN_SCROLL, new UseItemHandler());
|
||||
registerHandler(RecvOpcode.USE_UPGRADE_SCROLL, new ScrollHandler());
|
||||
@@ -191,7 +202,7 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.MESSENGER, new MessengerHandler());
|
||||
registerHandler(RecvOpcode.NPC_ACTION, new NPCAnimationHandler());
|
||||
registerHandler(RecvOpcode.CHECK_CASH, new TouchingCashShopHandler());
|
||||
registerHandler(RecvOpcode.CASHSHOP_OPERATION, new CashOperationHandler());
|
||||
registerHandler(RecvOpcode.CASHSHOP_OPERATION, new CashOperationHandler(channelDependencies.noteService()));
|
||||
registerHandler(RecvOpcode.COUPON_CODE, new CouponCodeHandler());
|
||||
registerHandler(RecvOpcode.SPAWN_PET, new SpawnPetHandler());
|
||||
registerHandler(RecvOpcode.MOVE_PET, new MovePetHandler());
|
||||
@@ -204,11 +215,11 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.CANCEL_DEBUFF, new CancelDebuffHandler());
|
||||
registerHandler(RecvOpcode.USE_SKILL_BOOK, new SkillBookHandler());
|
||||
registerHandler(RecvOpcode.SKILL_MACRO, new SkillMacroHandler());
|
||||
registerHandler(RecvOpcode.NOTE_ACTION, new NoteActionHandler());
|
||||
registerHandler(RecvOpcode.NOTE_ACTION, new NoteActionHandler(channelDependencies.noteService()));
|
||||
registerHandler(RecvOpcode.CLOSE_CHALKBOARD, new CloseChalkboardHandler());
|
||||
registerHandler(RecvOpcode.USE_MOUNT_FOOD, new UseMountFoodHandler());
|
||||
registerHandler(RecvOpcode.MTS_OPERATION, new MTSHandler());
|
||||
registerHandler(RecvOpcode.RING_ACTION, new RingActionHandler());
|
||||
registerHandler(RecvOpcode.RING_ACTION, new RingActionHandler(channelDependencies.noteService()));
|
||||
registerHandler(RecvOpcode.SPOUSE_CHAT, new SpouseChatHandler());
|
||||
registerHandler(RecvOpcode.PET_AUTO_POT, new PetAutoPotHandler());
|
||||
registerHandler(RecvOpcode.PET_EXCLUDE_ITEMS, new PetExcludeItemsHandler());
|
||||
|
||||
Reference in New Issue
Block a user