Exemplo n.º 1
0
  public void reset() {
    handlers = new MaplePacketHandler[handlers.length];

    registerHandler(RecvOpcode.PONG, new KeepAliveHandler());
    registerHandler(RecvOpcode.CUSTOM_PACKET, new CustomPacketHandler());
    // LOGIN HANDLERS
    registerHandler(RecvOpcode.ACCEPT_TOS, new AcceptToSHandler());
    registerHandler(RecvOpcode.AFTER_LOGIN, new AfterLoginHandler());
    registerHandler(RecvOpcode.SERVERLIST_REREQUEST, new ServerlistRequestHandler());
    registerHandler(RecvOpcode.CHARLIST_REQUEST, new CharlistRequestHandler());
    registerHandler(RecvOpcode.CHAR_SELECT, new CharSelectedHandler());
    registerHandler(RecvOpcode.LOGIN_PASSWORD, new LoginPasswordHandler());
    registerHandler(RecvOpcode.RELOG, new RelogRequestHandler());
    registerHandler(RecvOpcode.SERVERLIST_REQUEST, new ServerlistRequestHandler());
    registerHandler(RecvOpcode.SERVERSTATUS_REQUEST, new ServerStatusRequestHandler());
    registerHandler(RecvOpcode.CHECK_CHAR_NAME, new CheckCharNameHandler());
    registerHandler(RecvOpcode.CREATE_CHAR, new CreateCharHandler());
    registerHandler(RecvOpcode.DELETE_CHAR, new DeleteCharHandler());
    registerHandler(RecvOpcode.VIEW_ALL_CHAR, new ViewCharHandler());
    registerHandler(RecvOpcode.PICK_ALL_CHAR, new PickCharHandler());
    registerHandler(RecvOpcode.REGISTER_PIN, new RegisterPinHandler());
    registerHandler(RecvOpcode.GUEST_LOGIN, new GuestLoginHandler());
    registerHandler(RecvOpcode.REGISTER_PIC, new RegisterPicHandler());
    registerHandler(RecvOpcode.CHAR_SELECT_WITH_PIC, new CharSelectedWithPicHandler());
    registerHandler(RecvOpcode.SET_GENDER, new SetGenderHandler());
    registerHandler(RecvOpcode.VIEW_ALL_WITH_PIC, new ViewAllCharSelectedWithPicHandler());
    registerHandler(RecvOpcode.VIEW_ALL_PIC_REGISTER, new ViewAllPicRegisterHandler());

    // CHANNEL HANDLERS
    registerHandler(RecvOpcode.CHANGE_CHANNEL, new ChangeChannelHandler());
    registerHandler(RecvOpcode.STRANGE_DATA, LoginRequiringNoOpHandler.getInstance());
    registerHandler(RecvOpcode.GENERAL_CHAT, new GeneralChatHandler());
    registerHandler(RecvOpcode.WHISPER, new WhisperHandler());
    registerHandler(RecvOpcode.NPC_TALK, new NPCTalkHandler());
    registerHandler(RecvOpcode.NPC_TALK_MORE, new NPCMoreTalkHandler());
    registerHandler(RecvOpcode.QUEST_ACTION, new QuestActionHandler());
    registerHandler(RecvOpcode.NPC_SHOP, new NPCShopHandler());
    registerHandler(RecvOpcode.ITEM_SORT, new ItemSortHandler());
    registerHandler(RecvOpcode.ITEM_MOVE, new ItemMoveHandler());
    registerHandler(RecvOpcode.MESO_DROP, new MesoDropHandler());
    registerHandler(RecvOpcode.PLAYER_LOGGEDIN, new PlayerLoggedinHandler());
    registerHandler(RecvOpcode.CHANGE_MAP, new ChangeMapHandler());
    registerHandler(RecvOpcode.MOVE_LIFE, new MoveLifeHandler());
    registerHandler(RecvOpcode.CLOSE_RANGE_ATTACK, new CloseRangeDamageHandler());
    registerHandler(RecvOpcode.RANGED_ATTACK, new RangedAttackHandler());
    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_ITEM, new UseItemHandler());
    registerHandler(RecvOpcode.USE_RETURN_SCROLL, new UseItemHandler());
    registerHandler(RecvOpcode.USE_UPGRADE_SCROLL, new ScrollHandler());
    registerHandler(RecvOpcode.USE_SUMMON_BAG, new UseSummonBag());
    registerHandler(RecvOpcode.FACE_EXPRESSION, new FaceExpressionHandler());
    registerHandler(RecvOpcode.HEAL_OVER_TIME, new HealOvertimeHandler());
    registerHandler(RecvOpcode.ITEM_PICKUP, new ItemPickupHandler());
    registerHandler(RecvOpcode.CHAR_INFO_REQUEST, new CharInfoRequestHandler());
    registerHandler(RecvOpcode.SPECIAL_MOVE, new SpecialMoveHandler());
    registerHandler(RecvOpcode.USE_INNER_PORTAL, new InnerPortalHandler());
    registerHandler(RecvOpcode.CANCEL_BUFF, new CancelBuffHandler());
    registerHandler(RecvOpcode.CANCEL_ITEM_EFFECT, new CancelItemEffectHandler());
    registerHandler(RecvOpcode.PLAYER_INTERACTION, new PlayerInteractionHandler());
    registerHandler(RecvOpcode.DISTRIBUTE_AP, new DistributeAPHandler());
    registerHandler(RecvOpcode.DISTRIBUTE_SP, new DistributeSPHandler());
    registerHandler(RecvOpcode.CHANGE_KEYMAP, new KeymapChangeHandler());
    registerHandler(RecvOpcode.CHANGE_MAP_SPECIAL, new ChangeMapSpecialHandler());
    registerHandler(RecvOpcode.STORAGE, new StorageHandler());
    registerHandler(RecvOpcode.GIVE_FAME, new GiveFameHandler());
    registerHandler(RecvOpcode.PARTY_OPERATION, new PartyOperationHandler());
    registerHandler(RecvOpcode.DENY_PARTY_REQUEST, new DenyPartyRequestHandler());
    registerHandler(RecvOpcode.PARTYCHAT, new PartyChatHandler());
    registerHandler(RecvOpcode.USE_DOOR, new DoorHandler());
    registerHandler(RecvOpcode.ENTER_MTS, new EnterMTSHandler());
    registerHandler(RecvOpcode.ENTER_CASHSHOP, new EnterCashShopHandler());
    registerHandler(RecvOpcode.DAMAGE_SUMMON, new DamageSummonHandler());
    registerHandler(RecvOpcode.MOVE_SUMMON, new MoveSummonHandler());
    registerHandler(RecvOpcode.SUMMON_ATTACK, new SummonDamageHandler());
    registerHandler(RecvOpcode.BUDDYLIST_MODIFY, new BuddylistModifyHandler());
    registerHandler(RecvOpcode.USE_ITEMEFFECT, new UseItemEffectHandler());
    registerHandler(RecvOpcode.USE_CHAIR, new UseChairHandler());
    registerHandler(RecvOpcode.CANCEL_CHAIR, new CancelChairHandler());
    registerHandler(RecvOpcode.DAMAGE_REACTOR, new ReactorHitHandler());
    registerHandler(RecvOpcode.GUILD_OPERATION, new GuildOperationHandler());
    registerHandler(RecvOpcode.DENY_GUILD_REQUEST, new DenyGuildRequestHandler());
    registerHandler(RecvOpcode.BBS_OPERATION, new BBSOperationHandler());
    registerHandler(RecvOpcode.SKILL_EFFECT, new SkillEffectHandler());
    registerHandler(RecvOpcode.MESSENGER, new MessengerHandler());
    registerHandler(RecvOpcode.NPC_ACTION, new NPCAnimation());
    registerHandler(RecvOpcode.CHECK_CASH, new TouchingCashShopHandler());
    registerHandler(RecvOpcode.CASHSHOP_OPERATION, new CashOperationHandler());
    registerHandler(RecvOpcode.COUPON_CODE, new CouponCodeHandler());
    registerHandler(RecvOpcode.SPAWN_PET, new SpawnPetHandler());
    registerHandler(RecvOpcode.MOVE_PET, new MovePetHandler());
    registerHandler(RecvOpcode.PET_CHAT, new PetChatHandler());
    registerHandler(RecvOpcode.PET_COMMAND, new PetCommandHandler());
    registerHandler(RecvOpcode.PET_FOOD, new PetFoodHandler());
    registerHandler(RecvOpcode.PET_LOOT, new PetLootHandler());
    registerHandler(RecvOpcode.AUTO_AGGRO, new AutoAggroHandler());
    registerHandler(RecvOpcode.MONSTER_BOMB, new MonsterBombHandler());
    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.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.SPOUSE_CHAT, new SpouseChatHandler());
    registerHandler(RecvOpcode.PET_AUTO_POT, new PetAutoPotHandler());
    registerHandler(RecvOpcode.PET_EXCLUDE_ITEMS, new PetExcludeItemsHandler());
    registerHandler(RecvOpcode.TOUCH_MONSTER_ATTACK, new TouchMonsterDamageHandler());
    registerHandler(RecvOpcode.TROCK_ADD_MAP, new TrockAddMapHandler());
    registerHandler(RecvOpcode.HIRED_MERCHANT_REQUEST, new HiredMerchantRequest());
    registerHandler(RecvOpcode.MOB_DAMAGE_MOB, new MobDamageMobHandler());
    registerHandler(RecvOpcode.REPORT, new ReportHandler());
    registerHandler(RecvOpcode.MONSTER_BOOK_COVER, new MonsterBookCoverHandler());
    registerHandler(RecvOpcode.AUTO_DISTRIBUTE_AP, new AutoAssignHandler());
    registerHandler(RecvOpcode.MAKER_SKILL, new MakerSkillHandler());
    registerHandler(RecvOpcode.ADD_FAMILY, new FamilyAddHandler());
    registerHandler(RecvOpcode.USE_FAMILY, new FamilyUseHandler());
    registerHandler(RecvOpcode.USE_HAMMER, new UseHammerHandler());
    registerHandler(RecvOpcode.SCRIPTED_ITEM, new ScriptedItemHandler());
    registerHandler(RecvOpcode.TOUCHING_REACTOR, new TouchReactorHandler());
    registerHandler(RecvOpcode.BEHOLDER, new BeholderHandler());
    registerHandler(RecvOpcode.ADMIN_COMMAND, new AdminCommandHandler());
    registerHandler(RecvOpcode.ADMIN_LOG, new AdminLogHandler());
    registerHandler(RecvOpcode.ALLIANCE_OPERATION, new AllianceOperationHandler());
    registerHandler(RecvOpcode.USE_SOLOMON_ITEM, new UseSolomonHandler());
    registerHandler(RecvOpcode.USE_GACHA_EXP, new UseGachaExpHandler());
    registerHandler(RecvOpcode.USE_ITEM_REWARD, new ItemRewardHandler());
    registerHandler(RecvOpcode.USE_REMOTE, new RemoteGachaponHandler());
    registerHandler(RecvOpcode.ACCEPT_FAMILY, new AcceptFamilyHandler());
    registerHandler(RecvOpcode.DUEY_ACTION, new DueyHandler());
    registerHandler(RecvOpcode.USE_DEATHITEM, new UseDeathItemHandler());
    // registerHandler(RecvOpcode.PLAYER_UPDATE, new
    // PlayerUpdateHandler());don't use unused stuff
    registerHandler(RecvOpcode.USE_MAPLELIFE, new UseMapleLifeHandler());
    registerHandler(RecvOpcode.USE_CATCH_ITEM, new UseCatchItemHandler());
    registerHandler(RecvOpcode.MOB_DAMAGE_MOB_FRIENDLY, new MobDamageMobFriendlyHandler());
    registerHandler(RecvOpcode.PARTY_SEARCH_REGISTER, new PartySearchRegisterHandler());
    registerHandler(RecvOpcode.PARTY_SEARCH_START, new PartySearchStartHandler());
    registerHandler(RecvOpcode.ITEM_SORT2, new ItemIdSortHandler());
    registerHandler(RecvOpcode.LEFT_KNOCKBACK, new LeftKnockbackHandler());
    registerHandler(RecvOpcode.SNOWBALL, new SnowballHandler());
    registerHandler(RecvOpcode.COCONUT, new CoconutHandler());
    registerHandler(RecvOpcode.TEMP_SKILL, new TempSkillHandler());
    registerHandler(RecvOpcode.ARAN_COMBO_COUNTER, new AranComboHandler());
    registerHandler(RecvOpcode.CLICK_GUIDE, new ClickGuideHandler());
    registerHandler(RecvOpcode.FREDRICK_ACTION, new FredrickHandler());
    registerHandler(RecvOpcode.MONSTER_CARNIVAL, new MonsterCarnivalHandler());
    registerHandler(RecvOpcode.REMOTE_STORE, new RemoteStoreHandler());
    registerHandler(RecvOpcode.WEDDING_ACTION, new WeddingHandler());
  }
Exemplo n.º 2
0
 public void reset(Mode mode) {
   registerHandler(RecvPacketOpcode.PONG, new KeepAliveHandler());
   if (mode == Mode.LOGINSERVER) {
     registerHandler(RecvPacketOpcode.AFTER_LOGIN, new AfterLoginHandler());
     registerHandler(RecvPacketOpcode.SERVERLIST_REREQUEST, new ServerlistRequestHandler());
     registerHandler(RecvPacketOpcode.CHARLIST_REQUEST, new CharlistRequestHandler());
     registerHandler(RecvPacketOpcode.CHAR_SELECT, new CharSelectedHandler());
     registerHandler(RecvPacketOpcode.LOGIN_PASSWORD, new LoginPasswordHandler());
     registerHandler(RecvPacketOpcode.RELOG, new RelogRequestHandler());
     registerHandler(RecvPacketOpcode.SERVERLIST_REQUEST, new ServerlistRequestHandler());
     registerHandler(RecvPacketOpcode.SERVERSTATUS_REQUEST, new ServerStatusRequestHandler());
     registerHandler(RecvPacketOpcode.CHECK_CHAR_NAME, new CheckCharNameHandler());
     registerHandler(RecvPacketOpcode.CREATE_CHAR, new CreateCharHandler());
     registerHandler(RecvPacketOpcode.DELETE_CHAR, new DeleteCharHandler());
     registerHandler(RecvPacketOpcode.VIEW_ALL_CHAR, new ViewCharHandler());
     registerHandler(RecvPacketOpcode.PICK_ALL_CHAR, new PickCharHandler());
   } else if (mode == Mode.CHANNELSERVER) {
     registerHandler(RecvPacketOpcode.CHANGE_CHANNEL, new ChangeChannelHandler());
     registerHandler(RecvPacketOpcode.STRANGE_DATA, LoginRequiringNoOpHandler.getInstance());
     registerHandler(RecvPacketOpcode.GENERAL_CHAT, new GeneralchatHandler());
     registerHandler(RecvPacketOpcode.WHISPER, new WhisperHandler());
     registerHandler(RecvPacketOpcode.NPC_TALK, new NPCTalkHandler());
     registerHandler(RecvPacketOpcode.NPC_TALK_MORE, new NPCMoreTalkHandler());
     registerHandler(RecvPacketOpcode.QUEST_ACTION, new QuestActionHandler());
     registerHandler(RecvPacketOpcode.NPC_SHOP, new NPCShopHandler());
     registerHandler(RecvPacketOpcode.ITEM_SORT, new ItemSortHandler());
     registerHandler(RecvPacketOpcode.ITEM_MOVE, new ItemMoveHandler());
     registerHandler(RecvPacketOpcode.MESO_DROP, new MesoDropHandler());
     registerHandler(RecvPacketOpcode.PLAYER_LOGGEDIN, new PlayerLoggedinHandler());
     registerHandler(RecvPacketOpcode.CHANGE_MAP, new ChangeMapHandler());
     registerHandler(RecvPacketOpcode.MOVE_LIFE, new MoveLifeHandler());
     registerHandler(RecvPacketOpcode.CLOSE_RANGE_ATTACK, new CloseRangeDamageHandler());
     registerHandler(RecvPacketOpcode.RANGED_ATTACK, new RangedAttackHandler());
     registerHandler(RecvPacketOpcode.MAGIC_ATTACK, new MagicDamageHandler());
     registerHandler(RecvPacketOpcode.TAKE_DAMAGE, new TakeDamageHandler());
     registerHandler(RecvPacketOpcode.MOVE_PLAYER, new MovePlayerHandler());
     registerHandler(RecvPacketOpcode.USE_CASH_ITEM, new UseCashItemHandler());
     registerHandler(RecvPacketOpcode.USE_ITEM, new UseItemHandler());
     registerHandler(RecvPacketOpcode.USE_RETURN_SCROLL, new UseItemHandler());
     registerHandler(RecvPacketOpcode.USE_UPGRADE_SCROLL, new ScrollHandler());
     registerHandler(RecvPacketOpcode.USE_SUMMON_BAG, new UseSummonBag());
     registerHandler(RecvPacketOpcode.FACE_EXPRESSION, new FaceExpressionHandler());
     registerHandler(RecvPacketOpcode.HEAL_OVER_TIME, new HealOvertimeHandler());
     registerHandler(RecvPacketOpcode.ITEM_PICKUP, new ItemPickupHandler());
     registerHandler(RecvPacketOpcode.CHAR_INFO_REQUEST, new CharInfoRequestHandler());
     registerHandler(RecvPacketOpcode.SPECIAL_MOVE, new SpecialMoveHandler());
     registerHandler(RecvPacketOpcode.USE_INNER_PORTAL, new InnerPortalHandler());
     registerHandler(RecvPacketOpcode.TROCK_ADD_MAP, new VIPRockAddMapHandler());
     registerHandler(RecvPacketOpcode.CANCEL_BUFF, new CancelBuffHandler());
     registerHandler(RecvPacketOpcode.CANCEL_ITEM_EFFECT, new CancelItemEffectHandler());
     registerHandler(RecvPacketOpcode.PLAYER_INTERACTION, new PlayerInteractionHandler());
     registerHandler(RecvPacketOpcode.DISTRIBUTE_AP, new DistributeAPHandler());
     registerHandler(RecvPacketOpcode.DISTRIBUTE_SP, new DistributeSPHandler());
     registerHandler(RecvPacketOpcode.CHANGE_KEYMAP, new KeymapChangeHandler());
     registerHandler(RecvPacketOpcode.CHANGE_MAP_SPECIAL, new ChangeMapSpecialHandler());
     registerHandler(RecvPacketOpcode.STORAGE, new StorageHandler());
     registerHandler(RecvPacketOpcode.GIVE_FAME, new GiveFameHandler());
     registerHandler(RecvPacketOpcode.PARTY_OPERATION, new PartyOperationHandler());
     registerHandler(RecvPacketOpcode.DENY_PARTY_REQUEST, new DenyPartyRequestHandler());
     registerHandler(RecvPacketOpcode.PARTYCHAT, new PartychatHandler());
     registerHandler(RecvPacketOpcode.USE_DOOR, new DoorHandler());
     registerHandler(RecvPacketOpcode.ENTER_MTS, new EnterMTSHandler());
     registerHandler(RecvPacketOpcode.ENTER_CASH_SHOP, new EnterCashShopHandler());
     registerHandler(RecvPacketOpcode.DAMAGE_SUMMON, new DamageSummonHandler());
     registerHandler(RecvPacketOpcode.MOVE_SUMMON, new MoveSummonHandler());
     registerHandler(RecvPacketOpcode.SUMMON_ATTACK, new SummonDamageHandler());
     registerHandler(RecvPacketOpcode.BUDDYLIST_MODIFY, new BuddylistModifyHandler());
     registerHandler(RecvPacketOpcode.USE_ITEMEFFECT, new UseItemEffectHandler());
     registerHandler(RecvPacketOpcode.USE_CHAIR, new UseChairHandler());
     registerHandler(RecvPacketOpcode.CANCEL_CHAIR, new CancelChairHandler());
     registerHandler(RecvPacketOpcode.DAMAGE_REACTOR, new ReactorHitHandler());
     registerHandler(RecvPacketOpcode.GUILD_OPERATION, new GuildOperationHandler());
     registerHandler(RecvPacketOpcode.DENY_GUILD_REQUEST, new DenyGuildRequestHandler());
     registerHandler(RecvPacketOpcode.BBS_OPERATION, new BBSOperationHandler());
     registerHandler(RecvPacketOpcode.SKILL_EFFECT, new SkillEffectHandler());
     registerHandler(RecvPacketOpcode.MESSENGER, new MessengerHandler());
     registerHandler(RecvPacketOpcode.NPC_ACTION, new NPCAnimation());
     registerHandler(RecvPacketOpcode.TOUCHING_CS, new TouchingCashShopHandler());
     registerHandler(RecvPacketOpcode.BUY_CS_ITEM, new BuyCSItemHandler());
     registerHandler(RecvPacketOpcode.COUPON_CODE, new CouponCodeHandler());
     registerHandler(RecvPacketOpcode.SPAWN_PET, new SpawnPetHandler());
     registerHandler(RecvPacketOpcode.MOVE_PET, new MovePetHandler());
     registerHandler(RecvPacketOpcode.PET_CHAT, new PetChatHandler());
     registerHandler(RecvPacketOpcode.PET_COMMAND, new PetCommandHandler());
     registerHandler(RecvPacketOpcode.PET_FOOD, new PetFoodHandler());
     registerHandler(RecvPacketOpcode.PET_LOOT, new PetLootHandler());
     registerHandler(RecvPacketOpcode.AUTO_AGGRO, new AutoAggroHandler());
     registerHandler(RecvPacketOpcode.MONSTER_BOMB, new MonsterBombHandler());
     registerHandler(RecvPacketOpcode.CANCEL_DEBUFF, new CancelDebuffHandler());
     registerHandler(RecvPacketOpcode.USE_SKILL_BOOK, new SkillBookHandler());
     registerHandler(RecvPacketOpcode.SKILL_MACRO, new SkillMacroHandler());
     registerHandler(RecvPacketOpcode.NOTE_ACTION, new NoteActionHandler());
     registerHandler(RecvPacketOpcode.MAPLETV, new MapleTVHandler());
     registerHandler(RecvPacketOpcode.ENABLE_ACTION, new EnableActionHandler());
     registerHandler(RecvPacketOpcode.USE_CATCH_ITEM, new UseCatchItemHandler());
     registerHandler(RecvPacketOpcode.USE_MOUNT_FOOD, new UseMountFoodHandler());
     registerHandler(RecvPacketOpcode.CLOSE_CHALKBOARD, new CloseChalkboardHandler());
     registerHandler(RecvPacketOpcode.DUEY_ACTION, new DueyHandler());
     registerHandler(RecvPacketOpcode.MONSTER_CARNIVAL, new MonsterCarnivalHandler());
     registerHandler(RecvPacketOpcode.RING_ACTION, new RingActionHandler());
     registerHandler(RecvPacketOpcode.SPOUSE_CHAT, new SpouseChatHandler());
     registerHandler(RecvPacketOpcode.REPORT_PLAYER, new ReportHandler());
     registerHandler(RecvPacketOpcode.PASSIVE_ENERGY, new PassiveEnergyHandler());
     registerHandler(RecvPacketOpcode.UNSTUCK, new UnstuckHandler());
     registerHandler(RecvPacketOpcode.MOB_DAMAGE_MOB, new MobDamageMobHandler());
     registerHandler(RecvPacketOpcode.MTS_OP, new MTSHandler());
     registerHandler(RecvPacketOpcode.DISCONNECT, new DisconnectHandler());
     registerHandler(RecvPacketOpcode.ALLIANCE_OPERATION, new AllianceOperationHandler());
     registerHandler(RecvPacketOpcode.PET_AUTO_POT, new PetAutoPotHandler());
     registerHandler(RecvPacketOpcode.HIRED_MERCHANT, new OpenHiredHandler());
     registerHandler(RecvPacketOpcode.HIRED_MERCHANT_REQUEST, new HiredMerchantRequest());
     registerHandler(RecvPacketOpcode.SILVER_BOX, new SilverBox());
   } else {
     throw new RuntimeException("Cannot find packet handler.");
   }
 }