package handling;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
import tools.EncodingDetect;
public enum RecvPacketOpcode implements WritableIntValueHolder {
// 伺服器選單回覆[完成]
SERVERLIST_REQUEST(false, (short) 0x19),
// 自動登入轉向
LOGIN_REDIRECTOR(false, (short) 0x1A),
// 0x1B
// 0x1C
// 0x1D
// 玩家登入[完成]
PLAYER_LOGGEDIN(false, (short) 0x1E),
// 檢查角色名稱[完成]
CHECK_CHAR_NAME(true, (short) 0x1F),
// 0x20
// 0x21
// 建立終極冒險家[完成]
CREATE_ULTIMATE(false, (short) 0x22),
// 刪除角色[完成]
DELETE_CHAR(true, (short) 0x23),
// 0x24
// 0x25
// 0x26
// 0x27
// 0x28
// 客戶端錯誤信息回覆[完成]
CLIENT_FEEDBACK(false, (short) 0x29),
// 未知[完成-179] [01 00 00 00 00 00 00 00 00]
STRANGE_DATA(false, (short) 0x2A),
// 0x2B
// 0x2C 【設置OTP】
// 0x2D
// 0x2E
// 0x2F
// 0x30
// 0x31
// 0x32
// 0x33
// 打工系统[完成]
PART_TIME_JOB(true, (short) 0x34),
// 角色卡[完成]
CHARACTER_CARD(true, (short) 0x35),
// 未知[未知]
ENABLE_LV50_CHAR(true, (short) 0x36),
CREATE_LV50_CHAR(true, (short) 0x37),
// 客戶端驗證[完成-179]
CLIENT_HELLO(false, (short) 0x38),
// 密碼驗證[完成-179]
LOGIN_PASSWORD(false, (short) 0x39),
// 0x3A
// 0x3B
// 角色選單[完成-179]
CHARLIST_REQUEST(false, (short) 0x3C),
// 0x3D
// 選擇角色[完成-179]
CHAR_SELECT(true, (short) 0x3E),
// 建立角色[完成-179]
CREATE_CHAR(false, (short) 0x3F),
// Pong[完成-179]
PONG(false, (short) 0x40),
// 0x41
// 0x42
// 客戶端錯誤[完成] 【[ Name: %s, Job: %d, Field: %d, World: %d, Channel: %d ]\r\n】
CLIENT_ERROR(false, (short) 0x43),
// 0x44
// 0x45
// 0x46
// 0x47
// 0x48
// 0x49
// 0x4A
// 選擇性別[完成]
SET_GENDER(false, (short) 0x4B),
// 0x4C 【回到登入介面】[String(帳號)]
// 伺服器狀態[未知]
SERVERSTATUS_REQUEST(false, (short) 0x4D),
// 背景驗證[完成-179]
GET_SERVER(false, (short) 0x4E),
// 0x4F
// 0x50
// 0x51
// 0x52 【同意書】
// 客戶端開始(顯示視窗)[完成-179]
CLIENT_START(false, (short) 0x53),
// 變更地圖[完成-179]
CHANGE_MAP(true, (short) 0x56),
// 變更頻道[完成-179]
CHANGE_CHANNEL(true, (short) 0x57),
// 0x58
// 0x59
// 0x5A
// 購物商城[完成-179]
ENTER_CASH_SHOP(true, (short) 0x5B),
// PvP開始[完成]
ENTER_PVP(true, (short) 0x5C),
// 0x5D
// 阿斯旺開始[完成]
ENTER_AZWAN(true, (short) 0x5E),
// 阿斯旺活動
ENTER_AZWAN_EVENT(true, (short) 0x5F),
// 離開阿斯旺
LEAVE_AZWAN(true, (short) 0x60),
// PvP隊伍
ENTER_PVP_PARTY(true, (short) 0x61),
// 離開PvP[完成]
LEAVE_PVP(true, (short) 0x62),
// 玩家移動[完成-179]
MOVE_PLAYER(true, (short) 0x65),
// 0x66
// 取消椅子[完成-179]
CANCEL_CHAIR(true, (short) 0x67),
// 使用椅子[完成-179]
USE_CHAIR(true, (short) 0x68),
// 0x69
// 近距離攻擊[完成-179]
CLOSE_RANGE_ATTACK(true, (short) 0x6A),
// 遠距離攻擊[完成-179]
RANGED_ATTACK(true, (short) 0x6B),
// 魔法攻擊[完成-179]
MAGIC_ATTACK(true, (short) 0x6C),
// 被動攻擊(抗壓...)[推測]
PASSIVE_ATTACK(true, (short) 0x6D),
// 0x6E
// 0x6F
// 角色受傷[完成-179]
TAKE_DAMAGE(true, (short) 0x70),
// PvP攻擊[推測]
PVP_ATTACK(true, (short) 0x71),
// 普通聊天[完成-179]
GENERAL_CHAT(true, (short) 0x72),
// 關閉黑板[完成-179]
CLOSE_CHALKBOARD(true, (short) 0x73),
// 臉部情緒[完成-179]
FACE_EXPRESSION(true, (short) 0x74),
// 機器人臉部情緒[推測]
FACE_ANDROID(true, (short) 0x75),
// 使用物品效果[完成-179]
USE_ITEMEFFECT(true, (short) 0x76),
// 使用原地復活[推測]
WHEEL_OF_FORTUNE(true, (short) 0x77),
// 使用稱號效果[完成]
USE_TITLE(true, (short) 0x78),
// 0x79
// 變更天使破壞者外觀
ANGELIC_CHANGE(true, (short) 0x7A),
// 0x7B
// 0x7C
// 0x7D
// 0x7E
// 0x7F
// 0x80
// 0x81
// Npc交談[完成-179]
NPC_TALK(true, (short) 0x82),
// 0x83
// Npc詳細交談[完成-179]
NPC_TALK_MORE(true, (short) 0x84),
// Npc商店[完成-179]
NPC_SHOP(true, (short) 0x85),
// 倉庫[完成]
STORAGE(true, (short) 0x86),
// 精靈商人[完成]
USE_HIRED_MERCHANT(true, (short) 0x87),
// 精靈商人物品[完成]
MERCH_ITEM_STORE(true, (short) 0x88),
// 宅配操作[完成]
PACKAGE_OPERATION(true, (short) 0x89),
// 取消開放通道
MECH_CANCEL(true, (short) 0x8A),
// 0x8B
// 0x8C
// 0x8D
// 0x8E
// 0x8F
// 智慧貓頭鷹(5230000)[完成]
OWL(true, (short) 0x90),
// 智慧貓頭鷹購買
OWL_WARP(true, (short) 0x91),
// 0x92
// 管理員商店[完成-179]
ADMIN_SHOP(false, (short) 0x93),
// 向上整理[完成-179]
ITEM_SORT(true, (short) 0x94),
// 種類排序[完成-179]
ITEM_GATHER(true, (short) 0x95),
// 物品移動[完成-179]
ITEM_MOVE(true, (short) 0x96),
// 0x97 【輸入觀戰板內容】
// 移動道具至背包欄位[完成]
MOVE_BAG(true, (short) 0x98),
// 背包道具至道具欄位
SWITCH_BAG(true, (short) 0x99),
// 0x9A
// 使用物品[完成-179]
USE_ITEM(true, (short) 0x9B),
// 取消物品效果[完成]
CANCEL_ITEM_EFFECT(true, (short) 0x9C),
// 0x9D
// 使用召喚包(2100017)[完成-179]
USE_SUMMON_BAG(true, (short) 0x9E),
// 寵物飼料[完成]
PET_FOOD(true, (short) 0x9F),
// 提神飲料[推測]
USE_MOUNT_FOOD(true, (short) 0xA0),
// 使用腳本物品[完成-179]
USE_SCRIPTED_NPC_ITEM(true, (short) 0xA1),
// 使用製作書
USE_RECIPE(true, (short) 0xA2),
// 0xA3
// 0xA4
// 0xA5
// 使用商城道具[完成]
USE_CASH_ITEM(true, (short) 0xA6),
// 使用捕捉道具
USE_CATCH_ITEM(true, (short) 0xA7),
// 是否允許寵物拾取道具[完成]
ALLOW_PET_LOOT(true, (short) 0xA8),
// 是否允許寵物自動餵食[完成]
ALLOW_PET_AOTO_EAT(true, (short) 0xA9),
// 使用附加潛能印章
USE_ADDITIONAL_ITEM(true, (short) 0xAA),
// 0xAB
// 0xAC
// 使用技能書[完成]
USE_SKILL_BOOK(true, (short) 0xAD),
// 0xAE
// 0xAF
// 0xB0
// 經驗瓶(2230000)[完成]
USE_EXP_POTION(true, (short) 0xB1),
// 0xB2
// 0xB3
// 0xB4
// 0xB5
// 0xB6
// 智慧貓頭鷹開始搜索
USE_OWL_MINERVA(true, (short) 0xB7),
// 使用瞬移之石
USE_TELE_ROCK(true, (short) 0xB8),
// 使用回家卷軸[完成-179]
USE_RETURN_SCROLL(true, (short) 0xB9),
// 移動至梅斯特鎮[完成-179]
MOVE_ARDENTMILL(true, (short) 0xBA),
// 使用卷軸[完成]
USE_UPGRADE_SCROLL(true, (short) 0xBB),
// 使用卷軸保護卡(5064300)[完成]
USE_FLAG_SCROLL(true, (short) 0xBC),
// 使用裝備強化卷軸[完成]
USE_EQUIP_SCROLL(true, (short) 0xBD),
// 0xBE
// 0xBF
// 0xC0
// 使用潛能賦予卷軸[完成]
USE_POTENTIAL_SCROLL(true, (short) 0xC1),
// 使用附加潛在能力賦予卷軸[完成]
USE_BONUS_POTENTIAL_SCROLL(true, (short) 0xC2),
// 使用烙的印章(2049500)[完成]
USE_CARVED_SEAL(true, (short) 0xC3),
// 使用奇怪的方塊(2710000)[完成]
USE_CRAFTED_CUBE(true, (short) 0xC4),
// 0xC5
// 靈魂卷軸[2590002][完成]
USE_SOUL_ENCHANTER(true, (short) 0xC6),
// 靈魂寶珠[2591001][完成]
USE_SOUL_SCROLL(true, (short) 0xC7),
// 咒語的痕跡[4001832][完成]
EQUIPMENT_ENCHANT(true, (short) 0xC8),
// 0xC9
// 使用背包[4330009][完成]
USE_BAG(true, (short) 0xCA),
// 使用放大鏡[2460001][完成]
USE_MAGNIFY_GLASS(true, (short) 0xCB),
// 0xCC
// 0xCD
// 0xCE
// 0xCF
// 使用能力點數[完成-179]
DISTRIBUTE_AP(true, (short) 0xD0),
// 自動分配能力點數[完成-179]
AUTO_ASSIGN_AP(true, (short) 0xD1),
// 0xD2
// 自動恢復HP/MP[完成-179]
HEAL_OVER_TIME(true, (short) 0xD3),
// 0xD4 [Int][Long][Short][Short]
// 0xD5
// 使用技能點數[完成-179]
DISTRIBUTE_SP(true, (short) 0xD6),
// 角色使用技能[完成-179]
SPECIAL_SKILL(true, (short) 0xD7),
// 取消輔助效果[完成-179]
CANCEL_BUFF(true, (short) 0xD8),
// 技能效果[完成-179]
SKILL_EFFECT(true, (short) 0xD9),
// 楓幣掉落[完成-179]
MESO_DROP(true, (short) 0xDA),
// 添加名聲[推測]
GIVE_FAME(true, (short) 0xDB),
// 0xDC
// 角色信息[完成-179]
CHAR_INFO_REQUEST(true, (short) 0xDD),
// 召喚寵物[完成]
SPAWN_PET(true, (short) 0xDE),
// 0xDF
// 取消異常效果
CANCEL_DEBUFF(true, (short) 0xE0),
// 腳本地圖[完成]
CHANGE_MAP_SPECIAL(true, (short) 0xE1),
// 使用時空門
USE_INNER_PORTAL(true, (short) 0xE2),
// 0xE3
// 使用瞬移之石[完成]
TROCK_ADD_MAP(true, (short) 0xE4),
// 使用測謊機
LIE_DETECTOR(true, (short) 0xE5),
// 測謊機技能
LIE_DETECTOR_SKILL(true, (short) 0xE6),
// 確認測謊機驗證碼
LIE_DETECTOR_RESPONSE(true, (short) 0xE7),
// 重新整理測謊機驗證碼
LIE_DETECTOR_REFRESH(true, (short) 0xE8),
// 舉報玩家
REPORT(true, (short) 0xE9),
// 任務操作[完成-179]
QUEST_ACTION(true, (short) 0xEA),
// 重新領取勳章
REISSUE_MEDAL(true, (short) 0xEB),
// 輔助效果回應
BUFF_RESPONSE(true, (short) 0xEC),
// 0xED
// 0xEE
// 0xEF
// 0xF0
// 0xF1
// 技能組合[完成-179]
SKILL_MACRO(true, (short) 0xF2),
// 0xF3
// 獎勵道具[完成]
REWARD_ITEM(true, (short) 0xF4),
// 0xF5
// 0xF6
// 0xF7
// 鍛造技能
ITEM_MAKER(true, (short) 0xF8),
// 全部修理(勇士之村(辛德))
REPAIR_ALL(true, (short) 0xF9),
// 裝備修理
REPAIR(true, (short) 0xFA),
// 0xFB
// 0xFC
// 請求跟隨()
FOLLOW_REQUEST(true, (short) 0xFD),
// 0xFE
// 組隊任務獎勵[完成]
PQ_REWARD(true, (short) 0xFF),
// 請求跟隨回覆
FOLLOW_REPLY(true, (short) 0x100),
// 自動跟隨回覆()
AUTO_FOLLOW_REPLY(true, (short) 0x101),
// 能力值信息[完成]
PROFESSION_INFO(true, (short) 0x102),
// 使用培養皿[完成]
USE_POT(true, (short) 0x103),
// 清理培養皿[完成]
CLEAR_POT(true, (short) 0x104),
// 餵食培養皿
FEED_POT(true, (short) 0x105),
// 治癒培養皿
CURE_POT(true, (short) 0x106),
// 培養皿獎勵
REWARD_POT(true, (short) 0x107),
// 阿斯旺復活
AZWAN_REVIVE(true, (short) 0x108),
// 0x109
// 使用髮型卷[2540000][完成]
USE_COSMETIC(true, (short) 0x10A),
// 神之子狀態轉換
ZERO_STAT_CHANGE(true, (short) 0x118),
// 神之子
ZERO_CLOTHES(true, (short) 0x119),
// 使用能力傳播者
INNER_CIRCULATOR(true, (short) 0x11A),
// PvP重生
PVP_RESPAWN(true, (short) 0x11B),
// 0x11C
// 惡魔之力
GAIN_FORCE(true, (short) 0x11D),
// DF連擊
DF_COMBO(true, (short) 0x11E),
// 0x120
// 管理員聊天[完成]
ADMIN_CHAT(true, (short) 0x121),
// 隊伍聊天
PARTYCHAT(true, (short) 0x122),
// 悄悄話[完成]
COMMAND(true, (short) 0x123),
// 聊天招待[完成]
MESSENGER(true, (short) 0x124),
// 玩家互動[完成]
PLAYER_INTERACTION(true, (short) 0x125),
// 隊伍操作[完成]
PARTY_OPERATION(true, (short) 0x126),
// 接受/拒絕組隊邀請[完成]
DENY_PARTY_REQUEST(true, (short) 0x127),
// 允許組隊邀請
ALLOW_PARTY_INVITE(true, (short) 0x128),
// 建立遠征隊
EXPEDITION_OPERATION(true, (short) 0x129),
// 遠征隊搜尋
EXPEDITION_LISTING(true, (short) 0x12A),
// 公會操作[完成]
GUILD_OPERATION(true, (short) 0x12B),
// 拒絕公會邀請
DENY_GUILD_REQUEST(true, (short) 0x12C),
// 申請加入公會
JOIN_GUILD_REQUEST(true, (short) 0x12D),
// 取消加入公會
JOIN_GUILD_CANCEL(true, (short) 0x12E),
// 允許加入公會邀請
ALLOW_GUILD_JOIN(true, (short) 0x12F),
// 拒絕加入公會邀請
DENY_GUILD_JOIN(true, (short) 0x130),
// 0x131
// 0x132
// 管理員指令[完成]
ADMIN_COMMAND(true, (short) 0x133),
// 管理員指令
ADMIN_COMMAND2(true, (short) 0x134),
// 管理員日誌[完成]
ADMIN_LOG(true, (short) 0x135),
// 好友操作[完成]
BUDDYLIST_MODIFY(true, (short) 0x136),
// 0x137
// 0x138
// 0x139
// 訊息操作[完成]
NOTE_ACTION(true, (short) 0x13A),
// 0x13B
// 使用時空門[完成]
USE_DOOR(true, (short) 0x13C),
// 使用開放通道[完成]
USE_MECH_DOOR(true, (short) 0x13D),
// 0x13E
// 變更鍵盤設置[完成]
CHANGE_KEYMAP(true, (short) 0x13F),
// 猜拳遊戲[完成]
RPS_GAME(true, (short) 0x140),
// 0x141
// 0x142
// 0x143
// 戒指操作[完成]
RING_ACTION(true, (short) 0x144),
// 結婚操作[完成]
WEDDING_ACTION(true, (short) 0x145),
// 公會聯盟操作
ALLIANCE_OPERATION(true, (short) 0x146),
// 拒絕公會聯盟邀請
DENY_ALLIANCE_REQUEST(true, (short) 0x147),
// 移動至家族成員身邊
CYGNUS_SUMMON(true, (short) 0x158),
// 狂郎勇士連擊
ARAN_COMBO(true, (short) 0x159),
// 怪物CRC Key改變回傳[完成]
MONSTER_CRC_KEY(true, (short) 0x15A),
// 製作道具完成
CRAFT_DONE(true, (short) 0x15B),
// 製作道具效果
CRAFT_EFFECT(true, (short) 0x15C),
// 製作道具開始
CRAFT_MAKE(true, (short) 0x15D),
// 變更房間[完成-179]
CHANGE_ROOM_CHANNEL(true, (short) 0x162),
// 選擇技能
CHOOSE_SKILL(true, (short) 0x164),
// 技能竊取
SKILL_SWIPE(true, (short) 0x165),
// 檢視技能
VIEW_SKILLS(true, (short) 0x166),
// 撤銷偷竊技能
CANCEL_OUT_SWIPE(true, (short) 0x167),
// 更新超級技能(Done)
UPDATE_HYPER(true, (short) 0x175),
// 重置超級技能(Done)
RESET_HYPER(true, (short) 0x176),
// 返回選角界面[完成-179]
BACK_TO_CHARLIST(true, (short) 0x187),
// 幸運怪物(完成)
LUCKY_LUCKY_MONSTORY(true, (short) 0x191),
// 快速移動(非打開NPC)
QUICK_MOVE_SPECIAL(true, (short) 0x197),
// 活動卡片[完成]
EVENT_CARD(true, (short) 0x1A2), //0x19C+6(or 5 ?) 178 未知
// 凱撒快速鍵(176-Done)
KAISER_QUICK_KEY(true, (short) 0x1AF),
// 賓果[完成-179]
BINGO(true, (short) 0x1B3),
// 0x1B4
// 0x1B5
// 0x1B6
// 0x1B7
// 0x1B8
// 0x1B9
// 0x1BA
// 0x1BB
// 0x1BC
// 0x1BD
// 0x1BE
// 0x1BF
// 0x1C0
// 變更角色順序[完成-179]
CHANGE_CHAR_POSITION(true, (short) 0x1C1),
// 創角進入遊戲[完成-179]
CREACTE_CHAR_SELECT(true, (short) 0x1C2),
// 寵物移動[完成]
MOVE_PET(true, (short) 0x1C4),
// 寵物說話[完成]
PET_CHAT(true, (short) 0x1C5),
// 寵物指令[完成]
PET_COMMAND(true, (short) 0x1C6),
// 寵物拾取[完成]
PET_LOOT(true, (short) 0x1C7),
// 宠物自动吃药
PET_AUTO_POT(true, (short) 0x1C8),
// 寵物過濾
PET_IGNORE(true, (short) 0x1C9),
// 花狐移動[177-完成]
MOVE_HAKU(true, (short) 0x1CE),
// 花狐動作(包括變身)[177-完成](2015-3-26更正)
HAKU_ACTION(true, (short) 0x1CF),
// 影朋花狐使用輔助技能
HAKU_USE_BUFF(true, (short) 0x1D2),
//召唤兽移动[177-完成]
MOVE_SUMMON(true, (short) 0x1D5),
//召唤兽攻击(176.Done)
SUMMON_ATTACK(true, (short) 0x1D6),
//召唤兽伤害(176.Done)
DAMAGE_SUMMON(true, (short) 0x1D7),
//召唤兽技能(176.Done)
SUB_SUMMON(true, (short) 0x1D8),
//移除召唤兽(176.Done)
REMOVE_SUMMON(true, (short) 0x1D9),
//神龍移動[177-完成]
MOVE_DRAGON(true, (short) 0x1DF),
// 使用物品任務
USE_ITEM_QUEST(true, (short) 0x1E2),
// 機器人移動[完成]
MOVE_ANDROID(true, (short) 0x1E3),
//安卓情感回傳(176.Done)
ANDROID_EMOTION_RESULT(true, (short) 0x1E4),
//更新任務
UPDATE_QUEST(true, (short) 0x1E5),
QUEST_ITEM(true, (short) 0x1E6),
//快速欄按鍵(176.Done)
QUICK_SLOT(true, (short) 0x1EA),
//按下按鈕
BUTTON_PRESSED(true, (short) 0x1EB),
// 操控角色完成反饋[完成]
DIRECTION_COMPLETE(true, (short) 0x1ED),
//進程列表
SYSTEM_PROCESS_LIST(true, (short) 0x1F0),
//加載角色成功
LOAD_PLAYER_SCCUCESS(true, (short) 0x1FC),
// 箭座控制[完成]
ARROW_BLASTER_ACTION(true, (short) 0x1FF),
// 遊戲嚮導[完成-179]
GUIDE_TRANSFER(true, (short) 0x215),
// 0x216
// 0x217
// 0x218
// 0x219
// 新星世界[完成-179]
SHINING_STAR_WORLD(true, (short) 0x21A),
// Boss清單[完成-179]
BOSS_LIST(true, (short) 0x21B),
// 0x21E 【新星世界試穿衣服】
// 0x21F 【新星世界復原衣服】
// 公會佈告欄操作
BBS_OPERATION(true, (short) 0x23D),
// 離開遊戲[完成]
EXIT_GAME(true, (short) 0x242),
// 潘姆音樂[完成]
PAM_SONG(true, (short) 0x244),
// 聖誕團隊藥水[2212000][完成]
TRANSFORM_PLAYER(true, (short) 0x25D),
// 0x25E [Long]
// 進擊的巨人視窗選項反饋
ATTACK_ON_TITAN_SELECT(true, (short) 0x25F),
// 拍賣系統[完成-179]
ENTER_MTS(true, (short) 0x261),
// 使用兵法書(2370000)[完成]
SOLOMON(true, (short) 0x262),
// 獲得兵法書經驗值[完成]
GACH_EXP(true, (short) 0x263),
// 使用強化任意門[完成-179]
CHRONOSPHERE(true, (short) 0x271),
// 0x272
// 0x273
// 0x274
// 使用閃耀方塊(5062017)[完成]
USE_FLASH_CUBE(true, (short) 0x275),
// 0x276
// 0x277
// 0x278
// 0x279
// 0x27A
// 0x27B
// 0x27C
// 0x27D
// 怪物移動[完成-179]
MOVE_LIFE(true, (short) 0x28B),
// 怪物復仇
AUTO_AGGRO(true, (short) 0x28C),
// 怪物自爆
MONSTER_BOMB(true, (short) 0x28D),
// Npc動作(包括說話)[完成-179]
NPC_ACTION(true, (short) 0x2A3),
// 拾取物品[完成-179]
ITEM_PICKUP(true, (short) 0x2AA),
// 攻擊箱子
DAMAGE_REACTOR(true, (short) 0x2AD),
// 雙擊箱子
TOUCH_REACTOR(true, (short) 0x2AE),
// 召喚分解機[完成]
MAKE_EXTRACTOR(true, (short) 0x2B2),
// 玩家數據更新?
UPDATE_ENV(true, (short) 0x2B3),
// 滾雪球
SNOWBALL(true, (short) 0x2B6),
// 向左擊飛[完成]
LEFT_KNOCK_BACK(true, (short) 0x2B7),
//组队成员搜索
MEMBER_SEARCH(true, (short) 0x2CB),
//队伍搜索
PARTY_SEARCH(true, (short) 0x2CC),
// 開始採集[完成-179]
START_HARVEST(true, (short) 0x2D2),
// 停止採集[完成-179]
STOP_HARVEST(true, (short) 0x2D3),
// 快速移動(開啟Npc)[完成-179]
QUICK_MOVE(true, (short) 0x2D5),
//採集符文輪[完成-179]
TOUCH_RUNE(true, (short) 0x2D6),
//取得符文[完成-179]
USE_RUNE(true, (short) 0x2D7),
// 0x2CB 【楓葉戰士選擇模式】
// 玩家更新
PLAYER_UPDATE(true, (short) 0x347),
// 購物商城更新[完成]
CS_UPDATE(true, (short) 0x348),
// 購買點數道具[完成-179]
BUY_CS_ITEM(true, (short) 0x349),
// 使用兌換券[完成]
COUPON_CODE(true, (short) 0x34A),
// 0x34B
// 購物商城送禮[完成]
CS_GIFT(true, (short) 0x34C),
// 0x34D
// 儲存造型設計[完成]
CASH_CATEGORY(true, (short) 0x34E),
// 0x34F
// 0x350
// 0x351
// 0x352
// 0x353
// 0x354
// 0x355
// 0x356
// 創建角色二次密碼認證[完成-179]
CREATE_CHAR_2PW(true, (short) 0x357),
// 使用黃金鐵鎚[完成-179]
GOLDEN_HAMMER(true, (short) 0x366),
// 黃金鐵鎚使用完成
VICIOUS_HAMMER(true, (short) 0x367),
// 獲得獎勵[完成-179]
REWARD(true, (short) 0x3AD),
// 使用世界樹的祝福(2048500)
USE_ABYSS_SCROLL(true, (short) 0xB2),//175.1錯的
MONSTER_BOOK_DROPS(true, (short) 0x7FFE),//7C
// General
RSA_KEY(false, (short) 0x7FFE),
MAPLETV((short) 0x7FFE),
CRASH_INFO(false, (short) 0x7FFE),
// Login
GUEST_LOGIN(true, (short) 0x7FFE),
TOS(true, (short) 0x7FFE),
VIEW_SERVERLIST(false, (short) 0x7FFE),
REDISPLAY_SERVERLIST(true, (short) 0x7FFE),
CHAR_SELECT_NO_PIC(false, (short) 0x7FFE),
AUTH_REQUEST(false, (short) 0x7FFE),
VIEW_REGISTER_PIC(true, (short) 0x7FFE),
VIEW_SELECT_PIC(true, (short) 0x7FFE),
CLIENT_FAILED(false, (short) 0x7FFE),
ENABLE_SPECIAL_CREATION(true, (short) 0x7FFE),
CREATE_SPECIAL_CHAR(true, (short) 0x7FFE),
AUTH_SECOND_PASSWORD(true, (short) 0x7FFE),
WRONG_PASSWORD(false, (short) 0x7FFE),//v145
/*
* Channel Opcodes.
* Used for in-game packets.
*/
ENTER_FARM(true, (short) 0x7FFE),
CHANGE_CODEX_SET(true, (short) 0x7FFE),//7A
CODEX_UNK(true, (short) 0x7FFE),//7B
USE_NEBULITE(true, (short) 0xA0),//9E
USE_ALIEN_SOCKET(true, (short) 0xA1),//9F
USE_ALIEN_SOCKET_RESPONSE(true, (short) 0xA2),//A0
USE_NEBULITE_FUSION(true, (short) 0xA3),//A1
TOT_GUIDE(true, (short) 0xB4),//B6
GET_BOOK_INFO(true, (short) 0x999),//DC
USE_FAMILIAR(true, (short) 0x999),//DD
SPAWN_FAMILIAR(true, (short) 0xE1),//DE
RENAME_FAMILIAR(true, (short) 0xE2),//DF
PET_BUFF(true, (short) 0xE3),//E0
// BUFF_RESPONSE(true, (short) 0xEF),//EC
USE_TREASURE_CHEST(true, (short) 0x999),
REQUEST_FAMILY(true, (short) 0x146),//13D
OPEN_FAMILY(true, (short) 0x147),//13E
FAMILY_OPERATION(true, (short) 0x148),//13F
DELETE_JUNIOR(true, (short) 0x149),//140
DELETE_SENIOR(true, (short) 0x14A),//141
ACCEPT_FAMILY(true, (short) 0x14B),//142
USE_FAMILY(true, (short) 0x14C),//143
FAMILY_PRECEPT(true, (short) 0x14D),//144
FAMILY_SUMMON(true, (short) 0x14E),//145
SOLOMON_EXP(true, (short) 0x151),//151
NEW_YEAR_CARD(true, (short) 0x11E),
XMAS_SURPRISE(true, (short) 0x111),
TWIN_DRAGON_EGG(true, (short) 0x112),
YOUR_INFORMATION(true, (short) 0x16F),//163
FIND_FRIEND(true, (short) 0x170),//164
PINKBEAN_CHOCO_OPEN(true, (short) 0x171),//165
PINKBEAN_CHOCO_SUMMON(true, (short) 0x172),//166
BUY_SILENT_CRUSADE(true, (short) 0x127),
CASSANDRAS_COLLECTION(true, (short) 0x178),//new v145
BUDDY_ADD(true, (short) 0x1A2),
//
//HAKU_1D8(true, (short) 0x1D8),//test
//HAKU_1D9(true, (short) 0x1D9),//test
PVP_SUMMON(true, (short) 0x1CE),//1BE
MOVE_FAMILIAR(true, (short) 0x1DC),//1DC
TOUCH_FAMILIAR(true, (short) 0x1DD),//1DD
ATTACK_FAMILIAR(true, (short) 0x1DE),//1DE
REVEAL_FAMILIAR(true, (short) 0x1DF),//1DF
FRIENDLY_DAMAGE(true, (short) 0x21B),//211
HYPNOTIZE_DMG(true, (short) 0x21D),//213
MOB_BOMB(true, (short) 0x221),//217
MOB_NODE(true, (short) 0x222),//218
DISPLAY_NODE(true, (short) 0x223),//219
MONSTER_CARNIVAL(true, (short) 0x224),//21A
CLICK_REACTOR(true, (short) 0x23A),//230
CANDY_RANKING(true, (short) 0x185),
COCONUT(true, (short) 0x186),
SHIP_OBJECT(true, (short) 0x999),
PLACE_FARM_OBJECT(false, (short) 0x278),
FARM_SHOP_BUY(false, (short) 0x27D),
FARM_COMPLETE_QUEST(false, (short) 0x281),
FARM_NAME(false, (short) 0x282),
HARVEST_FARM_BUILDING(false, (short) 0x283),
USE_FARM_ITEM(false, (short) 0x284),
RENAME_MONSTER(false, (short) 0x999),
NURTURE_MONSTER(false, (short) 0x295),
EXIT_FARM(false, (short) 0x299),
FARM_QUEST_CHECK(false, (short) 0x29D),
FARM_FIRST_ENTRY(false, (short) 0x2A8),
PYRAMID_BUY_ITEM(true, (short) 0x999),
CLASS_COMPETITION(true, (short) 0x999),
MAGIC_WHEEL(true, (short) 0x999),
BLACK_FRIDAY(true, (short) 0x2BE),
RECEIVE_GIFT_EFFECT(true, (short) 0x2F5),//new v145
UPDATE_RED_LEAF(true, (short) 0x29C),
//Not Placed:
SPECIAL_STAT(false, (short) 0x10C),//107
DRESSUP_TIME(true, (short) 0x999),
OS_INFORMATION(true, (short) 0x1E6),//1D6
LUCKY_LOGOUT(true, (short) 0x2B6),
MESSENGER_RANKING(true, (short) 0x1DD),
UNKNOWN((short) 0x7FFE);
private short code;
@Override
public void setValue(short code) {
this.code = code;
}
@Override
public final short getValue() {
return code;
}
private final boolean CheckState;
private RecvPacketOpcode(short code) {
this.CheckState = true;
this.code = code;
}
private RecvPacketOpcode(final boolean CheckState, short code) {
this.CheckState = CheckState;
this.code = code;
}
public final boolean NeedsChecking() {
return CheckState;
}
public static String nameOf(short value) {
for (RecvPacketOpcode header : RecvPacketOpcode.values()) {
if (header.getValue() == value) {
return header.name();
}
}
return "UNKNOWN";
}
public static boolean isSpamHeader(RecvPacketOpcode header) {
switch (header.name()) {
case "PONG":
case "NPC_ACTION":
// case "ENTER"":
// case "CRASH_INFO":
// case "AUTH_REQUEST":
// case "SPECIAL_MOVE":
case "MOVE_LIFE":
case "MOVE_PLAYER":
case "MOVE_ANDROID":
// case "MOVE_DRAGON":
// case "MOVE_SUMMON":
// case "MOVE_FAMILIAR":
// case "MOVE_PET":
// case "CLOSE_RANGE_ATTACK":
// case "QUEST_ACTION":
case "HEAL_OVER_TIME":
// case "CHANGE_KEYMAP":
// case "USE_INNER_PORTAL":
// case "MOVE_HAKU":
// case "FRIENDLY_DAMAGE":
// case "CLOSE_RANGE_ATTACK": //todo code zero
// case "RANGED_ATTACK": //todo code zero
// case "ARAN_COMBO":
// case "SPECIAL_STAT":
// case "UPDATE_HYPER":
// case "RESET_HYPER":
// case "ANGELIC_CHANGE":
// case "DRESSUP_TIME":
case "BUTTON_PRESSED":
case "STRANGE_DATA":
case "SYSTEM_PROCESS_LIST":
return true;
default:
return false;
}
}
public static void loadValues() {
Properties props = new Properties();
try (FileInputStream fileInputStream = new FileInputStream("recvops.properties")) {
props.load(new BufferedReader(new InputStreamReader(fileInputStream, EncodingDetect.getJavaEncode("recvops.properties"))));
} catch (IOException ex) {
InputStream in = RecvPacketOpcode.class.getClassLoader().getResourceAsStream("recvops.properties");
if (in == null) {
System.out.println("未加載 recvops.properties 檔案, 使用內置RecvPacketOpcode Enum");
return;
}
try {
props.load(in);
} catch (IOException e) {
throw new RuntimeException("加載 recvops.properties 檔案出現錯誤", e);
}
}
ExternalCodeTableGetter.populateValues(props, values());
}
static {
loadValues();
}
}