• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
L2J Mobius Classic 3.0 The Kamael

L2J Mobius Classic 3.0 The Kamael

разобрался, оказывается был прописан C:\ProgramData\Oracle\Java\javapath;) удалил папку Oracle и все заработало.
 
  • Ха-ха-ха
Реакции: kick

Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Java:
/**
 * @author JoeAlisson
 */
public class ExAutoPlaySetting extends ClientPacket {

    private short options;
    private boolean active;
    private boolean pickUp;
    private short nextTargetMode;
    private boolean isNearTarget;
    private int usableHpPotionPercent;
    private boolean mannerMode;

    @Override
    protected void readImpl() throws Exception {
        options = readShort();
        active = readByteAsBoolean();
        pickUp = readByteAsBoolean();
        nextTargetMode = readShort();
        isNearTarget = readByteAsBoolean();
        usableHpPotionPercent = readInt();
        mannerMode = readByteAsBoolean();
    }

    @Override
    protected void runImpl() {
        var setting = new AutoPlaySetting(options, active, pickUp, nextTargetMode, isNearTarget, usableHpPotionPercent, mannerMode);
        if(active) {
            AutoPlayEngine.getInstance().startAutoPlay(client.getPlayer(), setting);
        } else {
            AutoPlayEngine.getInstance().stopAutoPlay(client.getPlayer());
        }
        client.sendPacket(new org.l2j.gameserver.network.serverpackets.autoplay.ExAutoPlaySetting(setting));
    }
}
Java:
/**
 * @author JoeAlisson
 */
public class ExRequestActivateAutoShortcut extends ClientPacket {

    private boolean activate;
    private int room;

    @Override
    protected void readImpl() throws Exception {
        room = readShort();
        activate = readByteAsBoolean();
    }

    @Override
    protected void runImpl() throws Exception {
        if(!activate) {
            client.sendPacket(new ExActivateAutoShortcut(room, activate));
            return;
        }

        if(room == -1) {
            // TODO auto supply
            client.sendPacket(new ExActivateAutoShortcut(room, activate));
        } else {

            var slot = room % 12;
            var page = room / 12;

            var player = client.getPlayer();
            var shortcut = player.getShortCut(slot, page);
            if (nonNull(shortcut)) {

                if (page == 23 && slot == 1) { // auto potion
                    var item = player.getInventory().getItemByObjectId(shortcut.getId());
                    if (isNull(item) || !item.isPotion()) {
                        return;
                    }
                }

                // TODO auto skill
                client.sendPacket(new ExActivateAutoShortcut(room, activate));
            }
        }

    }
}
Java:
/**
 * @author JoeAlisson
 */
public class ExActivateAutoShortcut extends ServerPacket {

    private final int room;
    private final boolean activate;

    public ExActivateAutoShortcut(int room, boolean activate) {
        this.room = room;
        this.activate = activate;
    }

    @Override
    protected void writeImpl(GameClient client) {
        writeId(ServerPacketId.EX_ACTIVATE_AUTO_SHORTCUT);
        writeShort(room);
        writeByte(activate);
    }
}
Java:
/**
 * @author JoeAlisson
 */
@StaticPacket
public final class ExAutoPlayDoMacro extends ServerPacket {

    public static ExAutoPlayDoMacro STATIC = new ExAutoPlayDoMacro();

    private ExAutoPlayDoMacro() {

    }

    @Override
    protected void writeImpl(GameClient client) throws Exception {
        writeId(ServerPacketId.EX_AUTOPLAY_DO_MACRO);
        writeInt(0x114); // macro number ?
    }
}
Java:
/**
 * @author JoeAlisson
 */
public class ExAutoPlaySetting extends ServerPacket {

    private final AutoPlaySetting setting;

    public ExAutoPlaySetting(AutoPlaySetting setting) {
        this.setting = setting;
    }

    @Override
    protected void writeImpl(GameClient client) {
        writeId(ServerPacketId.EX_AUTOPLAY_SETTING);
        writeShort(setting.getOptions());
        writeByte(setting.isActive());
        writeByte(setting.isAutoPickUpOn());
        writeShort(setting.getNextTargetMode());
        writeByte(setting.isNearTarget());
        writeInt(setting.getUsableHpPotionPercent());
        writeByte(setting.isMannerMode());
    }
}
Java:
/**
 * @author JoeAlisson
 */
public final class AutoPlayEngine {

    private static final int AUTO_PLAY_INTERVAL = 2000;
    private final WeakHashMap<Player, AutoPlaySetting> players = new WeakHashMap<>();
    private final DoMacro doMacroTask = new DoMacro();
    private ScheduledFuture<?> scheduled;
    private final Object taskLocker = new Object();

    private AutoPlayEngine() {

    }

    public void startAutoPlay(Player player, AutoPlaySetting setting) {
        players.put(player, setting);
        synchronized (taskLocker) {
            if(isNull(scheduled)) {
                scheduled = ThreadPool.scheduleAtFixedDelay(doMacroTask, AUTO_PLAY_INTERVAL, AUTO_PLAY_INTERVAL);
            }
        }
    }

    public void stopAutoPlay(Player player) {
        players.remove(player);
        synchronized (taskLocker) {
            if (players.isEmpty() && nonNull(scheduled)) {
                scheduled.cancel(false);
                scheduled = null;
            }
        }
    }

    public static AutoPlayEngine getInstance() {
        return Singleton.INSTANCE;
    }

    private final class DoMacro implements Runnable {

        @Override
        public void run() {
            var world = World.getInstance();
            var it = players.entrySet().iterator();
            while (it.hasNext()) {
                var entry = it.next();
                var player = entry.getKey();
                if(isNull(player))  {
                    it.remove();
                } else {
                    var setting = entry.getValue();
                    var range = setting.isNearTarget() ? 600 : 1400;

                    if(setting.isAutoPickUpOn()) {
                        world.forAnyVisibleObjectInRange(player, Item.class, range,
                                item -> player.getAI().setIntention(CtrlIntention.AI_INTENTION_PICK_UP, item),
                                item -> item.getDropProtection().tryPickUp(player));
                    }

                    if(player.getAI().getIntention() == CtrlIntention.AI_INTENTION_PICK_UP) {
                        continue;
                    }

                    var target = player.getTarget();
                    if(isNull(target) || (isMonster(target) && ((Monster) target).isDead())) {
                        var monster = world.findAnyVisibleObject(player, Monster.class, range, false, m -> canBeTargeted(player, setting, m));
                        player.setTarget(monster);
                    }
                    if(nonNull(player.getTarget())) {
                        player.sendPacket(ExAutoPlayDoMacro.STATIC);
                    }
                }
            }
        }

        private boolean canBeTargeted(Player player, AutoPlaySetting setting, Monster monster) {
            var attackerList = monster.getAggroList();
            return !monster.isDead() && monster.isAutoAttackable(player) && (!setting.isMannerMode() || attackerList.isEmpty() || attackerList.size() == 1 && attackerList.containsKey(player));
        }
    }

    private static final class Singleton {
        private static final AutoPlayEngine INSTANCE = new AutoPlayEngine();
    }
}
Код:
/**
 * @author JoeAlisson
 */
public class AutoPlaySetting {

    private final short options;
    private final boolean active;
    private final boolean pickUp;
    private final short nextTargetMode;
    private final boolean isNearTarget;
    private final int usableHpPotionPercent;
    private final boolean mannerMode;

    public AutoPlaySetting(short options, boolean active, boolean pickUp, short nextTargetMode, boolean isNearTarget, int usableHpPotionPercent, boolean mannerMode) {
        this.options = options;
        this.active = active;
        this.pickUp = pickUp;
        this.nextTargetMode = nextTargetMode;
        this.isNearTarget = isNearTarget;
        this.usableHpPotionPercent =  usableHpPotionPercent;
        this.mannerMode = mannerMode;
    }

    public short getOptions() {
        return options;
    }

    public boolean isActive() {
        return active;
    }

    public boolean isAutoPickUpOn() {
        return pickUp;
    }

    public short getNextTargetMode() {
        return nextTargetMode;
    }

    public boolean isNearTarget() {
        return isNearTarget;
    }

    public int getUsableHpPotionPercent() {
        return usableHpPotionPercent;
    }

    public boolean isMannerMode() {
        return mannerMode;
    }
}
 
Авто фарм/авто юз и все что авто - должно быть реализовано на стороне сервера (пакетка это показала)

В данном сурсе реализовано: вход в мир ( может парс болванок ДП, енд)
Кто нибудь решил данную проблему?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
А что там решать?
Нужно реализовать - если мы все еще про мобиуса говорим.

А если нет - есть уже Л2ж реализовано и много переделано, но там 1 человек работает над сурсом (хотя, есть несколько интузиастов что подкидают инфу и фиксы туда)
Сегодня писали про L2jOrg
 
Да про мобиуса. С сосками разбегаться пытаюсь. Голова уже кругом

У меня опыта очень мало... Курсы прошел а толку без практики от них нет

Подскажите куда копать
 
Последнее редактирование модератором:
У мобиуса давно уже реализованы автофункции. В шаре древняя ревизия, в которой только пакетка входа реализована, по сути от камаэля там ничего нет.
 
Понял. Уже пытаюсь дополнить.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
для тех кто в танке.
Java:
package org.l2jmobius.gameserver.network.clientpackets.autoplay;

import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend;

public class ExAutoPlaySetting implements IClientIncomingPacket
{
    private int _options;
    private boolean _active;
    private boolean _pickUp;
    private int _nextTargetMode;
    private boolean _longRange;
    private int _potionPercent;
    private boolean _respectfulHunting;
    
    @Override
    public boolean read(GameClient client, PacketReader packet)
    {
        _options = packet.readH();
        _active = packet.readC() == 1;
        _pickUp = packet.readC() == 1;
        _nextTargetMode = packet.readH();
        _longRange = packet.readC() == 0;
        _potionPercent = packet.readD();
        _respectfulHunting = packet.readC() == 1;
        return true;
    }
    
    @Override
    public void run(GameClient client)
    {
        final PlayerInstance player = client.getPlayer();
        if (player == null)
        {
            return;
        }
        
        player.sendPacket(new ExAutoPlaySettingSend(_options, _active, _pickUp, _nextTargetMode, _longRange, _potionPercent, _respectfulHunting));
        
        player.setAutoPotionPercent(_potionPercent);
        
        if (_active)
        {
            player.startAutoPlayTask(_pickUp, _longRange, _respectfulHunting);
        }
        else
        {
            player.stopAutoPlayTask();
        }
    }
}
Java:
package org.l2jmobius.gameserver.network.clientpackets.autoplay;

import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.Shortcut;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;

public class ExRequestActivateAutoShortcut implements IClientIncomingPacket
{
    private boolean _activate;
    private int _room;
    
    @Override
    public boolean read(GameClient client, PacketReader packet)
    {
        _room = packet.readH();
        _activate = packet.readC() == 1;
        return true;
    }
    
    @Override
    public void run(GameClient client)
    {
        final PlayerInstance player = client.getPlayer();
        if (player == null)
        {
            return;
        }
        
        final int slot = _room % 12;
        final int page = _room / 12;
        final Shortcut shortcut = player.getShortCut(slot, page);
        if (shortcut == null)
        {
            return;
        }
        client.sendPacket(new ExActivateAutoShortcut(_room, _activate));
        
        final ItemInstance item = player.getInventory().getItemByObjectId(shortcut.getId());
        Skill skill = null;
        if (item == null)
        {
            skill = player.getKnownSkill(shortcut.getId());
        }
        
        // stop
        if (!_activate)
        {
            if (item != null)
            {
                // auto supply
                if (_room == -1)
                {
                    player.removeAutoSupplyItem(item.getId());
                }
                else // auto potion
                {
                    player.removeAutoPotionItem(item.getId());
                }
            }
            // TODO: auto skill
            if (skill != null)
            {
                player.removeAutoSkill(skill.getId());
            }
            return;
        }
        
        // start
        if (_room == -1)
        {
            // auto supply
            if (item != null)
            {
                player.addAutoSupplyItem(item.getId());
                return;
            }
        }
        else
        {
            // auto potion
            if ((page == 23) && (slot == 1))
            {
                if ((item != null) && item.isPotion())
                {
                    player.addAutoPotionItem(item.getId());
                    return;
                }
            }
            // TODO: auto skill
            if (skill != null)
            {
                player.addAutoSkill(skill.getId());
            }
        }
    }
}
Java:
package org.l2jmobius.gameserver.network.serverpackets.autoplay;

import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;

public class ExActivateAutoShortcut implements IClientOutgoingPacket
{
    private final int _room;
    private final boolean _activate;
    
    public ExActivateAutoShortcut(int room, boolean activate)
    {
        _room = room;
        _activate = activate;
    }
    
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_ACTIVATE_AUTO_SHORTCUT.writeId(packet);
        packet.writeH(_room);
        packet.writeC(_activate ? 0x01 : 0x00);
        return true;
    }
}
Java:
package org.l2jmobius.gameserver.network.serverpackets.autoplay;

import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;

public class ExAutoPlayDoMacro implements IClientOutgoingPacket
{
    public static final ExAutoPlayDoMacro STATIC_PACKET = new ExAutoPlayDoMacro();
    
    public ExAutoPlayDoMacro()
    {
    }
    
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_AUTOPLAY_DO_MACRO.writeId(packet);
        packet.writeD(0x114);
        return true;
    }
}
Java:
package org.l2jmobius.gameserver.network.serverpackets.autoplay;

import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;

public class ExAutoPlaySettingSend implements IClientOutgoingPacket
{
    private final int _options;
    private final boolean _active;
    private final boolean _pickUp;
    private final int _nextTargetMode;
    private final boolean _longRange;
    private final int _potionPercent;
    private final boolean _respectfulHunting;
    
    public ExAutoPlaySettingSend(int options, boolean active, boolean pickUp, int nextTargetMode, boolean longRange, int potionPercent, boolean respectfulHunting)
    {
        _options = options;
        _active = active;
        _pickUp = pickUp;
        _nextTargetMode = nextTargetMode;
        _longRange = longRange;
        _potionPercent = potionPercent;
        _respectfulHunting = respectfulHunting;
    }
    
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_AUTOPLAY_SETTING.writeId(packet);
        packet.writeH(_options);
        packet.writeC(_active ? 1 : 0);
        packet.writeC(_pickUp ? 1 : 0);
        packet.writeH(_nextTargetMode);
        packet.writeC(_longRange ? 1 : 0);
        packet.writeD(_potionPercent);
        packet.writeC(_respectfulHunting ? 1 : 0);
        return true;
    }
}
Java:
package org.l2jmobius.gameserver.network;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Supplier;

import org.l2jmobius.commons.network.IConnectionState;
import org.l2jmobius.commons.network.IIncomingPacket;
import org.l2jmobius.commons.network.IIncomingPackets;
import org.l2jmobius.gameserver.network.clientpackets.*;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdena;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaCancel;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaStart;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExCancelShape_Shifting_Item;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingEnchantSupportItem;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingTargetItem;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestShapeShiftingItem;
import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceCheck;
import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceItemList;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeCancel;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeItem;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.SendChangeAttributeTargetItem;
import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExAutoPlaySetting;
import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExRequestActivateAutoShortcut;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCancelCuriousHouse;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCuriousHouseHtml;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestJoinCuriousHouse;
import org.l2jmobius.gameserver.network.clientpackets.classchange.ExRequestClassChange;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyInfo;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyItem;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionCancel;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionDelete;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionInfo;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionList;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegister;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegisteredItem;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegistrableItemList;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantClose;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushOne;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushTwo;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveOne;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveTwo;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRetryToPutItems;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantTry;
import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestOneDayRewardReceive;
import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestTodoList;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalInitTalent;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorb;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorbInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritChangeType;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolution;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolutionInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtract;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtractInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritSetTalent;
import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
import org.l2jmobius.gameserver.network.clientpackets.equipmentupgrade.RequestUpgradeSystemResult;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGameStartInfo;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.ConfirmMenteeAdd;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeAdd;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeWaitingList;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorCancel;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorList;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusOpen;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusReward;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusRewardList;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRBuyProduct;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRGamePoint;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRPresentBuyProduct;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductInfo;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductList;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList;
import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo;
import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo;
import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankCharInfo;
import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankingCharRankers;
import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMove;
import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMoveStart;
import org.l2jmobius.gameserver.network.clientpackets.sessionzones.ExTimedHuntingZoneList;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.MoveToLocationInShuttle;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOff;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOn;
import org.l2jmobius.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, RequestPledgeSetAcademyMaster::new, 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_SERVER_LOGIN(0x1A, null, ConnectionState.IN_GAME),
    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),
    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_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), // TODO: Implement / HANDLE SWITCH
    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), // TODO: Implement / HANDLE SWITCH
    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, null, ConnectionState.IN_GAME),
    REQUEST_CHANGE_TO_AWAKENED_CLASS(0xA2, RequestChangeToAwakenedClass::new, ConnectionState.IN_GAME),
    REQUEST_WORLD_STATISTICS(0xA3, null, ConnectionState.IN_GAME),
    REQUEST_USER_STATISTICS(0xA4, null, ConnectionState.IN_GAME),
    REQUEST_24HZ_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()),
    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_SHOP_LIST(0xCD, RequestShowResetShopList::new, ConnectionState.IN_GAME),
    NET_PING(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_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_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, null, ConnectionState.IN_GAME),
    REQUEST_ABILITY_LIST(0xEA, null, ConnectionState.IN_GAME),
    REQUEST_RESET_ABILITY_POINT(0xEB, null, ConnectionState.IN_GAME),
    REQUEST_CHANGE_ABILITY_POINT(0xEC, null, ConnectionState.IN_GAME),
    REQUEST_STOP_MOVE(0xED, RequestStopMove::new, ConnectionState.IN_GAME),
    REQUEST_ABILITY_WND_OPEN(0xEE, null, ConnectionState.IN_GAME),
    REQUEST_ABILITY_WND_CLOSE(0xEF, null, 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),
    REQUEST_TARGET_ACTION_MENU(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, null, ConnectionState.IN_GAME),
    REQUEST_ALCHEMY_CONVERSION(0x101, null, 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, null, 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, RequestTodoList::new, ConnectionState.IN_GAME),
    REQUEST_TODO_LIST_HTML(0x11E, null, ConnectionState.IN_GAME),
    REQUEST_ONE_DAY_REWARD_RECEIVE(0x11F, RequestOneDayRewardReceive::new, ConnectionState.IN_GAME),
    REQUEST_QUEUE_TICKET(0x120, null, ConnectionState.IN_GAME),
    REQUEST_PLEDGE_BONUS_OPEN(0x121, RequestPledgeBonusOpen::new, ConnectionState.IN_GAME),
    REQUEST_PLEDGE_BONUS_REWARD_LIST(0x122, RequestPledgeBonusRewardList::new, ConnectionState.IN_GAME),
    REQUEST_PLEDGE_BONUS_REWARD(0x123, RequestPledgeBonusReward::new, 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, null, ConnectionState.IN_GAME),
    EX_PLEDGE_CONTRIBUTION_INFO(0x13E, null, ConnectionState.IN_GAME),
    EX_PLEDGE_CONTRIBUTION_REWARD(0x13F, null, ConnectionState.IN_GAME),
    EX_PLEDGE_LEVEL_UP(0x140, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MISSION_INFO(0x141, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MISSION_REWARD(0x142, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MASTERY_INFO(0x143, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MASTERY_SET(0x144, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MASTERY_RESET(0x145, null, ConnectionState.IN_GAME),
    EX_PLEDGE_SKILL_INFO(0x146, null, ConnectionState.IN_GAME),
    EX_PLEDGE_SKILL_ACTIVATE(0x147, null, ConnectionState.IN_GAME),
    EX_PLEDGE_ITEM_LIST(0x148, null, ConnectionState.IN_GAME),
    EX_PLEDGE_ITEM_ACTIVATE(0x149, null, ConnectionState.IN_GAME),
    EX_PLEDGE_ANNOUNCE(0x14A, null, 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, null, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_INFO(0x14F, ExElementalSpiritInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0x150, ExElementalSpiritExtractInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EXTRACT(0x151, ExElementalSpiritExtract::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0x152, ExElementalSpiritEvolutionInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EVOLUTION(0x153, ExElementalSpiritEvolution::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_SET_TALENT(0x154, ExElementalSpiritSetTalent::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_INIT_TALENT(0x155, ExElementalInitTalent::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0x156, ExElementalSpiritAbsorbInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_ABSORB(0x157, ExElementalSpiritAbsorb::new, 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, ExElementalSpiritChangeType::new, 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, null, ConnectionState.IN_GAME), // 152
    EX_XIGN_CODE(0x161, null, ConnectionState.IN_GAME), // 152
    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_COLLECTION_SKILL_ACTIVE(0x16B, null, ConnectionState.IN_GAME), // 228
    UNK_16C(0x16C, null, ConnectionState.IN_GAME), // 228
    UNK_16D(0x16D, null, ConnectionState.IN_GAME), // 228
    UNK_16E(0x16E, null, ConnectionState.IN_GAME), // 228
    UNK_16F(0x16F, null, ConnectionState.IN_GAME), // 228
    UNK_170(0x170, null, ConnectionState.IN_GAME), // 228
    EX_ACTIVATE_AUTO_SHORTCUT(0x171, ExRequestActivateAutoShortcut::new, ConnectionState.IN_GAME), // 228
    UNK_172(0x172, null, ConnectionState.IN_GAME), // 228
    UNK_173(0x173, null, ConnectionState.IN_GAME), // 228
    UNK_174(0x174, null, ConnectionState.IN_GAME), // 228
    UNK_175(0x175, null, ConnectionState.IN_GAME), // 228
    UNK_176(0x176, null, ConnectionState.IN_GAME), // 228
    EX_AUTOPLAY_SETTING(0x177, ExAutoPlaySetting::new, ConnectionState.IN_GAME), // 228
    UNK_178(0x178, null, ConnectionState.IN_GAME), // 228
    UNK_179(0x179, null, ConnectionState.IN_GAME), // 228
    UNK_17A(0x17A, null, ConnectionState.IN_GAME), // 228
    UNK_17B(0x17B, null, ConnectionState.IN_GAME), // 228
    UNK_17C(0x17C, null, ConnectionState.IN_GAME), // 228
    UNK_17D(0x17D, null, ConnectionState.IN_GAME), // 228
    UNK_17E(0x17E, null, ConnectionState.IN_GAME), // 228
    EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), // 228
    EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, null, ConnectionState.IN_GAME), // 228
    EX_RANKING_CHAR_INFO(0x181, ExRankCharInfo::new, ConnectionState.IN_GAME), // 228
    EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME), // 228
    EX_RANKING_CHAR_RANKERS(0x183, ExRankingCharRankers::new, ConnectionState.IN_GAME), // 228
    UNK_184(0x184, null, ConnectionState.IN_GAME), // 228
    UNK_185(0x185, null, ConnectionState.IN_GAME), // 228
    EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x186, null, ConnectionState.IN_GAME), // 228
    UNK_187(0x187, null, ConnectionState.IN_GAME), // 228
    UNK_188(0x188, null, ConnectionState.IN_GAME), // 228
    UNK_189(0x189, null, ConnectionState.IN_GAME), // 228
    UNK_18A(0x18A, null, ConnectionState.IN_GAME), // 228
    EX_PVP_BOOK_LIST(0x18B, ExPvpBookList::new, ConnectionState.IN_GAME), // 228
    UNK_18C(0x18C, null, ConnectionState.IN_GAME), // 228
    EX_LETTER_COLLECTOR_TAKE_REWARD(0x18D, null, ConnectionState.IN_GAME); // 228
    
    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;
    }
}
Java:
package org.l2jmobius.gameserver.network;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Supplier;

import org.l2jmobius.commons.network.IConnectionState;
import org.l2jmobius.commons.network.IIncomingPacket;
import org.l2jmobius.commons.network.IIncomingPackets;
import org.l2jmobius.gameserver.network.clientpackets.*;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList;
import org.l2jmobius.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),
    REQUEST_START_PLEDGE_WAR(0x03, RequestStartPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_REPLY_START_PLEDGE(0x04, RequestReplyStartPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_STOP_PLEDGE_WAR(0x05, RequestStopPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_REPLY_STOP_PLEDGE_WAR(0x06, RequestReplyStopPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_SURRENDER_PLEDGE_WAR(0x07, RequestSurrenderPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_REPLY_SURRENDER_PLEDGE_WAR(0x08, RequestReplySurrenderPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_SET_PLEDGE_CREST(0x09, RequestSetPledgeCrest::new, 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_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, 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),
    REQUEST_UN_EQUIP_ITEM(0x16, RequestUnEquipItem::new, ConnectionState.IN_GAME),
    REQUEST_DROP_ITEM(0x17, RequestDropItem::new, 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),
    ACTION(0x1F, Action::new, 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),
    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),
    AUTH_LOGIN(0x2B, AuthLogin::new, ConnectionState.CONNECTED),
    REQUEST_GET_ITEM_FROM_PET(0x2C, RequestGetItemFromPet::new, ConnectionState.IN_GAME),
    REQUEST_ALLY_INFO(0x2E, RequestAllyInfo::new, ConnectionState.IN_GAME),
    REQUEST_CRYSTALLIZE_ITEM(0x2F, RequestCrystallizeItem::new, ConnectionState.IN_GAME),
    REQUEST_PRIVATE_STORE_MANAGE_SELL(0x30, RequestPrivateStoreManageSell::new, ConnectionState.IN_GAME),
    SET_PRIVATE_STORE_LIST_SELL(0x31, SetPrivateStoreListSell::new, ConnectionState.IN_GAME),
    ATTACK_REQUEST(0x32, AttackRequest::new, ConnectionState.IN_GAME),
    REQUEST_TELEPORT(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),
    REQUEST_SHORT_CUT_DEL(0x3F, RequestShortCutDel::new, ConnectionState.IN_GAME),
    REQUEST_BUY_ITEM(0x40, RequestBuyItem::new, 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),
    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),
    REQUEST_PLEDGE_MEMBER_LIST(0x4D, RequestPledgeMemberList::new, ConnectionState.IN_GAME),
    REQUEST_MAGIC_LIST(0x4F, null, ConnectionState.IN_GAME),
    REQUEST_SKILL_LIST(0x50, RequestSkillList::new, 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),
    VALIDATE_POSITION(0x59, ValidatePosition::new, ConnectionState.IN_GAME),
    START_ROTATING(0x5B, StartRotating::new, ConnectionState.IN_GAME),
    FINISH_ROTATING(0x5C, FinishRotating::new, 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),
    REQUEST_QUEST_LIST(0x62, RequestQuestList::new, ConnectionState.IN_GAME),
    REQUEST_QUEST_ABORT(0x63, RequestQuestAbort::new, 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),
    REQUEST_SEND_FRIEND_MSG(0x6B, RequestSendFriendMsg::new, ConnectionState.IN_GAME),
    REQUEST_SHOW_MINI_MAP(0x6C, RequestShowMiniMap::new, ConnectionState.IN_GAME),
    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),
    REQUEST_PRIVATE_STORE_BUY(0x83, RequestPrivateStoreBuy::new, 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),
    REQUEST_PRIVATE_STORE_MANAGE_BUY(0x99, RequestPrivateStoreManageBuy::new, ConnectionState.IN_GAME),
    SET_PRIVATE_STORE_LIST_BUY(0x9A, SetPrivateStoreListBuy::new, 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),
    REQUEST_PRIVATE_STORE_SELL(0x9F, RequestPrivateStoreSell::new, ConnectionState.IN_GAME),
    SEND_TIME_CHECK_PACKET(0xA0, 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),
    REQUEST_RECIPE_SHOP_MANAGE_LIST(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),
    REQUEST_EVALUATE(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),
    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),
    REQUEST_BUY_PROCURE(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
    
    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;
    }
}
Java:
package org.l2jmobius.gameserver.network;

import org.l2jmobius.commons.network.PacketWriter;

/**
 * @author UnAfraid
 */
public enum OutgoingPackets
{
    // Packets
    DIE(0x00),
    REVIVE(0x01),
    ATTACK_OUT_OF_RANGE(0x02),
    ATTACKIN_COOL_TIME(0x03),
    ATTACK_DEAD_TARGET(0x04),
    SPAWN_ITEM(0x05),
    SELL_LIST(0x06),
    BUY_LIST(0x07),
    DELETE_OBJECT(0x08),
    CHARACTER_SELECTION_INFO(0x09),
    LOGIN_FAIL(0x0A),
    CHARACTER_SELECTED(0x0B),
    NPC_INFO(0x0C),
    NEW_CHARACTER_SUCCESS(0x0D),
    NEW_CHARACTER_FAIL(0x0E),
    CHARACTER_CREATE_SUCCESS(0x0F),
    CHARACTER_CREATE_FAIL(0x10),
    ITEM_LIST(0x11),
    SUN_RISE(0x12),
    SUN_SET(0x13),
    TRADE_START(0x14),
    TRADE_START_OK(0x15),
    DROP_ITEM(0x16),
    GET_ITEM(0x17),
    STATUS_UPDATE(0x18),
    NPC_HTML_MESSAGE(0x19),
    TRADE_OWN_ADD(0x1A),
    TRADE_OTHER_ADD(0x1B),
    TRADE_DONE(0x1C),
    CHARACTER_DELETE_SUCCESS(0x1D),
    CHARACTER_DELETE_FAIL(0x1E),
    ACTION_FAIL(0x1F),
    SEVER_CLOSE(0x20),
    INVENTORY_UPDATE(0x21),
    TELEPORT_TO_LOCATION(0x22),
    TARGET_SELECTED(0x23),
    TARGET_UNSELECTED(0x24),
    AUTO_ATTACK_START(0x25),
    AUTO_ATTACK_STOP(0x26),
    SOCIAL_ACTION(0x27),
    CHANGE_MOVE_TYPE(0x28),
    CHANGE_WAIT_TYPE(0x29),
    MANAGE_PLEDGE_POWER(0x2A),
    CREATE_PLEDGE(0x2B),
    ASK_JOIN_PLEDGE(0x2C),
    JOIN_PLEDGE(0x2D),
    VERSION_CHECK(0x2E),
    MOVE_TO_LOCATION(0x2F),
    NPC_SAY(0x30),
    CHAR_INFO(0x31),
    USER_INFO(0x32),
    ATTACK(0x33),
    WITHDRAWAL_PLEDGE(0x34),
    OUST_PLEDGE_MEMBER(0x35),
    SET_OUST_PLEDGE_MEMBER(0x36),
    DISMISS_PLEDGE(0x37),
    SET_DISMISS_PLEDGE(0x38),
    ASK_JOIN_PARTY(0x39),
    JOIN_PARTY(0x3A),
    WITHDRAWAL_PARTY(0x3B),
    OUST_PARTY_MEMBER(0x3C),
    SET_OUST_PARTY_MEMBER(0x3D),
    DISMISS_PARTY(0x3E),
    SET_DISMISS_PARTY(0x3F),
    MAGIC_AND_SKILL_LIST(0x40),
    WAREHOUSE_DEPOSIT_LIST(0x41),
    WAREHOUSE_WITHDRAW_LIST(0x42),
    WAREHOUSE_DONE(0x43),
    SHORT_CUT_REGISTER(0x44),
    SHORT_CUT_INIT(0x45),
    SHORT_CUT_DELETE(0x46),
    STOP_MOVE(0x47),
    MAGIC_SKILL_USE(0x48),
    MAGIC_SKILL_CANCELED(0x49),
    SAY2(0x4A),
    NPC_INFO_ABNORMAL_VISUAL_EFFECT(0x4B),
    DOOR_INFO(0x4C),
    DOOR_STATUS_UPDATE(0x4D),
    PARTY_SMALL_WINDOW_ALL(0x4E),
    PARTY_SMALL_WINDOW_ADD(0x4F),
    PARTY_SMALL_WINDOW_DELETE_ALL(0x50),
    PARTY_SMALL_WINDOW_DELETE(0x51),
    PARTY_SMALL_WINDOW_UPDATE(0x52),
    TRADE_PRESS_OWN_OK(0x53),
    MAGIC_SKILL_LAUNCHED(0x54),
    FRIEND_ADD_REQUEST_RESULT(0x55),
    FRIEND_ADD(0x56),
    FRIEND_REMOVE(0x57),
    FRIEND_LIST(0x58),
    FRIEND_STATUS(0x59),
    PLEDGE_SHOW_MEMBER_LIST_ALL(0x5A),
    PLEDGE_SHOW_MEMBER_LIST_UPDATE(0x5B),
    PLEDGE_SHOW_MEMBER_LIST_ADD(0x5C),
    PLEDGE_SHOW_MEMBER_LIST_DELETE(0x5D),
    MAGIC_LIST(0x5E),
    SKILL_LIST(0x5F),
    VEHICLE_INFO(0x60),
    FINISH_ROTATING(0x61),
    SYSTEM_MESSAGE(0x62),
    START_PLEDGE_WAR(0x63),
    REPLY_START_PLEDGE_WAR(0x64),
    STOP_PLEDGE_WAR(0x65),
    REPLY_STOP_PLEDGE_WAR(0x66),
    SURRENDER_PLEDGE_WAR(0x67),
    REPLY_SURRENDER_PLEDGE_WAR(0x68),
    SET_PLEDGE_CREST(0x69),
    PLEDGE_CREST(0x6A),
    SETUP_GAUGE(0x6B),
    VEHICLE_DEPARTURE(0x6C),
    VEHICLE_CHECK_LOCATION(0x6D),
    GET_ON_VEHICLE(0x6E),
    GET_OFF_VEHICLE(0x6F),
    TRADE_REQUEST(0x70),
    RESTART_RESPONSE(0x71),
    MOVE_TO_PAWN(0x72),
    SSQ_INFO(0x73),
    GAME_GUARD_QUERY(0x74),
    L2_FRIEND_LIST(0x75),
    L2_FRIEND(0x76),
    L2_FRIEND_STATUS(0x77),
    L2_FRIEND_SAY(0x78),
    VALIDATE_LOCATION(0x79),
    START_ROTATING(0x7A),
    SHOW_BOARD(0x7B),
    CHOOSE_INVENTORY_ITEM(0x7C),
    DUMMY(0x7D),
    MOVE_TO_LOCATION_IN_VEHICLE(0x7E),
    STOP_MOVE_IN_VEHICLE(0x7F),
    VALIDATE_LOCATION_IN_VEHICLE(0x80),
    TRADE_UPDATE(0x81),
    TRADE_PRESS_OTHER_OK(0x82),
    FRIEND_ADD_REQUEST(0x83),
    LOG_OUT_OK(0x84),
    ABNORMAL_STATUS_UPDATE(0x85),
    QUEST_LIST(0x86),
    ENCHANT_RESULT(0x87),
    PLEDGE_SHOW_MEMBER_LIST_DELETE_ALL(0x88),
    PLEDGE_INFO(0x89),
    PLEDGE_EXTENDED_INFO(0x8A),
    SUMMON_INFO(0x8B),
    RIDE(0x8C),
    DUMMY2(0x8D),
    PLEDGE_SHOW_INFO_UPDATE(0x8E),
    CLIENT_ACTION(0x8F),
    ACQUIRE_SKILL_LIST(0x90),
    ACQUIRE_SKILL_INFO(0x91),
    SERVER_OBJECT_INFO(0x92),
    GM_HIDE(0x93),
    ACQUIRE_SKILL_DONE(0x94),
    GM_VIEW_CHARACTER_INFO(0x95),
    GM_VIEW_PLEDGE_INFO(0x96),
    GM_VIEW_SKILL_INFO(0x97),
    GM_VIEW_MAGIC_INFO(0x98),
    GM_VIEW_QUEST_INFO(0x99),
    GM_VIEW_ITEM_LIST(0x9A),
    GM_VIEW_WAREHOUSE_WITHDRAW_LIST(0x9B),
    LIST_PARTY_WATING(0x9C),
    PARTY_ROOM_INFO(0x9D),
    PLAY_SOUND(0x9E),
    STATIC_OBJECT(0x9F),
    PRIVATE_STORE_MANAGE_LIST(0xA0),
    PRIVATE_STORE_LIST(0xA1),
    PRIVATE_STORE_MSG(0xA2),
    SHOW_MINIMAP(0xA3),
    REVIVE_REQUEST(0xA4),
    ABNORMAL_VISUAL_EFFECT(0xA5),
    TUTORIAL_SHOW_HTML(0xA6),
    TUTORIAL_SHOW_QUESTION_MARK(0xA7),
    TUTORIAL_ENABLE_CLIENT_EVENT(0xA8),
    TUTORIAL_CLOSE_HTML(0xA9),
    SHOW_RADAR(0xAA),
    WITHDRAW_ALLIANCE(0xAB),
    OUST_ALLIANCE_MEMBER_PLEDGE(0xAC),
    DISMISS_ALLIANCE(0xAD),
    SET_ALLIANCE_CREST(0xAE),
    ALLIANCE_CREST(0xAF),
    SERVER_CLOSE_SOCKET(0xB0),
    PET_STATUS_SHOW(0xB1),
    PET_INFO(0xB2),
    PET_ITEM_LIST(0xB3),
    PET_INVENTORY_UPDATE(0xB4),
    ALLIANCE_INFO(0xB5),
    PET_STATUS_UPDATE(0xB6),
    PET_DELETE(0xB7),
    DELETE_RADAR(0xB8),
    MY_TARGET_SELECTED(0xB9),
    PARTY_MEMBER_POSITION(0xBA),
    ASK_JOIN_ALLIANCE(0xBB),
    JOIN_ALLIANCE(0xBC),
    PRIVATE_STORE_BUY_MANAGE_LIST(0xBD),
    PRIVATE_STORE_BUY_LIST(0xBE),
    PRIVATE_STORE_BUY_MSG(0xBF),
    VEHICLE_START(0xC0),
    NPC_INFO_STATE(0xC1),
    START_ALLIANCE_WAR(0xC2),
    REPLY_START_ALLIANCE_WAR(0xC3),
    STOP_ALLIANCE_WAR(0xC4),
    REPLY_STOP_ALLIANCE_WAR(0xC5),
    SURRENDER_ALLIANCE_WAR(0xC6),
    SKILL_COOL_TIME(0xC7),
    PACKAGE_TO_LIST(0xC8),
    CASTLE_SIEGE_INFO(0xC9),
    CASTLE_SIEGE_ATTACKER_LIST(0xCA),
    CASTLE_SIEGE_DEFENDER_LIST(0xCB),
    NICK_NAME_CHANGED(0xCC),
    PLEDGE_STATUS_CHANGED(0xCD),
    RELATION_CHANGED(0xCE),
    EVENT_TRIGGER(0xCF),
    MULTI_SELL_LIST(0xD0),
    SET_SUMMON_REMAIN_TIME(0xD1),
    PACKAGE_SENDABLE_LIST(0xD2),
    EARTHQUAKE(0xD3),
    FLY_TO_LOCATION(0xD4),
    BLOCK_LIST(0xD5),
    SPECIAL_CAMERA(0xD6),
    NORMAL_CAMERA(0xD7),
    SKILL_REMAIN_SEC(0xD8),
    NET_PING(0xD9),
    DICE(0xDA),
    SNOOP(0xDB),
    RECIPE_BOOK_ITEM_LIST(0xDC),
    RECIPE_ITEM_MAKE_INFO(0xDD),
    RECIPE_SHOP_MANAGE_LIST(0xDE),
    RECIPE_SHOP_SELL_LIST(0xDF),
    RECIPE_SHOP_ITEM_INFO(0xE0),
    RECIPE_SHOP_MSG(0xE1),
    SHOW_CALC(0xE2),
    MON_RACE_INFO(0xE3),
    HENNA_ITEM_INFO(0xE4),
    HENNA_INFO(0xE5),
    HENNA_UNEQUIP_LIST(0xE6),
    HENNA_UNEQUIP_INFO(0xE7),
    MACRO_LIST(0xE8),
    BUY_LIST_SEED(0xE9),
    SHOW_TOWN_MAP(0xEA),
    OBSERVER_START(0xEB),
    OBSERVER_END(0xEC),
    CHAIR_SIT(0xED),
    HENNA_EQUIP_LIST(0xEE),
    SELL_LIST_PROCURE(0xEF),
    GMHENNA_INFO(0xF0),
    RADAR_CONTROL(0xF1),
    CLIENT_SET_TIME(0xF2),
    CONFIRM_DLG(0xF3),
    PARTY_SPELLED(0xF4),
    SHOP_PREVIEW_LIST(0xF5),
    SHOP_PREVIEW_INFO(0xF6),
    CAMERA_MODE(0xF7),
    SHOW_XMAS_SEAL(0xF8),
    ETC_STATUS_UPDATE(0xF9),
    SHORT_BUFF_STATUS_UPDATE(0xFA),
    SSQ_STATUS(0xFB),
    PETITION_VOTE(0xFC),
    AGIT_DECO_INFO(0xFD),
    DUMMY3(0xFE),
    // ExPackets
    EX_DUMMY(0xFE, 0x00),
    EX_REGEN_MAX(0xFE, 0x01),
    EX_EVENT_MATCH_USER_INFO(0xFE, 0x02),
    EX_COLOSSEUM_FENCE_INFO(0xFE, 0x03),
    EX_EVENT_MATCH_SPELLED_INFO(0xFE, 0x04),
    EX_EVENT_MATCH_FIRECRACKER(0xFE, 0x05),
    EX_EVENT_MATCH_TEAM_UNLOCKED(0xFE, 0x06),
    EX_EVENT_MATCH_GMTEST(0xFE, 0x07),
    EX_PARTY_ROOM_MEMBER(0xFE, 0x08),
    EX_CLOSE_PARTY_ROOM(0xFE, 0x09),
    EX_MANAGE_PARTY_ROOM_MEMBER(0xFE, 0x0A),
    EX_EVENT_MATCH_LOCK_RESULT(0xFE, 0x0B),
    EX_AUTO_SOUL_SHOT(0xFE, 0x0C),
    EX_EVENT_MATCH_LIST(0xFE, 0x0D),
    EX_EVENT_MATCH_OBSERVER(0xFE, 0x0E),
    EX_EVENT_MATCH_MESSAGE(0xFE, 0x0F),
    EX_EVENT_MATCH_SCORE(0xFE, 0x10),
    EX_SERVER_PRIMITIVE(0xFE, 0x11),
    EX_OPEN_MPCC(0xFE, 0x12),
    EX_CLOSE_MPCC(0xFE, 0x13),
    EX_SHOW_CASTLE_INFO(0xFE, 0x14),
    EX_SHOW_FORTRESS_INFO(0xFE, 0x15),
    EX_SHOW_AGIT_INFO(0xFE, 0x16),
    EX_SHOW_FORTRESS_SIEGE_INFO(0xFE, 0x17),
    EX_PARTY_PET_WINDOW_ADD(0xFE, 0x18),
    EX_PARTY_PET_WINDOW_UPDATE(0xFE, 0x19),
    EX_ASK_JOIN_MPCC(0xFE, 0x1A),
    EX_PLEDGE_EMBLEM(0xFE, 0x1B),
    EX_EVENT_MATCH_TEAM_INFO(0xFE, 0x1C),
    EX_EVENT_MATCH_CREATE(0xFE, 0x1D),
    EX_FISHING_START(0xFE, 0x1E),
    EX_FISHING_END(0xFE, 0x1F),
    EX_SHOW_QUEST_INFO(0xFE, 0x20),
    EX_SHOW_QUEST_MARK(0xFE, 0x21),
    EX_SEND_MANOR_LIST(0xFE, 0x22),
    EX_SHOW_SEED_INFO(0xFE, 0x23),
    EX_SHOW_CROP_INFO(0xFE, 0x24),
    EX_SHOW_MANOR_DEFAULT_INFO(0xFE, 0x25),
    EX_SHOW_SEED_SETTING(0xFE, 0x26),
    EX_FISHING_START_COMBAT(0xFE, 0x27),
    EX_FISHING_HP_REGEN(0xFE, 0x28),
    EX_ENCHANT_SKILL_LIST(0xFE, 0x29),
    EX_ENCHANT_SKILL_INFO(0xFE, 0x2A),
    EX_SHOW_CROP_SETTING(0xFE, 0x2B),
    EX_SHOW_SELL_CROP_LIST(0xFE, 0x2C),
    EX_OLYMPIAD_MATCH_END(0xFE, 0x2D),
    EX_MAIL_ARRIVED(0xFE, 0x2E),
    EX_STORAGE_MAX_COUNT(0xFE, 0x2F),
    EX_EVENT_MATCH_MANAGE(0xFE, 0x30),
    EX_MULTI_PARTY_COMMAND_CHANNEL_INFO(0xFE, 0x31),
    EX_PCCAFE_POINT_INFO(0xFE, 0x32),
    EX_SET_COMPASS_ZONE_CODE(0xFE, 0x33),
    EX_GET_BOSS_RECORD(0xFE, 0x34),
    EX_ASK_JOIN_PARTY_ROOM(0xFE, 0x35),
    EX_LIST_PARTY_MATCHING_WAITING_ROOM(0xFE, 0x36),
    EX_SET_MPCC_ROUTING(0xFE, 0x37),
    EX_SHOW_ADVENTURER_GUIDE_BOOK(0xFE, 0x38),
    EX_SHOW_SCREEN_MESSAGE(0xFE, 0x39),
    PLEDGE_SKILL_LIST(0xFE, 0x3A),
    PLEDGE_SKILL_LIST_ADD(0xFE, 0x3B),
    PLEDGE_SKILL_LIST_REMOVE(0xFE, 0x3C),
    PLEDGE_POWER_GRADE_LIST(0xFE, 0x3D),
    PLEDGE_RECEIVE_POWER_INFO(0xFE, 0x3E),
    PLEDGE_RECEIVE_MEMBER_INFO(0xFE, 0x3F),
    PLEDGE_RECEIVE_WAR_LIST(0xFE, 0x40),
    PLEDGE_RECEIVE_SUB_PLEDGE_CREATED(0xFE, 0x41),
    EX_RED_SKY(0xFE, 0x42),
    PLEDGE_RECEIVE_UPDATE_POWER(0xFE, 0x43),
    FLY_SELF_DESTINATION(0xFE, 0x44),
    SHOW_PCCAFE_COUPON_SHOW_UI(0xFE, 0x45),
    EX_SEARCH_ORC(0xFE, 0x46),
    EX_CURSED_WEAPON_LIST(0xFE, 0x47),
    EX_CURSED_WEAPON_LOCATION(0xFE, 0x48),
    EX_RESTART_CLIENT(0xFE, 0x49),
    EX_REQUEST_HACK_SHIELD(0xFE, 0x4A),
    EX_USE_SHARED_GROUP_ITEM(0xFE, 0x4B),
    EX_MPCCSHOW_PARTY_MEMBER_INFO(0xFE, 0x4C),
    EX_DUEL_ASK_START(0xFE, 0x4D),
    EX_DUEL_READY(0xFE, 0x4E),
    EX_DUEL_START(0xFE, 0x4F),
    EX_DUEL_END(0xFE, 0x50),
    EX_DUEL_UPDATE_USER_INFO(0xFE, 0x51),
    EX_SHOW_VARIATION_MAKE_WINDOW(0xFE, 0x52),
    EX_SHOW_VARIATION_CANCEL_WINDOW(0xFE, 0x53),
    EX_PUT_ITEM_RESULT_FOR_VARIATION_MAKE(0xFE, 0x54),
    EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE(0xFE, 0x55),
    EX_PUT_COMMISSION_RESULT_FOR_VARIATION_MAKE(0xFE, 0x56),
    EX_VARIATION_RESULT(0xFE, 0x57),
    EX_PUT_ITEM_RESULT_FOR_VARIATION_CANCEL(0xFE, 0x58),
    EX_VARIATION_CANCEL_RESULT(0xFE, 0x59),
    EX_DUEL_ENEMY_RELATION(0xFE, 0x5A),
    EX_PLAY_ANIMATION(0xFE, 0x5B),
    EX_MPCCPARTY_INFO_UPDATE(0xFE, 0x5C),
    EX_PLAY_SCENE(0xFE, 0x5D),
    EX_SPAWN_EMITTER(0xFE, 0x5E),
    EX_ENCHANT_SKILL_INFO_DETAIL(0xFE, 0x5F),
    EX_BASIC_ACTION_LIST(0xFE, 0x60),
    EX_AIR_SHIP_INFO(0xFE, 0x61),
    EX_ATTRIBUTE_ENCHANT_RESULT(0xFE, 0x62),
    EX_CHOOSE_INVENTORY_ATTRIBUTE_ITEM(0xFE, 0x63),
    EX_GET_ON_AIR_SHIP(0xFE, 0x64),
    EX_GET_OFF_AIR_SHIP(0xFE, 0x65),
    EX_MOVE_TO_LOCATION_AIR_SHIP(0xFE, 0x66),
    EX_STOP_MOVE_AIR_SHIP(0xFE, 0x67),
    EX_SHOW_TRACE(0xFE, 0x68),
    EX_ITEM_AUCTION_INFO(0xFE, 0x69),
    EX_NEED_TO_CHANGE_NAME(0xFE, 0x6A),
    EX_PARTY_PET_WINDOW_DELETE(0xFE, 0x6B),
    EX_TUTORIAL_LIST(0xFE, 0x6C),
    EX_RP_ITEM_LINK(0xFE, 0x6D),
    EX_MOVE_TO_LOCATION_IN_AIR_SHIP(0xFE, 0x6E),
    EX_STOP_MOVE_IN_AIR_SHIP(0xFE, 0x6F),
    EX_VALIDATE_LOCATION_IN_AIR_SHIP(0xFE, 0x70),
    EX_UI_SETTING(0xFE, 0x71),
    EX_MOVE_TO_TARGET_IN_AIR_SHIP(0xFE, 0x72),
    EX_ATTACK_IN_AIR_SHIP(0xFE, 0x73),
    EX_MAGIC_SKILL_USE_IN_AIR_SHIP(0xFE, 0x74),
    EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW(0xFE, 0x75),
    EX_BASE_ATTRIBUTE_CANCEL_RESULT(0xFE, 0x76),
    EX_SUB_PLEDGET_SKILL_ADD(0xFE, 0x77),
    EX_RESPONSE_FREE_SERVER(0xFE, 0x78),
    EX_SHOW_PROCURE_CROP_DETAIL(0xFE, 0x79),
    EX_HERO_LIST(0xFE, 0x7A),
    EX_OLYMPIAD_USER_INFO(0xFE, 0x7B),
    EX_OLYMPIAD_SPELLED_INFO(0xFE, 0x7C),
    EX_OLYMPIAD_MODE(0xFE, 0x7D),
    EX_SHOW_FORTRESS_MAP_INFO(0xFE, 0x7E),
    EX_PVP_MATCH_RECORD(0xFE, 0x7F),
    EX_PVP_MATCH_USER_DIE(0xFE, 0x80),
    EX_PRIVATE_STORE_WHOLE_MSG(0xFE, 0x81),
    EX_PUT_ENCHANT_TARGET_ITEM_RESULT(0xFE, 0x82),
    EX_PUT_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x83),
    EX_CHANGE_NICKNAME_NCOLOR(0xFE, 0x84),
    EX_GET_BOOK_MARK_INFO(0xFE, 0x85),
    EX_NOTIFY_PREMIUM_ITEM(0xFE, 0x86),
    EX_GET_PREMIUM_ITEM_LIST(0xFE, 0x87),
    EX_PERIODIC_ITEM_LIST(0xFE, 0x88),
    EX_JUMP_TO_LOCATION(0xFE, 0x89),
    EX_PVP_MATCH_CCRECORD(0xFE, 0x8A),
    EX_PVP_MATCH_CCMY_RECORD(0xFE, 0x8B),
    EX_PVP_MATCH_CCRETIRE(0xFE, 0x8C),
    EX_SHOW_TERRITORY(0xFE, 0x8D),
    EX_NPC_QUEST_HTML_MESSAGE(0xFE, 0x8E),
    EX_SEND_UIEVENT(0xFE, 0x8F),
    EX_NOTIFY_BIRTH_DAY(0xFE, 0x90),
    EX_SHOW_DOMINION_REGISTRY(0xFE, 0x91),
    EX_REPLY_REGISTER_DOMINION(0xFE, 0x92),
    EX_REPLY_DOMINION_INFO(0xFE, 0x93),
    EX_SHOW_OWNTHING_POS(0xFE, 0x94),
    EX_CLEFT_LIST(0xFE, 0x95),
    EX_CLEFT_STATE(0xFE, 0x96),
    EX_DOMINION_CHANNEL_SET(0xFE, 0x97),
    EX_BLOCK_UP_SET_LIST(0xFE, 0x98),
    EX_BLOCK_UP_SET_STATE(0xFE, 0x99),
    EX_START_SCENE_PLAYER(0xFE, 0x9A),
    EX_AIR_SHIP_TELEPORT_LIST(0xFE, 0x9B),
    EX_MPCC_ROOM_INFO(0xFE, 0x9C),
    EX_LIST_MPCC_WAITING(0xFE, 0x9D),
    EX_DISSMISS_MPCC_ROOM(0xFE, 0x9E),
    EX_MANAGE_MPCC_ROOM_MEMBER(0xFE, 0x9F),
    EX_MPCC_ROOM_MEMBER(0xFE, 0xA0),
    EX_VITALITY_POINT_INFO(0xFE, 0xA1),
    EX_SHOW_SEED_MAP_INFO(0xFE, 0xA2),
    EX_MPCC_PARTYMASTER_LIST(0xFE, 0xA3),
    EX_DOMINION_WAR_START(0xFE, 0xA4),
    EX_DOMINION_WAR_END(0xFE, 0xA5),
    EX_SHOW_LINES(0xFE, 0xA6),
    EX_PARTY_MEMBER_RENAMED(0xFE, 0xA7),
    EX_ENCHANT_SKILL_RESULT(0xFE, 0xA8),
    EX_REFUND_LIST(0xFE, 0xA9),
    EX_NOTICE_POST_ARRIVED(0xFE, 0xAA),
    EX_SHOW_RECEIVED_POST_LIST(0xFE, 0xAB),
    EX_REPLY_RECEIVED_POST(0xFE, 0xAC),
    EX_SHOW_SENT_POST_LIST(0xFE, 0xAD),
    EX_REPLY_SENT_POST(0xFE, 0xAE),
    EX_RESPONSE_SHOW_STEP_ONE(0xFE, 0xAF),
    EX_RESPONSE_SHOW_STEP_TWO(0xFE, 0xB0),
    EX_RESPONSE_SHOW_CONTENTS(0xFE, 0xB1),
    EX_SHOW_PETITION_HTML(0xFE, 0xB2),
    EX_REPLY_POST_ITEM_LIST(0xFE, 0xB3),
    EX_CHANGE_POST_STATE(0xFE, 0xB4),
    EX_REPLY_WRITE_POST(0xFE, 0xB5),
    EX_INITIALIZE_SEED(0xFE, 0xB6),
    EX_RAID_RESERVE_RESULT(0xFE, 0xB7),
    EX_BUY_SELL_LIST(0xFE, 0xB8),
    EX_CLOSE_RAID_SOCKET(0xFE, 0xB9),
    EX_PRIVATE_MARKET_LIST(0xFE, 0xBA),
    EX_RAID_CHARACTER_SELECTED(0xFE, 0xBB),
    EX_ASK_COUPLE_ACTION(0xFE, 0xBC),
    EX_BR_BROADCAST_EVENT_STATE(0xFE, 0xBD),
    EX_BR_LOAD_EVENT_TOP_RANKERS(0xFE, 0xBE),
    EX_CHANGE_NPC_STATE(0xFE, 0xBF),
    EX_ASK_MODIFY_PARTY_LOOTING(0xFE, 0xC0),
    EX_SET_PARTY_LOOTING(0xFE, 0xC1),
    EX_ROTATION(0xFE, 0xC2),
    EX_CHANGE_CLIENT_EFFECT_INFO(0xFE, 0xC3),
    EX_MEMBERSHIP_INFO(0xFE, 0xC4),
    EX_REPLY_HAND_OVER_PARTY_MASTER(0xFE, 0xC5),
    EX_QUEST_NPC_LOG_LIST(0xFE, 0xC6),
    EX_QUEST_ITEM_LIST(0xFE, 0xC7),
    EX_GM_VIEW_QUEST_ITEM_LIST(0xFE, 0xC8),
    EX_RESTART_RESPONSE(0xFE, 0xC9),
    EX_VOTE_SYSTEM_INFO(0xFE, 0xCA),
    EX_SHUTTLE_INFO(0xFE, 0xCB),
    EX_SUTTLE_GET_ON(0xFE, 0xCC),
    EX_SUTTLE_GET_OFF(0xFE, 0xCD),
    EX_SUTTLE_MOVE(0xFE, 0xCE),
    EX_MOVE_TO_LOCATION_IN_SUTTLE(0xFE, 0xCF),
    EX_STOP_MOVE_IN_SHUTTLE(0xFE, 0xD0),
    EX_VALIDATE_LOCATION_IN_SHUTTLE(0xFE, 0xD1),
    EX_AGIT_AUCTION_CMD(0xFE, 0xD2),
    EX_CONFIRM_ADDING_POST_FRIEND(0xFE, 0xD3),
    EX_RECEIVE_SHOW_POST_FRIEND(0xFE, 0xD4),
    EX_RECEIVE_OLYMPIAD(0xFE, 0xD5),
    EX_BR_GAME_POINT(0xFE, 0xD6),
    EX_BR_PRODUCT_LIST(0xFE, 0xD7),
    EX_BR_PRODUCT_INFO(0xFE, 0xD8),
    EX_BR_BUY_PRODUCT(0xFE, 0xD9),
    EX_BR_PREMIUM_STATE(0xFE, 0xDA),
    EX_BR_EXTRA_USER_INFO(0xFE, 0xDB),
    EX_BR_BUFF_EVENT_STATE(0xFE, 0xDC),
    EX_BR_RECENT_PRODUCT_LIST(0xFE, 0xDD),
    EX_BR_MINIGAME_LOAD_SCORES(0xFE, 0xDE),
    EX_BR_AGATHION_ENERGY_INFO(0xFE, 0xDF),
    EX_SHOW_CHANNELING_EFFECT(0xFE, 0xE0),
    EX_GET_CRYSTALIZING_ESTIMATION(0xFE, 0xE1),
    EX_GET_CRYSTALIZING_FAIL(0xFE, 0xE2),
    EX_NAVIT_ADVENT_POINT_INFO(0xFE, 0xE3),
    EX_NAVIT_ADVENT_EFFECT(0xFE, 0xE4),
    EX_NAVIT_ADVENT_TIME_CHANGE(0xFE, 0xE5),
    EX_ABNORMAL_STATUS_UPDATE_FROM_TARGET(0xFE, 0xE6),
    EX_STOP_SCENE_PLAYER(0xFE, 0xE7),
    EX_FLY_MOVE(0xFE, 0xE8),
    EX_DYNAMIC_QUEST(0xFE, 0xE9),
    EX_SUBJOB_INFO(0xFE, 0xEA),
    EX_CHANGE_MPCOST(0xFE, 0xEB),
    EX_FRIEND_DETAIL_INFO(0xFE, 0xEC),
    EX_BLOCK_ADD_RESULT(0xFE, 0xED),
    EX_BLOCK_REMOVE_RESULT(0xFE, 0xEE),
    EX_BLOCK_DEFAIL_INFO(0xFE, 0xEF),
    EX_LOAD_INZONE_PARTY_HISTORY(0xFE, 0xF0),
    EX_FRIEND_NOTIFY_NAME_CHANGE(0xFE, 0xF1),
    EX_SHOW_COMMISSION(0xFE, 0xF2),
    EX_RESPONSE_COMMISSION_ITEM_LIST(0xFE, 0xF3),
    EX_RESPONSE_COMMISSION_INFO(0xFE, 0xF4),
    EX_RESPONSE_COMMISSION_REGISTER(0xFE, 0xF5),
    EX_RESPONSE_COMMISSION_DELETE(0xFE, 0xF6),
    EX_RESPONSE_COMMISSION_LIST(0xFE, 0xF7),
    EX_RESPONSE_COMMISSION_BUY_INFO(0xFE, 0xF8),
    EX_RESPONSE_COMMISSION_BUY_ITEM(0xFE, 0xF9),
    EX_ACQUIRABLE_SKILL_LIST_BY_CLASS(0xFE, 0xFA),
    EX_MAGIC_ATTACK_INFO(0xFE, 0xFB),
    EX_ACQUIRE_SKILL_INFO(0xFE, 0xFC),
    EX_NEW_SKILL_TO_LEARN_BY_LEVEL_UP(0xFE, 0xFD),
    EX_CALL_TO_CHANGE_CLASS(0xFE, 0xFE),
    EX_CHANGE_TO_AWAKENED_CLASS(0xFE, 0xFF),
    EX_TACTICAL_SIGN(0xFE, 0x100),
    EX_LOAD_STAT_WORLD_RANK(0xFE, 0x101),
    EX_LOAD_STAT_USER(0xFE, 0x102),
    EX_LOAD_STAT_HOT_LINK(0xFE, 0x103),
    EX_GET_WEB_SESSION_ID(0xFE, 0x104),
    EX_2ND_PASSWORD_CHECK(0xFE, 0x105),
    EX_2ND_PASSWORD_VERIFY(0xFE, 0x106),
    EX_2ND_PASSWORD_ACK(0xFE, 0x107),
    EX_FLY_MOVE_BROADCAST(0xFE, 0x108),
    EX_SHOW_USM(0xFE, 0x109),
    EX_SHOW_STAT_PAGE(0xFE, 0x10A),
    EX_IS_CHAR_NAME_CREATABLE(0xFE, 0x10B),
    EX_GOODS_INVENTORY_CHANGED_NOTI(0xFE, 0x10C),
    EX_GOODS_INVENTORY_INFO(0xFE, 0x10D),
    EX_GOODS_INVENTORY_RESULT(0xFE, 0x10E),
    EX_ALTER_SKILL_REQUEST(0xFE, 0x10F),
    EX_NOTIFY_FLY_MOVE_START(0xFE, 0x110),
    EX_DUMMY2(0xFE, 0x111),
    EX_CLOSE_COMMISSION(0xFE, 0x112),
    EX_CHANGE_ATTRIBUTE_ITEM_LIST(0xFE, 0x113),
    EX_CHANGE_ATTRIBUTE_INFO(0xFE, 0x114),
    EX_CHANGE_ATTRIBUTE_OK(0xFE, 0x115),
    EX_CHANGE_ATTRIBUTE_FAIL(0xFE, 0x116),
    EX_LIGHTING_CANDLE_EVENT(0xFE, 0x117),
    EX_VITALITY_EFFECT_INFO(0xFE, 0x118),
    EX_LOGIN_VITALITY_EFFECT_INFO(0xFE, 0x119),
    EX_BR_PRESENT_BUY_PRODUCT(0xFE, 0x11A),
    EX_MENTOR_LIST(0xFE, 0x11B),
    EX_MENTOR_ADD(0xFE, 0x11C),
    LIST_MENTEE_WAITING(0xFE, 0x11D),
    EX_INZONE_WAITING_INFO(0xFE, 0x11E),
    EX_CURIOUS_HOUSE_STATE(0xFE, 0x11F),
    EX_CURIOUS_HOUSE_ENTER(0xFE, 0x120),
    EX_CURIOUS_HOUSE_LEAVE(0xFE, 0x121),
    EX_CURIOUS_HOUSE_MEMBER_LIST(0xFE, 0x122),
    EX_CURIOUS_HOUSE_MEMBER_UPDATE(0xFE, 0x123),
    EX_CURIOUS_HOUSE_REMAIN_TIME(0xFE, 0x124),
    EX_CURIOUS_HOUSE_RESULT(0xFE, 0x125),
    EX_CURIOUS_HOUSE_OBSERVE_LIST(0xFE, 0x126),
    EX_CURIOUS_HOUSE_OBSERVE_MODE(0xFE, 0x127),
    EX_SYSSTRING(0xFE, 0x128),
    EX_CHOOSE_SHAPE_SHIFTING_ITEM(0xFE, 0x129),
    EX_PUT_SHAPE_SHIFTING_TARGET_ITEM_RESULT(0xFE, 0x12A),
    EX_PUT_SHAPE_SHIFTING_EXTRACTION_ITEM_RESULT(0xFE, 0x12B),
    EX_SHAPE_SHIFTING_RESULT(0xFE, 0x12C),
    EX_CASTLE_STATE(0xFE, 0x12D),
    EX_NCGUARD_RECEIVE_DATA_FROM_SERVER(0xFE, 0x12E),
    EX_KALIE_EVENT(0xFE, 0x12F),
    EX_KALIE_EVENT_JACKPOT_USER(0xFE, 0x130),
    EX_ABNORMAL_VISUAL_EFFECT_INFO(0xFE, 0x131),
    EX_NPC_INFO_SPEED(0xFE, 0x132),
    EX_SET_PLEDGE_EMBLEM_ACK(0xFE, 0x133),
    EX_SHOW_BEAUTY_MENU(0xFE, 0x134),
    EX_RESPONSE_BEAUTY_LIST(0xFE, 0x135),
    EX_RESPONSE_BEAUTY_REGIST_RESET(0xFE, 0x136),
    EX_RESPONSE_RESET_LIST(0xFE, 0x137),
    EX_SHUFFLE_SEED_AND_PUBLIC_KEY(0xFE, 0x138),
    EX_CHECK_SPEED_HACK(0xFE, 0x139),
    EX_BR_NEW_ICON_CASH_BTN_WND(0xFE, 0x13A),
    EX_EVENT_CAMPAIGN_INFO(0xFE, 0x13B),
    EX_UN_READ_MAIL_COUNT(0xFE, 0x13C),
    EX_PLEDGE_COUNT(0xFE, 0x13D),
    EX_ADENA_INVEN_COUNT(0xFE, 0x13E),
    EX_PLEDGE_RECRUIT_INFO(0xFE, 0x13F),
    EX_PLEDGE_RECRUIT_APPLY_INFO(0xFE, 0x140),
    EX_PLEDGE_RECRUIT_BOARD_SEARCH(0xFE, 0x141),
    EX_PLEDGE_RECRUIT_BOARD_DETAIL(0xFE, 0x142),
    EX_PLEDGE_WAITING_LIST_APPLIED(0xFE, 0x143),
    EX_PLEDGE_WAITING_LIST(0xFE, 0x144),
    EX_PLEDGE_WAITING_USER(0xFE, 0x145),
    EX_PLEDGE_DRAFT_LIST_SEARCH(0xFE, 0x146),
    EX_PLEDGE_WAITING_LIST_ALARM(0xFE, 0x147),
    EX_VALIDATE_ACTIVE_CHARACTER(0xFE, 0x148),
    EX_CLOSE_COMMISSION_REGISTER(0xFE, 0x149),
    EX_TELEPORT_TO_LOCATION_ACTIVATE(0xFE, 0x14A),
    EX_NOTIFY_WEB_PETITION_REPLY_ALARM(0xFE, 0x14B),
    EX_EVENT_SHOW_XMAS_WISH_CARD(0xFE, 0x14C),
    EX_INVITATION_EVENT_UI_SETTING(0xFE, 0x14D),
    EX_INVITATION_EVENT_INK_ENERGY(0xFE, 0x14E),
    EX_CHECK_ABUSING(0xFE, 0x14F),
    EX_GMVITALITY_EFFECT_INFO(0xFE, 0x150),
    EX_PATH_TO_AWAKENING_ALARM(0xFE, 0x151),
    EX_PUT_ENCHANT_SCROLL_ITEM_RESULT(0xFE, 0x152),
    EX_REMOVE_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x153),
    EX_SHOW_CARD_REWARD_LIST(0xFE, 0x154),
    EX_GM_VIEW_CHARACTER_INFO(0xFE, 0x155),
    EX_USER_INFO_EQUIP_SLOT(0xFE, 0x156),
    EX_USER_INFO_CUBIC(0xFE, 0x157),
    EX_USER_INFO_ABNORMAL_VISUAL_EFFECT(0xFE, 0x158),
    EX_USER_INFO_FISHING(0xFE, 0x159),
    EX_PARTY_SPELLED_INFO_UPDATE(0xFE, 0x15A),
    EX_DIVIDE_ADENA_START(0xFE, 0x15B),
    EX_DIVIDE_ADENA_CANCEL(0xFE, 0x15C),
    EX_DIVIDE_ADENA_DONE(0xFE, 0x15D),
    EX_PET_INFO(0xFE, 0x15E),
    EX_ACQUIRE_AP_SKILL_LIST(0xFE, 0x15F),
    EX_START_LUCKY_GAME(0xFE, 0x160),
    EX_BETTING_LUCKY_GAME_RESULT(0xFE, 0x161),
    EX_TRAINING_ZONE_ADMISSION(0xFE, 0x162),
    EX_TRAINING_ZONE_LEAVING(0xFE, 0x163),
    EX_PERIODIC_HENNA(0xFE, 0x164),
    EX_SHOW_AP_LIST_WND(0xFE, 0x165),
    EX_USER_INFO_INVEN_WEIGHT(0xFE, 0x166),
    EX_CLOSE_AP_LIST_WND(0xFE, 0x167),
    EX_ENCHANT_ONE_OK(0xFE, 0x168),
    EX_ENCHANT_ONE_FAIL(0xFE, 0x169),
    EX_ENCHANT_ONE_REMOVE_OK(0xFE, 0x16A),
    EX_ENCHANT_ONE_REMOVE_FAIL(0xFE, 0x16B),
    EX_ENCHANT_TWO_OK(0xFE, 0x16C),
    EX_ENCHANT_TWO_FAIL(0xFE, 0x16D),
    EX_ENCHANT_TWO_REMOVE_OK(0xFE, 0x16E),
    EX_ENCHANT_TWO_REMOVE_FAIL(0xFE, 0x16F),
    EX_ENCHANT_SUCESS(0xFE, 0x170),
    EX_ENCHANT_FAIL(0xFE, 0x171),
    EX_ENCHANT_RETRY_TO_PUT_ITEM_OK(0xFE, 0x172),
    EX_ENCHANT_RETRY_TO_PUT_ITEM_FAIL(0xFE, 0x173),
    EX_ACCOUNT_ATTENDANCE_INFO(0xFE, 0x174),
    EX_WORLD_CHAT_CNT(0xFE, 0x175),
    EX_ALCHEMY_SKILL_LIST(0xFE, 0x176),
    EX_TRY_MIX_CUBE(0xFE, 0x177),
    EX_ALCHEMY_CONVERSION(0xFE, 0x178),
    EX_BEAUTY_ITEM_LIST(0xFE, 0x179),
    EX_RECEIVE_CLIENT_INI(0xFE, 0x17A),
    EX_AUTO_FISH_AVAILABLE(0xFE, 0x17B),
    EX_CHANNEL_CHAT_ENTER_WORLD(0xFE, 0x17C),
    EX_CHANNEL_CHAT_PLEGE_INFO(0xFE, 0x17D),
    EX_VIP_ATTENDANCE_ITEM_LIST(0xFE, 0x17E),
    EX_CONFIRM_VIP_ATTENDANCE_CHECK(0xFE, 0x17F),
    EX_SHOW_ENSOUL_WINDOW(0xFE, 0x180),
    EX_ENSOUL_RESULT(0xFE, 0x181),
    EX_MULTISELL_RESULT(0xFE, 0x182),
    EX_CASTLE_WAR_SEASON_RESULT(0xFE, 0x183),
    EX_CASTLE_WAR_SEASON_REWARD(0xFE, 0x184),
    RECIVE_VIP_PRODUCT_LIST(0xFE, 0x185),
    RECIVE_VIP_LUCKY_GAME_INFO(0xFE, 0x186),
    RECIVE_VIP_LUCKY_GAME_ITEM_LIST(0xFE, 0x187),
    RECIVE_VIP_LUCKY_GAME_RESULT(0xFE, 0x188),
    RECIVE_VIP_INFO(0xFE, 0x189),
    RECIVE_VIP_INFO_REMAIN_TIME(0xFE, 0x18A),
    RECEIVE_VIP_BOT_CAPTCHA_IMAGE(0xFE, 0x18B),
    RECEIVE_VIP_BOT_CAPTCHA_ANSWER_RESULT(0xFE, 0x18C),
    EX_PLEDGE_SINGIN_FOR_OPEN_JOINING_METHOD(0xFE, 0x18D),
    EX_REQUEST_MATCH_ARENA(0xFE, 0x18E),
    EX_COMPLETE_MATCH_ARENA(0xFE, 0x18F),
    EX_CONFIRM_MATCH_ARENA(0xFE, 0x190),
    EX_CANCEL_MATCH_ARENA(0xFE, 0x191),
    EX_START_CHOOSE_CLASS_ARENA(0xFE, 0x192),
    EX_CHANGE_CLASS_ARENA(0xFE, 0x193),
    EX_CONFIRM_CLASS_ARENA(0xFE, 0x194),
    EX_START_BATTLE_READY_ARENA(0xFE, 0x195),
    EX_BATTLE_READY_ARENA(0xFE, 0x196),
    EX_DECO_NPC_INFO(0xFE, 0x197),
    EX_DECO_NPC_SET(0xFE, 0x198),
    EX_FACTION_INFO(0xFE, 0x199),
    EX_BATTLE_RESULT_ARENA(0xFE, 0x19A),
    EX_CLOSING_ARENA(0xFE, 0x19B),
    EX_CLOSED_ARENA(0xFE, 0x19C),
    EX_DIE_IN_ARENA(0xFE, 0x19D),
    DUMMY_PACKET(0xFE, 0x19E),
    EX_ARENA_DASHBOARD(0xFE, 0x19F),
    EX_ARENA_UPDATE_EQUIP_SLOT(0xFE, 0x1A0),
    EX_ARENA_KILL_INFO(0xFE, 0x1A1),
    EX_EXIT_ARENA(0xFE, 0x1A2),
    EX_BALTHUS_EVENT(0xFE, 0x1A3),
    EX_BALTHUS_EVENT_JACKPOT_USER(0xFE, 0x1A4),
    EX_PARTY_MATCHING_ROOM_HISTORY(0xFE, 0x1A5),
    EX_AI_CONTENT_UI_EVENT(0xFE, 0x1A6),
    EX_ARENA_CUSTOM_NOTIFICATION(0xFE, 0x1A7),
    EX_ONE_DAY_RECEIVE_REWARD_LIST(0xFE, 0x1A8),
    EX_CONNECTED_TIME_AND_GETTABLE_REWARD(0xFE, 0x1A9),
    EX_TODO_LIST_RECOMMAND(0xFE, 0x1AA),
    EX_TODO_LIST_INZONE(0xFE, 0x1AB),
    EX_TODO_LIST_HTML(0xFE, 0x1AC),
    EX_QUEUE_TICKET(0xFE, 0x1AD),
    EX_PLEDGE_BONUS_OPEN(0xFE, 0x1AE),
    EX_PLEDGE_BONUS_LIST(0xFE, 0x1AF),
    EX_PLEDGE_BONUS_MARK_RESET(0xFE, 0x1B0),
    EX_PLEDGE_BONUS_UPDATE(0xFE, 0x1B1),
    EX_SSO_AUTH_TOKEN(0xFE, 0x1B2),
    EX_QUEUE_TICKET_LOGIN(0xFE, 0x1B3),
    EX_ENSOUL_EXTRACTION_SHOW(0xFE, 0x1B4),
    EX_ENSOUL_EXTRACTION_RESULT(0xFE, 0x1B5),
    EX_FIELD_EVENT_STEP(0xFE, 0x1B6),
    EX_FIELD_EVENT_POINT(0xFE, 0x1B7),
    EX_FIELD_EVENT_EFFECT(0xFE, 0x1B8),
    EX_RAID_BOSS_SPAWN_INFO(0xFE, 0x1B9),
    EX_RAID_SERVER_INFO(0xFE, 0x1BA),
    EX_SHOW_AGIT_SIEGE_INFO(0xFE, 0x1BB),
    EX_ITEM_ACTION_STATUS(0xFE, 0x1BC),
    EX_MONSTER_BOOK(0xFE, 0x1BD),
    EX_MONSTER_BOOK_REWARD_ICON(0xFE, 0x1BE),
    EX_MONSTER_BOOK_REWARD_FACTION_UI(0xFE, 0x1BF),
    EX_MONSTER_BOOK_OPEN_RESULT(0xFE, 0x1C0),
    EX_MONSTER_BOOK_CLOSE_FORCE(0xFE, 0x1C1),
    EX_FACTION_LEVEL_UP_NOTIFY(0xFE, 0x1C2),
    EX_ITEM_AUCTION_NEXT_INFO(0xFE, 0x1C3),
    EX_ITEM_AUCTION_UPDATE_BIDDING_INFO(0xFE, 0x1C4),
    EX_PRIVATE_STORE_BUYING_RESULT(0xFE, 0x1C5),
    EX_PRIVATE_STORE_SELLING_RESULT(0xFE, 0x1C6),
    EX_ENTER_WORLD(0xFE, 0x1C7),
    EX_MATCH_GROUP(0xFE, 0x1C8),
    EX_MATCH_GROUP_ASK(0xFE, 0x1C9),
    EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA),
    EX_MATCH_GROUP_OUST(0xFE, 0x1CB),
    EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC),
    EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CD),
    EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1CE),
    EX_CARD_UPDOWN_GAME_START(0xFE, 0x1CF),
    EX_CARD_UPDOWN_PICK_RESULT(0xFE, 0x1D0),
    EX_CARD_UPDOWN_GAME_PREPARE_REWARD(0xFE, 0x1D1),
    EX_CARD_UPDOWN_GAME_REWARD_REPLY(0xFE, 0x1D2),
    EX_CARD_UPDOWN_GAME_QUIT(0xFE, 0x1D3),
    EX_ARENA_RANK_ALL(0xFE, 0x1D4),
    EX_ARENA_MYRANK(0xFE, 0x1D5),
    EX_PLEDGE_CLASSIC_RAID_INFO(0xFE, 0x1D6),
    EX_ARENA_OBSERVE(0xFE, 0x1D7),
    EX_HTML_WITH_NPC_VIEWPORT(0xFE, 0x1D8),
    EX_PLEDGE_CONTRIBUTION_RANK(0xFE, 0x1D9),
    EX_PLEDGE_CONTRIBUTION_INFO(0xFE, 0x1DA),
    EX_PLEDGE_CONTRIBUTION_REWARD(0xFE, 0x1DB),
    EX_PLEDGE_RAID_INFO(0xFE, 0x1DC),
    EX_PLEDGE_RAID_RANK(0xFE, 0x1DD),
    EX_PLEDGE_LEVEL_UP(0xFE, 0x1DE),
    EX_PLEDGE_SHOW_INFO_UPDATE(0xFE, 0x1DF),
    EX_PLEDGE_MISSION_INFO(0xFE, 0x1E0),
    EX_PLEDGE_MISSION_REWARD_COUNT(0xFE, 0x1E1),
    EX_PLEDGE_MASTERY_INFO(0xFE, 0x1E2),
    EX_PLEDGE_MASTERY_SET(0xFE, 0x1E3),
    EX_PLEDGE_MASTERY_RESET(0xFE, 0x1E4),
    EX_TUTORIAL_SHOW_ID(0xFE, 0x1E5),
    EX_PLEDGE_SKILL_INFO(0xFE, 0x1E6),
    EX_PLEDGE_SKILL_ACTIVATE(0xFE, 0x1E7),
    EX_PLEDGE_ITEM_LIST(0xFE, 0x1E8),
    EX_PLEDGE_ITEM_ACTIVATE(0xFE, 0x1E9),
    EX_PLEDGE_ANNOUNCE(0xFE, 0x1EA),
    EX_PLEDGE_ANNOUNCE_SET(0xFE, 0x1EB),
    EX_SET_PLEDGE_EMBLEM(0xFE, 0x1EC),
    EX_SHOW_CREATE_PLEDGE(0xFE, 0x1ED),
    EX_PLEDGE_ITEM_INFO(0xFE, 0x1EE),
    EX_PLEDGE_ITEM_BUY(0xFE, 0x1EF),
    EX_ELEMENTAL_SPIRIT_INFO(0xFE, 0x1F0),
    EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0xFE, 0x1F1),
    EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0xFE, 0x1F2),
    EX_ELEMENTAL_SPIRIT_EVOLUTION(0xFE, 0x1F3),
    EX_ELEMENTAL_SPIRIT_SET_TALENT(0xFE, 0x1F4),
    EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0xFE, 0x1F5),
    EX_ELEMENTAL_SPIRIT_ABSORB(0xFE, 0x1F6),
    EX_CHOOSE_LOCKED_ITEM(0xFE, 0x1F7),
    EX_LOCKED_RESULT(0xFE, 0x1F8),
    EX_ELEMENTAL_SPIRIT_EXTRACT(0xFE, 0x1F9), // 152
    EX_OLYMPIAD_INFO(0xFE, 0x1FA), // 152
    EX_OLYMPIAD_RECORD(0xFE, 0x1FB), // 152
    EX_OLYMPIAD_MATCH_INFO(0xFE, 0x1FC), // 152
    EX_ELEMENTAL_SPIRIT_GET_EXP(0xFE, 0x1FD), // 152
    EX_ITEM_ANNOUNCE(0xFE, 0x1FE), // 152
    EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1FF),
    EX_DRESS_HANGER_LIST(0xFE, 0x200),
    EX_USER_BAN_INFO(0xFE, 0x201),
    EX_TRY_ENCHANT_ARTIFACT_RESULT(0xFE, 0x202), // 152
    EX_XIGN_CODE(0xFE, 0x203), // 152
    EX_SHOW_UPGRADE_SYSTEM_NORMAL(0xFE, 0x204), // 196
    EX_UPGRADE_SYSTEM_NORMAL_RESULT(0xFE, 0x205), // 196
    EX_PURCHASE_LIMIT_SHOP_ITEM_L(0xFE, 0x206), // 196
    EX_PURCHASE_LIMIT_SHOP_ITEM_B(0xFE, 0x207), // 196
    EX_BLOODY_COIN_COUNT(0xFE, 0x208), // 196
    EX_CLASS_CHANGE_SET_ALARM(0xFE, 0x209), // 196
    EX_REQUEST_CLASS_CHANGE(0xFE, 0x20A), // 196
    EX_REQUEST_CLASS_CHANGE_VERIFY(0xFE, 0x20B), // 196
    EX_COSTUME_USE_ITEM(0xFE, 0x20C), // 196
    EX_CHOOSE_COSTUME_ITEM(0xFE, 0x20D), // 196
    EX_SEND_COSTUME_LIST(0xFE, 0x20E), // 196
    EX_SEND_COSTUME_LIST_FULL(0xFE, 0x20F), // 196
    EX_COSTUME_COLLECTION_SKILL_A(0xFE, 0x211), // 196
    EX_COSTUME_EVOLUTION(0xFE, 0x212), // 196
    EX_COSTUME_EXTRACT(0xFE, 0x213), // 196
    EX_COSTUME_LOCK(0xFE, 0x214), // 196
    EX_COSTUME_SHORTCUT_LIST(0xFE, 0x215), // 196
    EX_MAGICLAMP_EXP_INFO(0xFE, 0x216), // 196
    EX_MAGICLAMP_GAME_INFO(0xFE, 0x217), // 196
    EX_MAGICLAMP_GAME_RESULT(0xFE, 0x218), // 196
    EX_SHOW_TELEPORT_UI(0xFE, 0x219), // 228
    EX_ACTIVATE_AUTO_SHORTCUT(0xFE, 0x21A), // 228
    EX_PREMIUM_MANAGER_SHOW_HTML(0xFE, 0x21B), // 228
    EX_ACTIVATED_CURSED_TREASURE(0xFE, 0x21C), // 228
    EX_PAYBACK_LIST(0xFE, 0x21D), // 228
    EX_PAYBACK_GIVE_REWARD(0xFE, 0x21E), // 228
    EX_PAYBACK_UI_LAUNCHER(0xFE, 0x21F), // 228
    EX_DIE_INFO(0xFE, 0x220), // 228
    EX_AUTOPLAY_SETTING(0xFE, 0x221), // 228
    EX_AUTOPLAY_DO_MACRO(0xFE, 0x222), // 228
    EX_OLYMPIAD_MATCH_MAKING_RESULT(0xFE, 0x223), // 228
    EX_FESTIVAL_BM_INFO(0xFE, 0x224), // 228
    EX_FESTIVAL_BM_ALL_ITEM_INFO(0xFE, 0x225), // 228
    EX_FESTIVAL_BM_TOP_ITEM_INFO(0xFE, 0x226), // 228
    EX_FESTIVAL_BM_GAME(0xFE, 0x227), // 228
    EX_GACHA_SHOP_INFO(0xFE, 0x228), // 228
    EX_GACHA_SHOP_GACHA_GROUP(0xFE, 0x229), // 228
    EX_GACHA_SHOP_GACHA_ITEM(0xFE, 0x22A), // 228
    EX_TIME_RESTRICT_FIELD_LIST(0xFE, 0x22B), // 228
    EX_TIME_RESTRICT_FIELD_USER_E(0xFE, 0x22C), // 228
    EX_TIME_RESTRICT_FIELD_USER_C(0xFE, 0x22D), // 228
    EX_TIME_RESTRICT_FIELD_USER_A(0xFE, 0x22E), // 228
    EX_TIME_RESTRICT_FIELD_USER_E2(0xFE, 0x22F), // 228
    EX_RANKING_CHAR_INFO(0xFE, 0x230), // 228
    EX_RANKING_CHAR_HISTORY(0xFE, 0x231), // 228
    EX_RANKING_CHAR_RANKERS(0xFE, 0x232), // 228
    EX_BOW_ACTION_TO(0xFE, 0x233), // 228
    EX_LETTER_COLLECTOR_UI_LAUNCH(0xFE, 0x234), // 228
    EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235), // 228
    EX_UNK_236(0xFE, 0x236), // 228
    EX_UNK_237(0xFE, 0x237), // 228
    EX_UNK_238(0xFE, 0x238), // 228
    EX_UNK_239(0xFE, 0x239), // 228
    EX_PVPBOOK_LIST(0xFE, 0x23A); // 228
    
    private final int _id1;
    private final int _id2;
    
    OutgoingPackets(int id1)
    {
        this(id1, -1);
    }
    
    OutgoingPackets(int id1, int id2)
    {
        _id1 = id1;
        _id2 = id2;
    }
    
    public int getId1()
    {
        return _id1;
    }
    
    public int getId2()
    {
        return _id2;
    }
    
    public void writeId(PacketWriter packet)
    {
        packet.writeC(_id1);
        if (_id2 > 0)
        {
            packet.writeH(_id2);
        }
    }
    
    public static OutgoingPackets getPacket(int id1, int id2)
    {
        for (OutgoingPackets packet : values())
        {
            if ((packet.getId1() == id1) && (packet.getId2() == id2))
            {
                return packet;
            }
        }
        return null;
    }
}
 
Никогда не играл на классике. Скажите: а тут есть сундучки с заточками как на старых хрониках?
 
кроме мобиуса и скриптов кто ище камаельку клипает никто не в курсе?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
для тех кто в танке.
Java:
package org.l2jmobius.gameserver.network.clientpackets.autoplay;

import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend;

public class ExAutoPlaySetting implements IClientIncomingPacket
{
    private int _options;
    private boolean _active;
    private boolean _pickUp;
    private int _nextTargetMode;
    private boolean _longRange;
    private int _potionPercent;
    private boolean _respectfulHunting;
   
    @Override
    public boolean read(GameClient client, PacketReader packet)
    {
        _options = packet.readH();
        _active = packet.readC() == 1;
        _pickUp = packet.readC() == 1;
        _nextTargetMode = packet.readH();
        _longRange = packet.readC() == 0;
        _potionPercent = packet.readD();
        _respectfulHunting = packet.readC() == 1;
        return true;
    }
   
    @Override
    public void run(GameClient client)
    {
        final PlayerInstance player = client.getPlayer();
        if (player == null)
        {
            return;
        }
       
        player.sendPacket(new ExAutoPlaySettingSend(_options, _active, _pickUp, _nextTargetMode, _longRange, _potionPercent, _respectfulHunting));
       
        player.setAutoPotionPercent(_potionPercent);
       
        if (_active)
        {
            player.startAutoPlayTask(_pickUp, _longRange, _respectfulHunting);
        }
        else
        {
            player.stopAutoPlayTask();
        }
    }
}
Java:
package org.l2jmobius.gameserver.network.clientpackets.autoplay;

import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.Shortcut;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;

public class ExRequestActivateAutoShortcut implements IClientIncomingPacket
{
    private boolean _activate;
    private int _room;
   
    @Override
    public boolean read(GameClient client, PacketReader packet)
    {
        _room = packet.readH();
        _activate = packet.readC() == 1;
        return true;
    }
   
    @Override
    public void run(GameClient client)
    {
        final PlayerInstance player = client.getPlayer();
        if (player == null)
        {
            return;
        }
       
        final int slot = _room % 12;
        final int page = _room / 12;
        final Shortcut shortcut = player.getShortCut(slot, page);
        if (shortcut == null)
        {
            return;
        }
        client.sendPacket(new ExActivateAutoShortcut(_room, _activate));
       
        final ItemInstance item = player.getInventory().getItemByObjectId(shortcut.getId());
        Skill skill = null;
        if (item == null)
        {
            skill = player.getKnownSkill(shortcut.getId());
        }
       
        // stop
        if (!_activate)
        {
            if (item != null)
            {
                // auto supply
                if (_room == -1)
                {
                    player.removeAutoSupplyItem(item.getId());
                }
                else // auto potion
                {
                    player.removeAutoPotionItem(item.getId());
                }
            }
            // TODO: auto skill
            if (skill != null)
            {
                player.removeAutoSkill(skill.getId());
            }
            return;
        }
       
        // start
        if (_room == -1)
        {
            // auto supply
            if (item != null)
            {
                player.addAutoSupplyItem(item.getId());
                return;
            }
        }
        else
        {
            // auto potion
            if ((page == 23) && (slot == 1))
            {
                if ((item != null) && item.isPotion())
                {
                    player.addAutoPotionItem(item.getId());
                    return;
                }
            }
            // TODO: auto skill
            if (skill != null)
            {
                player.addAutoSkill(skill.getId());
            }
        }
    }
}
Java:
package org.l2jmobius.gameserver.network.serverpackets.autoplay;

import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;

public class ExActivateAutoShortcut implements IClientOutgoingPacket
{
    private final int _room;
    private final boolean _activate;
   
    public ExActivateAutoShortcut(int room, boolean activate)
    {
        _room = room;
        _activate = activate;
    }
   
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_ACTIVATE_AUTO_SHORTCUT.writeId(packet);
        packet.writeH(_room);
        packet.writeC(_activate ? 0x01 : 0x00);
        return true;
    }
}
Java:
package org.l2jmobius.gameserver.network.serverpackets.autoplay;

import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;

public class ExAutoPlayDoMacro implements IClientOutgoingPacket
{
    public static final ExAutoPlayDoMacro STATIC_PACKET = new ExAutoPlayDoMacro();
   
    public ExAutoPlayDoMacro()
    {
    }
   
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_AUTOPLAY_DO_MACRO.writeId(packet);
        packet.writeD(0x114);
        return true;
    }
}
Java:
package org.l2jmobius.gameserver.network.serverpackets.autoplay;

import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;

public class ExAutoPlaySettingSend implements IClientOutgoingPacket
{
    private final int _options;
    private final boolean _active;
    private final boolean _pickUp;
    private final int _nextTargetMode;
    private final boolean _longRange;
    private final int _potionPercent;
    private final boolean _respectfulHunting;
   
    public ExAutoPlaySettingSend(int options, boolean active, boolean pickUp, int nextTargetMode, boolean longRange, int potionPercent, boolean respectfulHunting)
    {
        _options = options;
        _active = active;
        _pickUp = pickUp;
        _nextTargetMode = nextTargetMode;
        _longRange = longRange;
        _potionPercent = potionPercent;
        _respectfulHunting = respectfulHunting;
    }
   
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_AUTOPLAY_SETTING.writeId(packet);
        packet.writeH(_options);
        packet.writeC(_active ? 1 : 0);
        packet.writeC(_pickUp ? 1 : 0);
        packet.writeH(_nextTargetMode);
        packet.writeC(_longRange ? 1 : 0);
        packet.writeD(_potionPercent);
        packet.writeC(_respectfulHunting ? 1 : 0);
        return true;
    }
}
Java:
package org.l2jmobius.gameserver.network;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Supplier;

import org.l2jmobius.commons.network.IConnectionState;
import org.l2jmobius.commons.network.IIncomingPacket;
import org.l2jmobius.commons.network.IIncomingPackets;
import org.l2jmobius.gameserver.network.clientpackets.*;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdena;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaCancel;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaStart;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExCancelShape_Shifting_Item;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingEnchantSupportItem;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingTargetItem;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestShapeShiftingItem;
import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceCheck;
import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceItemList;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeCancel;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeItem;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.SendChangeAttributeTargetItem;
import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExAutoPlaySetting;
import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExRequestActivateAutoShortcut;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCancelCuriousHouse;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCuriousHouseHtml;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestJoinCuriousHouse;
import org.l2jmobius.gameserver.network.clientpackets.classchange.ExRequestClassChange;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyInfo;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyItem;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionCancel;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionDelete;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionInfo;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionList;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegister;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegisteredItem;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegistrableItemList;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantClose;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushOne;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushTwo;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveOne;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveTwo;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRetryToPutItems;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantTry;
import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestOneDayRewardReceive;
import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestTodoList;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalInitTalent;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorb;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorbInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritChangeType;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolution;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolutionInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtract;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtractInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritSetTalent;
import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
import org.l2jmobius.gameserver.network.clientpackets.equipmentupgrade.RequestUpgradeSystemResult;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGameStartInfo;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.ConfirmMenteeAdd;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeAdd;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeWaitingList;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorCancel;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorList;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusOpen;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusReward;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusRewardList;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRBuyProduct;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRGamePoint;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRPresentBuyProduct;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductInfo;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductList;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList;
import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo;
import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo;
import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankCharInfo;
import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankingCharRankers;
import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMove;
import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMoveStart;
import org.l2jmobius.gameserver.network.clientpackets.sessionzones.ExTimedHuntingZoneList;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.MoveToLocationInShuttle;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOff;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOn;
import org.l2jmobius.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, RequestPledgeSetAcademyMaster::new, 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_SERVER_LOGIN(0x1A, null, ConnectionState.IN_GAME),
    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),
    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_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), // TODO: Implement / HANDLE SWITCH
    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), // TODO: Implement / HANDLE SWITCH
    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, null, ConnectionState.IN_GAME),
    REQUEST_CHANGE_TO_AWAKENED_CLASS(0xA2, RequestChangeToAwakenedClass::new, ConnectionState.IN_GAME),
    REQUEST_WORLD_STATISTICS(0xA3, null, ConnectionState.IN_GAME),
    REQUEST_USER_STATISTICS(0xA4, null, ConnectionState.IN_GAME),
    REQUEST_24HZ_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()),
    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_SHOP_LIST(0xCD, RequestShowResetShopList::new, ConnectionState.IN_GAME),
    NET_PING(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_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_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, null, ConnectionState.IN_GAME),
    REQUEST_ABILITY_LIST(0xEA, null, ConnectionState.IN_GAME),
    REQUEST_RESET_ABILITY_POINT(0xEB, null, ConnectionState.IN_GAME),
    REQUEST_CHANGE_ABILITY_POINT(0xEC, null, ConnectionState.IN_GAME),
    REQUEST_STOP_MOVE(0xED, RequestStopMove::new, ConnectionState.IN_GAME),
    REQUEST_ABILITY_WND_OPEN(0xEE, null, ConnectionState.IN_GAME),
    REQUEST_ABILITY_WND_CLOSE(0xEF, null, 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),
    REQUEST_TARGET_ACTION_MENU(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, null, ConnectionState.IN_GAME),
    REQUEST_ALCHEMY_CONVERSION(0x101, null, 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, null, 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, RequestTodoList::new, ConnectionState.IN_GAME),
    REQUEST_TODO_LIST_HTML(0x11E, null, ConnectionState.IN_GAME),
    REQUEST_ONE_DAY_REWARD_RECEIVE(0x11F, RequestOneDayRewardReceive::new, ConnectionState.IN_GAME),
    REQUEST_QUEUE_TICKET(0x120, null, ConnectionState.IN_GAME),
    REQUEST_PLEDGE_BONUS_OPEN(0x121, RequestPledgeBonusOpen::new, ConnectionState.IN_GAME),
    REQUEST_PLEDGE_BONUS_REWARD_LIST(0x122, RequestPledgeBonusRewardList::new, ConnectionState.IN_GAME),
    REQUEST_PLEDGE_BONUS_REWARD(0x123, RequestPledgeBonusReward::new, 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, null, ConnectionState.IN_GAME),
    EX_PLEDGE_CONTRIBUTION_INFO(0x13E, null, ConnectionState.IN_GAME),
    EX_PLEDGE_CONTRIBUTION_REWARD(0x13F, null, ConnectionState.IN_GAME),
    EX_PLEDGE_LEVEL_UP(0x140, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MISSION_INFO(0x141, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MISSION_REWARD(0x142, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MASTERY_INFO(0x143, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MASTERY_SET(0x144, null, ConnectionState.IN_GAME),
    EX_PLEDGE_MASTERY_RESET(0x145, null, ConnectionState.IN_GAME),
    EX_PLEDGE_SKILL_INFO(0x146, null, ConnectionState.IN_GAME),
    EX_PLEDGE_SKILL_ACTIVATE(0x147, null, ConnectionState.IN_GAME),
    EX_PLEDGE_ITEM_LIST(0x148, null, ConnectionState.IN_GAME),
    EX_PLEDGE_ITEM_ACTIVATE(0x149, null, ConnectionState.IN_GAME),
    EX_PLEDGE_ANNOUNCE(0x14A, null, 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, null, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_INFO(0x14F, ExElementalSpiritInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0x150, ExElementalSpiritExtractInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EXTRACT(0x151, ExElementalSpiritExtract::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0x152, ExElementalSpiritEvolutionInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_EVOLUTION(0x153, ExElementalSpiritEvolution::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_SET_TALENT(0x154, ExElementalSpiritSetTalent::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_INIT_TALENT(0x155, ExElementalInitTalent::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0x156, ExElementalSpiritAbsorbInfo::new, ConnectionState.IN_GAME),
    EX_ELEMENTAL_SPIRIT_ABSORB(0x157, ExElementalSpiritAbsorb::new, 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, ExElementalSpiritChangeType::new, 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, null, ConnectionState.IN_GAME), // 152
    EX_XIGN_CODE(0x161, null, ConnectionState.IN_GAME), // 152
    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_COLLECTION_SKILL_ACTIVE(0x16B, null, ConnectionState.IN_GAME), // 228
    UNK_16C(0x16C, null, ConnectionState.IN_GAME), // 228
    UNK_16D(0x16D, null, ConnectionState.IN_GAME), // 228
    UNK_16E(0x16E, null, ConnectionState.IN_GAME), // 228
    UNK_16F(0x16F, null, ConnectionState.IN_GAME), // 228
    UNK_170(0x170, null, ConnectionState.IN_GAME), // 228
    EX_ACTIVATE_AUTO_SHORTCUT(0x171, ExRequestActivateAutoShortcut::new, ConnectionState.IN_GAME), // 228
    UNK_172(0x172, null, ConnectionState.IN_GAME), // 228
    UNK_173(0x173, null, ConnectionState.IN_GAME), // 228
    UNK_174(0x174, null, ConnectionState.IN_GAME), // 228
    UNK_175(0x175, null, ConnectionState.IN_GAME), // 228
    UNK_176(0x176, null, ConnectionState.IN_GAME), // 228
    EX_AUTOPLAY_SETTING(0x177, ExAutoPlaySetting::new, ConnectionState.IN_GAME), // 228
    UNK_178(0x178, null, ConnectionState.IN_GAME), // 228
    UNK_179(0x179, null, ConnectionState.IN_GAME), // 228
    UNK_17A(0x17A, null, ConnectionState.IN_GAME), // 228
    UNK_17B(0x17B, null, ConnectionState.IN_GAME), // 228
    UNK_17C(0x17C, null, ConnectionState.IN_GAME), // 228
    UNK_17D(0x17D, null, ConnectionState.IN_GAME), // 228
    UNK_17E(0x17E, null, ConnectionState.IN_GAME), // 228
    EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), // 228
    EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, null, ConnectionState.IN_GAME), // 228
    EX_RANKING_CHAR_INFO(0x181, ExRankCharInfo::new, ConnectionState.IN_GAME), // 228
    EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME), // 228
    EX_RANKING_CHAR_RANKERS(0x183, ExRankingCharRankers::new, ConnectionState.IN_GAME), // 228
    UNK_184(0x184, null, ConnectionState.IN_GAME), // 228
    UNK_185(0x185, null, ConnectionState.IN_GAME), // 228
    EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x186, null, ConnectionState.IN_GAME), // 228
    UNK_187(0x187, null, ConnectionState.IN_GAME), // 228
    UNK_188(0x188, null, ConnectionState.IN_GAME), // 228
    UNK_189(0x189, null, ConnectionState.IN_GAME), // 228
    UNK_18A(0x18A, null, ConnectionState.IN_GAME), // 228
    EX_PVP_BOOK_LIST(0x18B, ExPvpBookList::new, ConnectionState.IN_GAME), // 228
    UNK_18C(0x18C, null, ConnectionState.IN_GAME), // 228
    EX_LETTER_COLLECTOR_TAKE_REWARD(0x18D, null, ConnectionState.IN_GAME); // 228
   
    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;
    }
}
Java:
package org.l2jmobius.gameserver.network;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Supplier;

import org.l2jmobius.commons.network.IConnectionState;
import org.l2jmobius.commons.network.IIncomingPacket;
import org.l2jmobius.commons.network.IIncomingPackets;
import org.l2jmobius.gameserver.network.clientpackets.*;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList;
import org.l2jmobius.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),
    REQUEST_START_PLEDGE_WAR(0x03, RequestStartPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_REPLY_START_PLEDGE(0x04, RequestReplyStartPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_STOP_PLEDGE_WAR(0x05, RequestStopPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_REPLY_STOP_PLEDGE_WAR(0x06, RequestReplyStopPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_SURRENDER_PLEDGE_WAR(0x07, RequestSurrenderPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_REPLY_SURRENDER_PLEDGE_WAR(0x08, RequestReplySurrenderPledgeWar::new, ConnectionState.IN_GAME),
    REQUEST_SET_PLEDGE_CREST(0x09, RequestSetPledgeCrest::new, 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_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, 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),
    REQUEST_UN_EQUIP_ITEM(0x16, RequestUnEquipItem::new, ConnectionState.IN_GAME),
    REQUEST_DROP_ITEM(0x17, RequestDropItem::new, 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),
    ACTION(0x1F, Action::new, 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),
    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),
    AUTH_LOGIN(0x2B, AuthLogin::new, ConnectionState.CONNECTED),
    REQUEST_GET_ITEM_FROM_PET(0x2C, RequestGetItemFromPet::new, ConnectionState.IN_GAME),
    REQUEST_ALLY_INFO(0x2E, RequestAllyInfo::new, ConnectionState.IN_GAME),
    REQUEST_CRYSTALLIZE_ITEM(0x2F, RequestCrystallizeItem::new, ConnectionState.IN_GAME),
    REQUEST_PRIVATE_STORE_MANAGE_SELL(0x30, RequestPrivateStoreManageSell::new, ConnectionState.IN_GAME),
    SET_PRIVATE_STORE_LIST_SELL(0x31, SetPrivateStoreListSell::new, ConnectionState.IN_GAME),
    ATTACK_REQUEST(0x32, AttackRequest::new, ConnectionState.IN_GAME),
    REQUEST_TELEPORT(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),
    REQUEST_SHORT_CUT_DEL(0x3F, RequestShortCutDel::new, ConnectionState.IN_GAME),
    REQUEST_BUY_ITEM(0x40, RequestBuyItem::new, 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),
    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),
    REQUEST_PLEDGE_MEMBER_LIST(0x4D, RequestPledgeMemberList::new, ConnectionState.IN_GAME),
    REQUEST_MAGIC_LIST(0x4F, null, ConnectionState.IN_GAME),
    REQUEST_SKILL_LIST(0x50, RequestSkillList::new, 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),
    VALIDATE_POSITION(0x59, ValidatePosition::new, ConnectionState.IN_GAME),
    START_ROTATING(0x5B, StartRotating::new, ConnectionState.IN_GAME),
    FINISH_ROTATING(0x5C, FinishRotating::new, 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),
    REQUEST_QUEST_LIST(0x62, RequestQuestList::new, ConnectionState.IN_GAME),
    REQUEST_QUEST_ABORT(0x63, RequestQuestAbort::new, 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),
    REQUEST_SEND_FRIEND_MSG(0x6B, RequestSendFriendMsg::new, ConnectionState.IN_GAME),
    REQUEST_SHOW_MINI_MAP(0x6C, RequestShowMiniMap::new, ConnectionState.IN_GAME),
    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),
    REQUEST_PRIVATE_STORE_BUY(0x83, RequestPrivateStoreBuy::new, 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),
    REQUEST_PRIVATE_STORE_MANAGE_BUY(0x99, RequestPrivateStoreManageBuy::new, ConnectionState.IN_GAME),
    SET_PRIVATE_STORE_LIST_BUY(0x9A, SetPrivateStoreListBuy::new, 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),
    REQUEST_PRIVATE_STORE_SELL(0x9F, RequestPrivateStoreSell::new, ConnectionState.IN_GAME),
    SEND_TIME_CHECK_PACKET(0xA0, 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),
    REQUEST_RECIPE_SHOP_MANAGE_LIST(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),
    REQUEST_EVALUATE(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),
    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),
    REQUEST_BUY_PROCURE(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
   
    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;
    }
}
Java:
package org.l2jmobius.gameserver.network;

import org.l2jmobius.commons.network.PacketWriter;

/**
* @author UnAfraid
*/
public enum OutgoingPackets
{
    // Packets
    DIE(0x00),
    REVIVE(0x01),
    ATTACK_OUT_OF_RANGE(0x02),
    ATTACKIN_COOL_TIME(0x03),
    ATTACK_DEAD_TARGET(0x04),
    SPAWN_ITEM(0x05),
    SELL_LIST(0x06),
    BUY_LIST(0x07),
    DELETE_OBJECT(0x08),
    CHARACTER_SELECTION_INFO(0x09),
    LOGIN_FAIL(0x0A),
    CHARACTER_SELECTED(0x0B),
    NPC_INFO(0x0C),
    NEW_CHARACTER_SUCCESS(0x0D),
    NEW_CHARACTER_FAIL(0x0E),
    CHARACTER_CREATE_SUCCESS(0x0F),
    CHARACTER_CREATE_FAIL(0x10),
    ITEM_LIST(0x11),
    SUN_RISE(0x12),
    SUN_SET(0x13),
    TRADE_START(0x14),
    TRADE_START_OK(0x15),
    DROP_ITEM(0x16),
    GET_ITEM(0x17),
    STATUS_UPDATE(0x18),
    NPC_HTML_MESSAGE(0x19),
    TRADE_OWN_ADD(0x1A),
    TRADE_OTHER_ADD(0x1B),
    TRADE_DONE(0x1C),
    CHARACTER_DELETE_SUCCESS(0x1D),
    CHARACTER_DELETE_FAIL(0x1E),
    ACTION_FAIL(0x1F),
    SEVER_CLOSE(0x20),
    INVENTORY_UPDATE(0x21),
    TELEPORT_TO_LOCATION(0x22),
    TARGET_SELECTED(0x23),
    TARGET_UNSELECTED(0x24),
    AUTO_ATTACK_START(0x25),
    AUTO_ATTACK_STOP(0x26),
    SOCIAL_ACTION(0x27),
    CHANGE_MOVE_TYPE(0x28),
    CHANGE_WAIT_TYPE(0x29),
    MANAGE_PLEDGE_POWER(0x2A),
    CREATE_PLEDGE(0x2B),
    ASK_JOIN_PLEDGE(0x2C),
    JOIN_PLEDGE(0x2D),
    VERSION_CHECK(0x2E),
    MOVE_TO_LOCATION(0x2F),
    NPC_SAY(0x30),
    CHAR_INFO(0x31),
    USER_INFO(0x32),
    ATTACK(0x33),
    WITHDRAWAL_PLEDGE(0x34),
    OUST_PLEDGE_MEMBER(0x35),
    SET_OUST_PLEDGE_MEMBER(0x36),
    DISMISS_PLEDGE(0x37),
    SET_DISMISS_PLEDGE(0x38),
    ASK_JOIN_PARTY(0x39),
    JOIN_PARTY(0x3A),
    WITHDRAWAL_PARTY(0x3B),
    OUST_PARTY_MEMBER(0x3C),
    SET_OUST_PARTY_MEMBER(0x3D),
    DISMISS_PARTY(0x3E),
    SET_DISMISS_PARTY(0x3F),
    MAGIC_AND_SKILL_LIST(0x40),
    WAREHOUSE_DEPOSIT_LIST(0x41),
    WAREHOUSE_WITHDRAW_LIST(0x42),
    WAREHOUSE_DONE(0x43),
    SHORT_CUT_REGISTER(0x44),
    SHORT_CUT_INIT(0x45),
    SHORT_CUT_DELETE(0x46),
    STOP_MOVE(0x47),
    MAGIC_SKILL_USE(0x48),
    MAGIC_SKILL_CANCELED(0x49),
    SAY2(0x4A),
    NPC_INFO_ABNORMAL_VISUAL_EFFECT(0x4B),
    DOOR_INFO(0x4C),
    DOOR_STATUS_UPDATE(0x4D),
    PARTY_SMALL_WINDOW_ALL(0x4E),
    PARTY_SMALL_WINDOW_ADD(0x4F),
    PARTY_SMALL_WINDOW_DELETE_ALL(0x50),
    PARTY_SMALL_WINDOW_DELETE(0x51),
    PARTY_SMALL_WINDOW_UPDATE(0x52),
    TRADE_PRESS_OWN_OK(0x53),
    MAGIC_SKILL_LAUNCHED(0x54),
    FRIEND_ADD_REQUEST_RESULT(0x55),
    FRIEND_ADD(0x56),
    FRIEND_REMOVE(0x57),
    FRIEND_LIST(0x58),
    FRIEND_STATUS(0x59),
    PLEDGE_SHOW_MEMBER_LIST_ALL(0x5A),
    PLEDGE_SHOW_MEMBER_LIST_UPDATE(0x5B),
    PLEDGE_SHOW_MEMBER_LIST_ADD(0x5C),
    PLEDGE_SHOW_MEMBER_LIST_DELETE(0x5D),
    MAGIC_LIST(0x5E),
    SKILL_LIST(0x5F),
    VEHICLE_INFO(0x60),
    FINISH_ROTATING(0x61),
    SYSTEM_MESSAGE(0x62),
    START_PLEDGE_WAR(0x63),
    REPLY_START_PLEDGE_WAR(0x64),
    STOP_PLEDGE_WAR(0x65),
    REPLY_STOP_PLEDGE_WAR(0x66),
    SURRENDER_PLEDGE_WAR(0x67),
    REPLY_SURRENDER_PLEDGE_WAR(0x68),
    SET_PLEDGE_CREST(0x69),
    PLEDGE_CREST(0x6A),
    SETUP_GAUGE(0x6B),
    VEHICLE_DEPARTURE(0x6C),
    VEHICLE_CHECK_LOCATION(0x6D),
    GET_ON_VEHICLE(0x6E),
    GET_OFF_VEHICLE(0x6F),
    TRADE_REQUEST(0x70),
    RESTART_RESPONSE(0x71),
    MOVE_TO_PAWN(0x72),
    SSQ_INFO(0x73),
    GAME_GUARD_QUERY(0x74),
    L2_FRIEND_LIST(0x75),
    L2_FRIEND(0x76),
    L2_FRIEND_STATUS(0x77),
    L2_FRIEND_SAY(0x78),
    VALIDATE_LOCATION(0x79),
    START_ROTATING(0x7A),
    SHOW_BOARD(0x7B),
    CHOOSE_INVENTORY_ITEM(0x7C),
    DUMMY(0x7D),
    MOVE_TO_LOCATION_IN_VEHICLE(0x7E),
    STOP_MOVE_IN_VEHICLE(0x7F),
    VALIDATE_LOCATION_IN_VEHICLE(0x80),
    TRADE_UPDATE(0x81),
    TRADE_PRESS_OTHER_OK(0x82),
    FRIEND_ADD_REQUEST(0x83),
    LOG_OUT_OK(0x84),
    ABNORMAL_STATUS_UPDATE(0x85),
    QUEST_LIST(0x86),
    ENCHANT_RESULT(0x87),
    PLEDGE_SHOW_MEMBER_LIST_DELETE_ALL(0x88),
    PLEDGE_INFO(0x89),
    PLEDGE_EXTENDED_INFO(0x8A),
    SUMMON_INFO(0x8B),
    RIDE(0x8C),
    DUMMY2(0x8D),
    PLEDGE_SHOW_INFO_UPDATE(0x8E),
    CLIENT_ACTION(0x8F),
    ACQUIRE_SKILL_LIST(0x90),
    ACQUIRE_SKILL_INFO(0x91),
    SERVER_OBJECT_INFO(0x92),
    GM_HIDE(0x93),
    ACQUIRE_SKILL_DONE(0x94),
    GM_VIEW_CHARACTER_INFO(0x95),
    GM_VIEW_PLEDGE_INFO(0x96),
    GM_VIEW_SKILL_INFO(0x97),
    GM_VIEW_MAGIC_INFO(0x98),
    GM_VIEW_QUEST_INFO(0x99),
    GM_VIEW_ITEM_LIST(0x9A),
    GM_VIEW_WAREHOUSE_WITHDRAW_LIST(0x9B),
    LIST_PARTY_WATING(0x9C),
    PARTY_ROOM_INFO(0x9D),
    PLAY_SOUND(0x9E),
    STATIC_OBJECT(0x9F),
    PRIVATE_STORE_MANAGE_LIST(0xA0),
    PRIVATE_STORE_LIST(0xA1),
    PRIVATE_STORE_MSG(0xA2),
    SHOW_MINIMAP(0xA3),
    REVIVE_REQUEST(0xA4),
    ABNORMAL_VISUAL_EFFECT(0xA5),
    TUTORIAL_SHOW_HTML(0xA6),
    TUTORIAL_SHOW_QUESTION_MARK(0xA7),
    TUTORIAL_ENABLE_CLIENT_EVENT(0xA8),
    TUTORIAL_CLOSE_HTML(0xA9),
    SHOW_RADAR(0xAA),
    WITHDRAW_ALLIANCE(0xAB),
    OUST_ALLIANCE_MEMBER_PLEDGE(0xAC),
    DISMISS_ALLIANCE(0xAD),
    SET_ALLIANCE_CREST(0xAE),
    ALLIANCE_CREST(0xAF),
    SERVER_CLOSE_SOCKET(0xB0),
    PET_STATUS_SHOW(0xB1),
    PET_INFO(0xB2),
    PET_ITEM_LIST(0xB3),
    PET_INVENTORY_UPDATE(0xB4),
    ALLIANCE_INFO(0xB5),
    PET_STATUS_UPDATE(0xB6),
    PET_DELETE(0xB7),
    DELETE_RADAR(0xB8),
    MY_TARGET_SELECTED(0xB9),
    PARTY_MEMBER_POSITION(0xBA),
    ASK_JOIN_ALLIANCE(0xBB),
    JOIN_ALLIANCE(0xBC),
    PRIVATE_STORE_BUY_MANAGE_LIST(0xBD),
    PRIVATE_STORE_BUY_LIST(0xBE),
    PRIVATE_STORE_BUY_MSG(0xBF),
    VEHICLE_START(0xC0),
    NPC_INFO_STATE(0xC1),
    START_ALLIANCE_WAR(0xC2),
    REPLY_START_ALLIANCE_WAR(0xC3),
    STOP_ALLIANCE_WAR(0xC4),
    REPLY_STOP_ALLIANCE_WAR(0xC5),
    SURRENDER_ALLIANCE_WAR(0xC6),
    SKILL_COOL_TIME(0xC7),
    PACKAGE_TO_LIST(0xC8),
    CASTLE_SIEGE_INFO(0xC9),
    CASTLE_SIEGE_ATTACKER_LIST(0xCA),
    CASTLE_SIEGE_DEFENDER_LIST(0xCB),
    NICK_NAME_CHANGED(0xCC),
    PLEDGE_STATUS_CHANGED(0xCD),
    RELATION_CHANGED(0xCE),
    EVENT_TRIGGER(0xCF),
    MULTI_SELL_LIST(0xD0),
    SET_SUMMON_REMAIN_TIME(0xD1),
    PACKAGE_SENDABLE_LIST(0xD2),
    EARTHQUAKE(0xD3),
    FLY_TO_LOCATION(0xD4),
    BLOCK_LIST(0xD5),
    SPECIAL_CAMERA(0xD6),
    NORMAL_CAMERA(0xD7),
    SKILL_REMAIN_SEC(0xD8),
    NET_PING(0xD9),
    DICE(0xDA),
    SNOOP(0xDB),
    RECIPE_BOOK_ITEM_LIST(0xDC),
    RECIPE_ITEM_MAKE_INFO(0xDD),
    RECIPE_SHOP_MANAGE_LIST(0xDE),
    RECIPE_SHOP_SELL_LIST(0xDF),
    RECIPE_SHOP_ITEM_INFO(0xE0),
    RECIPE_SHOP_MSG(0xE1),
    SHOW_CALC(0xE2),
    MON_RACE_INFO(0xE3),
    HENNA_ITEM_INFO(0xE4),
    HENNA_INFO(0xE5),
    HENNA_UNEQUIP_LIST(0xE6),
    HENNA_UNEQUIP_INFO(0xE7),
    MACRO_LIST(0xE8),
    BUY_LIST_SEED(0xE9),
    SHOW_TOWN_MAP(0xEA),
    OBSERVER_START(0xEB),
    OBSERVER_END(0xEC),
    CHAIR_SIT(0xED),
    HENNA_EQUIP_LIST(0xEE),
    SELL_LIST_PROCURE(0xEF),
    GMHENNA_INFO(0xF0),
    RADAR_CONTROL(0xF1),
    CLIENT_SET_TIME(0xF2),
    CONFIRM_DLG(0xF3),
    PARTY_SPELLED(0xF4),
    SHOP_PREVIEW_LIST(0xF5),
    SHOP_PREVIEW_INFO(0xF6),
    CAMERA_MODE(0xF7),
    SHOW_XMAS_SEAL(0xF8),
    ETC_STATUS_UPDATE(0xF9),
    SHORT_BUFF_STATUS_UPDATE(0xFA),
    SSQ_STATUS(0xFB),
    PETITION_VOTE(0xFC),
    AGIT_DECO_INFO(0xFD),
    DUMMY3(0xFE),
    // ExPackets
    EX_DUMMY(0xFE, 0x00),
    EX_REGEN_MAX(0xFE, 0x01),
    EX_EVENT_MATCH_USER_INFO(0xFE, 0x02),
    EX_COLOSSEUM_FENCE_INFO(0xFE, 0x03),
    EX_EVENT_MATCH_SPELLED_INFO(0xFE, 0x04),
    EX_EVENT_MATCH_FIRECRACKER(0xFE, 0x05),
    EX_EVENT_MATCH_TEAM_UNLOCKED(0xFE, 0x06),
    EX_EVENT_MATCH_GMTEST(0xFE, 0x07),
    EX_PARTY_ROOM_MEMBER(0xFE, 0x08),
    EX_CLOSE_PARTY_ROOM(0xFE, 0x09),
    EX_MANAGE_PARTY_ROOM_MEMBER(0xFE, 0x0A),
    EX_EVENT_MATCH_LOCK_RESULT(0xFE, 0x0B),
    EX_AUTO_SOUL_SHOT(0xFE, 0x0C),
    EX_EVENT_MATCH_LIST(0xFE, 0x0D),
    EX_EVENT_MATCH_OBSERVER(0xFE, 0x0E),
    EX_EVENT_MATCH_MESSAGE(0xFE, 0x0F),
    EX_EVENT_MATCH_SCORE(0xFE, 0x10),
    EX_SERVER_PRIMITIVE(0xFE, 0x11),
    EX_OPEN_MPCC(0xFE, 0x12),
    EX_CLOSE_MPCC(0xFE, 0x13),
    EX_SHOW_CASTLE_INFO(0xFE, 0x14),
    EX_SHOW_FORTRESS_INFO(0xFE, 0x15),
    EX_SHOW_AGIT_INFO(0xFE, 0x16),
    EX_SHOW_FORTRESS_SIEGE_INFO(0xFE, 0x17),
    EX_PARTY_PET_WINDOW_ADD(0xFE, 0x18),
    EX_PARTY_PET_WINDOW_UPDATE(0xFE, 0x19),
    EX_ASK_JOIN_MPCC(0xFE, 0x1A),
    EX_PLEDGE_EMBLEM(0xFE, 0x1B),
    EX_EVENT_MATCH_TEAM_INFO(0xFE, 0x1C),
    EX_EVENT_MATCH_CREATE(0xFE, 0x1D),
    EX_FISHING_START(0xFE, 0x1E),
    EX_FISHING_END(0xFE, 0x1F),
    EX_SHOW_QUEST_INFO(0xFE, 0x20),
    EX_SHOW_QUEST_MARK(0xFE, 0x21),
    EX_SEND_MANOR_LIST(0xFE, 0x22),
    EX_SHOW_SEED_INFO(0xFE, 0x23),
    EX_SHOW_CROP_INFO(0xFE, 0x24),
    EX_SHOW_MANOR_DEFAULT_INFO(0xFE, 0x25),
    EX_SHOW_SEED_SETTING(0xFE, 0x26),
    EX_FISHING_START_COMBAT(0xFE, 0x27),
    EX_FISHING_HP_REGEN(0xFE, 0x28),
    EX_ENCHANT_SKILL_LIST(0xFE, 0x29),
    EX_ENCHANT_SKILL_INFO(0xFE, 0x2A),
    EX_SHOW_CROP_SETTING(0xFE, 0x2B),
    EX_SHOW_SELL_CROP_LIST(0xFE, 0x2C),
    EX_OLYMPIAD_MATCH_END(0xFE, 0x2D),
    EX_MAIL_ARRIVED(0xFE, 0x2E),
    EX_STORAGE_MAX_COUNT(0xFE, 0x2F),
    EX_EVENT_MATCH_MANAGE(0xFE, 0x30),
    EX_MULTI_PARTY_COMMAND_CHANNEL_INFO(0xFE, 0x31),
    EX_PCCAFE_POINT_INFO(0xFE, 0x32),
    EX_SET_COMPASS_ZONE_CODE(0xFE, 0x33),
    EX_GET_BOSS_RECORD(0xFE, 0x34),
    EX_ASK_JOIN_PARTY_ROOM(0xFE, 0x35),
    EX_LIST_PARTY_MATCHING_WAITING_ROOM(0xFE, 0x36),
    EX_SET_MPCC_ROUTING(0xFE, 0x37),
    EX_SHOW_ADVENTURER_GUIDE_BOOK(0xFE, 0x38),
    EX_SHOW_SCREEN_MESSAGE(0xFE, 0x39),
    PLEDGE_SKILL_LIST(0xFE, 0x3A),
    PLEDGE_SKILL_LIST_ADD(0xFE, 0x3B),
    PLEDGE_SKILL_LIST_REMOVE(0xFE, 0x3C),
    PLEDGE_POWER_GRADE_LIST(0xFE, 0x3D),
    PLEDGE_RECEIVE_POWER_INFO(0xFE, 0x3E),
    PLEDGE_RECEIVE_MEMBER_INFO(0xFE, 0x3F),
    PLEDGE_RECEIVE_WAR_LIST(0xFE, 0x40),
    PLEDGE_RECEIVE_SUB_PLEDGE_CREATED(0xFE, 0x41),
    EX_RED_SKY(0xFE, 0x42),
    PLEDGE_RECEIVE_UPDATE_POWER(0xFE, 0x43),
    FLY_SELF_DESTINATION(0xFE, 0x44),
    SHOW_PCCAFE_COUPON_SHOW_UI(0xFE, 0x45),
    EX_SEARCH_ORC(0xFE, 0x46),
    EX_CURSED_WEAPON_LIST(0xFE, 0x47),
    EX_CURSED_WEAPON_LOCATION(0xFE, 0x48),
    EX_RESTART_CLIENT(0xFE, 0x49),
    EX_REQUEST_HACK_SHIELD(0xFE, 0x4A),
    EX_USE_SHARED_GROUP_ITEM(0xFE, 0x4B),
    EX_MPCCSHOW_PARTY_MEMBER_INFO(0xFE, 0x4C),
    EX_DUEL_ASK_START(0xFE, 0x4D),
    EX_DUEL_READY(0xFE, 0x4E),
    EX_DUEL_START(0xFE, 0x4F),
    EX_DUEL_END(0xFE, 0x50),
    EX_DUEL_UPDATE_USER_INFO(0xFE, 0x51),
    EX_SHOW_VARIATION_MAKE_WINDOW(0xFE, 0x52),
    EX_SHOW_VARIATION_CANCEL_WINDOW(0xFE, 0x53),
    EX_PUT_ITEM_RESULT_FOR_VARIATION_MAKE(0xFE, 0x54),
    EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE(0xFE, 0x55),
    EX_PUT_COMMISSION_RESULT_FOR_VARIATION_MAKE(0xFE, 0x56),
    EX_VARIATION_RESULT(0xFE, 0x57),
    EX_PUT_ITEM_RESULT_FOR_VARIATION_CANCEL(0xFE, 0x58),
    EX_VARIATION_CANCEL_RESULT(0xFE, 0x59),
    EX_DUEL_ENEMY_RELATION(0xFE, 0x5A),
    EX_PLAY_ANIMATION(0xFE, 0x5B),
    EX_MPCCPARTY_INFO_UPDATE(0xFE, 0x5C),
    EX_PLAY_SCENE(0xFE, 0x5D),
    EX_SPAWN_EMITTER(0xFE, 0x5E),
    EX_ENCHANT_SKILL_INFO_DETAIL(0xFE, 0x5F),
    EX_BASIC_ACTION_LIST(0xFE, 0x60),
    EX_AIR_SHIP_INFO(0xFE, 0x61),
    EX_ATTRIBUTE_ENCHANT_RESULT(0xFE, 0x62),
    EX_CHOOSE_INVENTORY_ATTRIBUTE_ITEM(0xFE, 0x63),
    EX_GET_ON_AIR_SHIP(0xFE, 0x64),
    EX_GET_OFF_AIR_SHIP(0xFE, 0x65),
    EX_MOVE_TO_LOCATION_AIR_SHIP(0xFE, 0x66),
    EX_STOP_MOVE_AIR_SHIP(0xFE, 0x67),
    EX_SHOW_TRACE(0xFE, 0x68),
    EX_ITEM_AUCTION_INFO(0xFE, 0x69),
    EX_NEED_TO_CHANGE_NAME(0xFE, 0x6A),
    EX_PARTY_PET_WINDOW_DELETE(0xFE, 0x6B),
    EX_TUTORIAL_LIST(0xFE, 0x6C),
    EX_RP_ITEM_LINK(0xFE, 0x6D),
    EX_MOVE_TO_LOCATION_IN_AIR_SHIP(0xFE, 0x6E),
    EX_STOP_MOVE_IN_AIR_SHIP(0xFE, 0x6F),
    EX_VALIDATE_LOCATION_IN_AIR_SHIP(0xFE, 0x70),
    EX_UI_SETTING(0xFE, 0x71),
    EX_MOVE_TO_TARGET_IN_AIR_SHIP(0xFE, 0x72),
    EX_ATTACK_IN_AIR_SHIP(0xFE, 0x73),
    EX_MAGIC_SKILL_USE_IN_AIR_SHIP(0xFE, 0x74),
    EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW(0xFE, 0x75),
    EX_BASE_ATTRIBUTE_CANCEL_RESULT(0xFE, 0x76),
    EX_SUB_PLEDGET_SKILL_ADD(0xFE, 0x77),
    EX_RESPONSE_FREE_SERVER(0xFE, 0x78),
    EX_SHOW_PROCURE_CROP_DETAIL(0xFE, 0x79),
    EX_HERO_LIST(0xFE, 0x7A),
    EX_OLYMPIAD_USER_INFO(0xFE, 0x7B),
    EX_OLYMPIAD_SPELLED_INFO(0xFE, 0x7C),
    EX_OLYMPIAD_MODE(0xFE, 0x7D),
    EX_SHOW_FORTRESS_MAP_INFO(0xFE, 0x7E),
    EX_PVP_MATCH_RECORD(0xFE, 0x7F),
    EX_PVP_MATCH_USER_DIE(0xFE, 0x80),
    EX_PRIVATE_STORE_WHOLE_MSG(0xFE, 0x81),
    EX_PUT_ENCHANT_TARGET_ITEM_RESULT(0xFE, 0x82),
    EX_PUT_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x83),
    EX_CHANGE_NICKNAME_NCOLOR(0xFE, 0x84),
    EX_GET_BOOK_MARK_INFO(0xFE, 0x85),
    EX_NOTIFY_PREMIUM_ITEM(0xFE, 0x86),
    EX_GET_PREMIUM_ITEM_LIST(0xFE, 0x87),
    EX_PERIODIC_ITEM_LIST(0xFE, 0x88),
    EX_JUMP_TO_LOCATION(0xFE, 0x89),
    EX_PVP_MATCH_CCRECORD(0xFE, 0x8A),
    EX_PVP_MATCH_CCMY_RECORD(0xFE, 0x8B),
    EX_PVP_MATCH_CCRETIRE(0xFE, 0x8C),
    EX_SHOW_TERRITORY(0xFE, 0x8D),
    EX_NPC_QUEST_HTML_MESSAGE(0xFE, 0x8E),
    EX_SEND_UIEVENT(0xFE, 0x8F),
    EX_NOTIFY_BIRTH_DAY(0xFE, 0x90),
    EX_SHOW_DOMINION_REGISTRY(0xFE, 0x91),
    EX_REPLY_REGISTER_DOMINION(0xFE, 0x92),
    EX_REPLY_DOMINION_INFO(0xFE, 0x93),
    EX_SHOW_OWNTHING_POS(0xFE, 0x94),
    EX_CLEFT_LIST(0xFE, 0x95),
    EX_CLEFT_STATE(0xFE, 0x96),
    EX_DOMINION_CHANNEL_SET(0xFE, 0x97),
    EX_BLOCK_UP_SET_LIST(0xFE, 0x98),
    EX_BLOCK_UP_SET_STATE(0xFE, 0x99),
    EX_START_SCENE_PLAYER(0xFE, 0x9A),
    EX_AIR_SHIP_TELEPORT_LIST(0xFE, 0x9B),
    EX_MPCC_ROOM_INFO(0xFE, 0x9C),
    EX_LIST_MPCC_WAITING(0xFE, 0x9D),
    EX_DISSMISS_MPCC_ROOM(0xFE, 0x9E),
    EX_MANAGE_MPCC_ROOM_MEMBER(0xFE, 0x9F),
    EX_MPCC_ROOM_MEMBER(0xFE, 0xA0),
    EX_VITALITY_POINT_INFO(0xFE, 0xA1),
    EX_SHOW_SEED_MAP_INFO(0xFE, 0xA2),
    EX_MPCC_PARTYMASTER_LIST(0xFE, 0xA3),
    EX_DOMINION_WAR_START(0xFE, 0xA4),
    EX_DOMINION_WAR_END(0xFE, 0xA5),
    EX_SHOW_LINES(0xFE, 0xA6),
    EX_PARTY_MEMBER_RENAMED(0xFE, 0xA7),
    EX_ENCHANT_SKILL_RESULT(0xFE, 0xA8),
    EX_REFUND_LIST(0xFE, 0xA9),
    EX_NOTICE_POST_ARRIVED(0xFE, 0xAA),
    EX_SHOW_RECEIVED_POST_LIST(0xFE, 0xAB),
    EX_REPLY_RECEIVED_POST(0xFE, 0xAC),
    EX_SHOW_SENT_POST_LIST(0xFE, 0xAD),
    EX_REPLY_SENT_POST(0xFE, 0xAE),
    EX_RESPONSE_SHOW_STEP_ONE(0xFE, 0xAF),
    EX_RESPONSE_SHOW_STEP_TWO(0xFE, 0xB0),
    EX_RESPONSE_SHOW_CONTENTS(0xFE, 0xB1),
    EX_SHOW_PETITION_HTML(0xFE, 0xB2),
    EX_REPLY_POST_ITEM_LIST(0xFE, 0xB3),
    EX_CHANGE_POST_STATE(0xFE, 0xB4),
    EX_REPLY_WRITE_POST(0xFE, 0xB5),
    EX_INITIALIZE_SEED(0xFE, 0xB6),
    EX_RAID_RESERVE_RESULT(0xFE, 0xB7),
    EX_BUY_SELL_LIST(0xFE, 0xB8),
    EX_CLOSE_RAID_SOCKET(0xFE, 0xB9),
    EX_PRIVATE_MARKET_LIST(0xFE, 0xBA),
    EX_RAID_CHARACTER_SELECTED(0xFE, 0xBB),
    EX_ASK_COUPLE_ACTION(0xFE, 0xBC),
    EX_BR_BROADCAST_EVENT_STATE(0xFE, 0xBD),
    EX_BR_LOAD_EVENT_TOP_RANKERS(0xFE, 0xBE),
    EX_CHANGE_NPC_STATE(0xFE, 0xBF),
    EX_ASK_MODIFY_PARTY_LOOTING(0xFE, 0xC0),
    EX_SET_PARTY_LOOTING(0xFE, 0xC1),
    EX_ROTATION(0xFE, 0xC2),
    EX_CHANGE_CLIENT_EFFECT_INFO(0xFE, 0xC3),
    EX_MEMBERSHIP_INFO(0xFE, 0xC4),
    EX_REPLY_HAND_OVER_PARTY_MASTER(0xFE, 0xC5),
    EX_QUEST_NPC_LOG_LIST(0xFE, 0xC6),
    EX_QUEST_ITEM_LIST(0xFE, 0xC7),
    EX_GM_VIEW_QUEST_ITEM_LIST(0xFE, 0xC8),
    EX_RESTART_RESPONSE(0xFE, 0xC9),
    EX_VOTE_SYSTEM_INFO(0xFE, 0xCA),
    EX_SHUTTLE_INFO(0xFE, 0xCB),
    EX_SUTTLE_GET_ON(0xFE, 0xCC),
    EX_SUTTLE_GET_OFF(0xFE, 0xCD),
    EX_SUTTLE_MOVE(0xFE, 0xCE),
    EX_MOVE_TO_LOCATION_IN_SUTTLE(0xFE, 0xCF),
    EX_STOP_MOVE_IN_SHUTTLE(0xFE, 0xD0),
    EX_VALIDATE_LOCATION_IN_SHUTTLE(0xFE, 0xD1),
    EX_AGIT_AUCTION_CMD(0xFE, 0xD2),
    EX_CONFIRM_ADDING_POST_FRIEND(0xFE, 0xD3),
    EX_RECEIVE_SHOW_POST_FRIEND(0xFE, 0xD4),
    EX_RECEIVE_OLYMPIAD(0xFE, 0xD5),
    EX_BR_GAME_POINT(0xFE, 0xD6),
    EX_BR_PRODUCT_LIST(0xFE, 0xD7),
    EX_BR_PRODUCT_INFO(0xFE, 0xD8),
    EX_BR_BUY_PRODUCT(0xFE, 0xD9),
    EX_BR_PREMIUM_STATE(0xFE, 0xDA),
    EX_BR_EXTRA_USER_INFO(0xFE, 0xDB),
    EX_BR_BUFF_EVENT_STATE(0xFE, 0xDC),
    EX_BR_RECENT_PRODUCT_LIST(0xFE, 0xDD),
    EX_BR_MINIGAME_LOAD_SCORES(0xFE, 0xDE),
    EX_BR_AGATHION_ENERGY_INFO(0xFE, 0xDF),
    EX_SHOW_CHANNELING_EFFECT(0xFE, 0xE0),
    EX_GET_CRYSTALIZING_ESTIMATION(0xFE, 0xE1),
    EX_GET_CRYSTALIZING_FAIL(0xFE, 0xE2),
    EX_NAVIT_ADVENT_POINT_INFO(0xFE, 0xE3),
    EX_NAVIT_ADVENT_EFFECT(0xFE, 0xE4),
    EX_NAVIT_ADVENT_TIME_CHANGE(0xFE, 0xE5),
    EX_ABNORMAL_STATUS_UPDATE_FROM_TARGET(0xFE, 0xE6),
    EX_STOP_SCENE_PLAYER(0xFE, 0xE7),
    EX_FLY_MOVE(0xFE, 0xE8),
    EX_DYNAMIC_QUEST(0xFE, 0xE9),
    EX_SUBJOB_INFO(0xFE, 0xEA),
    EX_CHANGE_MPCOST(0xFE, 0xEB),
    EX_FRIEND_DETAIL_INFO(0xFE, 0xEC),
    EX_BLOCK_ADD_RESULT(0xFE, 0xED),
    EX_BLOCK_REMOVE_RESULT(0xFE, 0xEE),
    EX_BLOCK_DEFAIL_INFO(0xFE, 0xEF),
    EX_LOAD_INZONE_PARTY_HISTORY(0xFE, 0xF0),
    EX_FRIEND_NOTIFY_NAME_CHANGE(0xFE, 0xF1),
    EX_SHOW_COMMISSION(0xFE, 0xF2),
    EX_RESPONSE_COMMISSION_ITEM_LIST(0xFE, 0xF3),
    EX_RESPONSE_COMMISSION_INFO(0xFE, 0xF4),
    EX_RESPONSE_COMMISSION_REGISTER(0xFE, 0xF5),
    EX_RESPONSE_COMMISSION_DELETE(0xFE, 0xF6),
    EX_RESPONSE_COMMISSION_LIST(0xFE, 0xF7),
    EX_RESPONSE_COMMISSION_BUY_INFO(0xFE, 0xF8),
    EX_RESPONSE_COMMISSION_BUY_ITEM(0xFE, 0xF9),
    EX_ACQUIRABLE_SKILL_LIST_BY_CLASS(0xFE, 0xFA),
    EX_MAGIC_ATTACK_INFO(0xFE, 0xFB),
    EX_ACQUIRE_SKILL_INFO(0xFE, 0xFC),
    EX_NEW_SKILL_TO_LEARN_BY_LEVEL_UP(0xFE, 0xFD),
    EX_CALL_TO_CHANGE_CLASS(0xFE, 0xFE),
    EX_CHANGE_TO_AWAKENED_CLASS(0xFE, 0xFF),
    EX_TACTICAL_SIGN(0xFE, 0x100),
    EX_LOAD_STAT_WORLD_RANK(0xFE, 0x101),
    EX_LOAD_STAT_USER(0xFE, 0x102),
    EX_LOAD_STAT_HOT_LINK(0xFE, 0x103),
    EX_GET_WEB_SESSION_ID(0xFE, 0x104),
    EX_2ND_PASSWORD_CHECK(0xFE, 0x105),
    EX_2ND_PASSWORD_VERIFY(0xFE, 0x106),
    EX_2ND_PASSWORD_ACK(0xFE, 0x107),
    EX_FLY_MOVE_BROADCAST(0xFE, 0x108),
    EX_SHOW_USM(0xFE, 0x109),
    EX_SHOW_STAT_PAGE(0xFE, 0x10A),
    EX_IS_CHAR_NAME_CREATABLE(0xFE, 0x10B),
    EX_GOODS_INVENTORY_CHANGED_NOTI(0xFE, 0x10C),
    EX_GOODS_INVENTORY_INFO(0xFE, 0x10D),
    EX_GOODS_INVENTORY_RESULT(0xFE, 0x10E),
    EX_ALTER_SKILL_REQUEST(0xFE, 0x10F),
    EX_NOTIFY_FLY_MOVE_START(0xFE, 0x110),
    EX_DUMMY2(0xFE, 0x111),
    EX_CLOSE_COMMISSION(0xFE, 0x112),
    EX_CHANGE_ATTRIBUTE_ITEM_LIST(0xFE, 0x113),
    EX_CHANGE_ATTRIBUTE_INFO(0xFE, 0x114),
    EX_CHANGE_ATTRIBUTE_OK(0xFE, 0x115),
    EX_CHANGE_ATTRIBUTE_FAIL(0xFE, 0x116),
    EX_LIGHTING_CANDLE_EVENT(0xFE, 0x117),
    EX_VITALITY_EFFECT_INFO(0xFE, 0x118),
    EX_LOGIN_VITALITY_EFFECT_INFO(0xFE, 0x119),
    EX_BR_PRESENT_BUY_PRODUCT(0xFE, 0x11A),
    EX_MENTOR_LIST(0xFE, 0x11B),
    EX_MENTOR_ADD(0xFE, 0x11C),
    LIST_MENTEE_WAITING(0xFE, 0x11D),
    EX_INZONE_WAITING_INFO(0xFE, 0x11E),
    EX_CURIOUS_HOUSE_STATE(0xFE, 0x11F),
    EX_CURIOUS_HOUSE_ENTER(0xFE, 0x120),
    EX_CURIOUS_HOUSE_LEAVE(0xFE, 0x121),
    EX_CURIOUS_HOUSE_MEMBER_LIST(0xFE, 0x122),
    EX_CURIOUS_HOUSE_MEMBER_UPDATE(0xFE, 0x123),
    EX_CURIOUS_HOUSE_REMAIN_TIME(0xFE, 0x124),
    EX_CURIOUS_HOUSE_RESULT(0xFE, 0x125),
    EX_CURIOUS_HOUSE_OBSERVE_LIST(0xFE, 0x126),
    EX_CURIOUS_HOUSE_OBSERVE_MODE(0xFE, 0x127),
    EX_SYSSTRING(0xFE, 0x128),
    EX_CHOOSE_SHAPE_SHIFTING_ITEM(0xFE, 0x129),
    EX_PUT_SHAPE_SHIFTING_TARGET_ITEM_RESULT(0xFE, 0x12A),
    EX_PUT_SHAPE_SHIFTING_EXTRACTION_ITEM_RESULT(0xFE, 0x12B),
    EX_SHAPE_SHIFTING_RESULT(0xFE, 0x12C),
    EX_CASTLE_STATE(0xFE, 0x12D),
    EX_NCGUARD_RECEIVE_DATA_FROM_SERVER(0xFE, 0x12E),
    EX_KALIE_EVENT(0xFE, 0x12F),
    EX_KALIE_EVENT_JACKPOT_USER(0xFE, 0x130),
    EX_ABNORMAL_VISUAL_EFFECT_INFO(0xFE, 0x131),
    EX_NPC_INFO_SPEED(0xFE, 0x132),
    EX_SET_PLEDGE_EMBLEM_ACK(0xFE, 0x133),
    EX_SHOW_BEAUTY_MENU(0xFE, 0x134),
    EX_RESPONSE_BEAUTY_LIST(0xFE, 0x135),
    EX_RESPONSE_BEAUTY_REGIST_RESET(0xFE, 0x136),
    EX_RESPONSE_RESET_LIST(0xFE, 0x137),
    EX_SHUFFLE_SEED_AND_PUBLIC_KEY(0xFE, 0x138),
    EX_CHECK_SPEED_HACK(0xFE, 0x139),
    EX_BR_NEW_ICON_CASH_BTN_WND(0xFE, 0x13A),
    EX_EVENT_CAMPAIGN_INFO(0xFE, 0x13B),
    EX_UN_READ_MAIL_COUNT(0xFE, 0x13C),
    EX_PLEDGE_COUNT(0xFE, 0x13D),
    EX_ADENA_INVEN_COUNT(0xFE, 0x13E),
    EX_PLEDGE_RECRUIT_INFO(0xFE, 0x13F),
    EX_PLEDGE_RECRUIT_APPLY_INFO(0xFE, 0x140),
    EX_PLEDGE_RECRUIT_BOARD_SEARCH(0xFE, 0x141),
    EX_PLEDGE_RECRUIT_BOARD_DETAIL(0xFE, 0x142),
    EX_PLEDGE_WAITING_LIST_APPLIED(0xFE, 0x143),
    EX_PLEDGE_WAITING_LIST(0xFE, 0x144),
    EX_PLEDGE_WAITING_USER(0xFE, 0x145),
    EX_PLEDGE_DRAFT_LIST_SEARCH(0xFE, 0x146),
    EX_PLEDGE_WAITING_LIST_ALARM(0xFE, 0x147),
    EX_VALIDATE_ACTIVE_CHARACTER(0xFE, 0x148),
    EX_CLOSE_COMMISSION_REGISTER(0xFE, 0x149),
    EX_TELEPORT_TO_LOCATION_ACTIVATE(0xFE, 0x14A),
    EX_NOTIFY_WEB_PETITION_REPLY_ALARM(0xFE, 0x14B),
    EX_EVENT_SHOW_XMAS_WISH_CARD(0xFE, 0x14C),
    EX_INVITATION_EVENT_UI_SETTING(0xFE, 0x14D),
    EX_INVITATION_EVENT_INK_ENERGY(0xFE, 0x14E),
    EX_CHECK_ABUSING(0xFE, 0x14F),
    EX_GMVITALITY_EFFECT_INFO(0xFE, 0x150),
    EX_PATH_TO_AWAKENING_ALARM(0xFE, 0x151),
    EX_PUT_ENCHANT_SCROLL_ITEM_RESULT(0xFE, 0x152),
    EX_REMOVE_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x153),
    EX_SHOW_CARD_REWARD_LIST(0xFE, 0x154),
    EX_GM_VIEW_CHARACTER_INFO(0xFE, 0x155),
    EX_USER_INFO_EQUIP_SLOT(0xFE, 0x156),
    EX_USER_INFO_CUBIC(0xFE, 0x157),
    EX_USER_INFO_ABNORMAL_VISUAL_EFFECT(0xFE, 0x158),
    EX_USER_INFO_FISHING(0xFE, 0x159),
    EX_PARTY_SPELLED_INFO_UPDATE(0xFE, 0x15A),
    EX_DIVIDE_ADENA_START(0xFE, 0x15B),
    EX_DIVIDE_ADENA_CANCEL(0xFE, 0x15C),
    EX_DIVIDE_ADENA_DONE(0xFE, 0x15D),
    EX_PET_INFO(0xFE, 0x15E),
    EX_ACQUIRE_AP_SKILL_LIST(0xFE, 0x15F),
    EX_START_LUCKY_GAME(0xFE, 0x160),
    EX_BETTING_LUCKY_GAME_RESULT(0xFE, 0x161),
    EX_TRAINING_ZONE_ADMISSION(0xFE, 0x162),
    EX_TRAINING_ZONE_LEAVING(0xFE, 0x163),
    EX_PERIODIC_HENNA(0xFE, 0x164),
    EX_SHOW_AP_LIST_WND(0xFE, 0x165),
    EX_USER_INFO_INVEN_WEIGHT(0xFE, 0x166),
    EX_CLOSE_AP_LIST_WND(0xFE, 0x167),
    EX_ENCHANT_ONE_OK(0xFE, 0x168),
    EX_ENCHANT_ONE_FAIL(0xFE, 0x169),
    EX_ENCHANT_ONE_REMOVE_OK(0xFE, 0x16A),
    EX_ENCHANT_ONE_REMOVE_FAIL(0xFE, 0x16B),
    EX_ENCHANT_TWO_OK(0xFE, 0x16C),
    EX_ENCHANT_TWO_FAIL(0xFE, 0x16D),
    EX_ENCHANT_TWO_REMOVE_OK(0xFE, 0x16E),
    EX_ENCHANT_TWO_REMOVE_FAIL(0xFE, 0x16F),
    EX_ENCHANT_SUCESS(0xFE, 0x170),
    EX_ENCHANT_FAIL(0xFE, 0x171),
    EX_ENCHANT_RETRY_TO_PUT_ITEM_OK(0xFE, 0x172),
    EX_ENCHANT_RETRY_TO_PUT_ITEM_FAIL(0xFE, 0x173),
    EX_ACCOUNT_ATTENDANCE_INFO(0xFE, 0x174),
    EX_WORLD_CHAT_CNT(0xFE, 0x175),
    EX_ALCHEMY_SKILL_LIST(0xFE, 0x176),
    EX_TRY_MIX_CUBE(0xFE, 0x177),
    EX_ALCHEMY_CONVERSION(0xFE, 0x178),
    EX_BEAUTY_ITEM_LIST(0xFE, 0x179),
    EX_RECEIVE_CLIENT_INI(0xFE, 0x17A),
    EX_AUTO_FISH_AVAILABLE(0xFE, 0x17B),
    EX_CHANNEL_CHAT_ENTER_WORLD(0xFE, 0x17C),
    EX_CHANNEL_CHAT_PLEGE_INFO(0xFE, 0x17D),
    EX_VIP_ATTENDANCE_ITEM_LIST(0xFE, 0x17E),
    EX_CONFIRM_VIP_ATTENDANCE_CHECK(0xFE, 0x17F),
    EX_SHOW_ENSOUL_WINDOW(0xFE, 0x180),
    EX_ENSOUL_RESULT(0xFE, 0x181),
    EX_MULTISELL_RESULT(0xFE, 0x182),
    EX_CASTLE_WAR_SEASON_RESULT(0xFE, 0x183),
    EX_CASTLE_WAR_SEASON_REWARD(0xFE, 0x184),
    RECIVE_VIP_PRODUCT_LIST(0xFE, 0x185),
    RECIVE_VIP_LUCKY_GAME_INFO(0xFE, 0x186),
    RECIVE_VIP_LUCKY_GAME_ITEM_LIST(0xFE, 0x187),
    RECIVE_VIP_LUCKY_GAME_RESULT(0xFE, 0x188),
    RECIVE_VIP_INFO(0xFE, 0x189),
    RECIVE_VIP_INFO_REMAIN_TIME(0xFE, 0x18A),
    RECEIVE_VIP_BOT_CAPTCHA_IMAGE(0xFE, 0x18B),
    RECEIVE_VIP_BOT_CAPTCHA_ANSWER_RESULT(0xFE, 0x18C),
    EX_PLEDGE_SINGIN_FOR_OPEN_JOINING_METHOD(0xFE, 0x18D),
    EX_REQUEST_MATCH_ARENA(0xFE, 0x18E),
    EX_COMPLETE_MATCH_ARENA(0xFE, 0x18F),
    EX_CONFIRM_MATCH_ARENA(0xFE, 0x190),
    EX_CANCEL_MATCH_ARENA(0xFE, 0x191),
    EX_START_CHOOSE_CLASS_ARENA(0xFE, 0x192),
    EX_CHANGE_CLASS_ARENA(0xFE, 0x193),
    EX_CONFIRM_CLASS_ARENA(0xFE, 0x194),
    EX_START_BATTLE_READY_ARENA(0xFE, 0x195),
    EX_BATTLE_READY_ARENA(0xFE, 0x196),
    EX_DECO_NPC_INFO(0xFE, 0x197),
    EX_DECO_NPC_SET(0xFE, 0x198),
    EX_FACTION_INFO(0xFE, 0x199),
    EX_BATTLE_RESULT_ARENA(0xFE, 0x19A),
    EX_CLOSING_ARENA(0xFE, 0x19B),
    EX_CLOSED_ARENA(0xFE, 0x19C),
    EX_DIE_IN_ARENA(0xFE, 0x19D),
    DUMMY_PACKET(0xFE, 0x19E),
    EX_ARENA_DASHBOARD(0xFE, 0x19F),
    EX_ARENA_UPDATE_EQUIP_SLOT(0xFE, 0x1A0),
    EX_ARENA_KILL_INFO(0xFE, 0x1A1),
    EX_EXIT_ARENA(0xFE, 0x1A2),
    EX_BALTHUS_EVENT(0xFE, 0x1A3),
    EX_BALTHUS_EVENT_JACKPOT_USER(0xFE, 0x1A4),
    EX_PARTY_MATCHING_ROOM_HISTORY(0xFE, 0x1A5),
    EX_AI_CONTENT_UI_EVENT(0xFE, 0x1A6),
    EX_ARENA_CUSTOM_NOTIFICATION(0xFE, 0x1A7),
    EX_ONE_DAY_RECEIVE_REWARD_LIST(0xFE, 0x1A8),
    EX_CONNECTED_TIME_AND_GETTABLE_REWARD(0xFE, 0x1A9),
    EX_TODO_LIST_RECOMMAND(0xFE, 0x1AA),
    EX_TODO_LIST_INZONE(0xFE, 0x1AB),
    EX_TODO_LIST_HTML(0xFE, 0x1AC),
    EX_QUEUE_TICKET(0xFE, 0x1AD),
    EX_PLEDGE_BONUS_OPEN(0xFE, 0x1AE),
    EX_PLEDGE_BONUS_LIST(0xFE, 0x1AF),
    EX_PLEDGE_BONUS_MARK_RESET(0xFE, 0x1B0),
    EX_PLEDGE_BONUS_UPDATE(0xFE, 0x1B1),
    EX_SSO_AUTH_TOKEN(0xFE, 0x1B2),
    EX_QUEUE_TICKET_LOGIN(0xFE, 0x1B3),
    EX_ENSOUL_EXTRACTION_SHOW(0xFE, 0x1B4),
    EX_ENSOUL_EXTRACTION_RESULT(0xFE, 0x1B5),
    EX_FIELD_EVENT_STEP(0xFE, 0x1B6),
    EX_FIELD_EVENT_POINT(0xFE, 0x1B7),
    EX_FIELD_EVENT_EFFECT(0xFE, 0x1B8),
    EX_RAID_BOSS_SPAWN_INFO(0xFE, 0x1B9),
    EX_RAID_SERVER_INFO(0xFE, 0x1BA),
    EX_SHOW_AGIT_SIEGE_INFO(0xFE, 0x1BB),
    EX_ITEM_ACTION_STATUS(0xFE, 0x1BC),
    EX_MONSTER_BOOK(0xFE, 0x1BD),
    EX_MONSTER_BOOK_REWARD_ICON(0xFE, 0x1BE),
    EX_MONSTER_BOOK_REWARD_FACTION_UI(0xFE, 0x1BF),
    EX_MONSTER_BOOK_OPEN_RESULT(0xFE, 0x1C0),
    EX_MONSTER_BOOK_CLOSE_FORCE(0xFE, 0x1C1),
    EX_FACTION_LEVEL_UP_NOTIFY(0xFE, 0x1C2),
    EX_ITEM_AUCTION_NEXT_INFO(0xFE, 0x1C3),
    EX_ITEM_AUCTION_UPDATE_BIDDING_INFO(0xFE, 0x1C4),
    EX_PRIVATE_STORE_BUYING_RESULT(0xFE, 0x1C5),
    EX_PRIVATE_STORE_SELLING_RESULT(0xFE, 0x1C6),
    EX_ENTER_WORLD(0xFE, 0x1C7),
    EX_MATCH_GROUP(0xFE, 0x1C8),
    EX_MATCH_GROUP_ASK(0xFE, 0x1C9),
    EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA),
    EX_MATCH_GROUP_OUST(0xFE, 0x1CB),
    EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC),
    EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CD),
    EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1CE),
    EX_CARD_UPDOWN_GAME_START(0xFE, 0x1CF),
    EX_CARD_UPDOWN_PICK_RESULT(0xFE, 0x1D0),
    EX_CARD_UPDOWN_GAME_PREPARE_REWARD(0xFE, 0x1D1),
    EX_CARD_UPDOWN_GAME_REWARD_REPLY(0xFE, 0x1D2),
    EX_CARD_UPDOWN_GAME_QUIT(0xFE, 0x1D3),
    EX_ARENA_RANK_ALL(0xFE, 0x1D4),
    EX_ARENA_MYRANK(0xFE, 0x1D5),
    EX_PLEDGE_CLASSIC_RAID_INFO(0xFE, 0x1D6),
    EX_ARENA_OBSERVE(0xFE, 0x1D7),
    EX_HTML_WITH_NPC_VIEWPORT(0xFE, 0x1D8),
    EX_PLEDGE_CONTRIBUTION_RANK(0xFE, 0x1D9),
    EX_PLEDGE_CONTRIBUTION_INFO(0xFE, 0x1DA),
    EX_PLEDGE_CONTRIBUTION_REWARD(0xFE, 0x1DB),
    EX_PLEDGE_RAID_INFO(0xFE, 0x1DC),
    EX_PLEDGE_RAID_RANK(0xFE, 0x1DD),
    EX_PLEDGE_LEVEL_UP(0xFE, 0x1DE),
    EX_PLEDGE_SHOW_INFO_UPDATE(0xFE, 0x1DF),
    EX_PLEDGE_MISSION_INFO(0xFE, 0x1E0),
    EX_PLEDGE_MISSION_REWARD_COUNT(0xFE, 0x1E1),
    EX_PLEDGE_MASTERY_INFO(0xFE, 0x1E2),
    EX_PLEDGE_MASTERY_SET(0xFE, 0x1E3),
    EX_PLEDGE_MASTERY_RESET(0xFE, 0x1E4),
    EX_TUTORIAL_SHOW_ID(0xFE, 0x1E5),
    EX_PLEDGE_SKILL_INFO(0xFE, 0x1E6),
    EX_PLEDGE_SKILL_ACTIVATE(0xFE, 0x1E7),
    EX_PLEDGE_ITEM_LIST(0xFE, 0x1E8),
    EX_PLEDGE_ITEM_ACTIVATE(0xFE, 0x1E9),
    EX_PLEDGE_ANNOUNCE(0xFE, 0x1EA),
    EX_PLEDGE_ANNOUNCE_SET(0xFE, 0x1EB),
    EX_SET_PLEDGE_EMBLEM(0xFE, 0x1EC),
    EX_SHOW_CREATE_PLEDGE(0xFE, 0x1ED),
    EX_PLEDGE_ITEM_INFO(0xFE, 0x1EE),
    EX_PLEDGE_ITEM_BUY(0xFE, 0x1EF),
    EX_ELEMENTAL_SPIRIT_INFO(0xFE, 0x1F0),
    EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0xFE, 0x1F1),
    EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0xFE, 0x1F2),
    EX_ELEMENTAL_SPIRIT_EVOLUTION(0xFE, 0x1F3),
    EX_ELEMENTAL_SPIRIT_SET_TALENT(0xFE, 0x1F4),
    EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0xFE, 0x1F5),
    EX_ELEMENTAL_SPIRIT_ABSORB(0xFE, 0x1F6),
    EX_CHOOSE_LOCKED_ITEM(0xFE, 0x1F7),
    EX_LOCKED_RESULT(0xFE, 0x1F8),
    EX_ELEMENTAL_SPIRIT_EXTRACT(0xFE, 0x1F9), // 152
    EX_OLYMPIAD_INFO(0xFE, 0x1FA), // 152
    EX_OLYMPIAD_RECORD(0xFE, 0x1FB), // 152
    EX_OLYMPIAD_MATCH_INFO(0xFE, 0x1FC), // 152
    EX_ELEMENTAL_SPIRIT_GET_EXP(0xFE, 0x1FD), // 152
    EX_ITEM_ANNOUNCE(0xFE, 0x1FE), // 152
    EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1FF),
    EX_DRESS_HANGER_LIST(0xFE, 0x200),
    EX_USER_BAN_INFO(0xFE, 0x201),
    EX_TRY_ENCHANT_ARTIFACT_RESULT(0xFE, 0x202), // 152
    EX_XIGN_CODE(0xFE, 0x203), // 152
    EX_SHOW_UPGRADE_SYSTEM_NORMAL(0xFE, 0x204), // 196
    EX_UPGRADE_SYSTEM_NORMAL_RESULT(0xFE, 0x205), // 196
    EX_PURCHASE_LIMIT_SHOP_ITEM_L(0xFE, 0x206), // 196
    EX_PURCHASE_LIMIT_SHOP_ITEM_B(0xFE, 0x207), // 196
    EX_BLOODY_COIN_COUNT(0xFE, 0x208), // 196
    EX_CLASS_CHANGE_SET_ALARM(0xFE, 0x209), // 196
    EX_REQUEST_CLASS_CHANGE(0xFE, 0x20A), // 196
    EX_REQUEST_CLASS_CHANGE_VERIFY(0xFE, 0x20B), // 196
    EX_COSTUME_USE_ITEM(0xFE, 0x20C), // 196
    EX_CHOOSE_COSTUME_ITEM(0xFE, 0x20D), // 196
    EX_SEND_COSTUME_LIST(0xFE, 0x20E), // 196
    EX_SEND_COSTUME_LIST_FULL(0xFE, 0x20F), // 196
    EX_COSTUME_COLLECTION_SKILL_A(0xFE, 0x211), // 196
    EX_COSTUME_EVOLUTION(0xFE, 0x212), // 196
    EX_COSTUME_EXTRACT(0xFE, 0x213), // 196
    EX_COSTUME_LOCK(0xFE, 0x214), // 196
    EX_COSTUME_SHORTCUT_LIST(0xFE, 0x215), // 196
    EX_MAGICLAMP_EXP_INFO(0xFE, 0x216), // 196
    EX_MAGICLAMP_GAME_INFO(0xFE, 0x217), // 196
    EX_MAGICLAMP_GAME_RESULT(0xFE, 0x218), // 196
    EX_SHOW_TELEPORT_UI(0xFE, 0x219), // 228
    EX_ACTIVATE_AUTO_SHORTCUT(0xFE, 0x21A), // 228
    EX_PREMIUM_MANAGER_SHOW_HTML(0xFE, 0x21B), // 228
    EX_ACTIVATED_CURSED_TREASURE(0xFE, 0x21C), // 228
    EX_PAYBACK_LIST(0xFE, 0x21D), // 228
    EX_PAYBACK_GIVE_REWARD(0xFE, 0x21E), // 228
    EX_PAYBACK_UI_LAUNCHER(0xFE, 0x21F), // 228
    EX_DIE_INFO(0xFE, 0x220), // 228
    EX_AUTOPLAY_SETTING(0xFE, 0x221), // 228
    EX_AUTOPLAY_DO_MACRO(0xFE, 0x222), // 228
    EX_OLYMPIAD_MATCH_MAKING_RESULT(0xFE, 0x223), // 228
    EX_FESTIVAL_BM_INFO(0xFE, 0x224), // 228
    EX_FESTIVAL_BM_ALL_ITEM_INFO(0xFE, 0x225), // 228
    EX_FESTIVAL_BM_TOP_ITEM_INFO(0xFE, 0x226), // 228
    EX_FESTIVAL_BM_GAME(0xFE, 0x227), // 228
    EX_GACHA_SHOP_INFO(0xFE, 0x228), // 228
    EX_GACHA_SHOP_GACHA_GROUP(0xFE, 0x229), // 228
    EX_GACHA_SHOP_GACHA_ITEM(0xFE, 0x22A), // 228
    EX_TIME_RESTRICT_FIELD_LIST(0xFE, 0x22B), // 228
    EX_TIME_RESTRICT_FIELD_USER_E(0xFE, 0x22C), // 228
    EX_TIME_RESTRICT_FIELD_USER_C(0xFE, 0x22D), // 228
    EX_TIME_RESTRICT_FIELD_USER_A(0xFE, 0x22E), // 228
    EX_TIME_RESTRICT_FIELD_USER_E2(0xFE, 0x22F), // 228
    EX_RANKING_CHAR_INFO(0xFE, 0x230), // 228
    EX_RANKING_CHAR_HISTORY(0xFE, 0x231), // 228
    EX_RANKING_CHAR_RANKERS(0xFE, 0x232), // 228
    EX_BOW_ACTION_TO(0xFE, 0x233), // 228
    EX_LETTER_COLLECTOR_UI_LAUNCH(0xFE, 0x234), // 228
    EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235), // 228
    EX_UNK_236(0xFE, 0x236), // 228
    EX_UNK_237(0xFE, 0x237), // 228
    EX_UNK_238(0xFE, 0x238), // 228
    EX_UNK_239(0xFE, 0x239), // 228
    EX_PVPBOOK_LIST(0xFE, 0x23A); // 228
   
    private final int _id1;
    private final int _id2;
   
    OutgoingPackets(int id1)
    {
        this(id1, -1);
    }
   
    OutgoingPackets(int id1, int id2)
    {
        _id1 = id1;
        _id2 = id2;
    }
   
    public int getId1()
    {
        return _id1;
    }
   
    public int getId2()
    {
        return _id2;
    }
   
    public void writeId(PacketWriter packet)
    {
        packet.writeC(_id1);
        if (_id2 > 0)
        {
            packet.writeH(_id2);
        }
    }
   
    public static OutgoingPackets getPacket(int id1, int id2)
    {
        for (OutgoingPackets packet : values())
        {
            if ((packet.getId1() == id1) && (packet.getId2() == id2))
            {
                return packet;
            }
        }
        return null;
    }
}
Там запил на коленке, очень много несоответствий с оффом
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.

Похожие темы

Назад
Сверху Снизу