Пакеты

Тема в разделе "Game Client / Игровой клиент", создана пользователем FxStream, 8 дек 2019.

  1. FxStream

    FxStream Знающий

    Регистрация:
    8 дек 2019
    Сообщения:
    293
    Симпатии:
    3
    Возился я долго, нифига не понимал
    Разобрался тут, почему с инновы пакеты не парсятся, начал парсить с других серверов.
    Кому нибудь это вообще актуально? Или я динозавр и все давно где то было выложено?
    Имеется ввиду общая дискуссия, т.к. как выдирать пакеты я и так научен по гайдам с ваших же форумов.

    Ок, имеется ввиду, сочетание PacketSamurai + NetPro 1.8 (пришлось в Eclipse пересобирать проекты и фиксить баги.. и отматерить хочется за выложенный net.pro багованный... и поблагодарить, за то, что вообще выложили.)
    На примере японских серверов - работает отлично.

    По поводу инновы пакетов: читал, что народ не понимал, мол, иннова каким то волшебным образом иначе с ними работает
    Вижу, что каждый раз клиент обрабатывает пакеты по новому протоколу
    т.е. сервер шлет клиенту 7777->41000
    в следующий раз 41000->7777
    перезапуск клиента дает замену этой цифры на рандомную другую
    т.е. 7777 -> например, будет 49345
    и клиент будет слать 49345 -> 7777
    Товарищи скилловики, Ваш выход,если не секрет.

    Разумная критика приветствуется.

    Администраторы, сократите, пожалуйста, не разобрался :(
    PS: многие могут посчитать мой код за код мобиуса.
    Но нет, я участвовал в проекте мобиуса, так что мой код - это мой код.
     
    #1 FxStream, 8 дек 2019
    Последнее редактирование: 8 дек 2019
    Bonabo нравится это.
  2. FxStream

    FxStream Знающий

    Регистрация:
    8 дек 2019
    Сообщения:
    293
    Симпатии:
    3
    Код:
    /*
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     * General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program. If not, see <http://www.gnu.org/licenses/>.
     */
    package org.l2.gameserver.network;
    
    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;
    import java.util.function.Supplier;
    
    import org.l2.commons.network.IConnectionState;
    import org.l2.commons.network.IIncomingPacket;
    import org.l2.commons.network.IIncomingPackets;
    import org.l2.gameserver.network.clientpackets.*;
    import org.l2.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
    import org.l2.gameserver.network.clientpackets.friend.RequestFriendDel;
    import org.l2.gameserver.network.clientpackets.friend.RequestFriendInvite;
    import org.l2.gameserver.network.clientpackets.friend.RequestFriendList;
    import org.l2.gameserver.network.clientpackets.friend.RequestSendFriendMsg;
    
    /**
     * @author UnAfraid
     */
    public enum IncomingPackets implements IIncomingPackets<GameClient>
    {
        LOGOUT(0x00, Logout::new, ConnectionState.AUTHENTICATED, ConnectionState.IN_GAME),
        ATTACK(0x01, Attack::new, ConnectionState.IN_GAME),
        MOVE_BACKWARD_TO_LOCATION(0x02, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
        REQUEST_START_PLEDGE_WAR(0x03, RequestStartPledgeWar::new, ConnectionState.IN_GAME),
        NOT_USE_10(0x04, null, ConnectionState.IN_GAME),
        REQUEST_STOP_PLEDGE_WAR(0x05, RequestStopPledgeWar::new, ConnectionState.IN_GAME),
        NOT_USE_11(0x06, null, ConnectionState.IN_GAME),
        NOT_USE_12(0x07, null, ConnectionState.IN_GAME),
        NOT_USE_13(0x08, null, ConnectionState.IN_GAME),
        REQUEST_SET_PLEDGE_CREST(0x09, RequestSetPledgeCrest::new, ConnectionState.IN_GAME),
        NOT_USE_14(0x0A, null, ConnectionState.IN_GAME),
        REQUEST_GIVE_NICK_NAME(0x0B, RequestGiveNickName::new, ConnectionState.IN_GAME),
        CHARACTER_CREATE(0x0C, CharacterCreate::new, ConnectionState.AUTHENTICATED),
        CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
        PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
        MOVE_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
        NOT_USE_34(0x10, null, ConnectionState.IN_GAME),
        ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
        CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
        NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
        REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),
        NOT_USE_1(0x15, null, ConnectionState.IN_GAME),
        REQUEST_UN_EQUIP_ITEM(0x16, RequestUnEquipItem::new, ConnectionState.IN_GAME),
        REQUEST_DROP_ITEM(0x17, RequestDropItem::new, ConnectionState.IN_GAME),
        REQUEST_GET_ITEM(0x18, null, ConnectionState.IN_GAME),
        USE_ITEM(0x19, UseItem::new, ConnectionState.IN_GAME),
        TRADE_REQUEST(0x1A, TradeRequest::new, ConnectionState.IN_GAME),
        ADD_TRADE_ITEM(0x1B, AddTradeItem::new, ConnectionState.IN_GAME),
        TRADE_DONE(0x1C, TradeDone::new, ConnectionState.IN_GAME),
        NOT_USE_35(0x1D, null, ConnectionState.IN_GAME),
        NOT_USE_36(0x1E, null, ConnectionState.IN_GAME),
        ACTION(0x1F, Action::new, ConnectionState.IN_GAME),
        NOT_USE_37(0x20, null, ConnectionState.IN_GAME),
        NOT_USE_38(0x21, null, ConnectionState.IN_GAME),
        REQUEST_LINK_HTML(0x22, RequestLinkHtml::new, ConnectionState.IN_GAME),
        REQUEST_BYPASS_TO_SERVER(0x23, RequestBypassToServer::new, ConnectionState.IN_GAME),
        REQUEST_BBS_WRITE(0x24, RequestBBSwrite::new, ConnectionState.IN_GAME),
        NOT_USE_39(0x25, null, ConnectionState.IN_GAME),
        REQUEST_JOIN_PLEDGE(0x26, RequestJoinPledge::new, ConnectionState.IN_GAME),
        REQUEST_ANSWER_JOIN_PLEDGE(0x27, RequestAnswerJoinPledge::new, ConnectionState.IN_GAME),
        REQUEST_WITHDRAWAL_PLEDGE(0x28, RequestWithdrawalPledge::new, ConnectionState.IN_GAME),
        REQUEST_OUST_PLEDGE_MEMBER(0x29, RequestOustPledgeMember::new, ConnectionState.IN_GAME),
        NOT_USE_40(0x2A, null, ConnectionState.IN_GAME),
        AUTH_LOGIN(0x2B, AuthLogin::new, ConnectionState.CONNECTED),
        REQUEST_GET_ITEM_FROM_PET(0x2C, RequestGetItemFromPet::new, ConnectionState.IN_GAME),
        NOT_USE_22(0x2D, null, ConnectionState.IN_GAME),
        REQUEST_ALLY_INFO(0x2E, RequestAllyInfo::new, ConnectionState.IN_GAME),
        REQUEST_CRYSTALLIZE_ITEM(0x2F, RequestCrystallizeItem::new, ConnectionState.IN_GAME),
        NOT_USE_19(0x30, null, ConnectionState.IN_GAME),
        SET_PRIVATE_STORE_LIST_SELL(0x31, SetPrivateStoreListSell::new, ConnectionState.IN_GAME),
        PRIVATE_STORE_MANAGE_CANCEL(0x32, null, ConnectionState.IN_GAME),
        NOT_USE_41(0x33, null, ConnectionState.IN_GAME),
        SOCIAL_ACTION(0x34, null, ConnectionState.IN_GAME),
        CHANGE_MOVE_TYPE(0x35, null, ConnectionState.IN_GAME),
        CHANGE_WAIT_TYPE(0x36, null, ConnectionState.IN_GAME),
        REQUEST_SELL_ITEM(0x37, RequestSellItem::new, ConnectionState.IN_GAME),
        REQUEST_MAGIC_SKILL_LIST(0x38, RequestMagicSkillList::new, ConnectionState.IN_GAME),
        REQUEST_MAGIC_SKILL_USE(0x39, RequestMagicSkillUse::new, ConnectionState.IN_GAME),
        APPEARING(0x3A, Appearing::new, ConnectionState.IN_GAME),
        SEND_WARE_HOUSE_DEPOSIT_LIST(0x3B, SendWareHouseDepositList::new, ConnectionState.IN_GAME),
        SEND_WARE_HOUSE_WITH_DRAW_LIST(0x3C, SendWareHouseWithDrawList::new, ConnectionState.IN_GAME),
        REQUEST_SHORT_CUT_REG(0x3D, RequestShortCutReg::new, ConnectionState.IN_GAME),
        NOT_USE_3(0x3E, null, ConnectionState.IN_GAME),
        REQUEST_SHORT_CUT_DEL(0x3F, RequestShortCutDel::new, ConnectionState.IN_GAME),
        REQUEST_BUY_ITEM(0x40, RequestBuyItem::new, ConnectionState.IN_GAME),
        NOT_USE_2(0x41, null, ConnectionState.IN_GAME),
        REQUEST_JOIN_PARTY(0x42, RequestJoinParty::new, ConnectionState.IN_GAME),
        REQUEST_ANSWER_JOIN_PARTY(0x43, RequestAnswerJoinParty::new, ConnectionState.IN_GAME),
        REQUEST_WITH_DRAWAL_PARTY(0x44, RequestWithDrawalParty::new, ConnectionState.IN_GAME),
        REQUEST_OUST_PARTY_MEMBER(0x45, RequestOustPartyMember::new, ConnectionState.IN_GAME),
        DISMISS_PARTY(0x46, null, ConnectionState.IN_GAME),
        CANNOT_MOVE_ANYMORE(0x47, CannotMoveAnymore::new, ConnectionState.IN_GAME),
        REQUEST_TARGET_CANCELD(0x48, RequestTargetCanceld::new, ConnectionState.IN_GAME),
        SAY2(0x49, Say2::new, ConnectionState.IN_GAME),
        NOT_USE_42(0x4A, null, ConnectionState.IN_GAME),
        NOT_USE_4(0x4B, null, ConnectionState.IN_GAME),
        NOT_USE_5(0x4C, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_MEMBER_LIST(0x4D, RequestPledgeMemberList::new, ConnectionState.IN_GAME),
        NOT_USE_6(0x4E, null, ConnectionState.IN_GAME),
        NOT_USE_7(0x4F, null, ConnectionState.IN_GAME),
        REQUEST_SKILL_LIST(0x50, RequestSkillList::new, ConnectionState.IN_GAME),
        NOT_USE_8(0x51, null, ConnectionState.IN_GAME),
        MOVE_WITH_DELTA(0x52, MoveWithDelta::new, ConnectionState.IN_GAME),
        REQUEST_GET_ON_VEHICLE(0x53, RequestGetOnVehicle::new, ConnectionState.IN_GAME),
        REQUEST_GET_OFF_VEHICLE(0x54, RequestGetOffVehicle::new, ConnectionState.IN_GAME),
        ANSWER_TRADE_REQUEST(0x55, AnswerTradeRequest::new, ConnectionState.IN_GAME),
        REQUEST_ACTION_USE(0x56, RequestActionUse::new, ConnectionState.IN_GAME),
        REQUEST_RESTART(0x57, RequestRestart::new, ConnectionState.IN_GAME),
        NOT_USE_9(0x58, null, ConnectionState.IN_GAME),
        VALIDATE_POSITION(0x59, ValidatePosition::new, ConnectionState.IN_GAME),
        SEK_COSTUME(0x5A, null, ConnectionState.IN_GAME), // new
        START_ROTATING(0x5B, StartRotating::new, ConnectionState.IN_GAME),
        FINISH_ROTATING(0x5C, FinishRotating::new, ConnectionState.IN_GAME),
        NOT_USE_15(0x5D, null, ConnectionState.IN_GAME),
        REQUEST_SHOW_BOARD(0x5E, RequestShowBoard::new, ConnectionState.IN_GAME),
        REQUEST_ENCHANT_ITEM(0x5F, RequestEnchantItem::new, ConnectionState.IN_GAME),
        REQUEST_DESTROY_ITEM(0x60, RequestDestroyItem::new, ConnectionState.IN_GAME),
        TARGET_USER_FROM_MENU(0x61, null, ConnectionState.IN_GAME), // new
        REQUEST_QUEST_LIST(0x62, RequestQuestList::new, ConnectionState.IN_GAME),
        REQUEST_QUEST_ABORT(0x63, RequestQuestAbort::new, ConnectionState.IN_GAME),
        NOT_USE_16(0x64, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_INFO(0x65, RequestPledgeInfo::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_EXTENDED_INFO(0x66, RequestPledgeExtendedInfo::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_CREST(0x67, RequestPledgeCrest::new, ConnectionState.IN_GAME),
        NOT_USE_17(0x68, null, ConnectionState.IN_GAME),
        NOT_USE_18(0x69, null, ConnectionState.IN_GAME),
        L2_FRIEND_LIST(0x6A, null, ConnectionState.IN_GAME), // new
        REQUEST_SEND_FRIEND_MSG(0x6B, RequestSendFriendMsg::new, ConnectionState.IN_GAME),
        REQUEST_SHOW_MINI_MAP(0x6C, RequestShowMiniMap::new, ConnectionState.IN_GAME),
        MSN_CHAT_LOG(0x6D, null, ConnectionState.IN_GAME), // new
        REQUEST_RECORD_INFO(0x6E, RequestRecordInfo::new, ConnectionState.IN_GAME),
        REQUEST_HENNA_EQUIP(0x6F, RequestHennaEquip::new, ConnectionState.IN_GAME),
        REQUEST_HENNA_REMOVE_LIST(0x70, RequestHennaRemoveList::new, ConnectionState.IN_GAME),
        REQUEST_HENNA_ITEM_REMOVE_INFO(0x71, RequestHennaItemRemoveInfo::new, ConnectionState.IN_GAME),
        REQUEST_HENNA_REMOVE(0x72, RequestHennaRemove::new, ConnectionState.IN_GAME),
        REQUEST_ACQUIRE_SKILL_INFO(0x73, RequestAcquireSkillInfo::new, ConnectionState.IN_GAME),
        SEND_BYPASS_BUILD_CMD(0x74, SendBypassBuildCmd::new, ConnectionState.IN_GAME),
        REQUEST_MOVE_TO_LOCATION_IN_VEHICLE(0x75, RequestMoveToLocationInVehicle::new, ConnectionState.IN_GAME),
        CANNOT_MOVE_ANYMORE_IN_VEHICLE(0x76, CannotMoveAnymoreInVehicle::new, ConnectionState.IN_GAME),
        REQUEST_FRIEND_INVITE(0x77, RequestFriendInvite::new, ConnectionState.IN_GAME),
        REQUEST_ANSWER_FRIEND_INVITE(0x78, RequestAnswerFriendInvite::new, ConnectionState.IN_GAME),
        REQUEST_FRIEND_LIST(0x79, RequestFriendList::new, ConnectionState.IN_GAME),
        REQUEST_FRIEND_DEL(0x7A, RequestFriendDel::new, ConnectionState.IN_GAME),
        CHARACTER_RESTORE(0x7B, CharacterRestore::new, ConnectionState.AUTHENTICATED),
        REQUEST_ACQUIRE_SKILL(0x7C, RequestAcquireSkill::new, ConnectionState.IN_GAME),
        REQUEST_RESTART_POINT(0x7D, RequestRestartPoint::new, ConnectionState.IN_GAME),
        REQUEST_GM_COMMAND(0x7E, RequestGMCommand::new, ConnectionState.IN_GAME),
        REQUEST_PARTY_MATCH_CONFIG(0x7F, RequestPartyMatchConfig::new, ConnectionState.IN_GAME),
        REQUEST_PARTY_MATCH_LIST(0x80, RequestPartyMatchList::new, ConnectionState.IN_GAME),
        REQUEST_PARTY_MATCH_DETAIL(0x81, RequestPartyMatchDetail::new, ConnectionState.IN_GAME),
        NOT_USE_20(0x82, null, ConnectionState.IN_GAME),
        REQUEST_PRIVATE_STORE_BUY(0x83, RequestPrivateStoreBuy::new, ConnectionState.IN_GAME),
        NOT_USE_21(0x84, null, ConnectionState.IN_GAME),
        REQUEST_TUTORIAL_LINK_HTML(0x85, RequestTutorialLinkHtml::new, ConnectionState.IN_GAME),
        REQUEST_TUTORIAL_PASS_CMD_TO_SERVER(0x86, RequestTutorialPassCmdToServer::new, ConnectionState.IN_GAME),
        REQUEST_TUTORIAL_QUESTION_MARK(0x87, RequestTutorialQuestionMark::new, ConnectionState.IN_GAME),
        REQUEST_TUTORIAL_CLIENT_EVENT(0x88, RequestTutorialClientEvent::new, ConnectionState.IN_GAME),
        REQUEST_PETITION(0x89, RequestPetition::new, ConnectionState.IN_GAME),
        REQUEST_PETITION_CANCEL(0x8A, RequestPetitionCancel::new, ConnectionState.IN_GAME),
        REQUEST_GM_LIST(0x8B, RequestGmList::new, ConnectionState.IN_GAME),
        REQUEST_JOIN_ALLY(0x8C, RequestJoinAlly::new, ConnectionState.IN_GAME),
        REQUEST_ANSWER_JOIN_ALLY(0x8D, RequestAnswerJoinAlly::new, ConnectionState.IN_GAME),
        ALLY_LEAVE(0x8E, AllyLeave::new, ConnectionState.IN_GAME),
        ALLY_DISMISS(0x8F, AllyDismiss::new, ConnectionState.IN_GAME),
        REQUEST_DISMISS_ALLY(0x90, RequestDismissAlly::new, ConnectionState.IN_GAME),
        REQUEST_SET_ALLY_CREST(0x91, RequestSetAllyCrest::new, ConnectionState.IN_GAME),
        REQUEST_ALLY_CREST(0x92, RequestAllyCrest::new, ConnectionState.IN_GAME),
        REQUEST_CHANGE_PET_NAME(0x93, RequestChangePetName::new, ConnectionState.IN_GAME),
        REQUEST_PET_USE_ITEM(0x94, RequestPetUseItem::new, ConnectionState.IN_GAME),
        REQUEST_GIVE_ITEM_TO_PET(0x95, RequestGiveItemToPet::new, ConnectionState.IN_GAME),
        REQUEST_PRIVATE_STORE_QUIT_SELL(0x96, RequestPrivateStoreQuitSell::new, ConnectionState.IN_GAME),
        SET_PRIVATE_STORE_MSG_SELL(0x97, SetPrivateStoreMsgSell::new, ConnectionState.IN_GAME),
        REQUEST_PET_GET_ITEM(0x98, RequestPetGetItem::new, ConnectionState.IN_GAME),
        NOT_USE_23(0x99, null, ConnectionState.IN_GAME),
        SET_PRIVATE_STORE_LIST_BUY(0x9A, SetPrivateStoreListBuy::new, ConnectionState.IN_GAME),
        PRIVATE_STORE_BUY_MANAGE_CANCEL(0x9B, null, ConnectionState.IN_GAME),
        REQUEST_PRIVATE_STORE_QUIT_BUY(0x9C, RequestPrivateStoreQuitBuy::new, ConnectionState.IN_GAME),
        SET_PRIVATE_STORE_MSG_BUY(0x9D, SetPrivateStoreMsgBuy::new, ConnectionState.IN_GAME),
        NOT_USE_24(0x9E, null, ConnectionState.IN_GAME),
        REQUEST_PRIVATE_STORE_SELL(0x9F, RequestPrivateStoreSell::new, ConnectionState.IN_GAME),
        NOT_USE_25(0xA0, null, ConnectionState.IN_GAME),
        NOT_USE_26(0xA1, null, ConnectionState.IN_GAME),
        NOT_USE_27(0xA2, null, ConnectionState.IN_GAME),
        NOT_USE_28(0xA3, null, ConnectionState.IN_GAME),
        NOT_USE_29(0xA4, null, ConnectionState.IN_GAME),
        NOT_USE_30(0xA5, null, ConnectionState.IN_GAME),
        REQUEST_SKILL_COOL_TIME(0xA6, null, ConnectionState.IN_GAME),
        REQUEST_PACKAGE_SENDABLE_ITEM_LIST(0xA7, RequestPackageSendableItemList::new, ConnectionState.IN_GAME),
        REQUEST_PACKAGE_SEND(0xA8, RequestPackageSend::new, ConnectionState.IN_GAME),
        REQUEST_BLOCK(0xA9, RequestBlock::new, ConnectionState.IN_GAME),
        REQUEST_SIEGE_INFO(0xAA, RequestSiegeInfo::new, ConnectionState.IN_GAME),
        REQUEST_SIEGE_ATTACKER_LIST(0xAB, RequestSiegeAttackerList::new, ConnectionState.IN_GAME),
        REQUEST_SIEGE_DEFENDER_LIST(0xAC, RequestSiegeDefenderList::new, ConnectionState.IN_GAME),
        REQUEST_JOIN_SIEGE(0xAD, RequestJoinSiege::new, ConnectionState.IN_GAME),
        REQUEST_CONFIRM_SIEGE_WAITING_LIST(0xAE, RequestConfirmSiegeWaitingList::new, ConnectionState.IN_GAME),
        REQUEST_SET_CASTLE_SIEGE_TIME(0xAF, RequestSetCastleSiegeTime::new, ConnectionState.IN_GAME),
        MULTI_SELL_CHOOSE(0xB0, MultiSellChoose::new, ConnectionState.IN_GAME),
        NET_PING(0xB1, null, ConnectionState.IN_GAME),
        REQUEST_REMAIN_TIME(0xB2, null, ConnectionState.IN_GAME),
        BYPASS_USER_CMD(0xB3, BypassUserCmd::new, ConnectionState.IN_GAME),
        SNOOP_QUIT(0xB4, SnoopQuit::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_BOOK_OPEN(0xB5, RequestRecipeBookOpen::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_BOOK_DESTROY(0xB6, RequestRecipeBookDestroy::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_ITEM_MAKE_INFO(0xB7, RequestRecipeItemMakeInfo::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_ITEM_MAKE_SELF(0xB8, RequestRecipeItemMakeSelf::new, ConnectionState.IN_GAME),
        NOT_USE_31(0xB9, null, ConnectionState.IN_GAME),
        REQUEST_RECIPE_SHOP_MESSAGE_SET(0xBA, RequestRecipeShopMessageSet::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_SHOP_LIST_SET(0xBB, RequestRecipeShopListSet::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_SHOP_MANAGE_QUIT(0xBC, RequestRecipeShopManageQuit::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_SHOP_MANAGE_CANCEL(0xBD, null, ConnectionState.IN_GAME),
        REQUEST_RECIPE_SHOP_MAKE_INFO(0xBE, RequestRecipeShopMakeInfo::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_SHOP_MAKE_ITEM(0xBF, RequestRecipeShopMakeItem::new, ConnectionState.IN_GAME),
        REQUEST_RECIPE_SHOP_MANAGE_PREV(0xC0, RequestRecipeShopManagePrev::new, ConnectionState.IN_GAME),
        OBSERVER_RETURN(0xC1, ObserverReturn::new, ConnectionState.IN_GAME),
        VOTE_SOCIALITY(0xC2, null, ConnectionState.IN_GAME),
        REQUEST_HENNA_ITEM_LIST(0xC3, RequestHennaItemList::new, ConnectionState.IN_GAME),
        REQUEST_HENNA_ITEM_INFO(0xC4, RequestHennaItemInfo::new, ConnectionState.IN_GAME),
        REQUEST_BUY_SEED(0xC5, RequestBuySeed::new, ConnectionState.IN_GAME),
        DLG_ANSWER(0xC6, DlgAnswer::new, ConnectionState.IN_GAME),
        REQUEST_PREVIEW_ITEM(0xC7, RequestPreviewItem::new, ConnectionState.IN_GAME),
        REQUEST_SSQ_STATUS(0xC8, null, ConnectionState.IN_GAME),
        REQUEST_PETITION_FEEDBACK(0xC9, RequestPetitionFeedback::new, ConnectionState.IN_GAME),
        NOT_USE_33(0xCA, null, ConnectionState.IN_GAME),
        GAME_GUARD_REPLY(0xCB, GameGuardReply::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_POWER(0xCC, RequestPledgePower::new, ConnectionState.IN_GAME),
        REQUEST_MAKE_MACRO(0xCD, RequestMakeMacro::new, ConnectionState.IN_GAME),
        REQUEST_DELETE_MACRO(0xCE, RequestDeleteMacro::new, ConnectionState.IN_GAME),
        NOT_USE_32(0xCF, null, ConnectionState.IN_GAME),
        EX_PACKET(0xD0, ExPacket::new, ConnectionState.values()), // This packet has its own connection state checking so we allow all of them
        C_MAX(0xD1, null, ConnectionState.IN_GAME);
      
        public static final IncomingPackets[] PACKET_ARRAY;
        static
        {
            final short maxPacketId = (short) Arrays.stream(values()).mapToInt(IIncomingPackets::getPacketId).max().orElse(0);
            PACKET_ARRAY = new IncomingPackets[maxPacketId + 1];
            for (IncomingPackets incomingPacket : values())
            {
                PACKET_ARRAY[incomingPacket.getPacketId()] = incomingPacket;
            }
        }
      
        private short _packetId;
        private Supplier<IIncomingPacket<GameClient>> _incomingPacketFactory;
        private Set<IConnectionState> _connectionStates;
      
        IncomingPackets(int packetId, Supplier<IIncomingPacket<GameClient>> incomingPacketFactory, IConnectionState... connectionStates)
        {
            // packetId is an unsigned byte
            if (packetId > 0xFF)
            {
                throw new IllegalArgumentException("packetId must not be bigger than 0xFF");
            }
          
            _packetId = (short) packetId;
            _incomingPacketFactory = incomingPacketFactory != null ? incomingPacketFactory : () -> null;
            _connectionStates = new HashSet<>(Arrays.asList(connectionStates));
        }
      
        @Override
        public int getPacketId()
        {
            return _packetId;
        }
      
        @Override
        public IIncomingPacket<GameClient> newIncomingPacket()
        {
            return _incomingPacketFactory.get();
        }
      
        @Override
        public Set<IConnectionState> getConnectionStates()
        {
            return _connectionStates;
        }
    }
    
     
  3. FxStream

    FxStream Знающий

    Регистрация:
    8 дек 2019
    Сообщения:
    293
    Симпатии:
    3
    Код:
    /*
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * (at your option) any later version.
     * 
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     * General Public License for more details.
     * 
     * You should have received a copy of the GNU General Public License
     * along with this program. If not, see <http://www.gnu.org/licenses/>.
     */
    package org.l2.gameserver.network;
    
    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;
    import java.util.function.Supplier;
    
    import org.l2.commons.network.IConnectionState;
    import org.l2.commons.network.IIncomingPacket;
    import org.l2.commons.network.IIncomingPackets;
    import org.l2.gameserver.network.clientpackets.*;
    import org.l2.gameserver.network.clientpackets.ability.RequestAbilityList;
    import org.l2.gameserver.network.clientpackets.ability.RequestAbilityWndClose;
    import org.l2.gameserver.network.clientpackets.ability.RequestAbilityWndOpen;
    import org.l2.gameserver.network.clientpackets.ability.RequestAcquireAbilityList;
    import org.l2.gameserver.network.clientpackets.ability.RequestChangeAbilityPoint;
    import org.l2.gameserver.network.clientpackets.ability.RequestResetAbilityPoint;
    import org.l2.gameserver.network.clientpackets.adenadistribution.RequestDivideAdena;
    import org.l2.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaCancel;
    import org.l2.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaStart;
    import org.l2.gameserver.network.clientpackets.alchemy.RequestAlchemyConversion;
    import org.l2.gameserver.network.clientpackets.alchemy.RequestAlchemyTryMixCube;
    import org.l2.gameserver.network.clientpackets.appearance.RequestExCancelShape_Shifting_Item;
    import org.l2.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingEnchantSupportItem;
    import org.l2.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingTargetItem;
    import org.l2.gameserver.network.clientpackets.appearance.RequestShapeShiftingItem;
    import org.l2.gameserver.network.clientpackets.attendance.RequestVipAttendanceCheck;
    import org.l2.gameserver.network.clientpackets.attendance.RequestVipAttendanceItemList;
    import org.l2.gameserver.network.clientpackets.attributechange.RequestChangeAttributeCancel;
    import org.l2.gameserver.network.clientpackets.attributechange.RequestChangeAttributeItem;
    import org.l2.gameserver.network.clientpackets.attributechange.SendChangeAttributeTargetItem;
    import org.l2.gameserver.network.clientpackets.autoplay.RequestActivateAutoShortcut;
    import org.l2.gameserver.network.clientpackets.awakening.RequestCallToChangeClass;
    import org.l2.gameserver.network.clientpackets.ceremonyofchaos.RequestCancelCuriousHouse;
    import org.l2.gameserver.network.clientpackets.ceremonyofchaos.RequestCuriousHouseHtml;
    import org.l2.gameserver.network.clientpackets.ceremonyofchaos.RequestJoinCuriousHouse;
    import org.l2.gameserver.network.clientpackets.classchange.ExRequestClassChange;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionBuyInfo;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionBuyItem;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionCancel;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionDelete;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionInfo;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionList;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionRegister;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionRegisteredItem;
    import org.l2.gameserver.network.clientpackets.commission.RequestCommissionRegistrableItemList;
    import org.l2.gameserver.network.clientpackets.compound.RequestNewEnchantClose;
    import org.l2.gameserver.network.clientpackets.compound.RequestNewEnchantPushOne;
    import org.l2.gameserver.network.clientpackets.compound.RequestNewEnchantPushTwo;
    import org.l2.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveOne;
    import org.l2.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveTwo;
    import org.l2.gameserver.network.clientpackets.compound.RequestNewEnchantRetryToPutItems;
    import org.l2.gameserver.network.clientpackets.compound.RequestNewEnchantTry;
    import org.l2.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
    import org.l2.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
    import org.l2.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
    import org.l2.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
    import org.l2.gameserver.network.clientpackets.equipmentupgrade.RequestUpgradeSystemResult;
    import org.l2.gameserver.network.clientpackets.faction.RequestUserFactionInfo;
    import org.l2.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
    import org.l2.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
    import org.l2.gameserver.network.clientpackets.luckygame.RequestLuckyGameStartInfo;
    import org.l2.gameserver.network.clientpackets.mentoring.ConfirmMenteeAdd;
    import org.l2.gameserver.network.clientpackets.mentoring.RequestMenteeAdd;
    import org.l2.gameserver.network.clientpackets.mentoring.RequestMenteeWaitingList;
    import org.l2.gameserver.network.clientpackets.mentoring.RequestMentorCancel;
    import org.l2.gameserver.network.clientpackets.mentoring.RequestMentorList;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeAnnounce;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeContributionInfo;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeContributionRank;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeItemBuy;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeItemList;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeLevelUp;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeMasteryInfo;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeMasteryReset;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeMasterySet;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeMissionInfo;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeMissionReward;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeSkillActivate;
    import org.l2.gameserver.network.clientpackets.pledgeV2.RequestExPledgeSkillInfo;
    import org.l2.gameserver.network.clientpackets.primeshop.RequestBRBuyProduct;
    import org.l2.gameserver.network.clientpackets.primeshop.RequestBRGamePoint;
    import org.l2.gameserver.network.clientpackets.primeshop.RequestBRPresentBuyProduct;
    import org.l2.gameserver.network.clientpackets.primeshop.RequestBRProductInfo;
    import org.l2.gameserver.network.clientpackets.primeshop.RequestBRProductList;
    import org.l2.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList;
    import org.l2.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo;
    import org.l2.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo;
    import org.l2.gameserver.network.clientpackets.ranking.RequestOlympiadHeroAndLegendInfo;
    import org.l2.gameserver.network.clientpackets.ranking.RequestOlympiadMyRankingInfo;
    import org.l2.gameserver.network.clientpackets.ranking.RequestOlympiadRankingInfo;
    import org.l2.gameserver.network.clientpackets.ranking.RequestRankingCharInfo;
    import org.l2.gameserver.network.clientpackets.ranking.RequestRankingCharRankers;
    import org.l2.gameserver.network.clientpackets.sayune.RequestFlyMove;
    import org.l2.gameserver.network.clientpackets.sayune.RequestFlyMoveStart;
    import org.l2.gameserver.network.clientpackets.sessionzones.ExTimedHuntingZoneList;
    import org.l2.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle;
    import org.l2.gameserver.network.clientpackets.shuttle.MoveToLocationInShuttle;
    import org.l2.gameserver.network.clientpackets.shuttle.RequestShuttleGetOff;
    import org.l2.gameserver.network.clientpackets.shuttle.RequestShuttleGetOn;
    import org.l2.gameserver.network.clientpackets.training.NotifyTrainingRoomEnd;
    
    /**
     * @author Sdw
     */
    public enum ExIncomingPackets implements IIncomingPackets<GameClient>
    {
        REQUEST_GOTO_LOBBY(0x33, RequestGotoLobby::new, ConnectionState.AUTHENTICATED),
        REQUEST_EX_2ND_PASSWORD_CHECK(0xA6, RequestEx2ndPasswordCheck::new, ConnectionState.AUTHENTICATED),
        REQUEST_EX_2ND_PASSWORD_VERIFY(0xA7, RequestEx2ndPasswordVerify::new, ConnectionState.AUTHENTICATED),
        REQUEST_EX_2ND_PASSWORD_REQ(0xA8, RequestEx2ndPasswordReq::new, ConnectionState.AUTHENTICATED),
        REQUEST_CHARACTER_NAME_CREATABLE(0xA9, RequestCharacterNameCreatable::new, ConnectionState.AUTHENTICATED),
        REQUEST_MANOR_LIST(0x01, RequestManorList::new, ConnectionState.IN_GAME),
        REQUEST_PROCEDURE_CROP_LIST(0x02, RequestProcureCropList::new, ConnectionState.IN_GAME),
        REQUEST_SET_SEED(0x03, RequestSetSeed::new, ConnectionState.IN_GAME),
        REQUEST_SET_CROP(0x04, RequestSetCrop::new, ConnectionState.IN_GAME),
        REQUEST_WRITE_HERO_WORDS(0x05, RequestWriteHeroWords::new, ConnectionState.IN_GAME),
        REQUEST_EX_ASK_JOIN_MPCC(0x06, RequestExAskJoinMPCC::new, ConnectionState.IN_GAME),
        REQUEST_EX_ACCEPT_JOIN_MPCC(0x07, RequestExAcceptJoinMPCC::new, ConnectionState.IN_GAME),
        REQUEST_EX_OUST_FROM_MPCC(0x08, RequestExOustFromMPCC::new, ConnectionState.IN_GAME),
        REQUEST_OUST_FROM_PARTY_ROOM(0x09, RequestOustFromPartyRoom::new, ConnectionState.IN_GAME),
        REQUEST_DISMISS_PARTY_ROOM(0x0A, RequestDismissPartyRoom::new, ConnectionState.IN_GAME),
        REQUEST_WITHDRAW_PARTY_ROOM(0x0B, RequestWithdrawPartyRoom::new, ConnectionState.IN_GAME),
        REQUEST_CHANGE_PARTY_LEADER(0x0C, RequestChangePartyLeader::new, ConnectionState.IN_GAME),
        REQUEST_AUTO_SOULSHOT(0x0D, RequestAutoSoulShot::new, ConnectionState.IN_GAME),
        REQUEST_EX_ENCHANT_SKILL_INFO(0x0E, RequestExEnchantSkillInfo::new, ConnectionState.IN_GAME),
        REQUEST_EX_ENCHANT_SKILL(0x0F, RequestExEnchantSkill::new, ConnectionState.IN_GAME),
        REQUEST_EX_PLEDGE_CREST_LARGE(0x10, RequestExPledgeCrestLarge::new, ConnectionState.IN_GAME),
        REQUEST_EX_SET_PLEDGE_CREST_LARGE(0x11, RequestExSetPledgeCrestLarge::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_SET_ACADEMY_MASTER(0x12, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_POWER_GRADE_LIST(0x13, RequestPledgePowerGradeList::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_MEMBER_POWER_INFO(0x14, RequestPledgeMemberPowerInfo::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_SET_MEMBER_POWER_GRADE(0x15, RequestPledgeSetMemberPowerGrade::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_MEMBER_INFO(0x16, RequestPledgeMemberInfo::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_WAR_LIST(0x17, RequestPledgeWarList::new, ConnectionState.IN_GAME),
        REQUEST_EX_FISH_RANKING(0x18, RequestExFishRanking::new, ConnectionState.IN_GAME),
        REQUEST_PCCAFE_COUPON_USE(0x19, RequestPCCafeCouponUse::new, ConnectionState.IN_GAME),
        REQUEST_ORC_MOVE(0x1A, null, ConnectionState.IN_GAME), // new
        REQUEST_DUEL_START(0x1B, RequestDuelStart::new, ConnectionState.IN_GAME),
        REQUEST_DUAL_ANSWER_START(0x1C, RequestDuelAnswerStart::new, ConnectionState.IN_GAME),
        REQUEST_EX_SET_TUTORIAL(0x1D, null, ConnectionState.IN_GAME),
        REQUEST_EX_RQ_ITEM_LINK(0x1E, RequestExRqItemLink::new, ConnectionState.IN_GAME),
        CANNOT_MOVE_ANYMORE_AIR_SHIP(0x1F, null, ConnectionState.IN_GAME),
        MOVE_TO_LOCATION_IN_AIR_SHIP(0x20, MoveToLocationInAirShip::new, ConnectionState.IN_GAME),
        REQUEST_KEY_MAPPING(0x21, RequestKeyMapping::new, ConnectionState.ENTERING_AND_IN_GAME),
        REQUEST_SAVE_KEY_MAPPING(0x22, RequestSaveKeyMapping::new, ConnectionState.IN_GAME),
        REQUEST_EX_REMOVE_ITEM_ATTRIBUTE(0x23, RequestExRemoveItemAttribute::new, ConnectionState.IN_GAME),
        REQUEST_SAVE_INVENTORY_ORDER(0x24, RequestSaveInventoryOrder::new, ConnectionState.IN_GAME),
        REQUEST_EXIT_PARTY_MATCHING_WAITING_ROOM(0x25, RequestExitPartyMatchingWaitingRoom::new, ConnectionState.IN_GAME),
        REQUEST_CONFIRM_TARGET_ITEM(0x26, RequestConfirmTargetItem::new, ConnectionState.IN_GAME),
        REQUEST_CONFIRM_REFINER_ITEM(0x27, RequestConfirmRefinerItem::new, ConnectionState.IN_GAME),
        REQUEST_CONFIRM_GEMSTONE(0x28, RequestConfirmGemStone::new, ConnectionState.IN_GAME),
        REQUEST_OLYMPIAD_OBSERVER_END(0x29, RequestOlympiadObserverEnd::new, ConnectionState.IN_GAME),
        REQUEST_CURSED_WEAPON_LIST(0x2A, RequestCursedWeaponList::new, ConnectionState.IN_GAME),
        REQUEST_CURSED_WEAPON_LOCATION(0x2B, RequestCursedWeaponLocation::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_REORGANIZE_MEMBER(0x2C, RequestPledgeReorganizeMember::new, ConnectionState.IN_GAME),
        REQUEST_EX_MPCC_SHOW_PARTY_MEMBERS_INFO(0x2D, RequestExMPCCShowPartyMembersInfo::new, ConnectionState.IN_GAME),
        REQUEST_OLYMPIAD_MATCH_LIST(0x2E, RequestOlympiadMatchList::new, ConnectionState.IN_GAME),
        REQUEST_ASK_JOIN_PARTY_ROOM(0x2F, RequestAskJoinPartyRoom::new, ConnectionState.IN_GAME),
        ANSWER_JOIN_PARTY_ROOM(0x30, AnswerJoinPartyRoom::new, ConnectionState.IN_GAME),
        REQUEST_LIST_PARTY_MATCHING_WAITING_ROOM(0x31, RequestListPartyMatchingWaitingRoom::new, ConnectionState.IN_GAME),
        REQUEST_EX_ENCHANT_ITEM_ATTRIBUTE(0x32, RequestExEnchantItemAttribute::new, ConnectionState.IN_GAME),
        CANNOT_AIRSHIP_MOVE_ANYMORE(0x34, null, ConnectionState.IN_GAME), // new
        MOVE_TO_LOCATION_AIR_SHIP(0x35, MoveToLocationAirShip::new, ConnectionState.IN_GAME),
        REQUEST_BID_ITEM_AUCTION(0x36, RequestBidItemAuction::new, ConnectionState.IN_GAME),
        REQUEST_INFO_ITEM_AUCTION(0x37, RequestInfoItemAuction::new, ConnectionState.IN_GAME),
        REQUEST_EX_CHANGE_NAME(0x38, RequestExChangeName::new, ConnectionState.IN_GAME),
        REQUEST_ALL_CASTLE_INFO(0x39, RequestAllCastleInfo::new, ConnectionState.IN_GAME),
        REQUEST_ALL_FORTRESS_INFO(0x3A, RequestAllFortressInfo::new, ConnectionState.IN_GAME),
        REQUEST_ALL_AGIT_INGO(0x3B, RequestAllAgitInfo::new, ConnectionState.IN_GAME),
        REQUEST_FORTRESS_SIEGE_INFO(0x3C, RequestFortressSiegeInfo::new, ConnectionState.IN_GAME),
        REQUEST_GET_BOSS_RECORD(0x3D, RequestGetBossRecord::new, ConnectionState.IN_GAME),
        REQUEST_REFINE(0x3E, RequestRefine::new, ConnectionState.IN_GAME),
        REQUEST_CONFIRM_CANCEL_ITEM(0x3F, RequestConfirmCancelItem::new, ConnectionState.IN_GAME),
        REQUEST_REFINE_CANCEL(0x40, RequestRefineCancel::new, ConnectionState.IN_GAME),
        REQUEST_EX_MAGIC_SKILL_USE_GROUND(0x41, RequestExMagicSkillUseGround::new, ConnectionState.IN_GAME),
        REQUEST_DUEL_SURRENDER(0x42, RequestDuelSurrender::new, ConnectionState.IN_GAME),
        REQUEST_EX_ENCHANT_SKILL_INFO_DETAIL(0x43, RequestExEnchantSkillInfoDetail::new, ConnectionState.IN_GAME),
        REQUEST_ANTI_FREE_SERVER(0x44, null, ConnectionState.IN_GAME), // new
        REQUEST_FORTRESS_MAP_INFO(0x45, RequestFortressMapInfo::new, ConnectionState.IN_GAME),
        REQUEST_PVP_MATCH_RECORD(0x46, RequestPVPMatchRecord::new, ConnectionState.IN_GAME),
        SET_PRIVATE_STORE_WHOLE_MSG(0x47, SetPrivateStoreWholeMsg::new, ConnectionState.IN_GAME),
        REQUEST_DISPEL(0x48, RequestDispel::new, ConnectionState.IN_GAME),
        REQUEST_EX_TRY_TO_PUT_ENCHANT_TARGET_ITEM(0x49, RequestExTryToPutEnchantTargetItem::new, ConnectionState.IN_GAME),
        REQUEST_EX_TRY_TO_PUT_ENCHANT_SUPPORT_ITEM(0x4A, RequestExTryToPutEnchantSupportItem::new, ConnectionState.IN_GAME),
        REQUEST_EX_CANCEL_ENCHANT_ITEM(0x4B, RequestExCancelEnchantItem::new, ConnectionState.IN_GAME),
        REQUEST_CHANGE_NICKNAME_COLOR(0x4C, RequestChangeNicknameColor::new, ConnectionState.IN_GAME),
        REQUEST_RESET_NICKNAME(0x4D, RequestResetNickname::new, ConnectionState.IN_GAME),
        EX_BOOKMARK_PACKET(0x4E, ExBookmarkPacket::new, ConnectionState.IN_GAME),
        REQUEST_WITHDRAW_PREMIUM_ITEM(0x4F, RequestWithDrawPremiumItem::new, ConnectionState.IN_GAME),
        REQUEST_EX_JUMP(0x50, null, ConnectionState.IN_GAME),
        REQUEST_EX_START_SHOW_CRATAE_CUBE_RANK(0x51, RequestStartShowKrateisCubeRank::new, ConnectionState.IN_GAME),
        REQUEST_EX_STOP_SHOW_CRATAE_CUBE_RANK(0x52, RequestStopShowKrateisCubeRank::new, ConnectionState.IN_GAME),
        NOTIFY_START_MINI_GAME(0x53, null, ConnectionState.IN_GAME),
        REQUEST_EX_JOIN_DOMINION_WAR(0x54, null, ConnectionState.IN_GAME),
        REQUEST_EX_DOMINION_INFO(0x55, null, ConnectionState.IN_GAME),
        REQUEST_EX_CLEFT_ENTER(0x56, null, ConnectionState.IN_GAME),
        REQUEST_EX_CUBE_GAME_CHANGE_TEAM(0x57, RequestExCubeGameChangeTeam::new, ConnectionState.IN_GAME),
        END_SCENE_PLAYER(0x58, EndScenePlayer::new, ConnectionState.IN_GAME),
        REQUEST_EX_CUBE_GAME_READY_ANSWER(0x59, RequestExCubeGameReadyAnswer::new, ConnectionState.IN_GAME),
        REQUEST_EX_LIST_MPCC_WAITING(0x5A, RequestExListMpccWaiting::new, ConnectionState.IN_GAME),
        REQUEST_EX_MANAGE_MPCC_ROOM(0x5B, RequestExManageMpccRoom::new, ConnectionState.IN_GAME),
        REQUEST_EX_JOIN_MPCC_ROOM(0x5C, RequestExJoinMpccRoom::new, ConnectionState.IN_GAME),
        REQUEST_EX_OUST_FROM_MPCC_ROOM(0x5D, RequestExOustFromMpccRoom::new, ConnectionState.IN_GAME),
        REQUEST_EX_DISMISS_MPCC_ROOM(0x5E, RequestExDismissMpccRoom::new, ConnectionState.IN_GAME),
        REQUEST_EX_WITHDRAW_MPCC_ROOM(0x5F, RequestExWithdrawMpccRoom::new, ConnectionState.IN_GAME),
        REQUEST_SEED_PHASE(0x60, RequestSeedPhase::new, ConnectionState.IN_GAME),
        REQUEST_EX_MPCC_PARTYMASTER_LIST(0x61, RequestExMpccPartymasterList::new, ConnectionState.IN_GAME),
        REQUEST_POST_ITEM_LIST(0x62, RequestPostItemList::new, ConnectionState.IN_GAME),
        REQUEST_SEND_POST(0x63, RequestSendPost::new, ConnectionState.IN_GAME),
        REQUEST_RECEIVED_POST_LIST(0x64, RequestReceivedPostList::new, ConnectionState.IN_GAME),
        REQUEST_DELETE_RECEIVED_POST(0x65, RequestDeleteReceivedPost::new, ConnectionState.IN_GAME),
        REQUEST_RECEIVED_POST(0x66, RequestReceivedPost::new, ConnectionState.IN_GAME),
        REQUEST_POST_ATTACHMENT(0x67, RequestPostAttachment::new, ConnectionState.IN_GAME),
        REQUEST_REJECT_POST_ATTACHMENT(0x68, RequestRejectPostAttachment::new, ConnectionState.IN_GAME),
        REQUEST_SENT_POST_LIST(0x69, RequestSentPostList::new, ConnectionState.IN_GAME),
        REQUEST_DELETE_SENT_POST(0x6A, RequestDeleteSentPost::new, ConnectionState.IN_GAME),
        REQUEST_SENT_POST(0x6B, RequestSentPost::new, ConnectionState.IN_GAME),
        REQUEST_CANCEL_POST_ATTACHMENT(0x6C, RequestCancelPostAttachment::new, ConnectionState.IN_GAME),
        REQUEST_SHOW_NEW_USER_PETITION(0x6D, null, ConnectionState.IN_GAME),
        REQUEST_SHOW_STEP_TWO(0x6E, null, ConnectionState.IN_GAME),
        REQUEST_SHOW_STEP_THREE(0x6F, null, ConnectionState.IN_GAME),
        EX_CONNECT_TO_RAID_SERVER(0x70, null, ConnectionState.IN_GAME),
        EX_RETURN_FROM_RAID_SERVER(0x71, null, ConnectionState.IN_GAME),
        REQUEST_REFUND_ITEM(0x72, RequestRefundItem::new, ConnectionState.IN_GAME),
        REQUEST_BUI_SELL_UI_CLOSE(0x73, RequestBuySellUIClose::new, ConnectionState.IN_GAME),
        REQUEST_EX_EVENT_MATCH_OBSERVER_END(0x74, null, ConnectionState.IN_GAME),
        REQUEST_PARTY_LOOT_MODIFICATION(0x75, RequestPartyLootModification::new, ConnectionState.IN_GAME),
        ANSWER_PARTY_LOOT_MODIFICATION(0x76, AnswerPartyLootModification::new, ConnectionState.IN_GAME),
        ANSWER_COUPLE_ACTION(0x77, AnswerCoupleAction::new, ConnectionState.IN_GAME),
        BR_EVENT_RANKER_LIST(0x78, BrEventRankerList::new, ConnectionState.IN_GAME),
        REQUEST_ASK_MEMBER_SHIP(0x79, null, ConnectionState.IN_GAME),
        REQUEST_ADD_EXPAND_QUEST_ALARM(0x7A, RequestAddExpandQuestAlarm::new, ConnectionState.IN_GAME),
        REQUEST_VOTE_NEW(0x7B, RequestVoteNew::new, ConnectionState.IN_GAME),
        REQUEST_SHUTTLE_GET_ON(0x7C, RequestShuttleGetOn::new, ConnectionState.IN_GAME),
        REQUEST_SHUTTLE_GET_OFF(0x7D, RequestShuttleGetOff::new, ConnectionState.IN_GAME),
        MOVE_TO_LOCATION_IN_SHUTTLE(0x7E, MoveToLocationInShuttle::new, ConnectionState.IN_GAME),
        CANNOT_MOVE_ANYMORE_IN_SHUTTLE(0x7F, CannotMoveAnymoreInShuttle::new, ConnectionState.IN_GAME),
        REQUEST_AGIT_ACTION(0x80, null, ConnectionState.IN_GAME),
        REQUEST_EX_ADD_CONTACT_TO_CONTACT_LIST(0x81, RequestExAddContactToContactList::new, ConnectionState.IN_GAME),
        REQUEST_EX_DELETE_CONTACT_FROM_CONTACT_LIST(0x82, RequestExDeleteContactFromContactList::new, ConnectionState.IN_GAME),
        REQUEST_EX_SHOW_CONTACT_LIST(0x83, RequestExShowContactList::new, ConnectionState.IN_GAME),
        REQUEST_EX_FRIEND_LIST_EXTENDED(0x84, RequestExFriendListExtended::new, ConnectionState.IN_GAME),
        REQUEST_EX_OLYMPIAD_MATCH_LIST_REFRESH(0x85, RequestExOlympiadMatchListRefresh::new, ConnectionState.IN_GAME),
        REQUEST_BR_GAME_POINT(0x86, RequestBRGamePoint::new, ConnectionState.IN_GAME),
        REQUEST_BR_PRODUCT_LIST(0x87, RequestBRProductList::new, ConnectionState.IN_GAME),
        REQUEST_BR_PRODUCT_INFO(0x88, RequestBRProductInfo::new, ConnectionState.IN_GAME),
        REQUEST_BR_BUI_PRODUCT(0x89, RequestBRBuyProduct::new, ConnectionState.IN_GAME),
        REQUEST_BR_RECENT_PRODUCT_LIST(0x8A, RequestBRRecentProductList::new, ConnectionState.IN_GAME),
        REQUEST_BR_MINI_GAME_LOAD_SCORES(0x8B, null, ConnectionState.IN_GAME),
        REQUEST_BR_MINI_GAME_INSERT_SCORE(0x8C, null, ConnectionState.IN_GAME),
        REQUEST_EX_BR_LECTURE_MARK(0x8D, null, ConnectionState.IN_GAME),
        REQUEST_CRYSTALLIZE_ESTIMATE(0x8E, RequestCrystallizeEstimate::new, ConnectionState.IN_GAME),
        REQUEST_CRYSTALLIZE_ITEM_CANCEL(0x8F, RequestCrystallizeItemCancel::new, ConnectionState.IN_GAME),
        REQUEST_SCENE_EX_ESCAPE_SCENE(0x90, RequestExEscapeScene::new, ConnectionState.IN_GAME),
        REQUEST_FLY_MOVE(0x91, RequestFlyMove::new, ConnectionState.IN_GAME),
        REQUEST_SURRENDER_PLEDGE_WAR_EX(0x92, null, ConnectionState.IN_GAME),
        REQUEST_DYNAMIC_QUEST_ACTION(0x93, null, ConnectionState.IN_GAME),
        REQUEST_FRIEND_DETAIL_INFO(0x94, RequestFriendDetailInfo::new, ConnectionState.IN_GAME),
        REQUEST_UPDATE_FRIEND_MEMO(0x95, null, ConnectionState.IN_GAME),
        REQUEST_UPDATE_BLOCK_MEMO(0x96, null, ConnectionState.IN_GAME),
        REQUEST_INZONE_PARTY_INFO_HISTORY(0x97, null, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_REGISTRABLE_ITEM_LIST(0x98, RequestCommissionRegistrableItemList::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_INFO(0x99, RequestCommissionInfo::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_REGISTER(0x9A, RequestCommissionRegister::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_CANCEL(0x9B, RequestCommissionCancel::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_DELETE(0x9C, RequestCommissionDelete::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_LIST(0x9D, RequestCommissionList::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_BUY_INFO(0x9E, RequestCommissionBuyInfo::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_BUY_ITEM(0x9F, RequestCommissionBuyItem::new, ConnectionState.IN_GAME),
        REQUEST_COMMISSION_REGISTERED_ITEM(0xA0, RequestCommissionRegisteredItem::new, ConnectionState.IN_GAME),
        REQUEST_CALL_TO_CHANGE_CLASS(0xA1, RequestCallToChangeClass::new, ConnectionState.IN_GAME),
        REQUEST_CHANGE_TO_AWAKENED_CLASS(0xA2, RequestChangeToAwakenedClass::new, ConnectionState.IN_GAME),
        NOT_USED_163(0xA3, null, ConnectionState.IN_GAME),
        NOT_USED_164(0xA4, null, ConnectionState.IN_GAME),
        REQUEST_WEB_SESSION_ID(0xA5, null, ConnectionState.IN_GAME),
        REQUEST_GOODS_INVENTORY_INFO(0xAA, null, ConnectionState.IN_GAME),
        REQUEST_GOODS_INVENTORY_ITEM(0xAB, null, ConnectionState.IN_GAME),
        REQUEST_FIRST_PLAY_START(0xAC, null, ConnectionState.IN_GAME),
        REQUEST_FLY_MOVE_START(0xAD, RequestFlyMoveStart::new, ConnectionState.IN_GAME),
        REQUEST_HARDWARE_INFO(0xAE, RequestHardWareInfo::new, ConnectionState.values()),
        USER_INTERFACE_INFO(0xAF, null, ConnectionState.IN_GAME), // new
        SEND_CHANGE_ATTRIBUTE_TARGET_ITEM(0xB0, SendChangeAttributeTargetItem::new, ConnectionState.IN_GAME),
        REQUEST_CHANGE_ATTRIBUTE_ITEM(0xB1, RequestChangeAttributeItem::new, ConnectionState.IN_GAME),
        REQUEST_CHANGE_ATTRIBUTE_CANCEL(0xB2, RequestChangeAttributeCancel::new, ConnectionState.IN_GAME),
        REQUEST_BR_PRESENT_BUY_PRODUCT(0xB3, RequestBRPresentBuyProduct::new, ConnectionState.IN_GAME),
        CONFIRM_MENTEE_ADD(0xB4, ConfirmMenteeAdd::new, ConnectionState.IN_GAME),
        REQUEST_MENTOR_CANCEL(0xB5, RequestMentorCancel::new, ConnectionState.IN_GAME),
        REQUEST_MENTOR_LIST(0xB6, RequestMentorList::new, ConnectionState.IN_GAME),
        REQUEST_MENTEE_ADD(0xB7, RequestMenteeAdd::new, ConnectionState.IN_GAME),
        REQUEST_MENTEE_WAITING_LIST(0xB8, RequestMenteeWaitingList::new, ConnectionState.IN_GAME),
        REQUEST_CLAN_ASK_JOIN_BY_NAME(0xB9, RequestClanAskJoinByName::new, ConnectionState.IN_GAME),
        REQUEST_IN_ZONE_WAITING_TIME(0xBA, RequestInzoneWaitingTime::new, ConnectionState.IN_GAME),
        REQUEST_JOIN_CURIOUS_HOUSE(0xBB, RequestJoinCuriousHouse::new, ConnectionState.IN_GAME),
        REQUEST_CANCEL_CURIOUS_HOUSE(0xBC, RequestCancelCuriousHouse::new, ConnectionState.IN_GAME),
        REQUEST_LEAVE_CURIOUS_HOUSE(0xBD, null, ConnectionState.IN_GAME),
        REQUEST_OBSERVING_LIST_CURIOUS_HOUSE(0xBE, null, ConnectionState.IN_GAME),
        REQUEST_OBSERVING_CURIOUS_HOUSE(0xBF, null, ConnectionState.IN_GAME),
        REQUEST_LEAVE_OBSERVING_CURIOUS_HOUSE(0xC0, null, ConnectionState.IN_GAME),
        REQUEST_CURIOUS_HOUSE_HTML(0xC1, RequestCuriousHouseHtml::new, ConnectionState.IN_GAME),
        REQUEST_CURIOUS_HOUSE_RECORD(0xC2, null, ConnectionState.IN_GAME),
        EX_SYSSTRING(0xC3, null, ConnectionState.IN_GAME),
        REQUEST_EX_TRY_TO_PUT_SHAPE_SHIFTING_TARGET_ITEM(0xC4, RequestExTryToPutShapeShiftingTargetItem::new, ConnectionState.IN_GAME),
        REQUEST_EX_TRY_TO_PUT_SHAPE_SHIFTING_ENCHANT_SUPPORT_ITEM(0xC5, RequestExTryToPutShapeShiftingEnchantSupportItem::new, ConnectionState.IN_GAME),
        REQUEST_EX_CANCEL_SHAPE_SHIFTING_ITEM(0xC6, RequestExCancelShape_Shifting_Item::new, ConnectionState.IN_GAME),
        REQUEST_SHAPE_SHIFTING_ITEM(0xC7, RequestShapeShiftingItem::new, ConnectionState.IN_GAME),
        NC_GUARD_SEND_DATA_TO_SERVER(0xC8, null, ConnectionState.IN_GAME),
        REQUEST_EVENT_KALIE_TOKEN(0xC9, null, ConnectionState.IN_GAME),
        REQUEST_SHOW_BEAUTY_LIST(0xCA, RequestShowBeautyList::new, ConnectionState.IN_GAME),
        REQUEST_REGIST_BEAUTY(0xCB, RequestRegistBeauty::new, ConnectionState.IN_GAME),
        REQUEST_SHOW_RESET_BEAUTY(0xCC, null, ConnectionState.IN_GAME), // new
        REQUEST_SHOW_RESET_SHOP_LIST(0xCD, RequestShowResetShopList::new, ConnectionState.IN_GAME),
        CHECK_SPEEDHACK(0xCE, null, ConnectionState.IN_GAME),
        REQUEST_BR_ADD_BASKET_PRODUCT_INFO(0xCF, null, ConnectionState.IN_GAME),
        REQUEST_BR_DELETE_BASKET_PRODUCT_INFO(0xD0, null, ConnectionState.IN_GAME),
        REQUEST_BR_EXIST_NEW_PRODUCT(0xD1, RequestBrExistNewProduct::new, ConnectionState.IN_GAME), // new
        REQUEST_EX_EVENT_CAMPAIGN_INFO(0xD2, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_RECRUIT_INFO(0xD3, RequestPledgeRecruitInfo::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_RECRUIT_BOARD_SEARCH(0xD4, RequestPledgeRecruitBoardSearch::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_RECRUIT_BOARD_ACCESS(0xD5, RequestPledgeRecruitBoardAccess::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_RECRUIT_BOARD_DETAIL(0xD6, RequestPledgeRecruitBoardDetail::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_WAITING_APPLY(0xD7, RequestPledgeWaitingApply::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_WAITING_APPLIED(0xD8, RequestPledgeWaitingApplied::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_WAITING_LIST(0xD9, RequestPledgeWaitingList::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_WAITING_USER(0xDA, RequestPledgeWaitingUser::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_WAITING_USER_ACCEPT(0xDB, RequestPledgeWaitingUserAccept::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_DRAFT_LIST_SEARCH(0xDC, RequestPledgeDraftListSearch::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_DRAFT_LIST_APPLY(0xDD, RequestPledgeDraftListApply::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_RECRUIT_APPLY_INFO(0xDE, RequestPledgeRecruitApplyInfo::new, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_JOIN_SYS(0xDF, null, ConnectionState.IN_GAME),
        RESPONSE_WEB_PETITION_ALARM(0xE0, null, ConnectionState.IN_GAME),
        NOTIFY_EXIT_BEAUTY_SHOP(0xE1, NotifyExitBeautyShop::new, ConnectionState.IN_GAME),
        REQUEST_REGISTER_XMAS_WISH_CARD(0xE2, null, ConnectionState.IN_GAME),
        REQUEST_EX_ADD_ENCHANT_SCROLL_ITEM(0xE3, RequestExAddEnchantScrollItem::new, ConnectionState.IN_GAME),
        REQUEST_EX_REMOVE_ENCHANT_SUPPORT_ITEM(0xE4, RequestExRemoveEnchantSupportItem::new, ConnectionState.IN_GAME),
        REQUEST_CARD_REWARD(0xE5, null, ConnectionState.IN_GAME),
        REQUEST_DIVIDE_ADENA_START(0xE6, RequestDivideAdenaStart::new, ConnectionState.IN_GAME),
        REQUEST_DIVIDE_ADENA_CANCEL(0xE7, RequestDivideAdenaCancel::new, ConnectionState.IN_GAME),
        REQUEST_DIVIDE_ADENA(0xE8, RequestDivideAdena::new, ConnectionState.IN_GAME),
        REQUEST_ACQUIRE_ABILITY_LIST(0xE9, RequestAcquireAbilityList::new, ConnectionState.IN_GAME),
        REQUEST_ABILITY_LIST(0xEA, RequestAbilityList::new, ConnectionState.IN_GAME),
        REQUEST_RESET_ABILITY_POINT(0xEB, RequestResetAbilityPoint::new, ConnectionState.IN_GAME),
        REQUEST_CHANGE_ABILITY_POINT(0xEC, RequestChangeAbilityPoint::new, ConnectionState.IN_GAME),
        REQUEST_STOP_MOVE(0xED, RequestStopMove::new, ConnectionState.IN_GAME),
        REQUEST_ABILITY_WND_OPEN(0xEE, RequestAbilityWndOpen::new, ConnectionState.IN_GAME),
        REQUEST_ABILITY_WND_CLOSE(0xEF, RequestAbilityWndClose::new, ConnectionState.IN_GAME),
        REQUEST_LUCKY_GAME_START_INFO(0xF0, RequestLuckyGameStartInfo::new, ConnectionState.IN_GAME),
        REQUEST_LUCKY_GAME_PLAY(0xF1, RequestLuckyGamePlay::new, ConnectionState.IN_GAME),
        NOTIFY_TRAINING_ROOM_END(0xF2, NotifyTrainingRoomEnd::new, ConnectionState.IN_GAME),
        REQUEST_NEW_ENCHANT_PUSH_ONE(0xF3, RequestNewEnchantPushOne::new, ConnectionState.IN_GAME),
        REQUEST_NEW_ENCHANT_REMOVE_ONE(0xF4, RequestNewEnchantRemoveOne::new, ConnectionState.IN_GAME),
        REQUEST_NEW_ENCHANT_PUSH_TWO(0xF5, RequestNewEnchantPushTwo::new, ConnectionState.IN_GAME),
        REQUEST_NEW_ENCHANT_REMOVE_TWO(0xF6, RequestNewEnchantRemoveTwo::new, ConnectionState.IN_GAME),
        REQUEST_NEW_ENCHANT_CLOSE(0xF7, RequestNewEnchantClose::new, ConnectionState.IN_GAME),
        REQUEST_NEW_ENCHANT_TRY(0xF8, RequestNewEnchantTry::new, ConnectionState.IN_GAME),
        REQUEST_NEW_ENCHANT_RETRY_TO_PUT_ITEMS(0xF9, RequestNewEnchantRetryToPutItems::new, ConnectionState.IN_GAME),
        EX_REQUEST_CARD_REWARD_LIST(0xFA, null, ConnectionState.IN_GAME),
        EX_REQUEST_ACCOUNT_ATTENDANCE_INFO(0xFB, null, ConnectionState.IN_GAME),
        EX_REQUEST_ACCOUNT_ATTENDANCE_REWARD(0xFC, null, ConnectionState.IN_GAME),
        TARGET(0xFD, RequestTargetActionMenu::new, ConnectionState.IN_GAME),
        EX_SEND_SELECTED_QUEST_ZONE_ID(0xFE, ExSendSelectedQuestZoneID::new, ConnectionState.IN_GAME),
        REQUEST_ALCHEMY_SKILL_LIST(0xFF, RequestAlchemySkillList::new, ConnectionState.IN_GAME),
        REQUEST_ALCHEMY_TRY_MIX_CUBE(0x100, RequestAlchemyTryMixCube::new, ConnectionState.IN_GAME),
        REQUEST_ALCHEMY_CONVERSION(0x101, RequestAlchemyConversion::new, ConnectionState.IN_GAME),
        SEND_EXECUTED_UI_EVENTS_COUNT(0x102, null, ConnectionState.IN_GAME),
        EX_SEND_CLIENT_INI(0x103, null, ConnectionState.AUTHENTICATED),
        REQUEST_EX_AUTO_FISH(0x104, ExRequestAutoFish::new, ConnectionState.IN_GAME),
        REQUEST_VIP_ATTENDANCE_ITEM_LIST(0x105, RequestVipAttendanceItemList::new, ConnectionState.IN_GAME),
        REQUEST_VIP_ATTENDANCE_CHECK(0x106, RequestVipAttendanceCheck::new, ConnectionState.IN_GAME),
        REQUEST_ITEM_ENSOUL(0x107, RequestItemEnsoul::new, ConnectionState.IN_GAME),
        REQUEST_CASTLE_WAR_SEASON_REWARD(0x108, null, ConnectionState.IN_GAME),
        REQUEST_VIP_PRODUCT_LIST(0x109, null, ConnectionState.IN_GAME),
        REQUEST_VIP_LUCKY_GAME_INFO(0x10A, null, ConnectionState.IN_GAME),
        REQUEST_VIP_LUCKY_GAME_ITEM_LIST(0x10B, null, ConnectionState.IN_GAME),
        REQUEST_VIP_LUCKY_GAME_BONUS(0x10C, null, ConnectionState.IN_GAME),
        EX_REQUEST_VIP_INFO(0x10D, null, ConnectionState.IN_GAME),
        REQUEST_CAPTCHA_ANSWER(0x10E, null, ConnectionState.IN_GAME),
        REQUEST_REFRESH_CAPTCHA_IMAGE(0x10F, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_SIGN_IN_FOR_OPEN_JOINING_METHOD(0x110, RequestPledgeSignInForOpenJoiningMethod::new, ConnectionState.IN_GAME),
        EX_REQUEST_MATCH_ARENA(0x111, null, ConnectionState.IN_GAME),
        EX_CONFIRM_MATCH_ARENA(0x112, null, ConnectionState.IN_GAME),
        EX_CANCEL_MATCH_ARENA(0x113, null, ConnectionState.IN_GAME),
        EX_CHANGE_CLASS_ARENA(0x114, null, ConnectionState.IN_GAME),
        EX_CONFIRM_CLASS_ARENA(0x115, null, ConnectionState.IN_GAME),
        REQUEST_OPEN_DECO_NPCUI(0x116, null, ConnectionState.IN_GAME),
        REQUEST_CHECK_AGIT_DECO_AVAILABILITY(0x117, null, ConnectionState.IN_GAME),
        REQUEST_USER_FACTION_INFO(0x118, RequestUserFactionInfo::new, ConnectionState.IN_GAME),
        EX_EXIT_ARENA(0x119, null, ConnectionState.IN_GAME),
        REQUEST_EVENT_BALTHUS_TOKEN(0x11A, null, ConnectionState.IN_GAME),
        REQUEST_PARTY_MATCHING_HISTORY(0x11B, null, ConnectionState.IN_GAME),
        EX_ARENA_CUSTOM_NOTIFICATION(0x11C, null, ConnectionState.IN_GAME),
        REQUEST_TODO_LIST(0x11D, null, ConnectionState.IN_GAME),
        REQUEST_TODO_LIST_HTML(0x11E, null, ConnectionState.IN_GAME),
        REQUEST_ONE_DAY_REWARD_RECEIVE(0x11F, null, ConnectionState.IN_GAME),
        REQUEST_QUEUE_TICKET(0x120, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_BONUS_OPEN(0x121, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_BONUS_REWARD_LIST(0x122, null, ConnectionState.IN_GAME),
        REQUEST_PLEDGE_BONUS_REWARD(0x123, null, ConnectionState.IN_GAME),
        REQUEST_SSO_AUTHN_TOKEN(0x124, null, ConnectionState.IN_GAME),
        REQUEST_QUEUE_TICKET_LOGIN(0x125, null, ConnectionState.IN_GAME),
        REQUEST_BLOCK_MEMO_INFO(0x126, null, ConnectionState.IN_GAME),
        REQUEST_TRY_EN_SOUL_EXTRACTION(0x127, RequestTryEnSoulExtraction::new, ConnectionState.IN_GAME),
        REQUEST_RAIDBOSS_SPAWN_INFO(0x128, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME),
        REQUEST_RAID_SERVER_INFO(0x129, RequestRaidServerInfo::new, ConnectionState.IN_GAME),
        REQUEST_SHOW_AGIT_SIEGE_INFO(0x12A, null, ConnectionState.IN_GAME),
        REQUEST_ITEM_AUCTION_STATUS(0x12B, null, ConnectionState.IN_GAME),
        REQUEST_MONSTER_BOOK_OPEN(0x12C, null, ConnectionState.IN_GAME),
        REQUEST_MONSTER_BOOK_CLOSE(0x12D, null, ConnectionState.IN_GAME),
        REQUEST_MONSTER_BOOK_REWARD(0x12E, null, ConnectionState.IN_GAME),
        EXREQUEST_MATCH_GROUP(0x12F, null, ConnectionState.IN_GAME),
        EXREQUEST_MATCH_GROUP_ASK(0x130, null, ConnectionState.IN_GAME),
        EXREQUEST_MATCH_GROUP_ANSWER(0x131, null, ConnectionState.IN_GAME),
        EXREQUEST_MATCH_GROUP_WITHDRAW(0x132, null, ConnectionState.IN_GAME),
        EXREQUEST_MATCH_GROUP_OUST(0x133, null, ConnectionState.IN_GAME),
        EXREQUEST_MATCH_GROUP_CHANGE_MASTER(0x134, null, ConnectionState.IN_GAME),
        REQUEST_UPGRADE_SYSTEM_RESULT(0x135, RequestUpgradeSystemResult::new, ConnectionState.IN_GAME),
        EX_CARD_UPDOWN_PICK_NUMB(0x136, null, ConnectionState.IN_GAME),
        EX_CARD_UPDOWN_GAME_REWARD_REQUEST(0x137, null, ConnectionState.IN_GAME),
        EX_CARD_UPDOWN_GAME_RETRY(0x138, null, ConnectionState.IN_GAME),
        EX_CARD_UPDOWN_GAME_QUIT(0x139, null, ConnectionState.IN_GAME),
        EX_ARENA_RANK_ALL(0x13A, null, ConnectionState.IN_GAME),
        EX_ARENA_MYRANK(0x13B, null, ConnectionState.IN_GAME),
        EX_SWAP_AGATHION_SLOT_ITEMS(0x13C, null, ConnectionState.IN_GAME),
        EX_PLEDGE_CONTRIBUTION_RANK(0x13D, RequestExPledgeContributionRank::new, ConnectionState.IN_GAME),
        EX_PLEDGE_CONTRIBUTION_INFO(0x13E, RequestExPledgeContributionInfo::new, ConnectionState.IN_GAME),
        EX_PLEDGE_CONTRIBUTION_REWARD(0x13F, null, ConnectionState.IN_GAME),
        EX_PLEDGE_LEVEL_UP(0x140, RequestExPledgeLevelUp::new, ConnectionState.IN_GAME),
        EX_PLEDGE_MISSION_INFO(0x141, RequestExPledgeMissionInfo::new, ConnectionState.IN_GAME),
        EX_PLEDGE_MISSION_REWARD(0x142, RequestExPledgeMissionReward::new, ConnectionState.IN_GAME),
        EX_PLEDGE_MASTERY_INFO(0x143, RequestExPledgeMasteryInfo::new, ConnectionState.IN_GAME),
        EX_PLEDGE_MASTERY_SET(0x144, RequestExPledgeMasterySet::new, ConnectionState.IN_GAME),
        EX_PLEDGE_MASTERY_RESET(0x145, RequestExPledgeMasteryReset::new, ConnectionState.IN_GAME),
        EX_PLEDGE_SKILL_INFO(0x146, RequestExPledgeSkillInfo::new, ConnectionState.IN_GAME),
        EX_PLEDGE_SKILL_ACTIVATE(0x147, RequestExPledgeSkillActivate::new, ConnectionState.IN_GAME),
        EX_PLEDGE_ITEM_LIST(0x148, RequestExPledgeItemList::new, ConnectionState.IN_GAME),
        EX_PLEDGE_ITEM_ACTIVATE(0x149, null, ConnectionState.IN_GAME),
        EX_PLEDGE_ANNOUNCE(0x14A, RequestExPledgeAnnounce::new, ConnectionState.IN_GAME),
        EX_PLEDGE_ANNOUNCE_SET(0x14B, null, ConnectionState.IN_GAME),
        EX_CREATE_PLEDGE(0x14C, null, ConnectionState.IN_GAME),
        EX_PLEDGE_ITEM_INFO(0x14D, null, ConnectionState.IN_GAME),
        EX_PLEDGE_ITEM_BUY(0x14E, RequestExPledgeItemBuy::new, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_INFO(0x14F, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0x150, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_EXTRACT(0x151, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0x152, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_EVOLUTION(0x153, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_SET_TALENT(0x154, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_INIT_TALENT(0x155, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0x156, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_ABSORB(0x157, null, ConnectionState.IN_GAME),
        EX_REQUEST_LOCKED_ITEM(0x158, null, ConnectionState.IN_GAME),
        EX_REQUEST_UNLOCKED_ITEM(0x159, null, ConnectionState.IN_GAME),
        EX_LOCKED_ITEM_CANCEL(0x15A, null, ConnectionState.IN_GAME),
        EX_UNLOCKED_ITEM_CANCEL(0x15B, null, ConnectionState.IN_GAME),
        EX_ELEMENTAL_SPIRIT_CHANGE_TYPE(0x15C, null, ConnectionState.IN_GAME), // 152
        REQUEST_BLOCK_LIST_FOR_AD(0x15D, null, ConnectionState.IN_GAME),
        REQUEST_USER_BAN_INFO(0x15E, null, ConnectionState.IN_GAME),
        EX_INTERACT_MODIFY(0x15F, null, ConnectionState.IN_GAME), // 152
        EX_TRY_ENCHANT_ARTIFACT(0x160, ExTryEnchantArtifact::new, ConnectionState.IN_GAME), // 152
        EX_UPGRADE_SYSTEM_NORMAL_REQUEST(0x161, ExUpgradeSystemNormalRequest::new, ConnectionState.IN_GAME), // new
        EX_PURCHASE_LIMIT_SHOP_ITEM_LIST(0x162, ExPurchaseLimitShopItemList::new, ConnectionState.IN_GAME), // new
        EX_PURCHASE_LIMIT_SHOP_ITEM_BUY(0x163, ExPurchaseLimitShopItemBuy::new, ConnectionState.IN_GAME), // new
        EX_OPEN_HTML(0x164, ExOpenDimensionalHtml::new, ConnectionState.IN_GAME), // 228
        EX_REQUEST_CLASS_CHANGE(0x165, ExRequestClassChange::new, ConnectionState.IN_GAME), // 228
        EX_REQUEST_CLASS_CHANGE_VERIFYING(0x166, null, ConnectionState.IN_GAME), // 228
        EX_REQUEST_TELEPORT(0x167, ExRequestTeleport::new, ConnectionState.IN_GAME), // 228
        EX_COSTUME_USE_ITEM(0x168, ExCostumeUseItem::new, ConnectionState.IN_GAME), // new
        EX_COSTUME_LIST(0x169, ExCostumeList::new, ConnectionState.IN_GAME), // new
        EX_COSTUME_COLLECTION_SKILL_ACTIVE(0x16A, ExCostumeCollectionSkillActive::new, ConnectionState.IN_GAME),
        EX_COSTUME_EVOLUTION(0x16B, ExCostumeEvolution::new, ConnectionState.IN_GAME),
        EX_COSTUME_EXTRACT(0x16C, ExCostumeExtract::new, ConnectionState.IN_GAME), // 228
        EX_COSTUME_LOCK(0x16D, ExCostumeLock::new, ConnectionState.IN_GAME), // 228
        EX_COSTUME_CHANGE_SHORTCUT(0x16E, ExCostumeChangeShortCut::new, ConnectionState.IN_GAME), // 228
        EX_MAGICLAMP_GAME_INFO(0x16F, ExMagicLampGameInfo::new, ConnectionState.IN_GAME), // 228
        EX_MAGICLAMP_GAME_START(0x170, ExMagicLampGameStart::new, ConnectionState.IN_GAME), // 228
        EX_ACTIVATE_AUTO_SHORTCUT(0x171, RequestActivateAutoShortcut::new, ConnectionState.IN_GAME), // 228
        EX_PREMIUM_MANAGER_LINK_HTML(0x172, ExPremiumManagerLinkHtml::new, ConnectionState.IN_GAME), // 228
        EX_PREMIUM_MANAGER_PASS_CMD_TO_SERVER(0x173, ExPremiumManagerPassCmdToServer::new, ConnectionState.IN_GAME), // 228
        EX_ACTIVATED_CURSED_TREASURE_BOX_LOCATION(0x174, ExActivatedCursedTreasureBoxLocation::new, ConnectionState.IN_GAME), // 228
        EX_PAYBACK_LIST(0x175, ExPayBackList::new, ConnectionState.IN_GAME), // 228
        EX_PAYBACK_GIVE_REWARD(0x176, ExPayBackGiveReward::new, ConnectionState.IN_GAME), // 228
        EX_AUTOPLAY_SETTING(0x177, ExAutoPlaySetting::new, ConnectionState.IN_GAME), // 228
        EX_OLYMPIAD_MATCH_MAKING(0x178, ExOlympiadMatchMaking::new, ConnectionState.IN_GAME), // 228
        EX_OLYMPIAD_MATCH_MAKING_CANCEL(0x179, ExOlympiadMatchMakingCancel::new, ConnectionState.IN_GAME), // 228
        EX_FESTIVAL_BM_INFO(0x17A, ExFestivalBMInfo::new, ConnectionState.IN_GAME), // 228
        EX_FESTIVAL_BM_GAME(0x17B, ExFestivalBMGame::new, ConnectionState.IN_GAME), // 228
        EX_GACHA_SHOP_INFO(0x17C, ExGachaShopInfo::new, ConnectionState.IN_GAME), // 228
        EX_GACHA_SHOP_GACHA_GROUP(0x17D, ExGachaShopGachaGroup::new, ConnectionState.IN_GAME), // 228
        EX_GACHA_SHOP_GACHA_ITEM(0x17E, ExGachaShopGachaItem::new, ConnectionState.IN_GAME), // 228
        EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), // 228
        EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, ExTimeRestrictFieldUserEnter::new, ConnectionState.IN_GAME), // 228
        EX_RANKING_CHAR_INFO(0x181, RequestRankingCharInfo::new, ConnectionState.IN_GAME), // 228
        EX_RANKING_CHAR_HISTORY(0x182, ExRankingCharHistory::new, ConnectionState.IN_GAME), // 228
        EX_RANKING_CHAR_RANKERS(0x183, RequestRankingCharRankers::new, ConnectionState.IN_GAME), // 228
        EX_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x184, ExPledgeMercenaryRecruitInfoSet::new, ConnectionState.IN_GAME), // 228
        EX_PLEDGE_MERCENARY_CASTLEWAR_CASTLE_INFO(0x185, ExPledgeMercenaryCastleWarCastleInfo::new, ConnectionState.IN_GAME), // 228
        EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_INFO(0x186, ExMercenaryCastleWarCastleSiegeInfo::new, ConnectionState.IN_GAME), // 228
        EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x187, ExMercenaryCastleWarCastleSiegeAttackerList::new, ConnectionState.IN_GAME), // 228
        EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_DEFENDER_LIST(0x188, ExMercenaryCastleWarCastleSiegeDefenderList::new, ConnectionState.IN_GAME), // 228
        EX_PLEDGE_MERCENARY_MEMBER_LIST(0x189, ExPledgeMercenaryMemberList::new, ConnectionState.IN_GAME), // 228
        EX_PLEDGE_MERCENARY_MEMBER_JOIN(0x18A, ExPledgeMercenaryMemberJoin::new, ConnectionState.IN_GAME), // 228
        EX_PVP_BOOK_LIST(0x18B, ExPvpBookList::new, ConnectionState.IN_GAME), // 228
        EX_PVP_BOOK_KILLER_LOCATION(0x18C, ExPvpBookKillerLocation::new, ConnectionState.IN_GAME), // 228
        EX_PVP_BOOK_TELEPORT_TO_KILLER(0x18D, ExPvpBookTeleportToKiller::new, ConnectionState.IN_GAME), // 228
        EX_LETTER_COLLECTOR_TAKE_REWARD(0x18E, ExLetterCollectorTakeReward::new, ConnectionState.IN_GAME),
        EX_SET_STATUS_BONUS(0x18F, ExSetStatusBonus::new, ConnectionState.IN_GAME),
        EX_RESET_STATUS_BONUS(0x190, ExResetStatusBonus::new, ConnectionState.IN_GAME),
        EX_OLYMPIAD_MY_RANKING_INFO(0x191, RequestOlympiadMyRankingInfo::new, ConnectionState.IN_GAME),
        EX_OLYMPIAD_RANKING_INFO(0x192, RequestOlympiadRankingInfo::new, ConnectionState.IN_GAME),
        EX_OLYMPIAD_HERO_AND_LEGEND_INFO(0x193, RequestOlympiadHeroAndLegendInfo::new, ConnectionState.IN_GAME),
        EX_CASTLEWAR_OBSERVER_START(0x194, ExCastleWarObserverStart::new, ConnectionState.IN_GAME),
        EX_RAID_TELEPORT_INFO(0x195, ExRaidTeleportInfo::new, ConnectionState.IN_GAME),
        EX_TELEPORT_TO_RAID_POSITION(0x196, ExTeleportToRaidPosition::new, ConnectionState.IN_GAME),
        EX_CRAFT_EXTRACT(0x197, ExCraftExtract::new, ConnectionState.IN_GAME),
        EX_CRAFT_RANDOM_INFO(0x198, ExCraftRandomInfo::new, ConnectionState.IN_GAME),
        EX_CRAFT_RANDOM_LOCK_SLOT(0x199, ExCraftRandomLockSlot::new, ConnectionState.IN_GAME),
        EX_CRAFT_RANDOM_REFRESH(0x19A, ExCraftRandomRefresh::new, ConnectionState.IN_GAME),
        EX_CRAFT_RANDOM_MAKE(0x19B, ExCraftRandomMake::new, ConnectionState.IN_GAME),
        EX_MULTI_SELL_LIST(0x19C, ExMultiSellList::new, ConnectionState.IN_GAME),
        EX_SAVE_ITEM_ANNOUNCE_SETTING(0x19D, ExSaveItemAnnounceSetting::new, ConnectionState.IN_GAME),
        EX_ANTIBOT(0x19E, ExAntibot::new, ConnectionState.IN_GAME),
        EX_DPSVR(0x19F, ExDPSVR::new, ConnectionState.IN_GAME),
        EX_TENPROTECT_DECRYPT_ERROR(0x1A0, ExTenProtectDecryptError::new, ConnectionState.IN_GAME),
        EX_MAX(0x1A1, null, ConnectionState.IN_GAME);
       
        public static final ExIncomingPackets[] PACKET_ARRAY;
       
        static
        {
            final short maxPacketId = (short) Arrays.stream(values()).mapToInt(IIncomingPackets::getPacketId).max().orElse(0);
            PACKET_ARRAY = new ExIncomingPackets[maxPacketId + 1];
            for (ExIncomingPackets incomingPacket : values())
            {
                PACKET_ARRAY[incomingPacket.getPacketId()] = incomingPacket;
            }
        }
       
        private int _packetId;
        private Supplier<IIncomingPacket<GameClient>> _incomingPacketFactory;
        private Set<IConnectionState> _connectionStates;
       
        ExIncomingPackets(int packetId, Supplier<IIncomingPacket<GameClient>> incomingPacketFactory, IConnectionState... connectionStates)
        {
            // packetId is an unsigned short
            if (packetId > 0xFFFF)
            {
                throw new IllegalArgumentException("packetId must not be bigger than 0xFFFF");
            }
            _packetId = packetId;
            _incomingPacketFactory = incomingPacketFactory != null ? incomingPacketFactory : () -> null;
            _connectionStates = new HashSet<>(Arrays.asList(connectionStates));
        }
       
        @Override
        public int getPacketId()
        {
            return _packetId;
        }
       
        @Override
        public IIncomingPacket<GameClient> newIncomingPacket()
        {
            return _incomingPacketFactory.get();
        }
       
        @Override
        public Set<IConnectionState> getConnectionStates()
        {
            return _connectionStates;
        }
    } 
    
     
  4. FxStream

    FxStream Знающий

    Регистрация:
    8 дек 2019
    Сообщения:
    293
    Симпатии:
    3
    Товарищу, выложившему 2.0 нет.про - которое не компилируется и полностью багованное... отдельное "спасибо", за утрату ~10 часов пересобирания багов под нормальный проект.
     
  5. Bonabo

    Bonabo Участник

    Регистрация:
    23 окт 2018
    Сообщения:
    14
    Симпатии:
    0
    Можно объединить усилия: сам мучаюсь с этим вопросом...
     
  6. alisacodedragon

    alisacodedragon Пляшущий с бубном
    Постоялец

    Регистрация:
    11 окт 2018
    Сообщения:
    199
    Симпатии:
    54
    Я Бы советовала с оригинального сайта качать
     

Партнеры