packet

package
v0.0.0-...-382259f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2021 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InvalidServerHeader = 3
	RSAVerifyFailed     = 4
	ServerCheckFailed   = 24
)
View Source
const (
	Display_Ammo     = 0
	Display_Head     = 1
	Display_Neck     = 2
	Display_Shoulder = 3
	Display_Shirt    = 4
	Display_Chest    = 5
	Display_Waist    = 6
	Display_Legs     = 7
	Display_Feet     = 8
	Display_Wrist    = 9
	Display_Hands    = 10
	Display_Finger1  = 11
	Display_Finger2  = 12
	Display_Trinket1 = 13
	Display_Trinket2 = 14
	Display_Back     = 15
	Display_MainHand = 16
	Display_OffHand  = 17
	Display_Ranged   = 18
	Display_Tabard   = 19
	Display_Bag1     = 20
	Display_Bag2     = 21
	Display_Bag3     = 22
	Display_Bag4     = 23
)
View Source
const (
	GAMEOBJECT_TYPE_DOOR                  = 0
	GAMEOBJECT_TYPE_BUTTON                = 1
	GAMEOBJECT_TYPE_QUESTGIVER            = 2
	GAMEOBJECT_TYPE_CHEST                 = 3
	GAMEOBJECT_TYPE_BINDER                = 4
	GAMEOBJECT_TYPE_GENERIC               = 5
	GAMEOBJECT_TYPE_TRAP                  = 6
	GAMEOBJECT_TYPE_CHAIR                 = 7
	GAMEOBJECT_TYPE_SPELL_FOCUS           = 8
	GAMEOBJECT_TYPE_TEXT                  = 9
	GAMEOBJECT_TYPE_GOOBER                = 10
	GAMEOBJECT_TYPE_TRANSPORT             = 11
	GAMEOBJECT_TYPE_AREADAMAGE            = 12
	GAMEOBJECT_TYPE_CAMERA                = 13
	GAMEOBJECT_TYPE_MAP_OBJECT            = 14
	GAMEOBJECT_TYPE_MO_TRANSPORT          = 15
	GAMEOBJECT_TYPE_DUEL_ARBITER          = 16
	GAMEOBJECT_TYPE_FISHINGNODE           = 17
	GAMEOBJECT_TYPE_RITUAL                = 18
	GAMEOBJECT_TYPE_MAILBOX               = 19
	GAMEOBJECT_TYPE_AUCTIONHOUSE          = 20
	GAMEOBJECT_TYPE_GUARDPOST             = 21
	GAMEOBJECT_TYPE_SPELLCASTER           = 22
	GAMEOBJECT_TYPE_MEETINGSTONE          = 23
	GAMEOBJECT_TYPE_FLAGSTAND             = 24
	GAMEOBJECT_TYPE_FISHINGHOLE           = 25
	GAMEOBJECT_TYPE_FLAGDROP              = 26
	GAMEOBJECT_TYPE_MINI_GAME             = 27
	GAMEOBJECT_TYPE_LOTTERY_KIOSK         = 28
	GAMEOBJECT_TYPE_CAPTURE_POINT         = 29
	GAMEOBJECT_TYPE_AURA_GENERATOR        = 30
	GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY    = 31
	GAMEOBJECT_TYPE_BARBER_CHAIR          = 32
	GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33
	GAMEOBJECT_TYPE_GUILD_BANK            = 34
)
View Source
const (
	GossipIconChat      = iota // White chat bubble
	GossipIconVendor           // 1 Brown bag
	GossipIconTaxi             // 2 Flight
	GossipIconTrainer          // 3 Book
	GossipIconInteract1        // 4	Interaction wheel
	GossipIconInteract2        // 5	Interaction wheel
	GossipIconGold             // 6 Brown bag with yellow dot (gold)
	GossipIconTalk             // White chat bubble with black dots (...)
	GossipIconTabard           // 8 Tabard
	GossipIconBattle           // 9 Two swords
	GossipIconDot              // 10 Yellow dot
	GossipIconChat11           // 11	White chat bubble
	GossipIconChat12           // 12	White chat bubble
	GossipIconChat13           // 13	White chat bubble
	GossipIconInvalid14        // 14	INVALID - DO NOT USE
	GossipIconInvalid15        // 15	INVALID - DO NOT USE
	GossipIconChat16           // 16	White chat bubble
	GossipIconChat17           // 17	White chat bubble
	GossipIconChat18           // 18	White chat bubble
	GossipIconChat19           // 19	White chat bubble
	GossipIconChat20           // 20	White chat bubble
	GossipIconTransmog         // 21	Transmogrifier?
)
View Source
const (
	OPCODE_SIZE_OUTGOING = 6
	OPCODE_SIZE_INCOMING = 4
)
View Source
const (
	GroupNormal = 0
	GroupRaid   = 1
)
View Source
const (
	MemberOffline = 0x0000
	MemberOnline  = 0x0001 // Lua_UnitIsConnected
	MemberPVP     = 0x0002 // Lua_UnitIsPVP
	MemberDead    = 0x0004 // Lua_UnitIsDead
	MemberGhost   = 0x0008 // Lua_UnitIsGhost
	MemberPVPFFA  = 0x0010 // Lua_UnitIsPVPFreeForAll
	MemberZoneOut = 0x0020 // Lua_GetPlayerMapPosition
	MemberAFK     = 0x0040 // Lua_UnitIsAFK
	MemberDND     = 0x0080 // Lua_UnitIsDND
)
View Source
const (
	GroupUpdateNone            = 0x00000000 // nothing
	GroupUpdateStatus          = 0x00000001 // uint16, flags
	GroupUpdateCurrentHealth   = 0x00000002 // uint32
	GroupUpdateMaxHealth       = 0x00000004 // uint32
	GroupUpdatePowerType       = 0x00000008 // uint8
	GroupUpdateCurrentPower    = 0x00000010 // uint16
	GroupUpdateMaxPower        = 0x00000020 // uint16
	GroupUpdateLevel           = 0x00000040 // uint16
	GroupUpdateZone            = 0x00000080 // uint16
	GroupUpdatePosition        = 0x00000100 // uint16, uint16
	GroupUpdateAuras           = 0x00000200 // uint64 mask, for each bit set uint32 spellid + uint8 unk
	GroupUpdatePetGUID         = 0x00000400 // uint64 pet guid
	GroupUpdatePetName         = 0x00000800 // pet name, nullptr terminated string
	GroupUpdatePetModelID      = 0x00001000 // uint16, model id
	GroupUpdatePetCurrentHP    = 0x00002000 // uint32 pet cur health
	GroupUpdatePetMaxHP        = 0x00004000 // uint32 pet max health
	GroupUpdatePetPowerType    = 0x00008000 // uint8 pet power type
	GroupUpdatePetCurrentPower = 0x00010000 // uint16 pet cur power
	GroupUpdatePetMaxPower     = 0x00020000 // uint16 pet max power
	GroupUpdatePetAuras        = 0x00040000 // uint64 mask, for each bit set uint32 spellid + uint8 unk, pet auras...
	GroupUpdateVehicleSeat     = 0x00080000 // uint32 vehicle_seat_id (index from VehicleSeat.dbc)
	GroupUpdatePet             = 0x0007FC00 // all pet flags
	GroupUpdateFull            = 0x0007FFFF // all known flags
)
View Source
const (
	SocialFlagFriend  = 0x01
	SocialFlagIgnored = 0x02
	SocialFlagMuted   = 0x04
)
View Source
const (
	FRIEND_DB_ERROR         = 0x00
	FRIEND_LIST_FULL        = 0x01
	FRIEND_ONLINE           = 0x02
	FRIEND_OFFLINE          = 0x03
	FRIEND_NOT_FOUND        = 0x04
	FRIEND_REMOVED          = 0x05
	FRIEND_ADDED_ONLINE     = 0x06
	FRIEND_ADDED_OFFLINE    = 0x07
	FRIEND_ALREADY          = 0x08
	FRIEND_SELF             = 0x09
	FRIEND_ENEMY            = 0x0A
	FRIEND_IGNORE_FULL      = 0x0B
	FRIEND_IGNORE_SELF      = 0x0C
	FRIEND_IGNORE_NOT_FOUND = 0x0D
	FRIEND_IGNORE_ALREADY   = 0x0E
	FRIEND_IGNORE_ADDED     = 0x0F
	FRIEND_IGNORE_REMOVED   = 0x10
	FRIEND_IGNORE_AMBIGUOUS = 0x11 // That name is ambiguous, type more of the player's server name
	FRIEND_MUTE_FULL        = 0x12
	FRIEND_MUTE_SELF        = 0x13
	FRIEND_MUTE_NOT_FOUND   = 0x14
	FRIEND_MUTE_ALREADY     = 0x15
	FRIEND_MUTE_ADDED       = 0x16
	FRIEND_MUTE_REMOVED     = 0x17
	FRIEND_MUTE_AMBIGUOUS   = 0x18 // That name is ambiguous, type more of the player's server name
	FRIEND_UNK1             = 0x19 // no message at client
	FRIEND_UNK2             = 0x1A
	FRIEND_UNK3             = 0x1B
	FRIEND_UNKNOWN          = 0x1C // Unknown friend response from server
)
View Source
const (
	UNIT_STAND_STATE_STAND            = 0
	UNIT_STAND_STATE_SIT              = 1
	UNIT_STAND_STATE_SIT_CHAIR        = 2
	UNIT_STAND_STATE_SLEEP            = 3
	UNIT_STAND_STATE_SIT_LOW_CHAIR    = 4
	UNIT_STAND_STATE_SIT_MEDIUM_CHAIR = 5
	UNIT_STAND_STATE_SIT_HIGH_CHAIR   = 6
	UNIT_STAND_STATE_DEAD             = 7
	UNIT_STAND_STATE_KNEEL            = 8
	UNIT_STAND_STATE_CUSTOM           = 9 // confirm for vanilla - used on Cthun in later sniffs
)
View Source
const (

	// Client->Server
	WARDEN_CMSG_MODULE_MISSING      uint8 = 0
	WARDEN_CMSG_MODULE_OK           uint8 = 1
	WARDEN_CMSG_CHEAT_CHECKS_RESULT uint8 = 2
	WARDEN_CMSG_MEM_CHECKS_RESULT   uint8 = 3 // only sent if MEM_CHECK bytes doesn't match
	WARDEN_CMSG_HASH_RESULT         uint8 = 4
	WARDEN_CMSG_MODULE_FAILED       uint8 = 5 // this is sent when client failed to load uploaded module due to cache fail

	// Server->Client
	WARDEN_SMSG_MODULE_USE           uint8 = 0
	WARDEN_SMSG_MODULE_CACHE         uint8 = 1
	WARDEN_SMSG_CHEAT_CHECKS_REQUEST uint8 = 2
	WARDEN_SMSG_MODULE_INITIALIZE    uint8 = 3
	WARDEN_SMSG_MEM_CHECKS_REQUEST   uint8 = 4 // byte len; while (!EOF) { byte unk(1); byte index(++); string module(can be 0); int offset; byte len; byte[] bytes_to_compare[len]; }
	WARDEN_SMSG_HASH_REQUEST         uint8 = 5

	MEM_CHECK     uint8 = 0xF3 // 243: byte moduleNameIndex + uint Offset + byte Len (check to ensure memory isn't modified)
	PAGE_CHECK_A  uint8 = 0xB2 // 178: uint Seed + byte[20] SHA1 + uint Addr + byte Len (scans all pages for specified hash)
	PAGE_CHECK_B  uint8 = 0xBF // 191: uint Seed + byte[20] SHA1 + uint Addr + byte Len (scans only pages starts with MZ+PE headers for specified hash)
	MPQ_CHECK     uint8 = 0x98 // 152: byte fileNameIndex (check to ensure MPQ file isn't modified)
	LUA_STR_CHECK uint8 = 0x8B // 139: byte luaNameIndex (check to ensure LUA string isn't used)
	DRIVER_CHECK  uint8 = 0x71 // 113: uint Seed + byte[20] SHA1 + byte driverNameIndex (check to ensure driver isn't loaded)
	TIMING_CHECK  uint8 = 0x57 //  87: empty (check to ensure GetTickCount() isn't detoured)
	PROC_CHECK    uint8 = 0x7E // 126: uint Seed + byte[20] SHA1 + byte moluleNameIndex + byte procNameIndex + uint Offset + byte Len (check to ensure proc isn't detoured)
	MODULE_CHECK  uint8 = 0xD9 // 217: uint Seed + byte[20] SHA1 (check to ensure module isn't injected)
)
View Source
const (
	AUTH_OK                     uint8 = 0x0C
	AUTH_FAILED                 uint8 = 0x0D
	AUTH_REJECT                 uint8 = 0x0E
	AUTH_BAD_SERVER_PROOF       uint8 = 0x0F
	AUTH_UNAVAILABLE            uint8 = 0x10
	AUTH_SYSTEM_ERROR           uint8 = 0x11
	AUTH_BILLING_ERROR          uint8 = 0x12
	AUTH_BILLING_EXPIRED        uint8 = 0x13
	AUTH_VERSION_MISMATCH       uint8 = 0x14
	AUTH_UNKNOWN_ACCOUNT        uint8 = 0x15
	AUTH_INCORRECT_PASSWORD     uint8 = 0x16
	AUTH_SESSION_EXPIRED        uint8 = 0x17
	AUTH_SERVER_SHUTTING_DOWN   uint8 = 0x18
	AUTH_ALREADY_LOGGING_IN     uint8 = 0x19
	AUTH_LOGIN_SERVER_NOT_FOUND uint8 = 0x1A
	AUTH_WAIT_QUEUE             uint8 = 0x1B
	AUTH_BANNED                 uint8 = 0x1C
	AUTH_ALREADY_ONLINE         uint8 = 0x1D
	AUTH_NO_TIME                uint8 = 0x1E
	AUTH_DB_BUSY                uint8 = 0x1F
	AUTH_SUSPENDED              uint8 = 0x20
	AUTH_PARENTAL_CONTROL       uint8 = 0x21
	AUTH_LOCKED_ENFORCED        uint8 = 0x22
)
View Source
const MaxLength = 32766

A Frame's length cannot exceed this size

Variables

View Source
var CharacterFlagDescriptors = map[vsn.Build]map[CharacterFlags]uint32{
	5875: {
		CharacterLockedForTransfer: 0x00000004,
		CharacterHideHelm:          0x00000400,
		CharacterHideCloak:         0x00000800,
		CharacterGhost:             0x00002000,
		CharacterRename:            0x00004000,
		CharacterLockedByBilling:   0x01000000,
		CharacterDeclined:          0x02000000,
	},
}
View Source
var CharacterOpDescriptors = map[vsn.Build]CharacterOpDescriptor{
	3368: {
		CHAR_CREATE_IN_PROGRESS: 0x27,
		CHAR_CREATE_SUCCESS:     0x28,
		CHAR_CREATE_ERROR:       0x29,
		CHAR_CREATE_FAILED:      0x2A,
		CHAR_CREATE_NAME_IN_USE: 0x2B,
		CHAR_CREATE_DISABLED:    0x2C,
	},

	5875: {
		CHAR_CREATE_IN_PROGRESS:         0x2D,
		CHAR_CREATE_SUCCESS:             0x2E,
		CHAR_CREATE_ERROR:               0x2F,
		CHAR_CREATE_FAILED:              0x30,
		CHAR_CREATE_NAME_IN_USE:         0x31,
		CHAR_CREATE_DISABLED:            0x3A,
		CHAR_CREATE_PVP_TEAMS_VIOLATION: 0x33,
		CHAR_CREATE_SERVER_LIMIT:        0x34,
		CHAR_CREATE_ACCOUNT_LIMIT:       0x35,
		CHAR_CREATE_SERVER_QUEUE:        0x30,
		CHAR_CREATE_ONLY_EXISTING:       0x30,

		CHAR_DELETE_IN_PROGRESS:                0x38,
		CHAR_DELETE_SUCCESS:                    0x39,
		CHAR_DELETE_FAILED:                     0x3A,
		CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER: 0x3A,
		CHAR_DELETE_FAILED_GUILD_LEADER:        0x3A,

		CHAR_NAME_SUCCESS:                                      0x50,
		CHAR_NAME_FAILURE:                                      0x4F,
		CHAR_NAME_NO_NAME:                                      0x43,
		CHAR_NAME_TOO_SHORT:                                    0x44,
		CHAR_NAME_TOO_LONG:                                     0x45,
		CHAR_NAME_INVALID_CHARACTER:                            0x46,
		CHAR_NAME_MIXED_LANGUAGES:                              0x47,
		CHAR_NAME_PROFANE:                                      0x48,
		CHAR_NAME_RESERVED:                                     0x49,
		CHAR_NAME_INVALID_APOSTROPHE:                           0x4A,
		CHAR_NAME_MULTIPLE_APOSTROPHES:                         0x4B,
		CHAR_NAME_THREE_CONSECUTIVE:                            0x4C,
		CHAR_NAME_INVALID_SPACE:                                0x4D,
		CHAR_NAME_CONSECUTIVE_SPACES:                           0x4E,
		CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS:        0x4E,
		CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END: 0x4E,
		CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME:            0x4E,
	},

	8606: {
		CHAR_CREATE_IN_PROGRESS:         0x2E,
		CHAR_CREATE_SUCCESS:             0x2F,
		CHAR_CREATE_ERROR:               0x30,
		CHAR_CREATE_FAILED:              0x31,
		CHAR_CREATE_NAME_IN_USE:         0x32,
		CHAR_CREATE_DISABLED:            0x33,
		CHAR_CREATE_PVP_TEAMS_VIOLATION: 0x34,
		CHAR_CREATE_SERVER_LIMIT:        0x35,
		CHAR_CREATE_ACCOUNT_LIMIT:       0x36,
		CHAR_CREATE_SERVER_QUEUE:        0x37,
		CHAR_CREATE_ONLY_EXISTING:       0x38,
		CHAR_CREATE_EXPANSION:           0x39,

		CHAR_DELETE_IN_PROGRESS:                0x3A,
		CHAR_DELETE_SUCCESS:                    0x3B,
		CHAR_DELETE_FAILED:                     0x3C,
		CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER: 0x3D,
		CHAR_DELETE_FAILED_GUILD_LEADER:        0x3E,
		CHAR_DELETE_FAILED_ARENA_CAPTAIN:       0x3F,

		CHAR_NAME_SUCCESS:                                      0x4A,
		CHAR_NAME_FAILURE:                                      0x4B,
		CHAR_NAME_NO_NAME:                                      0x4C,
		CHAR_NAME_TOO_SHORT:                                    0x4D,
		CHAR_NAME_TOO_LONG:                                     0x4E,
		CHAR_NAME_INVALID_CHARACTER:                            0x4F,
		CHAR_NAME_MIXED_LANGUAGES:                              0x50,
		CHAR_NAME_PROFANE:                                      0x51,
		CHAR_NAME_RESERVED:                                     0x52,
		CHAR_NAME_INVALID_APOSTROPHE:                           0x53,
		CHAR_NAME_MULTIPLE_APOSTROPHES:                         0x54,
		CHAR_NAME_THREE_CONSECUTIVE:                            0x55,
		CHAR_NAME_INVALID_SPACE:                                0x56,
		CHAR_NAME_CONSECUTIVE_SPACES:                           0x57,
		CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS:        0x58,
		CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END: 0x59,
		CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME:            0x5A,
	},

	12340: {
		CHAR_CREATE_IN_PROGRESS:            46,
		CHAR_CREATE_SUCCESS:                47,
		CHAR_CREATE_ERROR:                  48,
		CHAR_CREATE_FAILED:                 49,
		CHAR_CREATE_NAME_IN_USE:            50,
		CHAR_CREATE_DISABLED:               51,
		CHAR_CREATE_PVP_TEAMS_VIOLATION:    52,
		CHAR_CREATE_SERVER_LIMIT:           53,
		CHAR_CREATE_ACCOUNT_LIMIT:          54,
		CHAR_CREATE_SERVER_QUEUE:           55,
		CHAR_CREATE_ONLY_EXISTING:          56,
		CHAR_CREATE_EXPANSION:              57,
		CHAR_CREATE_EXPANSION_CLASS:        58,
		CHAR_CREATE_LEVEL_REQUIREMENT:      59,
		CHAR_CREATE_UNIQUE_CLASS_LIMIT:     60,
		CHAR_CREATE_CHARACTER_IN_GUILD:     61,
		CHAR_CREATE_RESTRICTED_RACECLASS:   62,
		CHAR_CREATE_CHARACTER_CHOOSE_RACE:  63,
		CHAR_CREATE_CHARACTER_ARENA_LEADER: 64,
		CHAR_CREATE_CHARACTER_DELETE_MAIL:  65,
		CHAR_CREATE_CHARACTER_SWAP_FACTION: 66,
		CHAR_CREATE_CHARACTER_RACE_ONLY:    67,
		CHAR_CREATE_CHARACTER_GOLD_LIMIT:   68,
		CHAR_CREATE_FORCE_LOGIN:            69,

		CHAR_DELETE_IN_PROGRESS:                70,
		CHAR_DELETE_SUCCESS:                    71,
		CHAR_DELETE_FAILED:                     72,
		CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER: 73,
		CHAR_DELETE_FAILED_GUILD_LEADER:        74,
		CHAR_DELETE_FAILED_ARENA_CAPTAIN:       75,

		CHAR_NAME_SUCCESS:                                      87,
		CHAR_NAME_FAILURE:                                      88,
		CHAR_NAME_NO_NAME:                                      89,
		CHAR_NAME_TOO_SHORT:                                    90,
		CHAR_NAME_TOO_LONG:                                     91,
		CHAR_NAME_INVALID_CHARACTER:                            92,
		CHAR_NAME_MIXED_LANGUAGES:                              93,
		CHAR_NAME_PROFANE:                                      94,
		CHAR_NAME_RESERVED:                                     95,
		CHAR_NAME_INVALID_APOSTROPHE:                           96,
		CHAR_NAME_MULTIPLE_APOSTROPHES:                         97,
		CHAR_NAME_THREE_CONSECUTIVE:                            98,
		CHAR_NAME_INVALID_SPACE:                                99,
		CHAR_NAME_CONSECUTIVE_SPACES:                           100,
		CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS:        101,
		CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END: 102,
		CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME:            103,
	},
}
View Source
var ClientAddonData = []byte{}/* 217 elements not displayed */
View Source
var InventoryResultDescriptors = map[vsn.Build]InventoryResultDescriptor{
	5875: {
		EQUIP_ERR_OK:                            0,
		EQUIP_ERR_CANT_EQUIP_LEVEL_I:            1,
		EQUIP_ERR_CANT_EQUIP_SKILL:              2,
		EQUIP_ERR_WRONG_SLOT:                    3,
		EQUIP_ERR_BAG_FULL:                      4,
		EQUIP_ERR_BAG_IN_BAG:                    5,
		EQUIP_ERR_TRADE_EQUIPPED_BAG:            6,
		EQUIP_ERR_AMMO_ONLY:                     7,
		EQUIP_ERR_PROFICIENCY_NEEDED:            8,
		EQUIP_ERR_NO_SLOT_AVAILABLE:             9,
		EQUIP_ERR_CANT_EQUIP_EVER:               10,
		EQUIP_ERR_CANT_EQUIP_EVER_2:             11,
		EQUIP_ERR_NO_SLOT_AVAILABLE_2:           12,
		EQUIP_ERR_2HANDED_EQUIPPED:              13,
		EQUIP_ERR_2HSKILLNOTFOUND:               14,
		EQUIP_ERR_WRONG_BAG_TYPE:                15,
		EQUIP_ERR_WRONG_BAG_TYPE_2:              16,
		EQUIP_ERR_ITEM_MAX_COUNT:                17,
		EQUIP_ERR_NO_SLOT_AVAILABLE_3:           18,
		EQUIP_ERR_CANT_STACK:                    19,
		EQUIP_ERR_NOT_EQUIPPABLE:                20,
		EQUIP_ERR_CANT_SWAP:                     21,
		EQUIP_ERR_SLOT_EMPTY:                    22,
		EQUIP_ERR_ITEM_NOT_FOUND:                23,
		EQUIP_ERR_DROP_BOUND_ITEM:               24,
		EQUIP_ERR_OUT_OF_RANGE:                  25,
		EQUIP_ERR_TOO_FEW_TO_SPLIT:              26,
		EQUIP_ERR_SPLIT_FAILED:                  27,
		EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC: 28,
		EQUIP_ERR_NOT_ENOUGH_MONEY:              29,
		EQUIP_ERR_NOT_A_BAG:                     30,
		EQUIP_ERR_DESTROY_NONEMPTY_BAG:          31,
		EQUIP_ERR_NOT_OWNER:                     32,
		EQUIP_ERR_ONLY_ONE_QUIVER:               33,
		EQUIP_ERR_NO_BANK_SLOT:                  34,
		EQUIP_ERR_NO_BANK_HERE:                  35,
		EQUIP_ERR_ITEM_LOCKED:                   36,
		EQUIP_ERR_GENERIC_STUNNED:               37,
		EQUIP_ERR_PLAYER_DEAD:                   38,
		EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW:        39,
		EQUIP_ERR_INTERNAL_BAG_ERROR:            40,
		EQUIP_ERR_ONLY_ONE_BOLT:                 41,
		EQUIP_ERR_ONLY_ONE_AMMO:                 42,
		EQUIP_ERR_CANT_WRAP_STACKABLE:           43,
		EQUIP_ERR_CANT_WRAP_EQUIPPED:            44,
		EQUIP_ERR_CANT_WRAP_WRAPPED:             45,
		EQUIP_ERR_CANT_WRAP_BOUND:               46,
		EQUIP_ERR_CANT_WRAP_UNIQUE:              47,
		EQUIP_ERR_CANT_WRAP_BAGS:                48,
		EQUIP_ERR_LOOT_GONE:                     49,
		EQUIP_ERR_INV_FULL:                      50,
		EQUIP_ERR_BANK_FULL:                     51,
		EQUIP_ERR_VENDOR_SOLD_OUT:               52,
		EQUIP_ERR_BAG_FULL_2:                    53,
		EQUIP_ERR_ITEM_NOT_FOUND_2:              54,
		EQUIP_ERR_CANT_STACK_2:                  55,
		EQUIP_ERR_BAG_FULL_3:                    56,
		EQUIP_ERR_VENDOR_SOLD_OUT_2:             57,
		EQUIP_ERR_OBJECT_IS_BUSY:                58,
		EQUIP_NONE_3:                            59,
		EQUIP_ERR_NOT_IN_COMBAT:                 60,
		EQUIP_ERR_NOT_WHILE_DISARMED:            61,
		EQUIP_ERR_BAG_FULL_4:                    62,
		EQUIP_ERR_CANT_EQUIP_RANK:               63,
		EQUIP_ERR_CANT_EQUIP_REPUTATION:         64,
		EQUIP_ERR_TOO_MANY_SPECIAL_BAGS:         65,
		EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW:       66,
	},

	32978: {
		EQUIP_ERR_OK:                                           0,
		EQUIP_ERR_CANT_EQUIP_LEVEL_I:                           1,
		EQUIP_ERR_CANT_EQUIP_SKILL:                             2,
		EQUIP_ERR_WRONG_SLOT:                                   3,
		EQUIP_ERR_BAG_FULL:                                     4,
		EQUIP_ERR_BAG_IN_BAG:                                   5,
		EQUIP_ERR_TRADE_EQUIPPED_BAG:                           6,
		EQUIP_ERR_AMMO_ONLY:                                    7,
		EQUIP_ERR_PROFICIENCY_NEEDED:                           8,
		EQUIP_ERR_NO_SLOT_AVAILABLE:                            9,
		EQUIP_ERR_CANT_EQUIP_EVER:                              10,
		EQUIP_ERR_CANT_EQUIP_EVER_2:                            11,
		EQUIP_ERR_NO_SLOT_AVAILABLE_2:                          12,
		EQUIP_ERR_2HANDED_EQUIPPED:                             13,
		EQUIP_ERR_2HSKILLNOTFOUND:                              14,
		EQUIP_ERR_WRONG_BAG_TYPE:                               15,
		EQUIP_ERR_WRONG_BAG_TYPE_2:                             16,
		EQUIP_ERR_ITEM_MAX_COUNT:                               17,
		EQUIP_ERR_NO_SLOT_AVAILABLE_3:                          18,
		EQUIP_ERR_CANT_STACK:                                   19,
		EQUIP_ERR_NOT_EQUIPPABLE:                               20,
		EQUIP_ERR_CANT_SWAP:                                    21,
		EQUIP_ERR_SLOT_EMPTY:                                   22,
		EQUIP_ERR_ITEM_NOT_FOUND:                               23,
		EQUIP_ERR_DROP_BOUND_ITEM:                              24,
		EQUIP_ERR_OUT_OF_RANGE:                                 25,
		EQUIP_ERR_TOO_FEW_TO_SPLIT:                             26,
		EQUIP_ERR_SPLIT_FAILED:                                 27,
		EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC:                28,
		EQUIP_ERR_CANT_TRADE_GOLD:                              29,
		EQUIP_ERR_NOT_ENOUGH_MONEY:                             30,
		EQUIP_ERR_NOT_A_BAG:                                    31,
		EQUIP_ERR_DESTROY_NONEMPTY_BAG:                         32,
		EQUIP_ERR_NOT_OWNER:                                    33,
		EQUIP_ERR_ONLY_ONE_QUIVER:                              34,
		EQUIP_ERR_NO_BANK_SLOT:                                 35,
		EQUIP_ERR_NO_BANK_HERE:                                 36,
		EQUIP_ERR_ITEM_LOCKED:                                  37,
		EQUIP_ERR_GENERIC_STUNNED:                              38,
		EQUIP_ERR_PLAYER_DEAD:                                  39,
		EQUIP_ERR_CLIENT_LOCKED_OUT:                            40,
		EQUIP_ERR_INTERNAL_BAG_ERROR:                           41,
		EQUIP_ERR_ONLY_ONE_BOLT:                                42,
		EQUIP_ERR_ONLY_ONE_AMMO:                                43,
		EQUIP_ERR_CANT_WRAP_STACKABLE:                          44,
		EQUIP_ERR_CANT_WRAP_EQUIPPED:                           45,
		EQUIP_ERR_CANT_WRAP_WRAPPED:                            46,
		EQUIP_ERR_CANT_WRAP_BOUND:                              47,
		EQUIP_ERR_CANT_WRAP_UNIQUE:                             48,
		EQUIP_ERR_CANT_WRAP_BAGS:                               49,
		EQUIP_ERR_LOOT_GONE:                                    50,
		EQUIP_ERR_INV_FULL:                                     51,
		EQUIP_ERR_BANK_FULL:                                    52,
		EQUIP_ERR_VENDOR_SOLD_OUT:                              53,
		EQUIP_ERR_BAG_FULL_2:                                   54,
		EQUIP_ERR_ITEM_NOT_FOUND_2:                             55,
		EQUIP_ERR_CANT_STACK_2:                                 56,
		EQUIP_ERR_BAG_FULL_3:                                   57,
		EQUIP_ERR_VENDOR_SOLD_OUT_2:                            58,
		EQUIP_ERR_OBJECT_IS_BUSY:                               59,
		EQUIP_ERR_CANT_BE_DISENCHANTED:                         60,
		EQUIP_ERR_NOT_IN_COMBAT:                                61,
		EQUIP_ERR_NOT_WHILE_DISARMED:                           62,
		EQUIP_ERR_BAG_FULL_4:                                   63,
		EQUIP_ERR_CANT_EQUIP_RANK:                              64,
		EQUIP_ERR_CANT_EQUIP_REPUTATION:                        65,
		EQUIP_ERR_TOO_MANY_SPECIAL_BAGS:                        66,
		EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW:                      67,
		EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE:                       68,
		EQUIP_ERR_VENDOR_MISSING_TURNINS:                       69,
		EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS:                      70,
		EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS:                      71,
		EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED:                      72,
		EQUIP_ERR_MAIL_BOUND_ITEM:                              73,
		EQUIP_ERR_INTERNAL_BAG_ERROR_2:                         74,
		EQUIP_ERR_BAG_FULL_5:                                   75,
		EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED:             76,
		EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED:              77,
		EQUIP_ERR_TOO_MUCH_GOLD:                                78,
		EQUIP_ERR_NOT_DURING_ARENA_MATCH:                       79,
		EQUIP_ERR_TRADE_BOUND_ITEM:                             80,
		EQUIP_ERR_CANT_EQUIP_RATING:                            81,
		EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM:                 82,
		EQUIP_ERR_NOT_SAME_ACCOUNT:                             83,
		EQUIP_NONE_3:                                           84,
		EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS:    85,
		EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS: 86,
		EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED:             87,
		EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW:                       88,
		EQUIP_ERR_CANT_EQUIP_NEED_TALENT:                       89,
		EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS: 90,
		EQUIP_ERR_SHAPESHIFT_FORM_CANNOT_EQUIP:                 91,
		EQUIP_ERR_ITEM_INVENTORY_FULL_SATCHEL:                  92,
		EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW:              93,
		EQUIP_ERR_CANT_BUY_QUANTITY:                            94,
		EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED:                    95,
		EQUIP_ERR_REAGENT_BANK_FULL:                            96,
		EQUIP_ERR_REAGENT_BANK_LOCKED:                          97,
		EQUIP_ERR_WRONG_BAG_TYPE_3:                             98,
		EQUIP_ERR_CANT_USE_ITEM:                                99,
		EQUIP_ERR_CANT_BE_OBLITERATED:                          100,
		EQUIP_ERR_GUILD_BANK_CONJURED_ITEM:                     101,
		EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW:                       102,
		EQUIP_ERR_BAG_FULL_6:                                   103,
		EQUIP_ERR_CANT_BE_SCRAPPED:                             104,
		EQUIP_NONE_4:                                           105,
	},
}
View Source
var WorldTypeDescriptors = map[vsn.Build]map[WorldType]uint32{
	vsn.Alpha:   worldTypeDescriptor_Alpha,
	vsn.V1_12_1: worldTypeDescriptor_5875,
	vsn.V2_4_3:  worldTypeDescriptor_8606,
	vsn.V3_3_5a: worldTypeDescriptor_12340,
	vsn.V8_3_0:  worldTypeDescriptor_33369,
}

Functions

func BuildChecksum

func BuildChecksum(data []byte) uint32

func Compress

func Compress(input []byte) []byte

func ConvertWorldTypeToUint

func ConvertWorldTypeToUint(build vsn.Build, wt WorldType) (uint32, error)

func EncodeCharacterFlags

func EncodeCharacterFlags(build vsn.Build, out io.Writer, flags CharacterFlags) error

func EncodeCharacterOp

func EncodeCharacterOp(version vsn.Build, out *etc.Buffer, value CharacterOp) error

func EncodePartyResult

func EncodePartyResult(build vsn.Build, out io.Writer, pr PartyResult) error

func EquipLen

func EquipLen(build vsn.Build) int

func F32

func F32(u float32) uint32

func GetMSTime

func GetMSTime() uint32

func Hash

func Hash(input ...[]byte) []byte

func PutF32

func PutF32(u float32) []byte

func PutU32

func PutU32(u uint32) []byte

func ReverseBuffer

func ReverseBuffer(input []byte) []byte

func Uncompress

func Uncompress(input []byte) []byte

Types

type AddonInfo

type AddonInfo struct {
	Name    string
	Enabled bool
	CRC     uint32
	Unk1    uint32
}

type AddonList

type AddonList struct {
	Addons      []AddonInfo
	CurrentTime uint32
}

func ParseAddonList

func ParseAddonList(build vsn.Build, addonData []byte) (*AddonList, error)

type AuctionListItemsRequest

type AuctionListItemsRequest struct {
	Auctioneer          guid.GUID
	ListFrom            uint32
	SearchedName        string
	LevelMin            uint8
	LevelMax            uint8
	AuctionSlotID       uint32
	AuctionMainCategory uint32
	AuctionSubCategory  uint32
	Quality             uint32
	Usable              uint8
}

type AuctionListItemsResult

type AuctionListItemsResult struct {
	Listings   []AuctionListing
	TotalCount uint32
}

func UnmarshalAuctionListItemsResult

func UnmarshalAuctionListItemsResult(version vsn.Build, b []byte) (*AuctionListItemsResult, error)

type AuctionListing

type AuctionListing struct {
	ID                   uint32
	Entry                uint32
	EnchantmentID        uint32
	ItemRandomPropertyID uint32
	ItemSuffixFactor     uint32
	Owner                guid.GUID
	StartBid             econ.Money
	OutBid               econ.Money
	ExpireTime           uint32
	CurrentBidder        guid.GUID
	CurrentBid           econ.Money
}

func DecodeAuctionListing

func DecodeAuctionListing(version vsn.Build, e *etc.Buffer) (AuctionListing, error)

func (AuctionListing) Encode

func (al AuctionListing) Encode(version vsn.Build, e *etc.Buffer)

type AuthResponse

type AuthResponse struct {
	Result          uint32
	SuccessInfoInit bool
	WaitInfoInit    bool

	SuccessInfo struct {
		VirtualRealmAddress    uint32
		TimeRested             uint32
		ActiveExpansionLevel   uint32
		AccountExpansionLevel  uint32
		TimeSecondsUntilPCKick uint32
		CurrencyID             uint32
		Time                   uint32

		AvailableClasses []RaceClassAvailability

		IsExpansionTrial bool
		SuccessInfoTrial bool
	}
}

func (*AuthResponse) Encode

func (ar *AuthResponse) Encode(build vsn.Build, to *WorldPacket) error

type CMSGAuthSession

type CMSGAuthSession struct {
	Build           vsn.Build
	LoginServerID   uint32
	Account         string // 0-terminated string
	LoginServerType uint32
	Seed            []byte
	RegionID        uint32
	BattlegroupID   uint32
	RealmID         uint32
	DosResponse     uint64
	Digest          []byte
	AddonData       []byte
}

func UnmarshalCMSGAuthSession

func UnmarshalCMSGAuthSession(build vsn.Build, input []byte) (*CMSGAuthSession, error)

func (*CMSGAuthSession) Encode

func (c *CMSGAuthSession) Encode(build vsn.Build) []byte

type CharLoginResult

type CharLoginResult uint8
const (
	CharLoginNoWorld CharLoginResult = iota
	CharLoginSuccess
	CharLoginInProgress
	CharLoginDuplicateCharacter
	CharLoginNoInstances
	CharLoginDisabled
	CharLoginNoCharacter
	CharLoginLockedForTransfer
	CharLoginLockedByBilling
	CharLoginFailed
)

type Character

type Character struct {
	GUID       guid.GUID
	Name       string
	Race       Race
	Class      Class
	Gender     uint8
	Skin       uint8
	Face       uint8
	HairStyle  uint8
	HairColor  uint8
	FacialHair uint8
	Level      uint8
	Zone       uint32
	Map        uint32
	X, Y, Z    float32
	Guild      uint32
	Flags      CharacterFlags

	Customization uint32
	FirstLogin    bool

	PetModel, PetLevel, PetFamily uint32

	Equipment []Item
}

type CharacterFlags

type CharacterFlags uint32
const (
	CharacterLockedForTransfer CharacterFlags = 1 << iota
	CharacterHideHelm
	CharacterHideCloak
	CharacterGhost
	CharacterRename
	CharacterLockedByBilling
	CharacterDeclined
)

func DecodeCharacterFlags

func DecodeCharacterFlags(build vsn.Build, in io.Reader) (CharacterFlags, error)

type CharacterList

type CharacterList struct {
	Characters []Character
}

func UnmarshalCharacterList

func UnmarshalCharacterList(build vsn.Build, input []byte) (*CharacterList, error)

func (*CharacterList) Packet

func (c *CharacterList) Packet(version vsn.Build) *WorldPacket

type CharacterOp

type CharacterOp uint8
const (
	CHAR_CREATE_IN_PROGRESS CharacterOp = iota
	CHAR_CREATE_SUCCESS
	CHAR_CREATE_ERROR
	CHAR_CREATE_FAILED
	CHAR_CREATE_NAME_IN_USE
	CHAR_CREATE_DISABLED
	CHAR_CREATE_PVP_TEAMS_VIOLATION
	CHAR_CREATE_SERVER_LIMIT
	CHAR_CREATE_ACCOUNT_LIMIT
	CHAR_CREATE_SERVER_QUEUE
	CHAR_CREATE_ONLY_EXISTING
	CHAR_CREATE_EXPANSION
	CHAR_CREATE_EXPANSION_CLASS
	CHAR_CREATE_LEVEL_REQUIREMENT
	CHAR_CREATE_UNIQUE_CLASS_LIMIT
	CHAR_CREATE_CHARACTER_IN_GUILD
	CHAR_CREATE_RESTRICTED_RACECLASS
	CHAR_CREATE_CHARACTER_CHOOSE_RACE
	CHAR_CREATE_CHARACTER_ARENA_LEADER
	CHAR_CREATE_CHARACTER_DELETE_MAIL
	CHAR_CREATE_CHARACTER_SWAP_FACTION
	CHAR_CREATE_CHARACTER_RACE_ONLY
	CHAR_CREATE_CHARACTER_GOLD_LIMIT
	CHAR_CREATE_FORCE_LOGIN
	CHAR_NAME_SUCCESS
	CHAR_NAME_FAILURE
	CHAR_NAME_NO_NAME
	CHAR_NAME_TOO_SHORT
	CHAR_NAME_TOO_LONG
	CHAR_NAME_INVALID_CHARACTER
	CHAR_NAME_MIXED_LANGUAGES
	CHAR_NAME_PROFANE
	CHAR_NAME_RESERVED
	CHAR_NAME_INVALID_APOSTROPHE
	CHAR_NAME_MULTIPLE_APOSTROPHES
	CHAR_NAME_THREE_CONSECUTIVE
	CHAR_NAME_INVALID_SPACE
	CHAR_NAME_CONSECUTIVE_SPACES
	CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS
	CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END
	CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME
	CHAR_DELETE_IN_PROGRESS
	CHAR_DELETE_SUCCESS
	CHAR_DELETE_FAILED
	CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER
	CHAR_DELETE_FAILED_GUILD_LEADER
	CHAR_DELETE_FAILED_ARENA_CAPTAIN
	CHAR_CREATE_TRIAL
	CHAR_CREATE_TIMEOUT
	CHAR_CREATE_THROTTLE
	CHAR_CREATE_ALLIED_RACE_ACHIEVEMENT
	CHAR_CREATE_LEVEL_REQUIREMENT_DEMON_HUNTER
	CHAR_CREATE_CHARACTER_IN_COMMUNITY
)

func DecodeCharacterOp

func DecodeCharacterOp(version vsn.Build, in *etc.Buffer) (CharacterOp, error)

func (CharacterOp) String

func (i CharacterOp) String() string

type CharacterOpDescriptor

type CharacterOpDescriptor map[CharacterOp]uint8

type Class

type Class uint8
const (
	CLASS_NONE         Class = 0
	CLASS_WARRIOR      Class = 1
	CLASS_PALADIN      Class = 2
	CLASS_HUNTER       Class = 3
	CLASS_ROGUE        Class = 4
	CLASS_PRIEST       Class = 5
	CLASS_DEATH_KNIGHT Class = 6
	CLASS_SHAMAN       Class = 7
	CLASS_MAGE         Class = 8
	CLASS_WARLOCK      Class = 9
	CLASS_MONK         Class = 10
	CLASS_DRUID        Class = 11
	CLASS_DEMON_HUNTER Class = 12
)

func (Class) String

func (i Class) String() string

type ClassAvailability

type ClassAvailability struct {
	ClassID               uint8
	ActiveExpansionLevel  uint8
	AccountExpansionLevel uint8
}

type Connection

type Connection struct {
	Build      vsn.Build
	Conn       net.Conn
	Reader     *bufio.Reader
	SessionKey []byte
	Cipher     crypto.Cipher
	Server     bool
	// contains filtered or unexported fields
}

Connection provides a buffered communication pipe with which to send and receive partially encrypted packets through the game protocol. Starting in 8.0, packets are totally encrypted with AES-128 with the exception of length headers.

func NewConnection

func NewConnection(version vsn.Build, c net.Conn, sessionKey []byte, server bool) *Connection

func (*Connection) Close

func (c *Connection) Close() error

func (*Connection) ReadFrame

func (cl *Connection) ReadFrame() (Frame, error)

func (*Connection) SendFrame

func (cl *Connection) SendFrame(f Frame) error

type DCReason

type DCReason uint32

func (DCReason) Error

func (dc DCReason) Error() string

type Frame

type Frame struct {
	Type WorldType
	Data []byte
}

type FriendStatus

type FriendStatus uint8
const (
	FriendOffline FriendStatus = 0x00
	FriendOnline  FriendStatus = 0x01
	FriendAFK     FriendStatus = 0x02
	FriendDND     FriendStatus = 0x04
	FriendRAF     FriendStatus = 0x08
)

type Gossip

type Gossip struct {
	Speaker    guid.GUID
	TextEntry  uint32
	Items      []GossipItem
	QuestItems []GossipQuestItem
}

func NewGossip

func NewGossip(id guid.GUID, textID uint32) *Gossip

func (*Gossip) AddItem

func (g *Gossip) AddItem(itemID uint32, icon uint8, coded bool, message string)

func (*Gossip) GetSpeaker

func (g *Gossip) GetSpeaker() guid.GUID

func (*Gossip) Packet

func (g *Gossip) Packet(build vsn.Build) *WorldPacket

func (*Gossip) SetTextEntry

func (g *Gossip) SetTextEntry(entry uint32)

type GossipItem

type GossipItem struct {
	ItemID  uint32
	Icon    uint8
	Coded   bool
	Message string
}

type GossipQuestItem

type GossipQuestItem struct {
	QuestID    uint32
	QuestIcon  uint32
	QuestLevel int32
	QuestTitle string
}

type InventoryResult

type InventoryResult uint8
const (
	EQUIP_ERR_OK                               InventoryResult = iota
	EQUIP_ERR_CANT_EQUIP_LEVEL_I                               // You must reach level %d to use that item.
	EQUIP_ERR_CANT_EQUIP_SKILL                                 // You aren't skilled enough to use that item.
	EQUIP_ERR_WRONG_SLOT                                       // That item does not go in that slot.
	EQUIP_ERR_BAG_FULL                                         // That bag is full.
	EQUIP_ERR_BAG_IN_BAG                                       // Can't put non-empty bags in other bags.
	EQUIP_ERR_TRADE_EQUIPPED_BAG                               // You can't trade equipped bags.
	EQUIP_ERR_AMMO_ONLY                                        // Only ammo can go there.
	EQUIP_ERR_PROFICIENCY_NEEDED                               // You do not have the required proficiency for that item.
	EQUIP_ERR_NO_SLOT_AVAILABLE                                // No equipment slot is available for that item.
	EQUIP_ERR_CANT_EQUIP_EVER                                  // You can never use that item.
	EQUIP_ERR_CANT_EQUIP_EVER_2                                // You can never use that item.
	EQUIP_ERR_NO_SLOT_AVAILABLE_2                              // No equipment slot is available for that item.
	EQUIP_ERR_2HANDED_EQUIPPED                                 // Cannot equip that with a two-handed weapon.
	EQUIP_ERR_2HSKILLNOTFOUND                                  // You cannot dual-wield
	EQUIP_ERR_WRONG_BAG_TYPE                                   // That item doesn't go in that container.
	EQUIP_ERR_WRONG_BAG_TYPE_2                                 // That item doesn't go in that container.
	EQUIP_ERR_ITEM_MAX_COUNT                                   // You can't carry any more of those items.
	EQUIP_ERR_NO_SLOT_AVAILABLE_3                              // No equipment slot is available for that item.
	EQUIP_ERR_CANT_STACK                                       // This item cannot stack.
	EQUIP_ERR_NOT_EQUIPPABLE                                   // This item cannot be equipped.
	EQUIP_ERR_CANT_SWAP                                        // These items can't be swapped.
	EQUIP_ERR_SLOT_EMPTY                                       // That slot is empty.
	EQUIP_ERR_ITEM_NOT_FOUND                                   // The item was not found.
	EQUIP_ERR_DROP_BOUND_ITEM                                  // You can't drop a soulbound item.
	EQUIP_ERR_OUT_OF_RANGE                                     // Out of range.
	EQUIP_ERR_TOO_FEW_TO_SPLIT                                 // Tried to split more than number in stack.
	EQUIP_ERR_SPLIT_FAILED                                     // Couldn't split those items.
	EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC                    // Missing reagent
	EQUIP_ERR_CANT_TRADE_GOLD                                  // Gold may only be offered by one trader.
	EQUIP_ERR_NOT_ENOUGH_MONEY                                 // You don't have enough money.
	EQUIP_ERR_NOT_A_BAG                                        // Not a bag.
	EQUIP_ERR_DESTROY_NONEMPTY_BAG                             // You can only do that with empty bags.
	EQUIP_ERR_NOT_OWNER                                        // You don't own that item.
	EQUIP_ERR_ONLY_ONE_QUIVER                                  // You can only equip one quiver.
	EQUIP_ERR_NO_BANK_SLOT                                     // You must purchase that bag slot first
	EQUIP_ERR_NO_BANK_HERE                                     // You are too far away from a bank.
	EQUIP_ERR_ITEM_LOCKED                                      // Item is locked.
	EQUIP_ERR_GENERIC_STUNNED                                  // You are stunned
	EQUIP_ERR_PLAYER_DEAD                                      // You can't do that when you're dead.
	EQUIP_ERR_CLIENT_LOCKED_OUT                                // You can't do that right now.
	EQUIP_ERR_INTERNAL_BAG_ERROR                               // Internal Bag Error
	EQUIP_ERR_ONLY_ONE_BOLT                                    // You can only equip one quiver.
	EQUIP_ERR_ONLY_ONE_AMMO                                    // You can only equip one ammo pouch.
	EQUIP_ERR_CANT_WRAP_STACKABLE                              // Stackable items can't be wrapped.
	EQUIP_ERR_CANT_WRAP_EQUIPPED                               // Equipped items can't be wrapped.
	EQUIP_ERR_CANT_WRAP_WRAPPED                                // Wrapped items can't be wrapped.
	EQUIP_ERR_CANT_WRAP_BOUND                                  // Bound items can't be wrapped.
	EQUIP_ERR_CANT_WRAP_UNIQUE                                 // Unique items can't be wrapped.
	EQUIP_ERR_CANT_WRAP_BAGS                                   // Bags can't be wrapped.
	EQUIP_ERR_LOOT_GONE                                        // Already looted
	EQUIP_ERR_INV_FULL                                         // Inventory is full.
	EQUIP_ERR_BANK_FULL                                        // Your bank is full
	EQUIP_ERR_VENDOR_SOLD_OUT                                  // That item is currently sold out.
	EQUIP_ERR_BAG_FULL_2                                       // That bag is full.
	EQUIP_ERR_ITEM_NOT_FOUND_2                                 // The item was not found.
	EQUIP_ERR_CANT_STACK_2                                     // This item cannot stack.
	EQUIP_ERR_BAG_FULL_3                                       // That bag is full.
	EQUIP_ERR_VENDOR_SOLD_OUT_2                                // That item is currently sold out.
	EQUIP_ERR_OBJECT_IS_BUSY                                   // That object is busy.
	EQUIP_ERR_CANT_BE_DISENCHANTED                             // Item cannot be disenchanted
	EQUIP_ERR_NOT_IN_COMBAT                                    // You can't do that while in combat
	EQUIP_ERR_NOT_WHILE_DISARMED                               // You can't do that while disarmed
	EQUIP_ERR_BAG_FULL_4                                       // That bag is full.
	EQUIP_ERR_CANT_EQUIP_RANK                                  // You don't have the required rank for that item
	EQUIP_ERR_CANT_EQUIP_REPUTATION                            // You don't have the required reputation for that item
	EQUIP_ERR_TOO_MANY_SPECIAL_BAGS                            // You cannot equip another bag of that type
	EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW                          // You can't loot that item now.
	EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE                           // You cannot equip more than one of those.
	EQUIP_ERR_VENDOR_MISSING_TURNINS                           // You do not have the required items for that purchase
	EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS                          // You don't have enough honor points
	EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS                          // You don't have enough arena points
	EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED                          // You have the maximum number of those gems in your inventory or socketed into items.
	EQUIP_ERR_MAIL_BOUND_ITEM                                  // You can't mail soulbound items.
	EQUIP_ERR_INTERNAL_BAG_ERROR_2                             // Internal Bag Error
	EQUIP_ERR_BAG_FULL_5                                       // That bag is full.
	EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED                 // You have the maximum number of those gems socketed into equipped items.
	EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED                  // You cannot socket more than one of those gems into a single item.
	EQUIP_ERR_TOO_MUCH_GOLD                                    // At gold limit
	EQUIP_ERR_NOT_DURING_ARENA_MATCH                           // You can't do that while in an arena match
	EQUIP_ERR_TRADE_BOUND_ITEM                                 // You can't trade a soulbound item.
	EQUIP_ERR_CANT_EQUIP_RATING                                // You don't have the personal, team, or battleground rating required to buy that item
	EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM
	EQUIP_ERR_NOT_SAME_ACCOUNT // Account-bound items can only be given to your own characters.
	EQUIP_NONE_3
	EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS    // You can only carry %d %s
	EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS // You can only equip %d |4item:items in the %s category
	EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED             // Your level is too high to use that item
	EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW                       // You must reach level %d to purchase that item.
	EQUIP_ERR_CANT_EQUIP_NEED_TALENT                       // You do not have the required talent to equip that.
	EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS // You can only equip %d |4item:items in the %s category
	EQUIP_ERR_SHAPESHIFT_FORM_CANNOT_EQUIP                 // Cannot equip item in this form
	EQUIP_ERR_ITEM_INVENTORY_FULL_SATCHEL                  // Your inventory is full. Your satchel has been delivered to your mailbox.
	EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW              // Your level is too low to use that item
	EQUIP_ERR_CANT_BUY_QUANTITY                            // You can't buy the specified quantity of that item.
	EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED                    // Your purchased item is still waiting to be unlocked
	EQUIP_ERR_REAGENT_BANK_FULL                            // Your reagent bank is full
	EQUIP_ERR_REAGENT_BANK_LOCKED
	EQUIP_ERR_WRONG_BAG_TYPE_3         // That item doesn't go in that container.
	EQUIP_ERR_CANT_USE_ITEM            // You can't use that item.
	EQUIP_ERR_CANT_BE_OBLITERATED      // You can't obliterate that item
	EQUIP_ERR_GUILD_BANK_CONJURED_ITEM // You cannot store conjured items in the guild bank
	EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW   // You can't do that right now.
	EQUIP_ERR_BAG_FULL_6               // That bag is full.
	EQUIP_ERR_CANT_BE_SCRAPPED         // You can't scrap that item
	EQUIP_NONE_4
)

type InventoryResultDescriptor

type InventoryResultDescriptor map[InventoryResult]uint8

type Item

type Item struct {
	Model       uint32
	Type        uint8
	Enchantment uint32
}

type PackedXYZ

type PackedXYZ struct {
	X, Y, Z, O float32
}

type PartyOperation

type PartyOperation uint32
const (
	PartyInvite PartyOperation = 0
	PartyLeave  PartyOperation = 2
	PartySwap   PartyOperation = 4
)

type PartyResult

type PartyResult uint32
const (
	PartyOK PartyResult = iota
	PartyBadPlayerName
	PartyTargetNotInGroup
	PartyTargetNotInInstance
	PartyGroupFull
	PartyAlreadyInGroup
	PartyNotInGroup
	PartyNotLeader
	PartyWrongFaction
	PartyIgnoringYou
	PartyInviteRestricted
	PartyLFGPending
)

type PlayerFlags

type PlayerFlags uint32
const (
	PLAYER_FLAGS_NONE              PlayerFlags = 0x00000000
	PLAYER_FLAGS_GROUP_LEADER      PlayerFlags = 0x00000001
	PLAYER_FLAGS_AFK               PlayerFlags = 0x00000002
	PLAYER_FLAGS_DND               PlayerFlags = 0x00000004
	PLAYER_FLAGS_GM                PlayerFlags = 0x00000008
	PLAYER_FLAGS_GHOST             PlayerFlags = 0x00000010
	PLAYER_FLAGS_RESTING           PlayerFlags = 0x00000020
	PLAYER_FLAGS_UNK7              PlayerFlags = 0x00000040 // admin?
	PLAYER_FLAGS_FFA_PVP           PlayerFlags = 0x00000080
	PLAYER_FLAGS_CONTESTED_PVP     PlayerFlags = 0x00000100 // Player has been involved in a PvP combat and will be attacked by contested guards
	PLAYER_FLAGS_PVP_DESIRED       PlayerFlags = 0x00000200 // Stores player's permanent PvP flag preference
	PLAYER_FLAGS_HIDE_HELM         PlayerFlags = 0x00000400
	PLAYER_FLAGS_HIDE_CLOAK        PlayerFlags = 0x00000800
	PLAYER_FLAGS_PARTIAL_PLAY_TIME PlayerFlags = 0x00001000 // played long time
	PLAYER_FLAGS_NO_PLAY_TIME      PlayerFlags = 0x00002000 // played too long time
	PLAYER_FLAGS_UNK15             PlayerFlags = 0x00004000
	PLAYER_FLAGS_UNK16             PlayerFlags = 0x00008000 // strange visual effect (2.0.1) looks like PLAYER_FLAGS_GHOST flag
	PLAYER_FLAGS_SANCTUARY         PlayerFlags = 0x00010000 // player entered sanctuary
	PLAYER_FLAGS_TAXI_BENCHMARK    PlayerFlags = 0x00020000 // taxi benchmark mode (on/off) (2.0.1)
	PLAYER_FLAGS_PVP_TIMER         PlayerFlags = 0x00040000 // 3.0.2 pvp timer active (after you disable pvp manually)
)

func (PlayerFlags) String

func (p PlayerFlags) String() string

type Race

type Race uint8
const (
	RACE_NONE               Race = 0
	RACE_HUMAN              Race = 1
	RACE_ORC                Race = 2
	RACE_DWARF              Race = 3
	RACE_NIGHTELF           Race = 4
	RACE_UNDEAD_PLAYER      Race = 5
	RACE_TAUREN             Race = 6
	RACE_GNOME              Race = 7
	RACE_TROLL              Race = 8
	RACE_GOBLIN             Race = 9
	RACE_BLOODELF           Race = 10
	RACE_DRAENEI            Race = 11
	RACE_FEL_ORC            Race = 12
	RACE_NAGA               Race = 13
	RACE_BROKEN             Race = 14
	RACE_SKELETON           Race = 15
	RACE_VRYKUL             Race = 16
	RACE_TUSKARR            Race = 17
	RACE_FOREST_TROLL       Race = 18
	RACE_TAUNKA             Race = 19
	RACE_NORTHREND_SKELETON Race = 20
	RACE_ICE_TROLL          Race = 21
	RACE_WORGEN             Race = 22
	// RACE_GILNEAN        Race    = 23
	RACE_PANDAREN_NEUTRAL    Race = 24
	RACE_PANDAREN_ALLIANCE   Race = 25
	RACE_PANDAREN_HORDE      Race = 26
	RACE_NIGHTBORNE          Race = 27
	RACE_HIGHMOUNTAIN_TAUREN Race = 28
	RACE_VOID_ELF            Race = 29
	RACE_LIGHTFORGED_DRAENEI Race = 30
	RACE_ZANDALARI_TROLL     Race = 31
	RACE_KUL_TIRAN           Race = 32
	RACE_THIN_HUMAN          Race = 33
	RACE_DARK_IRON_DWARF     Race = 34
	//RACE_VULPERA            = 35,
	RACE_MAGHAR_ORC Race = 36

	GENDER_MALE   = 0
	GENDER_FEMALE = 1
	GENDER_NONE   = 2

	MANA      = 0
	RAGE      = 1
	FOCUS     = 2
	ENERGY    = 3
	HAPPINESS = 4
)

func (Race) String

func (i Race) String() string

type RaceClassAvailability

type RaceClassAvailability struct {
	RaceID  uint8
	Classes []ClassAvailability
}

type SHA1Randx

type SHA1Randx struct {
	Taken      uint32
	O0, O1, O2 []byte //20 long
}

func NewSHA1Randx

func NewSHA1Randx(buff []byte, size uint32) *SHA1Randx

func (*SHA1Randx) FillUp

func (x *SHA1Randx) FillUp()

func (*SHA1Randx) Generate

func (x *SHA1Randx) Generate(buf []byte, size int)

type SMSGAuthPacket

type SMSGAuthPacket struct {
	Type  WorldType
	Size  uint16
	Salt  []byte
	Seed1 []byte
	Seed2 []byte
}

func UnmarshalSMSGAuthPacket

func UnmarshalSMSGAuthPacket(build vsn.Build, input []byte) (*SMSGAuthPacket, error)

func (*SMSGAuthPacket) Encode

func (s *SMSGAuthPacket) Encode(version vsn.Build) []byte

type SMSGAuthResponse

type SMSGAuthResponse struct {
	Cmd       uint8
	WaitQueue uint32
}

func UnmarshalSMSGAuthResponse

func UnmarshalSMSGAuthResponse(input []byte) (*SMSGAuthResponse, error)

type VirtualRealmInfo

type VirtualRealmInfo struct {
	VirtualAddress uint32
	VirtualRealmNameInfo
}

type VirtualRealmNameInfo

type VirtualRealmNameInfo struct {
	IsLocal             bool
	IsInternalRealm     bool
	RealmNameActual     string
	RealmNameNormalized string
}

type WardenModuleInitRequest

type WardenModuleInitRequest struct {
	Command1       uint8
	Size1          uint16
	Checksum1      uint32
	Unk1           uint8
	Unk2           uint8
	Type           uint8
	StringLibrary1 uint8
	Function1      []uint32

	Command2       uint8
	Size2          uint16
	Checksum2      uint32
	Unk3           uint8
	Unk4           uint8
	StringLibrary2 uint8
	Function2      uint32
	Function2Set   uint8

	Command3       uint8
	Size3          uint16
	Checksum3      uint32
	Unk5           uint8
	Unk6           uint8
	StringLibrary3 uint8
	Function3      uint32
	Function3Set   uint8
}

func UnmarshalWardenModuleInitRequest

func UnmarshalWardenModuleInitRequest(input []byte) (*WardenModuleInitRequest, error)

func (*WardenModuleInitRequest) Encode

func (w *WardenModuleInitRequest) Encode() []byte

type WardenModuleTransfer

type WardenModuleTransfer struct {
	Command  uint8
	DataSize uint16
	Data     []byte
}

func (*WardenModuleTransfer) Encode

func (w *WardenModuleTransfer) Encode() []byte

type WardenModuleUse

type WardenModuleUse struct {
	Command   uint8
	ModuleID  []byte
	ModuleKey []byte
	Size      uint32
}

func UnmarshalWardenModuleUse

func UnmarshalWardenModuleUse(input []byte) (*WardenModuleUse, error)

func (*WardenModuleUse) Encode

func (w *WardenModuleUse) Encode() []byte

type Who

type Who struct {
	WhoMatches []WhoMatch
}

func (*Who) Packet

func (w *Who) Packet() *WorldPacket

type WhoMatch

type WhoMatch struct {
	PlayerName string
	GuildName  string
	Level      uint32
	Class      uint32
	Race       uint32
	ZoneID     uint32
}

type WhoRequest

type WhoRequest struct {
	LevelMin, LevelMax    uint32
	PlayerName, GuildName string
	RaceMask, ClassMask   uint32
	ZonesCount            uint32
	Strings               []string
}

func UnmarshalWhoRequest

func UnmarshalWhoRequest(b []byte) (*WhoRequest, error)

type WorldPacket

type WorldPacket struct {
	Type WorldType
	*etc.Buffer
	BitOffset uint8 // inverted
	Bits      uint8
}

func BuildServerAddonResponse

func BuildServerAddonResponse(build vsn.Build, info *AddonList) *WorldPacket

It is unknown why this is necessary

func NewWorldPacket

func NewWorldPacket(t WorldType) *WorldPacket

func (*WorldPacket) Finish

func (wp *WorldPacket) Finish() []byte

func (*WorldPacket) FlushBits

func (wp *WorldPacket) FlushBits()

func (*WorldPacket) Frame

func (wp *WorldPacket) Frame() Frame

func (*WorldPacket) ServerMessage

func (wp *WorldPacket) ServerMessage(build vsn.Build) []byte

func (*WorldPacket) WriteBit

func (wp *WorldPacket) WriteBit(t bool)

type WorldType

type WorldType uint16
const (
	CMSG_BOOTME WorldType = iota
	// Defunct codes from alpha:
	CMSG_TELEPORT_TO_PLAYER
	CMSG_EMBLAZON_TABARD_OBSOLETE
	CMSG_UNEMBLAZON_TABARD_OBSOLETE
	CMSG_MAKEMONSTERATTACKME
	CMSG_ENABLEDEBUGCOMBATLOGGING
	SMSG_ATTACKERSTATEUPDATEDEBUGINFO
	SMSG_ATTACKERSTATEUPDATEDEBUGINFOSPELL
	SMSG_ATTACKERSTATEUPDATEDEBUGINFOSPELLMISS
	SMSG_DEBUG_PLAYER_RANGE
	CMSG_LEVELUP_CHEAT
	CMSG_PVP_PORT
	CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE
	SMSG_MOVE_WORLDPORT_ACK
	MSG_MOVE_COLLIDE_REDIRECT
	MSG_MOVE_COLLIDE_STUCK
	MSG_MOVE_RESERVED_0
	MSG_MOVE_RESERVED_1
	MSG_MOVE_RESERVED_2
	CMSG_ENABLE_PVP
	MSG_MOVE_RESERVED_3
	SMSG_FORCE_SPEED_CHANGE
	CMSG_FORCE_SPEED_CHANGE_ACK
	CMSG_STUCK_OBSOLETE
	CMSG_TUTORIAL_SHOWN
	CMSG_PICKUP_ITEM
	CMSG_DROP_ITEM
	SMSG_INSPECT
	SMSG_CAST_RESULT
	SMSG_UPDATE_AURA_DURATION
	CMSG_SET_TARGET
	CMSG_START_USING_RANGED_WEAPON
	CMSG_STOP_USING_RANGED_WEAPON
	SMSG_ATTACKSWING_NOTSTANDING
	SMSG_VICTIMSTATEUPDATE_OBSOLETE
	SMSG_DAMAGE_DONE
	SMSG_DAMAGE_TAKEN
	SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE
	SMSG_HEALSPELL_ON_PLAYER
	SMSG_HEALSPELL_ON_PLAYERS_PET
	SMSG_DEATH_NOTIFY
	SMSG_PUREMOUNT_CANCELLED
	CMSG_PET_CAST_SPELL_OBSOLETE
	CMSG_NPC_OFFER_ITEM
	MSG_NPC_ACCEPT_ITEM
	SMSG_NPC_DECLINE_ITEM
	SMSG_NPC_ACCEPT_ITEM
	MSG_SPLIT_MONEY
	CMSG_SETWEAPONMODE
	CMSG_PLAYER_MACRO
	SMSG_PLAYER_MACRO
	CMSG_SCREENSHOT
	MSG_ADD_DYNAMIC_TARGET
	SMSG_MIRRORTIMERDAMAGELOG
	CMSG_RWHOIS
	MSG_LOOKING_FOR_GROUP
	CMSG_SET_LOOKING_FOR_GROUP
	MSG_NULL_ACTION
	SMSG_DEBUGINFOSPELLMISS_OBSOLETE
	CMSG_PVP_PORT_OBSOLETE
	MSG_MOVE_SET_RAW_POSITION_ACK
	OBSOLETE_DROP_ITEM
	CMSG_SET_TARGET_OBSOLETE
	CMSG_UNUSED
	CMSG_UNUSED2
	SMSG_DAMAGE_DONE_OBSOLETE
	SMSG_DAMAGE_TAKEN_OBSOLETE
	CMSG_SHEATHE_OBSOLETE
	SMSG_PUREMOUNT_CANCELLED_OBSOLETE
	CMSG_PLAYER_MACRO_OBSOLETE
	SMSG_PLAYER_MACRO_OBSOLETE
	CMSG_RWHOIS_OBSOLETE
	SMSG_POWERGAINLOG_OBSOLETE
	SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE
	SMSG_SET_REST_START
	SMSG_BATTLEFIELD_WIN_OBSOLETE
	SMSG_BATTLEFIELD_LOSE_OBSOLETE
	SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE
	CMSG_MEETINGSTONE_JOIN
	MSG_MEETINGSTONE_LEAVE
	CMSG_MEETINGSTONE_CHEAT
	SMSG_MEETINGSTONE_SETQUEUE
	CMSG_MEETINGSTONE_INFO
	SMSG_MEETINGSTONE_COMPLETE
	SMSG_MEETINGSTONE_IN_PROGRESS
	SMSG_MEETINGSTONE_MEMBER_ADDED
	MSG_MOVE_TOGGLE_GRAVITY_CHEAT
	CMSG_TOGGLE_HELM
	CMSG_TOGGLE_CLOAK
	SMSG_MEETINGSTONE_JOINFAILED
	SMSG_MOVE_SET_FLIGHT
	SMSG_MOVE_UNSET_FLIGHT
	CMSG_MOVE_FLIGHT_ACK
	SMSG_INIT_EXTRA_AURA_INFO
	SMSG_SET_EXTRA_AURA_INFO
	SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE
	CMSG_GROUPACTION_THROTTLED
	// TBC codes
	UMSG_UPDATE_ARENA_TEAM_OBSOLETE
	CMSG_LFG_SET_AUTOJOIN
	CMSG_LFG_CLEAR_AUTOJOIN
	CMSG_LFM_SET_AUTOFILL
	CMSG_LFM_CLEAR_AUTOFILL
	CMSG_ACCEPT_LFG_MATCH
	CMSG_DECLINE_LFG_MATCH
	CMSG_CANCEL_PENDING_LFG
	CMSG_CLEAR_LOOKING_FOR_GROUP
	CMSG_CLEAR_LOOKING_FOR_MORE
	CMSG_SET_LOOKING_FOR_MORE
	SMSG_LFG_TIMEDOUT
	SMSG_LFG_OTHER_TIMEDOUT
	SMSG_LFG_AUTOJOIN_FAILED
	SMSG_LFG_AUTOJOIN_FAILED_NO_PLAYER
	SMSG_LFG_LEADER_IS_LFM
	SMSG_LFG_UPDATE
	SMSG_LFG_UPDATE_LFM
	SMSG_LFG_UPDATE_LFG
	SMSG_LFG_UPDATE_QUEUED
	SMSG_LFG_PENDING_INVITE
	SMSG_LFG_PENDING_MATCH
	SMSG_LFG_PENDING_MATCH_DONE
	// WoTLK codes
	SMSG_INSTANCE_ENCOUNTER
	CMSG_LFG_SEARCH_JOIN
	CMSG_LFG_SEARCH_LEAVE
	SMSG_LFG_SEARCH_RESULTS
	CMSG_LFG_PROPOSAL_RESPONSE
	CMSG_LFG_BOOT_PLAYER_VOTE
	CMSG_LFG_GET_PLAYER_INFO
	CMSG_LFG_GET_PARTY_INFO
	SMSG_INSPECT_RESULTS
	CMSG_CORPSE_TRANSPORT_QUERY
	CMSG_ON_MISSILE_TRAJECTORY_COLLISION
	SMSG_TALENT_UPDATE
	CMSG_LEARN_TALENT_GROUP
	CMSG_PET_LEARN_TALENT_GROUP
	SMSG_ARENA_TEAM_CHANGE_FAILED
	SMSG_COMPOUND_MOVE
	CMSG_BATTLEFIELD_MANAGER_ENTRY_INVITE_RESPONSE
	SMSG_BATTLEFIELD_MANAGER_ENTERING
	SMSG_BATTLEFIELD_MANAGER_QUEUE_INVITE
	CMSG_BATTLEFIELD_MANAGER_QUEUE_INVITE_RESPONSE
	CMSG_BATTLEFIELD_MANAGER_QUEUE_REQUEST
	SMSG_BATTLEFIELD_MANAGER_QUEUE_REQUEST_RESPONSE
	SMSG_BATTLEFIELD_MANAGER_EJECT_PENDING
	SMSG_BATTLEFIELD_MANAGER_EJECTED
	CMSG_BATTLEFIELD_MANAGER_EXIT_REQUEST
	SMSG_BATTLEFIELD_MANAGER_ENTRY_INVITE
	SMSG_BATTLEFIELD_MANAGER_STATE_CHANGED
	CMSG_XPGAIN
	SMSG_XPGAIN
	SMSG_GMTICKET_RESPONSE_ERROR
	SMSG_GMTICKET_GET_RESPONSE
	CMSG_GMTICKET_RESOLVE_RESPONSE
	SMSG_GMTICKET_RESOLVE_RESPONSE
	SMSG_GMTICKET_CREATE_RESPONSE_TICKET
	CMSG_GM_CREATE_TICKET_RESPONSE
	SMSG_LOOT_UPDATE
	CMSG_QUERY_GET_ALL_QUESTS
	SMSG_ALL_QUESTS_COMPLETED
	CMSG_GMLAGREPORT_SUBMIT
	CMSG_LOW_LEVEL_RAID
	CMSG_LOW_LEVEL_RAID_USER
	SMSG_COMPRESSED_UNKNOWN_1310
	// Codes still used in Vanilla:
	CMSG_DBLOOKUP
	SMSG_DBLOOKUP
	CMSG_QUERY_OBJECT_POSITION
	SMSG_QUERY_OBJECT_POSITION
	CMSG_QUERY_OBJECT_ROTATION
	SMSG_QUERY_OBJECT_ROTATION
	CMSG_WORLD_TELEPORT
	CMSG_TELEPORT_TO_UNIT
	CMSG_ZONE_MAP
	SMSG_ZONE_MAP
	CMSG_DEBUG_CHANGECELLZONE
	CMSG_MOVE_CHARACTER_CHEAT
	SMSG_MOVE_CHARACTER_CHEAT
	CMSG_RECHARGE
	CMSG_LEARN_SPELL
	CMSG_CREATEMONSTER
	CMSG_DESTROYMONSTER
	CMSG_CREATEITEM
	CMSG_CREATEGAMEOBJECT
	SMSG_CHECK_FOR_BOTS
	CMSG_MAKEMONSTERATTACKGUID
	CMSG_BOT_DETECTED2
	CMSG_FORCEACTION
	CMSG_FORCEACTIONONOTHER
	CMSG_FORCEACTIONSHOW
	SMSG_FORCEACTIONSHOW
	CMSG_PETGODMODE
	SMSG_PETGODMODE
	SMSG_REFER_A_FRIEND_EXPIRED
	CMSG_WEATHER_SPEED_CHEAT
	CMSG_UNDRESSPLAYER
	CMSG_BEASTMASTER
	CMSG_GODMODE
	SMSG_GODMODE
	CMSG_CHEAT_SETMONEY
	CMSG_LEVEL_CHEAT
	CMSG_PET_LEVEL_CHEAT
	CMSG_SET_WORLDSTATE
	CMSG_COOLDOWN_CHEAT
	CMSG_USE_SKILL_CHEAT
	CMSG_FLAG_QUEST
	CMSG_FLAG_QUEST_FINISH
	CMSG_CLEAR_QUEST
	CMSG_SEND_EVENT
	CMSG_DEBUG_AISTATE
	SMSG_DEBUG_AISTATE
	CMSG_DISABLE_PVP_CHEAT
	CMSG_ADVANCE_SPAWN_TIME
	SMSG_DESTRUCTIBLE_BUILDING_DAMAGE
	CMSG_AUTH_SRP6_BEGIN
	CMSG_AUTH_SRP6_PROOF
	CMSG_AUTH_SRP6_RECODE
	CMSG_CHAR_CREATE
	CMSG_CHAR_ENUM
	CMSG_CHAR_DELETE
	SMSG_AUTH_SRP6_RESPONSE
	SMSG_CHAR_CREATE
	SMSG_CHAR_ENUM
	SMSG_CHAR_DELETE
	CMSG_PLAYER_LOGIN
	SMSG_NEW_WORLD
	SMSG_TRANSFER_PENDING
	SMSG_TRANSMOGRIFY_NPC
	SMSG_TRANSFER_ABORTED
	SMSG_CHARACTER_LOGIN_FAILED
	SMSG_LOGIN_SETTIMESPEED
	SMSG_GAMETIME_UPDATE
	CMSG_GAMETIME_SET
	SMSG_GAMETIME_SET
	CMSG_GAMESPEED_SET
	SMSG_GAMESPEED_SET
	CMSG_SERVERTIME
	SMSG_SERVERTIME
	CMSG_PLAYER_LOGOUT
	CMSG_LOGOUT_REQUEST
	SMSG_LOGOUT_RESPONSE
	SMSG_LOGOUT_COMPLETE
	CMSG_LOGOUT_CANCEL
	SMSG_LOGOUT_CANCEL_ACK
	CMSG_NAME_QUERY
	SMSG_NAME_QUERY_RESPONSE
	CMSG_PET_NAME_QUERY
	SMSG_PET_NAME_QUERY_RESPONSE
	CMSG_GUILD_QUERY
	SMSG_GUILD_QUERY_RESPONSE
	CMSG_ITEM_QUERY_SINGLE
	CMSG_ITEM_QUERY_MULTIPLE
	SMSG_ITEM_QUERY_SINGLE_RESPONSE
	SMSG_ITEM_QUERY_MULTIPLE_RESPONSE
	CMSG_PAGE_TEXT_QUERY
	SMSG_PAGE_TEXT_QUERY_RESPONSE
	CMSG_QUEST_QUERY
	SMSG_QUEST_QUERY_RESPONSE
	CMSG_GAMEOBJECT_QUERY
	SMSG_GAMEOBJECT_QUERY_RESPONSE
	CMSG_CREATURE_QUERY
	SMSG_CREATURE_QUERY_RESPONSE
	CMSG_WHO
	SMSG_WHO
	CMSG_WHOIS
	SMSG_WHOIS
	CMSG_FRIEND_LIST // Equal to CMSG_CONTACT_LIST
	CMSG_CONTACT_LIST
	SMSG_FRIEND_LIST
	SMSG_IGNORE_LIST
	SMSG_CONTACT_LIST
	SMSG_FRIEND_STATUS
	CMSG_ADD_FRIEND
	CMSG_DEL_FRIEND
	CMSG_SET_CONTACT_NOTES
	CMSG_ADD_IGNORE
	CMSG_DEL_IGNORE
	CMSG_GROUP_INVITE
	SMSG_GROUP_INVITE
	CMSG_GROUP_CANCEL
	SMSG_GROUP_CANCEL
	CMSG_GROUP_ACCEPT
	CMSG_GROUP_DECLINE
	SMSG_GROUP_DECLINE
	CMSG_GROUP_UNINVITE
	CMSG_GROUP_UNINVITE_GUID
	SMSG_GROUP_UNINVITE
	CMSG_GROUP_SET_LEADER
	SMSG_GROUP_SET_LEADER
	CMSG_LOOT_METHOD
	CMSG_GROUP_DISBAND
	SMSG_GROUP_DESTROYED
	SMSG_GROUP_LIST
	SMSG_PARTY_MEMBER_STATS
	SMSG_PARTY_COMMAND_RESULT
	UMSG_UPDATE_GROUP_MEMBERS
	CMSG_GUILD_CREATE
	CMSG_GUILD_INVITE
	SMSG_GUILD_INVITE
	CMSG_GUILD_ACCEPT
	CMSG_GUILD_DECLINE
	SMSG_GUILD_DECLINE
	CMSG_GUILD_INFO
	SMSG_GUILD_INFO
	CMSG_GUILD_ROSTER
	SMSG_GUILD_ROSTER
	CMSG_GUILD_PROMOTE
	CMSG_GUILD_DEMOTE
	CMSG_GUILD_LEAVE
	CMSG_GUILD_REMOVE
	CMSG_GUILD_DISBAND
	CMSG_GUILD_LEADER
	CMSG_GUILD_MOTD
	SMSG_GUILD_EVENT
	SMSG_GUILD_COMMAND_RESULT
	UMSG_UPDATE_GUILD
	CMSG_MESSAGECHAT
	SMSG_MESSAGECHAT
	CMSG_JOIN_CHANNEL
	CMSG_LEAVE_CHANNEL
	SMSG_CHANNEL_NOTIFY
	CMSG_CHANNEL_LIST
	SMSG_CHANNEL_LIST
	CMSG_CHANNEL_PASSWORD
	CMSG_CHANNEL_SET_OWNER
	CMSG_CHANNEL_OWNER
	CMSG_CHANNEL_MODERATOR
	CMSG_CHANNEL_UNMODERATOR
	CMSG_CHANNEL_MUTE
	CMSG_CHANNEL_UNMUTE
	CMSG_CHANNEL_INVITE
	CMSG_CHANNEL_KICK
	CMSG_CHANNEL_BAN
	CMSG_CHANNEL_UNBAN
	CMSG_CHANNEL_ANNOUNCEMENTS
	CMSG_CHANNEL_MODERATE
	SMSG_UPDATE_OBJECT
	SMSG_DESTROY_OBJECT
	CMSG_USE_ITEM
	CMSG_PERFORM_ITEM_INTERACTION
	CMSG_OPEN_ITEM
	CMSG_READ_ITEM
	SMSG_READ_ITEM_OK
	SMSG_READ_ITEM_FAILED
	SMSG_ITEM_COOLDOWN
	CMSG_GAMEOBJ_USE
	CMSG_DESTROY_ITEMS
	SMSG_GAMEOBJECT_CUSTOM_ANIM
	CMSG_AREATRIGGER
	MSG_MOVE_START_FORWARD
	MSG_MOVE_START_BACKWARD
	MSG_MOVE_STOP
	MSG_MOVE_START_STRAFE_LEFT
	MSG_MOVE_START_STRAFE_RIGHT
	MSG_MOVE_STOP_STRAFE
	MSG_MOVE_JUMP
	MSG_MOVE_START_TURN_LEFT
	MSG_MOVE_START_TURN_RIGHT
	MSG_MOVE_STOP_TURN
	MSG_MOVE_START_PITCH_UP
	MSG_MOVE_START_PITCH_DOWN
	MSG_MOVE_STOP_PITCH
	MSG_MOVE_SET_RUN_MODE
	MSG_MOVE_SET_WALK_MODE
	MSG_MOVE_TOGGLE_LOGGING
	MSG_MOVE_TELEPORT
	MSG_MOVE_TELEPORT_CHEAT
	MSG_MOVE_TELEPORT_ACK
	MSG_MOVE_TOGGLE_FALL_LOGGING
	MSG_MOVE_FALL_LAND
	MSG_MOVE_START_SWIM
	MSG_MOVE_STOP_SWIM
	MSG_MOVE_SET_RUN_SPEED_CHEAT
	MSG_MOVE_SET_RUN_SPEED
	MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT
	MSG_MOVE_SET_RUN_BACK_SPEED
	MSG_MOVE_SET_WALK_SPEED_CHEAT
	MSG_MOVE_SET_WALK_SPEED
	MSG_MOVE_SET_SWIM_SPEED_CHEAT
	MSG_MOVE_SET_SWIM_SPEED
	MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT
	MSG_MOVE_SET_SWIM_BACK_SPEED
	MSG_MOVE_SET_ALL_SPEED_CHEAT
	MSG_MOVE_SET_TURN_RATE_CHEAT
	MSG_MOVE_SET_TURN_RATE
	MSG_MOVE_TOGGLE_COLLISION_CHEAT
	MSG_MOVE_SET_FACING
	MSG_MOVE_SET_PITCH
	MSG_MOVE_WORLDPORT_ACK
	SMSG_MONSTER_MOVE
	SMSG_MOVE_WATER_WALK
	SMSG_MOVE_LAND_WALK
	CMSG_MOVE_CHARM_PORT_CHEAT
	CMSG_MOVE_SET_RAW_POSITION
	SMSG_FORCE_RUN_SPEED_CHANGE
	CMSG_FORCE_RUN_SPEED_CHANGE_ACK
	SMSG_FORCE_RUN_BACK_SPEED_CHANGE
	CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK
	SMSG_FORCE_SWIM_SPEED_CHANGE
	CMSG_FORCE_SWIM_SPEED_CHANGE_ACK
	SMSG_FORCE_MOVE_ROOT
	CMSG_FORCE_MOVE_ROOT_ACK
	SMSG_FORCE_MOVE_UNROOT
	CMSG_FORCE_MOVE_UNROOT_ACK
	MSG_MOVE_ROOT
	MSG_MOVE_UNROOT
	MSG_MOVE_HEARTBEAT
	SMSG_MOVE_KNOCK_BACK
	CMSG_MOVE_KNOCK_BACK_ACK
	MSG_MOVE_KNOCK_BACK
	SMSG_MOVE_FEATHER_FALL
	SMSG_MOVE_NORMAL_FALL
	SMSG_MOVE_SET_HOVER
	SMSG_MOVE_UNSET_HOVER
	CMSG_MOVE_HOVER_ACK
	MSG_MOVE_HOVER
	CMSG_TRIGGER_CINEMATIC_CHEAT
	CMSG_OPENING_CINEMATIC
	SMSG_TRIGGER_CINEMATIC
	CMSG_NEXT_CINEMATIC_CAMERA
	CMSG_COMPLETE_CINEMATIC
	SMSG_TUTORIAL_FLAGS
	CMSG_TUTORIAL_FLAG
	CMSG_TUTORIAL_CLEAR
	CMSG_TUTORIAL_RESET
	CMSG_STANDSTATECHANGE
	CMSG_EMOTE
	SMSG_EMOTE
	CMSG_TEXT_EMOTE
	SMSG_TEXT_EMOTE
	CMSG_AUTOEQUIP_GROUND_ITEM
	CMSG_AUTOSTORE_GROUND_ITEM
	CMSG_AUTOSTORE_LOOT_ITEM
	CMSG_STORE_LOOT_IN_SLOT
	CMSG_AUTOEQUIP_ITEM
	CMSG_AUTOSTORE_BAG_ITEM
	CMSG_SWAP_ITEM
	CMSG_SWAP_INV_ITEM
	CMSG_SPLIT_ITEM
	CMSG_AUTOEQUIP_ITEM_SLOT
	CMSG_UNCLAIM_LICENSE
	CMSG_DESTROYITEM
	SMSG_INVENTORY_CHANGE_FAILURE
	SMSG_OPEN_CONTAINER
	CMSG_INSPECT
	SMSG_INSPECT_RESULTS_UPDATE
	CMSG_INITIATE_TRADE
	CMSG_BEGIN_TRADE
	CMSG_BUSY_TRADE
	CMSG_IGNORE_TRADE
	CMSG_ACCEPT_TRADE
	CMSG_UNACCEPT_TRADE
	CMSG_CANCEL_TRADE
	CMSG_SET_TRADE_ITEM
	CMSG_CLEAR_TRADE_ITEM
	CMSG_SET_TRADE_GOLD
	SMSG_TRADE_STATUS
	SMSG_TRADE_STATUS_EXTENDED
	SMSG_INITIALIZE_FACTIONS
	SMSG_SET_FACTION_VISIBLE
	SMSG_SET_FACTION_STANDING
	CMSG_SET_FACTION_ATWAR
	CMSG_SET_FACTION_CHEAT
	SMSG_SET_PROFICIENCY
	CMSG_SET_ACTION_BUTTON
	SMSG_ACTION_BUTTONS
	SMSG_INITIAL_SPELLS
	SMSG_LEARNED_SPELL
	SMSG_SUPERCEDED_SPELL
	CMSG_NEW_SPELL_SLOT
	CMSG_CAST_SPELL
	CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE
	CMSG_CANCEL_CAST
	SMSG_CAST_FAILED
	SMSG_SPELL_START
	SMSG_SPELL_GO
	SMSG_SPELL_FAILURE
	SMSG_SPELL_COOLDOWN
	SMSG_COOLDOWN_EVENT
	CMSG_CANCEL_AURA
	SMSG_EQUIPMENT_SET_SAVED
	SMSG_PET_CAST_FAILED
	MSG_CHANNEL_START
	MSG_CHANNEL_UPDATE
	CMSG_CANCEL_CHANNELLING
	SMSG_AI_REACTION
	CMSG_SET_SELECTION
	CMSG_DELETEEQUIPMENT_SET
	CMSG_INSTANCE_LOCK_RESPONSE
	CMSG_DEBUG_PASSIVE_AURA
	CMSG_ATTACKSWING
	CMSG_ATTACKSTOP
	SMSG_ATTACKSTART
	SMSG_ATTACKSTOP
	SMSG_ATTACKSWING_NOTINRANGE
	SMSG_ATTACKSWING_BADFACING
	SMSG_INSTANCE_LOCK_WARNING_QUERY
	SMSG_ATTACKSWING_DEADTARGET
	SMSG_ATTACKSWING_CANT_ATTACK
	SMSG_ATTACKERSTATEUPDATE
	SMSG_BATTLEFIELD_PORT_DENIED
	CMSG_PERFORM_ACTION_SET
	SMSG_RESUME_CAST_BAR
	SMSG_CANCEL_COMBAT
	SMSG_SPELLBREAKLOG
	SMSG_SPELLHEALLOG
	SMSG_SPELLENERGIZELOG
	SMSG_BREAK_TARGET
	CMSG_SAVE_PLAYER
	CMSG_SETDEATHBINDPOINT
	SMSG_BINDPOINTUPDATE
	CMSG_GETDEATHBINDZONE
	SMSG_BINDZONEREPLY
	SMSG_PLAYERBOUND
	SMSG_CLIENT_CONTROL_UPDATE
	CMSG_REPOP_REQUEST
	SMSG_RESURRECT_REQUEST
	CMSG_RESURRECT_RESPONSE
	CMSG_LOOT
	CMSG_LOOT_MONEY
	CMSG_LOOT_RELEASE
	SMSG_LOOT_RESPONSE
	SMSG_LOOT_RELEASE_RESPONSE
	SMSG_LOOT_REMOVED
	SMSG_LOOT_MONEY_NOTIFY
	SMSG_LOOT_ITEM_NOTIFY
	SMSG_LOOT_CLEAR_MONEY
	SMSG_ITEM_PUSH_RESULT
	SMSG_DUEL_REQUESTED
	SMSG_DUEL_OUTOFBOUNDS
	SMSG_DUEL_INBOUNDS
	SMSG_DUEL_COMPLETE
	SMSG_DUEL_WINNER
	CMSG_DUEL_ACCEPTED
	CMSG_DUEL_CANCELLED
	SMSG_MOUNTRESULT
	SMSG_DISMOUNTRESULT
	SMSG_REMOVED_FROM_PVP_QUEUE
	CMSG_MOUNTSPECIAL_ANIM
	SMSG_MOUNTSPECIAL_ANIM
	SMSG_PET_TAME_FAILURE
	CMSG_PET_SET_ACTION
	CMSG_PET_ACTION
	CMSG_PET_ABANDON
	CMSG_PET_RENAME
	SMSG_PET_NAME_INVALID
	SMSG_PET_SPELLS
	SMSG_PET_MODE
	CMSG_GOSSIP_HELLO
	CMSG_GOSSIP_SELECT_OPTION
	SMSG_GOSSIP_MESSAGE
	SMSG_GOSSIP_COMPLETE
	CMSG_NPC_TEXT_QUERY
	SMSG_NPC_TEXT_UPDATE
	SMSG_NPC_WONT_TALK
	CMSG_QUESTGIVER_STATUS_QUERY
	SMSG_QUESTGIVER_STATUS
	CMSG_QUESTGIVER_HELLO
	SMSG_QUESTGIVER_QUEST_LIST
	CMSG_QUESTGIVER_QUERY_QUEST
	CMSG_QUESTGIVER_QUEST_AUTOLAUNCH
	SMSG_QUESTGIVER_QUEST_DETAILS
	CMSG_QUESTGIVER_ACCEPT_QUEST
	CMSG_QUESTGIVER_COMPLETE_QUEST
	SMSG_QUESTGIVER_REQUEST_ITEMS
	CMSG_QUESTGIVER_REQUEST_REWARD
	SMSG_QUESTGIVER_OFFER_REWARD
	CMSG_QUESTGIVER_CHOOSE_REWARD
	SMSG_QUESTGIVER_QUEST_INVALID
	CMSG_QUESTGIVER_CANCEL
	SMSG_QUESTGIVER_QUEST_COMPLETE
	SMSG_QUESTGIVER_QUEST_FAILED
	CMSG_QUESTLOG_SWAP_QUEST
	CMSG_QUESTLOG_REMOVE_QUEST
	SMSG_QUESTLOG_FULL
	SMSG_QUESTUPDATE_FAILED
	SMSG_QUESTUPDATE_FAILEDTIMER
	SMSG_QUESTUPDATE_COMPLETE
	SMSG_QUESTUPDATE_ADD_KILL
	SMSG_QUESTUPDATE_ADD_ITEM
	CMSG_QUEST_CONFIRM_ACCEPT
	SMSG_QUEST_CONFIRM_ACCEPT
	CMSG_PUSHQUESTTOPARTY
	CMSG_LIST_INVENTORY
	SMSG_LIST_INVENTORY
	CMSG_SELL_ITEM
	SMSG_SELL_ITEM
	CMSG_BUY_ITEM
	CMSG_BUY_ITEM_IN_SLOT
	SMSG_BUY_ITEM
	SMSG_BUY_FAILED
	CMSG_TAXICLEARALLNODES
	CMSG_TAXIENABLEALLNODES
	CMSG_TAXISHOWNODES
	SMSG_SHOWTAXINODES
	CMSG_TAXINODE_STATUS_QUERY
	SMSG_TAXINODE_STATUS
	CMSG_TAXIQUERYAVAILABLENODES
	CMSG_ACTIVATETAXI
	SMSG_ACTIVATETAXIREPLY
	SMSG_NEW_TAXI_PATH
	CMSG_TRAINER_LIST
	SMSG_TRAINER_LIST
	CMSG_TRAINER_BUY_SPELL
	SMSG_TRAINER_BUY_SUCCEEDED
	SMSG_TRAINER_BUY_FAILED
	CMSG_BINDER_ACTIVATE
	SMSG_PLAYERBINDERROR
	CMSG_BANKER_ACTIVATE
	SMSG_SHOW_BANK
	CMSG_BUY_BANK_SLOT
	SMSG_BUY_BANK_SLOT_RESULT
	CMSG_PETITION_SHOWLIST
	SMSG_PETITION_SHOWLIST
	CMSG_PETITION_BUY
	CMSG_PETITION_SHOW_SIGNATURES
	SMSG_PETITION_SHOW_SIGNATURES
	CMSG_PETITION_SIGN
	SMSG_PETITION_SIGN_RESULTS
	MSG_PETITION_DECLINE
	CMSG_OFFER_PETITION
	CMSG_TURN_IN_PETITION
	SMSG_TURN_IN_PETITION_RESULTS
	CMSG_PETITION_QUERY
	SMSG_PETITION_QUERY_RESPONSE
	SMSG_FISH_NOT_HOOKED
	SMSG_FISH_ESCAPED
	CMSG_BUG
	SMSG_NOTIFICATION
	CMSG_PLAYED_TIME
	SMSG_PLAYED_TIME
	CMSG_UI_TIME_REQUEST
	CMSG_QUERY_TIME
	SMSG_QUERY_TIME_RESPONSE
	SMSG_LOG_XPGAIN
	SMSG_AURACASTLOG
	CMSG_RECLAIM_CORPSE
	CMSG_WRAP_ITEM
	SMSG_LEVELUP_INFO
	MSG_MINIMAP_PING
	SMSG_RESISTLOG
	SMSG_ENCHANTMENTLOG
	CMSG_SET_SKILL_CHEAT
	SMSG_START_MIRROR_TIMER
	SMSG_PAUSE_MIRROR_TIMER
	SMSG_STOP_MIRROR_TIMER
	CMSG_PING
	SMSG_PONG
	SMSG_CLEAR_COOLDOWN
	SMSG_GAMEOBJECT_PAGETEXT
	CMSG_SETSHEATHED
	SMSG_COOLDOWN_CHEAT
	SMSG_SPELL_DELAYED
	CMSG_QUEST_POI_QUERY
	SMSG_QUEST_POI_QUERY_RESPONSE
	CMSG_GHOST
	CMSG_GM_INVIS
	SMSG_INVALID_PROMOTION_CODE
	MSG_GM_BIND_OTHER
	MSG_GM_SUMMON
	SMSG_ITEM_TIME_UPDATE
	SMSG_ITEM_ENCHANT_TIME_UPDATE
	SMSG_AUTH_CHALLENGE
	CMSG_AUTH_SESSION
	SMSG_AUTH_RESPONSE
	MSG_GM_SHOWLABEL
	CMSG_PET_CAST_SPELL
	MSG_SAVE_GUILD_EMBLEM
	MSG_TABARDVENDOR_ACTIVATE
	SMSG_PLAY_SPELL_VISUAL
	CMSG_ZONEUPDATE
	SMSG_PARTYKILLLOG
	SMSG_COMPRESSED_UPDATE_OBJECT
	SMSG_PLAY_SPELL_IMPACT
	SMSG_EXPLORATION_EXPERIENCE
	CMSG_GM_SET_SECURITY_GROUP
	CMSG_GM_NUKE
	MSG_RANDOM_ROLL
	SMSG_ENVIRONMENTALDAMAGELOG
	CMSG_CHANGEPLAYER_DIFFICULTY
	SMSG_RWHOIS
	SMSG_LFG_PLAYER_REWARD
	SMSG_LFG_TELEPORT_DENIED
	SMSG_LFG_SLOT_INVALID
	CMSG_UNLEARN_SPELL
	CMSG_UNLEARN_SKILL
	SMSG_REMOVED_SPELL
	CMSG_DECHARGE
	CMSG_GMTICKET_CREATE
	SMSG_GMTICKET_CREATE
	CMSG_GMTICKET_UPDATETEXT
	SMSG_GMTICKET_UPDATETEXT
	SMSG_ACCOUNT_DATA_TIMES
	CMSG_REQUEST_ACCOUNT_DATA
	CMSG_UPDATE_ACCOUNT_DATA
	SMSG_UPDATE_ACCOUNT_DATA
	SMSG_CLEAR_FAR_SIGHT_IMMEDIATE
	SMSG_CHANGEPLAYER_DIFFICULTY_RESULT
	CMSG_GM_TEACH
	CMSG_GM_CREATE_ITEM_TARGET
	CMSG_GMTICKET_GETTICKET
	SMSG_GMTICKET_GETTICKET
	CMSG_UNLEARN_TALENTS
	SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT
	SMSG_GAMEOBJECT_DESPAWN_ANIM
	MSG_CORPSE_QUERY
	CMSG_GMTICKET_DELETETICKET
	SMSG_GMTICKET_DELETETICKET
	SMSG_CHAT_WRONG_FACTION
	CMSG_GMTICKET_SYSTEMSTATUS
	SMSG_GMTICKET_SYSTEMSTATUS
	CMSG_SPIRIT_HEALER_ACTIVATE
	CMSG_SET_STAT_CHEAT
	SMSG_QUEST_FORCE_REMOVE
	CMSG_SKILL_BUY_STEP
	CMSG_SKILL_BUY_RANK
	CMSG_XP_CHEAT
	SMSG_SPIRIT_HEALER_CONFIRM
	CMSG_CHARACTER_POINT_CHEAT
	SMSG_GOSSIP_POI
	CMSG_CHAT_IGNORED
	CMSG_GM_VISION
	CMSG_SERVER_COMMAND
	CMSG_GM_SILENCE
	CMSG_GM_REVEALTO
	CMSG_GM_RESURRECT
	CMSG_GM_SUMMONMOB
	CMSG_GM_MOVECORPSE
	CMSG_GM_FREEZE
	CMSG_GM_UBERINVIS
	CMSG_GM_REQUEST_PLAYER_INFO
	SMSG_GM_PLAYER_INFO
	CMSG_GUILD_RANK
	CMSG_GUILD_ADD_RANK
	CMSG_GUILD_DEL_RANK
	CMSG_GUILD_SET_PUBLIC_NOTE
	CMSG_GUILD_SET_OFFICER_NOTE
	SMSG_LOGIN_VERIFY_WORLD
	CMSG_CLEAR_EXPLORATION
	CMSG_SEND_MAIL
	SMSG_SEND_MAIL_RESULT
	CMSG_GET_MAIL_LIST
	SMSG_MAIL_LIST_RESULT
	CMSG_BATTLEFIELD_LIST
	SMSG_BATTLEFIELD_LIST
	CMSG_BATTLEFIELD_JOIN
	SMSG_FORCE_SET_VEHICLE_REC_ID
	CMSG_SET_VEHICLE_REC_ID_ACK
	CMSG_TAXICLEARNODE
	CMSG_TAXIENABLENODE
	CMSG_ITEM_TEXT_QUERY
	SMSG_ITEM_TEXT_QUERY_RESPONSE
	CMSG_MAIL_TAKE_MONEY
	CMSG_MAIL_TAKE_ITEM
	CMSG_MAIL_MARK_AS_READ
	CMSG_MAIL_RETURN_TO_SENDER
	CMSG_MAIL_DELETE
	CMSG_MAIL_CREATE_TEXT_ITEM
	SMSG_SPELLLOGMISS
	SMSG_SPELLLOGEXECUTE
	SMSG_DEBUGAURAPROC
	SMSG_PERIODICAURALOG
	SMSG_SPELLDAMAGESHIELD
	SMSG_SPELLNONMELEEDAMAGELOG
	CMSG_LEARN_TALENT
	SMSG_RESURRECT_FAILED
	CMSG_TOGGLE_PVP
	SMSG_ZONE_UNDER_ATTACK
	MSG_AUCTION_HELLO
	CMSG_AUCTION_SELL_ITEM
	CMSG_AUCTION_REMOVE_ITEM
	CMSG_AUCTION_LIST_ITEMS
	CMSG_AUCTION_LIST_OWNED_ITEMS
	CMSG_AUCTION_PLACE_BID
	SMSG_AUCTION_COMMAND_RESULT
	SMSG_AUCTION_LIST_RESULT
	SMSG_AUCTION_OWNER_LIST_RESULT
	SMSG_AUCTION_BIDDER_NOTIFICATION
	SMSG_AUCTION_OWNER_NOTIFICATION
	SMSG_PROCRESIST
	CMSG_AUCTION_SELL_COMMODITY
	CMSG_AUCTION_SET_FAVORITE_ITEM
	SMSG_COMBAT_EVENT_FAILED
	SMSG_DISPEL_FAILED
	SMSG_SPELLORDAMAGE_IMMUNE
	CMSG_AUCTION_LIST_BIDDER_ITEMS
	SMSG_AUCTION_BIDDER_LIST_RESULT
	SMSG_SET_FLAT_SPELL_MODIFIER
	SMSG_SET_PCT_SPELL_MODIFIER
	CMSG_SET_AMMO
	SMSG_CORPSE_RECLAIM_DELAY
	CMSG_SET_ACTIVE_MOVER
	CMSG_PET_CANCEL_AURA
	CMSG_PLAYER_AI_CHEAT
	CMSG_CANCEL_AUTO_REPEAT_SPELL
	MSG_GM_ACCOUNT_ONLINE
	MSG_LIST_STABLED_PETS
	CMSG_STABLE_PET
	CMSG_UNSTABLE_PET
	CMSG_BUY_STABLE_SLOT
	SMSG_STABLE_RESULT
	CMSG_STABLE_REVIVE_PET
	CMSG_STABLE_SWAP_PET
	MSG_QUEST_PUSH_RESULT
	SMSG_PLAY_MUSIC
	SMSG_PLAY_OBJECT_SOUND
	CMSG_REQUEST_PET_INFO
	CMSG_FAR_SIGHT
	SMSG_SPELLDISPELLOG
	SMSG_DAMAGE_CALC_LOG
	CMSG_ENABLE_DAMAGE_LOG
	CMSG_GROUP_CHANGE_SUB_GROUP
	CMSG_REQUEST_PARTY_MEMBER_STATS
	CMSG_GROUP_SWAP_SUB_GROUP
	CMSG_RESET_FACTION_CHEAT
	CMSG_AUTOSTORE_BANK_ITEM
	CMSG_AUTOBANK_ITEM
	MSG_QUERY_NEXT_MAIL_TIME
	SMSG_RECEIVED_MAIL
	SMSG_RAID_GROUP_ONLY
	CMSG_SET_DURABILITY_CHEAT
	CMSG_SET_PVP_RANK_CHEAT
	CMSG_ADD_PVP_MEDAL_CHEAT
	CMSG_DEL_PVP_MEDAL_CHEAT
	CMSG_SET_PVP_TITLE
	SMSG_PVP_CREDIT
	SMSG_AUCTION_REMOVED_NOTIFICATION
	CMSG_GROUP_RAID_CONVERT
	CMSG_GROUP_ASSISTANT_LEADER
	CMSG_BUYBACK_ITEM
	SMSG_SERVER_MESSAGE
	CMSG_SET_SAVED_INSTANCE_EXTEND
	SMSG_LFG_OFFER_CONTINUE
	CMSG_TEST_DROP_RATE
	SMSG_TEST_DROP_RATE_RESULT
	CMSG_LFG_GET_STATUS
	SMSG_SHOW_MAILBOX
	SMSG_RESET_RANGED_COMBAT_TIMER
	SMSG_CHAT_NOT_IN_PARTY
	CMSG_GMTICKETSYSTEM_TOGGLE
	CMSG_CANCEL_GROWTH_AURA
	SMSG_CANCEL_AUTO_REPEAT
	SMSG_STANDSTATE_UPDATE
	SMSG_LOOT_ALL_PASSED
	SMSG_LOOT_ROLL_WON
	CMSG_LOOT_ROLL
	SMSG_LOOT_START_ROLL
	SMSG_LOOT_ROLL
	CMSG_LOOT_MASTER_GIVE
	SMSG_LOOT_MASTER_LIST
	SMSG_SET_FORCED_REACTIONS
	SMSG_SPELL_FAILED_OTHER
	SMSG_GAMEOBJECT_RESET_STATE
	CMSG_REPAIR_ITEM
	SMSG_CHAT_PLAYER_NOT_FOUND
	MSG_TALENT_WIPE_CONFIRM
	SMSG_SUMMON_REQUEST
	CMSG_SUMMON_RESPONSE
	MSG_DEV_SHOWLABEL
	SMSG_MONSTER_MOVE_TRANSPORT
	SMSG_PET_BROKEN
	MSG_MOVE_FEATHER_FALL
	MSG_MOVE_WATER_WALK
	CMSG_SERVER_BROADCAST
	CMSG_SELF_RES
	SMSG_FEIGN_DEATH_RESISTED
	CMSG_RUN_SCRIPT
	SMSG_SCRIPT_MESSAGE
	SMSG_DUEL_COUNTDOWN
	SMSG_AREA_TRIGGER_MESSAGE
	CMSG_SHOWING_HELM
	CMSG_SHOWING_CLOAK
	SMSG_LFG_ROLE_CHOSEN
	SMSG_PLAYER_SKINNED
	SMSG_DURABILITY_DAMAGE_DEATH
	CMSG_SET_EXPLORATION
	CMSG_SET_ACTIONBAR_TOGGLES
	UMSG_DELETE_GUILD_CHARTER
	MSG_PETITION_RENAME
	SMSG_INIT_WORLD_STATES
	SMSG_UPDATE_WORLD_STATE
	CMSG_ITEM_NAME_QUERY
	SMSG_ITEM_NAME_QUERY_RESPONSE
	SMSG_PET_ACTION_FEEDBACK
	CMSG_CHAR_RENAME
	SMSG_CHAR_RENAME
	CMSG_MOVE_SPLINE_DONE
	CMSG_MOVE_FALL_RESET
	SMSG_INSTANCE_SAVE_CREATED
	SMSG_RAID_INSTANCE_INFO
	CMSG_REQUEST_RAID_INFO
	CMSG_MOVE_TIME_SKIPPED
	CMSG_MOVE_FEATHER_FALL_ACK
	CMSG_MOVE_WATER_WALK_ACK
	CMSG_MOVE_NOT_ACTIVE_MOVER
	SMSG_PLAY_SOUND
	CMSG_BATTLEFIELD_STATUS
	SMSG_BATTLEFIELD_STATUS
	CMSG_BATTLEFIELD_PORT
	MSG_INSPECT_HONOR_STATS
	CMSG_BATTLEMASTER_HELLO
	CMSG_MOVE_START_SWIM_CHEAT
	CMSG_MOVE_STOP_SWIM_CHEAT
	SMSG_FORCE_WALK_SPEED_CHANGE
	CMSG_FORCE_WALK_SPEED_CHANGE_ACK
	SMSG_FORCE_SWIM_BACK_SPEED_CHANGE
	CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK
	SMSG_FORCE_TURN_RATE_CHANGE
	CMSG_FORCE_TURN_RATE_CHANGE_ACK
	MSG_PVP_LOG_DATA
	CMSG_LEAVE_BATTLEFIELD
	CMSG_AREA_SPIRIT_HEALER_QUERY
	CMSG_AREA_SPIRIT_HEALER_QUEUE
	SMSG_AREA_SPIRIT_HEALER_TIME
	CMSG_GM_UNTEACH
	SMSG_WARDEN_DATA
	CMSG_WARDEN_DATA
	SMSG_GROUP_JOINED_BATTLEGROUND
	MSG_BATTLEGROUND_PLAYER_POSITIONS
	CMSG_PET_STOP_ATTACK
	SMSG_BINDER_CONFIRM
	SMSG_BATTLEGROUND_PLAYER_JOINED
	SMSG_BATTLEGROUND_PLAYER_LEFT
	CMSG_BATTLEMASTER_JOIN
	SMSG_ADDON_INFO
	CMSG_PET_UNLEARN
	SMSG_PET_UNLEARN_CONFIRM
	SMSG_PARTY_MEMBER_STATS_FULL
	CMSG_PET_SPELL_AUTOCAST
	SMSG_WEATHER
	SMSG_PLAY_TIME_WARNING
	SMSG_MINIGAME_SETUP
	SMSG_MINIGAME_STATE
	CMSG_MINIGAME_MOVE
	SMSG_MINIGAME_MOVE_FAILED
	SMSG_RAID_INSTANCE_MESSAGE
	SMSG_COMPRESSED_MOVES
	CMSG_GUILD_INFO_TEXT
	SMSG_CHAT_RESTRICTED
	SMSG_SPLINE_SET_RUN_SPEED
	SMSG_SPLINE_SET_RUN_BACK_SPEED
	SMSG_SPLINE_SET_SWIM_SPEED
	SMSG_SPLINE_SET_WALK_SPEED
	SMSG_SPLINE_SET_SWIM_BACK_SPEED
	SMSG_SPLINE_SET_TURN_RATE
	SMSG_SPLINE_MOVE_UNROOT
	SMSG_SPLINE_MOVE_FEATHER_FALL
	SMSG_SPLINE_MOVE_NORMAL_FALL
	SMSG_SPLINE_MOVE_SET_HOVER
	SMSG_SPLINE_MOVE_UNSET_HOVER
	SMSG_SPLINE_MOVE_WATER_WALK
	SMSG_SPLINE_MOVE_LAND_WALK
	SMSG_SPLINE_MOVE_START_SWIM
	SMSG_SPLINE_MOVE_STOP_SWIM
	SMSG_SPLINE_MOVE_SET_RUN_MODE
	SMSG_SPLINE_MOVE_SET_WALK_MODE
	CMSG_GM_NUKE_ACCOUNT
	MSG_GM_DESTROY_CORPSE
	CMSG_GM_DESTROY_ONLINE_CORPSE
	CMSG_ACTIVATETAXIEXPRESS
	SMSG_SET_FACTION_ATWAR
	SMSG_GAMETIMEBIAS_SET
	CMSG_DEBUG_ACTIONS_START
	CMSG_DEBUG_ACTIONS_STOP
	CMSG_SET_FACTION_INACTIVE
	CMSG_SET_WATCHED_FACTION
	MSG_MOVE_TIME_SKIPPED
	SMSG_SPLINE_MOVE_ROOT
	CMSG_SET_EXPLORATION_ALL
	SMSG_INVALIDATE_PLAYER
	CMSG_RESET_INSTANCES
	SMSG_INSTANCE_RESET
	SMSG_INSTANCE_RESET_FAILED
	SMSG_UPDATE_LAST_INSTANCE
	MSG_RAID_TARGET_UPDATE
	MSG_RAID_READY_CHECK
	CMSG_LUA_USAGE
	SMSG_PET_ACTION_SOUND
	SMSG_PET_DISMISS_SOUND
	SMSG_GHOSTEE_GONE
	CMSG_GM_UPDATE_TICKET_STATUS
	SMSG_GM_TICKET_STATUS_UPDATE
	MSG_SET_DUNGEON_DIFFICULTY
	CMSG_GMSURVEY_SUBMIT
	SMSG_UPDATE_INSTANCE_OWNERSHIP
	CMSG_IGNORE_KNOCKBACK_CHEAT
	SMSG_CHAT_PLAYER_AMBIGUOUS
	MSG_DELAY_GHOST_TELEPORT
	SMSG_SPELLINSTAKILLLOG
	SMSG_SPELL_UPDATE_CHAIN_TARGETS
	CMSG_CHAT_FILTERED
	SMSG_EXPECTED_SPAM_RECORDS
	SMSG_SPELLSTEALLOG
	CMSG_LOTTERY_QUERY_OBSOLETE
	SMSG_LOTTERY_QUERY_RESULT_OBSOLETE
	CMSG_BUY_LOTTERY_TICKET_OBSOLETE
	SMSG_LOTTERY_RESULT_OBSOLETE
	SMSG_CHARACTER_PROFILE
	SMSG_CHARACTER_PROFILE_REALM_CONNECTED
	SMSG_DEFENSE_MESSAGE
	SMSG_INSTANCE_DIFFICULTY
	MSG_GM_RESETINSTANCELIMIT
	SMSG_MOTD
	SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY
	SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY
	CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK
	MSG_MOVE_START_SWIM_CHEAT
	MSG_MOVE_STOP_SWIM_CHEAT
	SMSG_MOVE_SET_CAN_FLY
	SMSG_MOVE_UNSET_CAN_FLY
	CMSG_MOVE_SET_CAN_FLY_ACK
	CMSG_MOVE_SET_FLY
	CMSG_SOCKET_GEMS
	SMSG_SOCKET_GEMS_RESULT
	CMSG_ARENA_TEAM_CREATE
	SMSG_ARENA_TEAM_COMMAND_RESULT
	MSG_MOVE_UPDATE_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY
	CMSG_ARENA_TEAM_QUERY
	SMSG_ARENA_TEAM_QUERY_RESPONSE
	CMSG_ARENA_TEAM_ROSTER
	SMSG_ARENA_TEAM_ROSTER
	CMSG_ARENA_TEAM_INVITE
	SMSG_ARENA_TEAM_INVITE
	CMSG_ARENA_TEAM_ACCEPT
	CMSG_ARENA_TEAM_DECLINE
	CMSG_ARENA_TEAM_LEAVE
	CMSG_ARENA_TEAM_REMOVE
	CMSG_ARENA_TEAM_DISBAND
	CMSG_ARENA_TEAM_LEADER
	SMSG_ARENA_TEAM_EVENT
	CMSG_BATTLEMASTER_JOIN_ARENA
	MSG_MOVE_START_ASCEND
	MSG_MOVE_STOP_ASCEND
	SMSG_ARENA_TEAM_STATS
	CMSG_LFG_JOIN
	CMSG_LFG_LEAVE
	CMSG_SEARCH_LFG_JOIN
	CMSG_SEARCH_LFG_LEAVE
	SMSG_UPDATE_LFG_LIST
	SMSG_LFG_PROPOSAL_UPDATE
	CMSG_LFG_PROPOSAL_RESULT
	SMSG_LFG_ROLE_CHECK_UPDATE
	SMSG_LFG_JOIN_RESULT
	SMSG_LFG_QUEUE_STATUS
	CMSG_SET_LFG_COMMENT
	SMSG_LFG_UPDATE_PLAYER
	SMSG_LFG_UPDATE_PARTY
	SMSG_LFG_UPDATE_SEARCH
	CMSG_LFG_SET_ROLES
	CMSG_LFG_SET_NEEDS
	CMSG_LFG_SET_BOOT_VOTE
	SMSG_LFG_BOOT_PROPOSAL_UPDATE
	CMSG_LFD_PLAYER_LOCK_INFO_REQUEST
	SMSG_LFG_PLAYER_INFO
	CMSG_LFG_TELEPORT
	CMSG_LFD_PARTY_LOCK_INFO_REQUEST
	SMSG_LFG_PARTY_INFO
	SMSG_TITLE_EARNED
	CMSG_SET_TITLE
	CMSG_CANCEL_MOUNT_AURA
	SMSG_ARENA_ERROR
	MSG_INSPECT_ARENA_TEAMS
	SMSG_DEATH_RELEASE_LOC
	CMSG_CANCEL_TEMP_ENCHANTMENT
	SMSG_FORCED_DEATH_UPDATE
	CMSG_CHEAT_SET_HONOR_CURRENCY
	CMSG_CHEAT_SET_ARENA_CURRENCY
	MSG_MOVE_SET_FLIGHT_SPEED_CHEAT
	MSG_MOVE_SET_FLIGHT_SPEED
	MSG_MOVE_SET_FLIGHT_BACK_SPEED_CHEAT
	MSG_MOVE_SET_FLIGHT_BACK_SPEED
	SMSG_FORCE_FLIGHT_SPEED_CHANGE
	CMSG_FORCE_FLIGHT_SPEED_CHANGE_ACK
	SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE
	CMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK
	SMSG_SPLINE_SET_FLIGHT_SPEED
	SMSG_SPLINE_SET_FLIGHT_BACK_SPEED
	CMSG_MAELSTROM_INVALIDATE_CACHE
	SMSG_FLIGHT_SPLINE_SYNC
	CMSG_SET_TAXI_BENCHMARK_MODE
	SMSG_JOINED_BATTLEGROUND_QUEUE
	SMSG_REALM_SPLIT
	CMSG_REALM_SPLIT
	CMSG_MOVE_CHNG_TRANSPORT
	MSG_PARTY_ASSIGNMENT
	SMSG_OFFER_PETITION_ERROR
	SMSG_TIME_SYNC_REQ
	CMSG_TIME_SYNC_RESP
	CMSG_SEND_LOCAL_EVENT
	CMSG_SEND_GENERAL_TRIGGER
	CMSG_SEND_COMBAT_TRIGGER
	CMSG_MAELSTROM_GM_SENT_MAIL
	SMSG_RESET_FAILED_NOTIFY
	SMSG_REAL_GROUP_UPDATE
	SMSG_LFG_DISABLED
	CMSG_ACTIVE_PVP_CHEAT
	CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY
	SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE
	SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE_WRITE_FILE
	SMSG_UPDATE_COMBO_POINTS
	SMSG_VOICE_SESSION_ROSTER_UPDATE
	SMSG_VOICE_SESSION_LEAVE
	SMSG_VOICE_SESSION_ADJUST_PRIORITY
	CMSG_VOICE_SET_TALKER_MUTED_REQUEST
	SMSG_VOICE_SET_TALKER_MUTED
	SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE
	SMSG_SET_EXTRA_AURA_INFO_OBSOLETE
	SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE_OBSOLETE
	SMSG_CLEAR_EXTRA_AURA_INFO_OBSOLETE
	MSG_MOVE_START_DESCEND
	CMSG_IGNORE_REQUIREMENTS_CHEAT
	SMSG_IGNORE_REQUIREMENTS_CHEAT
	SMSG_SPELL_CHANCE_PROC_LOG
	CMSG_MOVE_SET_RUN_SPEED
	SMSG_DISMOUNT
	MSG_MOVE_UPDATE_CAN_FLY
	MSG_RAID_READY_CHECK_CONFIRM
	CMSG_VOICE_SESSION_ENABLE
	SMSG_VOICE_SESSION_ENABLE
	SMSG_VOICE_PARENTAL_CONTROLS
	CMSG_GM_WHISPER
	SMSG_GM_MESSAGECHAT
	MSG_GM_GEARRATING
	CMSG_COMMENTATOR_ENABLE
	SMSG_COMMENTATOR_STATE_CHANGED
	CMSG_COMMENTATOR_GET_MAP_INFO
	SMSG_COMMENTATOR_MAP_INFO
	CMSG_COMMENTATOR_GET_PLAYER_INFO
	SMSG_COMMENTATOR_GET_PLAYER_INFO
	SMSG_COMMENTATOR_PLAYER_INFO
	CMSG_COMMENTATOR_ENTER_INSTANCE
	CMSG_COMMENTATOR_EXIT_INSTANCE
	CMSG_COMMENTATOR_INSTANCE_COMMAND
	SMSG_CLEAR_TARGET
	CMSG_BOT_DETECTED
	SMSG_CROSSED_INEBRIATION_THRESHOLD
	CMSG_CHEAT_PLAYER_LOGIN
	CMSG_CHEAT_PLAYER_LOOKUP
	SMSG_CHEAT_PLAYER_LOOKUP
	SMSG_KICK_REASON
	MSG_RAID_READY_CHECK_FINISHED
	CMSG_COMPLAIN
	SMSG_COMPLAIN_RESULT
	SMSG_FEATURE_SYSTEM_STATUS
	CMSG_GM_SHOW_COMPLAINTS
	CMSG_GM_UNSQUELCH
	CMSG_CHANNEL_SILENCE_VOICE
	CMSG_CHANNEL_SILENCE_ALL
	CMSG_CHANNEL_UNSILENCE_VOICE
	CMSG_CHANNEL_UNSILENCE_ALL
	CMSG_TARGET_CAST
	CMSG_TARGET_SCRIPT_CAST
	CMSG_CHANNEL_DISPLAY_LIST
	CMSG_SET_ACTIVE_VOICE_CHANNEL
	CMSG_GET_CHANNEL_MEMBER_COUNT
	SMSG_CHANNEL_MEMBER_COUNT
	CMSG_CHANNEL_VOICE_ON
	CMSG_CHANNEL_VOICE_OFF
	CMSG_DEBUG_LIST_TARGETS
	SMSG_DEBUG_LIST_TARGETS
	SMSG_AVAILABLE_VOICE_CHANNEL
	CMSG_ADD_VOICE_IGNORE
	CMSG_DEL_VOICE_IGNORE
	CMSG_PARTY_SILENCE
	CMSG_PARTY_UNSILENCE
	MSG_NOTIFY_PARTY_SQUELCH
	SMSG_COMSAT_RECONNECT_TRY
	SMSG_COMSAT_DISCONNECT
	SMSG_COMSAT_CONNECT_FAIL
	SMSG_VOICE_CHAT_STATUS
	CMSG_REPORT_PVP_AFK
	SMSG_REPORT_PVP_AFK_RESULT
	CMSG_GUILD_BANKER_ACTIVATE
	CMSG_GUILD_BANK_QUERY_TAB
	SMSG_GUILD_BANK_LIST
	CMSG_GUILD_BANK_SWAP_ITEMS
	CMSG_GUILD_BANK_BUY_TAB
	CMSG_GUILD_BANK_UPDATE_TAB
	CMSG_GUILD_BANK_DEPOSIT_MONEY
	CMSG_GUILD_BANK_WITHDRAW_MONEY
	MSG_GUILD_BANK_LOG_QUERY
	CMSG_SET_CHANNEL_WATCH
	SMSG_USERLIST_ADD
	SMSG_USERLIST_REMOVE
	SMSG_USERLIST_UPDATE
	CMSG_CLEAR_CHANNEL_WATCH
	SMSG_INSPECT_TALENT
	SMSG_GOGOGO_OBSOLETE
	SMSG_ECHO_PARTY_SQUELCH
	CMSG_SET_TITLE_SUFFIX
	CMSG_SPELLCLICK
	SMSG_LOOT_LIST
	CMSG_GM_CHARACTER_RESTORE
	CMSG_GM_CHARACTER_SAVE
	SMSG_VOICESESSION_FULL
	MSG_GUILD_PERMISSIONS
	MSG_GUILD_BANK_MONEY_WITHDRAWN
	MSG_GUILD_EVENT_LOG_QUERY
	CMSG_MAELSTROM_RENAME_GUILD
	CMSG_GET_MIRRORIMAGE_DATA
	SMSG_MIRRORIMAGE_DATA
	SMSG_FORCE_DISPLAY_UPDATE
	SMSG_SPELL_CHANCE_RESIST_PUSHBACK
	CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT
	SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT
	CMSG_KEEP_ALIVE
	SMSG_RAID_READY_CHECK_ERROR
	CMSG_OPT_OUT_OF_LOOT
	MSG_QUERY_GUILD_BANK_TEXT
	CMSG_SET_GUILD_BANK_TEXT
	CMSG_SET_GRANTABLE_LEVELS
	CMSG_GRANT_LEVEL
	CMSG_REFER_A_FRIEND
	MSG_GM_CHANGE_ARENA_RATING
	CMSG_DECLINE_CHANNEL_INVITE
	SMSG_GROUPACTION_THROTTLED
	SMSG_OVERRIDE_LIGHT
	SMSG_TOTEM_CREATED
	CMSG_TOTEM_DESTROYED
	CMSG_EXPIRE_RAID_INSTANCE
	CMSG_NO_SPELL_VARIANCE
	CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY
	SMSG_QUESTGIVER_STATUS_MULTIPLE
	CMSG_SET_PLAYER_DECLINED_NAMES
	SMSG_SET_PLAYER_DECLINED_NAMES_RESULT
	CMSG_QUERY_SERVER_BUCK_DATA
	CMSG_CLEAR_SERVER_BUCK_DATA
	SMSG_SERVER_BUCK_DATA
	SMSG_SEND_UNLEARN_SPELLS
	SMSG_PROPOSE_LEVEL_GRANT
	CMSG_ACCEPT_LEVEL_GRANT
	SMSG_REFER_A_FRIEND_FAILURE
	SMSG_SPLINE_MOVE_SET_FLYING
	SMSG_SPLINE_MOVE_UNSET_FLYING
	SMSG_SUMMON_CANCEL
	CMSG_CHANGE_PERSONAL_ARENA_RATING
	CMSG_ALTER_APPEARANCE
	SMSG_ENABLE_BARBER_SHOP
	SMSG_BARBER_SHOP_RESULT
	CMSG_CALENDAR_GET_CALENDAR
	CMSG_CALENDAR_GET_EVENT
	CMSG_CALENDAR_GUILD_FILTER
	CMSG_CALENDAR_ARENA_TEAM
	CMSG_CALENDAR_ADD_EVENT
	CMSG_CALENDAR_UPDATE_EVENT
	CMSG_CALENDAR_REMOVE_EVENT
	CMSG_CALENDAR_COPY_EVENT
	CMSG_CALENDAR_EVENT_INVITE
	CMSG_CALENDAR_EVENT_RSVP
	CMSG_CALENDAR_EVENT_REMOVE_INVITE
	CMSG_CALENDAR_EVENT_STATUS
	CMSG_CALENDAR_EVENT_MODERATOR_STATUS
	SMSG_CALENDAR_SEND_CALENDAR
	SMSG_CALENDAR_SEND_EVENT
	SMSG_CALENDAR_FILTER_GUILD
	SMSG_CALENDAR_ARENA_TEAM
	SMSG_CALENDAR_EVENT_INVITE
	SMSG_CALENDAR_EVENT_INVITE_REMOVED
	SMSG_CALENDAR_EVENT_STATUS
	SMSG_CALENDAR_COMMAND_RESULT
	SMSG_CALENDAR_RAID_LOCKOUT_ADDED
	SMSG_CALENDAR_RAID_LOCKOUT_REMOVED
	SMSG_CALENDAR_EVENT_INVITE_ALERT
	SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT
	SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT
	SMSG_CALENDAR_EVENT_REMOVED_ALERT
	SMSG_CALENDAR_EVENT_UPDATED_ALERT
	SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT
	CMSG_CALENDAR_COMPLAIN
	CMSG_CALENDAR_GET_NUM_PENDING
	SMSG_CALENDAR_SEND_NUM_PENDING
	CMSG_SAVE_DANCE
	SMSG_NOTIFY_DANCE
	CMSG_PLAY_DANCE
	SMSG_PLAY_DANCE
	CMSG_LOAD_DANCES
	CMSG_STOP_DANCE
	SMSG_STOP_DANCE
	CMSG_SYNC_DANCE
	CMSG_DANCE_QUERY
	SMSG_DANCE_QUERY_RESPONSE
	SMSG_INVALIDATE_DANCE
	CMSG_DELETE_DANCE
	SMSG_LEARNED_DANCE_MOVES
	CMSG_LEARN_DANCE_MOVE
	CMSG_UNLEARN_DANCE_MOVE
	CMSG_SET_RUNE_COUNT
	CMSG_SET_RUNE_COOLDOWN
	MSG_MOVE_SET_PITCH_RATE_CHEAT
	MSG_MOVE_SET_PITCH_RATE
	SMSG_FORCE_PITCH_RATE_CHANGE
	CMSG_FORCE_PITCH_RATE_CHANGE_ACK
	SMSG_SPLINE_SET_PITCH_RATE
	CMSG_CALENDAR_EVENT_INVITE_NOTES
	SMSG_CALENDAR_EVENT_INVITE_NOTES
	SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT
	CMSG_UPDATE_MISSILE_TRAJECTORY
	SMSG_UPDATE_ACCOUNT_DATA_COMPLETE
	SMSG_TRIGGER_MOVIE
	CMSG_COMPLETE_MOVIE
	CMSG_SET_GLYPH_SLOT
	CMSG_SET_GLYPH
	SMSG_ACHIEVEMENT_EARNED
	SMSG_DYNAMIC_DROP_ROLL_RESULT
	SMSG_CRITERIA_UPDATE
	CMSG_QUERY_INSPECT_ACHIEVEMENTS
	SMSG_RESPOND_INSPECT_ACHIEVEMENTS
	CMSG_DISMISS_CONTROLLED_VEHICLE
	CMSG_COMPLETE_ACHIEVEMENT_CHEAT
	SMSG_QUESTUPDATE_ADD_PVP_KILL
	CMSG_SET_CRITERIA_CHEAT
	SMSG_CALENDAR_RAID_LOCKOUT_UPDATED
	CMSG_UNITANIMTIER_CHEAT
	CMSG_CHAR_CUSTOMIZE
	SMSG_CHAR_CUSTOMIZE
	SMSG_PET_RENAMEABLE
	CMSG_REQUEST_VEHICLE_EXIT
	CMSG_REQUEST_VEHICLE_PREV_SEAT
	CMSG_REQUEST_VEHICLE_NEXT_SEAT
	CMSG_REQUEST_VEHICLE_SWITCH_SEAT
	CMSG_PET_LEARN_TALENT
	CMSG_PET_UNLEARN_TALENTS
	SMSG_SET_PHASE_SHIFT
	SMSG_ALL_ACHIEVEMENT_DATA
	CMSG_FORCE_SAY_CHEAT
	SMSG_HEALTH_UPDATE
	SMSG_POWER_UPDATE
	CMSG_GAMEOBJ_REPORT_USE
	SMSG_HIGHEST_THREAT_UPDATE
	SMSG_THREAT_UPDATE
	SMSG_THREAT_REMOVE
	SMSG_THREAT_CLEAR
	SMSG_CONVERT_RUNE
	SMSG_RESYNC_RUNES
	SMSG_ADD_RUNE_POWER
	CMSG_START_QUEST
	CMSG_REMOVE_GLYPH
	CMSG_DUMP_OBJECTS
	SMSG_DUMP_OBJECTS_DATA
	CMSG_DISMISS_CRITTER
	SMSG_NOTIFY_DEST_LOC_SPELL_CAST
	CMSG_AUCTION_LIST_PENDING_SALES
	SMSG_AUCTION_LIST_PENDING_SALES
	SMSG_MODIFY_COOLDOWN
	SMSG_PET_UPDATE_COMBO_POINTS
	CMSG_ENABLETAXI
	SMSG_PRE_RESURRECT
	SMSG_AURA_UPDATE_ALL
	SMSG_AURA_UPDATE
	CMSG_FLOOD_GRACE_CHEAT
	SMSG_SERVER_FIRST_ACHIEVEMENT
	SMSG_PET_LEARNED_SPELL
	SMSG_PET_REMOVED_SPELL
	CMSG_CHANGE_REALM_TICKET
	CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE
	CMSG_HEARTH_AND_RESURRECT
	SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA
	SMSG_CRITERIA_DELETED
	SMSG_ACHIEVEMENT_DELETED
	CMSG_SERVER_INFO_QUERY
	SMSG_SERVER_INFO_RESPONSE
	CMSG_CHECK_LOGIN_CRITERIA
	SMSG_SERVER_BUCK_DATA_START
	CMSG_SET_BREATH
	CMSG_QUERY_VEHICLE_STATUS
	SMSG_BATTLEGROUND_INFO_THROTTLED
	SMSG_PLAYER_VEHICLE_DATA
	CMSG_PLAYER_VEHICLE_ENTER
	CMSG_CONTROLLER_EJECT_PASSENGER
	SMSG_PET_GUIDS
	SMSG_CLIENTCACHE_VERSION
	CMSG_CHANGE_GDF_ARENA_RATING
	CMSG_SET_ARENA_TEAM_RATING_BY_INDEX
	CMSG_SET_ARENA_TEAM_WEEKLY_GAMES
	CMSG_SET_ARENA_TEAM_SEASON_GAMES
	CMSG_SET_ARENA_MEMBER_WEEKLY_GAMES
	CMSG_SET_ARENA_MEMBER_SEASON_GAMES
	SMSG_ITEM_REFUND_INFO_RESPONSE
	CMSG_ITEM_REFUND_INFO
	CMSG_ITEM_REFUND
	SMSG_ITEM_REFUND_RESULT
	CMSG_CORPSE_MAP_POSITION_QUERY
	SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE
	CMSG_UNUSED5
	CMSG_UNUSED6
	CMSG_CALENDAR_EVENT_SIGN_UP
	SMSG_CALENDAR_CLEAR_PENDING_ACTION
	SMSG_EQUIPMENT_SET_LIST
	CMSG_EQUIPMENT_SET_SAVE
	CMSG_UPDATE_PROJECTILE_POSITION
	SMSG_SET_PROJECTILE_POSITION
	SMSG_TALENTS_INFO
	CMSG_LEARN_PREVIEW_TALENTS
	CMSG_LEARN_PREVIEW_TALENTS_PET
	CMSG_SET_ACTIVE_TALENT_GROUP_OBSOLETE
	CMSG_GM_GRANT_ACHIEVEMENT
	CMSG_GM_REMOVE_ACHIEVEMENT
	CMSG_GM_SET_CRITERIA_FOR_PLAYER
	SMSG_ARENA_UNIT_DESTROYED
	SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED
	CMSG_PROFILEDATA_REQUEST
	SMSG_PROFILEDATA_RESPONSE
	CMSG_START_BATTLEFIELD_CHEAT
	CMSG_END_BATTLEFIELD_CHEAT
	SMSG_MULTIPLE_PACKETS
	SMSG_MOVE_GRAVITY_DISABLE
	CMSG_MOVE_GRAVITY_DISABLE_ACK
	SMSG_MOVE_GRAVITY_ENABLE
	CMSG_MOVE_GRAVITY_ENABLE_ACK
	MSG_MOVE_GRAVITY_CHNG
	SMSG_SPLINE_MOVE_GRAVITY_DISABLE
	SMSG_SPLINE_MOVE_GRAVITY_ENABLE
	CMSG_EQUIPMENT_SET_USE
	SMSG_EQUIPMENT_SET_USE_RESULT
	CMSG_FORCE_ANIM
	SMSG_FORCE_ANIM
	CMSG_CHAR_FACTION_CHANGE
	SMSG_CHAR_FACTION_CHANGE
	CMSG_PVP_QUEUE_STATS_REQUEST
	SMSG_PVP_QUEUE_STATS
	CMSG_SET_PAID_SERVICE_CHEAT
	SMSG_BATTLEFIELD_MGR_ENTRY_INVITE
	CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE
	SMSG_BATTLEFIELD_MGR_ENTERED
	SMSG_BATTLEFIELD_MGR_QUEUE_INVITE
	CMSG_BATTLEFIELD_MGR_QUEUE_INVITE_RESPONSE
	CMSG_BATTLEFIELD_MGR_QUEUE_REQUEST
	SMSG_BATTLEFIELD_MGR_QUEUE_REQUEST_RESPONSE
	SMSG_BATTLEFIELD_MGR_EJECT_PENDING
	SMSG_BATTLEFIELD_MGR_EJECTED
	CMSG_BATTLEFIELD_MGR_EXIT_REQUEST
	SMSG_BATTLEFIELD_MGR_STATE_CHANGE
	CMSG_BATTLEFIELD_MANAGER_ADVANCE_STATE
	CMSG_BATTLEFIELD_MANAGER_SET_NEXT_TRANSITION_TIME
	MSG_SET_RAID_DIFFICULTY
	CMSG_TOGGLE_XP_GAIN
	SMSG_TOGGLE_XP_GAIN
	SMSG_GMRESPONSE_DB_ERROR
	SMSG_GMRESPONSE_RECEIVED
	CMSG_GMRESPONSE_RESOLVE
	SMSG_GMRESPONSE_STATUS_UPDATE
	SMSG_GMRESPONSE_CREATE_TICKET
	CMSG_GMRESPONSE_CREATE_TICKET
	CMSG_SERVERINFO
	SMSG_SERVERINFO
	CMSG_WORLD_STATE_UI_TIMER_UPDATE
	SMSG_WORLD_STATE_UI_TIMER_UPDATE
	CMSG_CHAR_RACE_CHANGE
	MSG_VIEW_PHASE_SHIFT
	SMSG_TALENTS_INVOLUNTARILY_RESET
	CMSG_DEBUG_SERVER_GEO
	SMSG_DEBUG_SERVER_GEO
	SMSG_LOOT_SLOT_CHANGED
	UMSG_UPDATE_GROUP_INFO
	CMSG_READY_FOR_ACCOUNT_DATA_TIMES
	CMSG_QUERY_QUESTS_COMPLETED
	SMSG_QUERY_QUESTS_COMPLETED_RESPONSE
	CMSG_GM_REPORT_LAG
	CMSG_AFK_MONITOR_INFO_REQUEST
	SMSG_AFK_MONITOR_INFO_RESPONSE
	CMSG_AFK_MONITOR_INFO_CLEAR
	SMSG_CORPSE_NOT_IN_INSTANCE
	CMSG_GM_NUKE_CHARACTER
	CMSG_SET_ALLOW_LOW_LEVEL_RAID1
	CMSG_SET_ALLOW_LOW_LEVEL_RAID2
	SMSG_CAMERA_SHAKE
	CMSG_SET_CHARACTER_MODEL
	SMSG_REDIRECT_CLIENT
	CMSG_REDIRECTION_FAILED
	SMSG_SUSPEND_COMMS
	CMSG_SUSPEND_COMMS_ACK
	SMSG_FORCE_SEND_QUEUED_PACKETS
	CMSG_REDIRECTION_AUTH_PROOF
	CMSG_DROP_NEW_CONNECTION
	SMSG_SEND_ALL_COMBAT_LOG
	SMSG_OPEN_LFG_DUNGEON_FINDER
	SMSG_MOVE_SET_COLLISION_HGT
	CMSG_MOVE_SET_COLLISION_HGT_ACK
	MSG_MOVE_SET_COLLISION_HGT
	CMSG_CLEAR_RANDOM_BG_WIN_TIME
	CMSG_CLEAR_HOLIDAY_BG_WIN_TIME
	CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND
	SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1
	SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2
	SMSG_MULTIPLE_MOVES
	// Start "modern" opcodes
	CMSG_ACCEPT_GUILD_INVITE
	CMSG_ACCEPT_WARGAME_INVITE
	CMSG_ACTIVATE_TAXI
	CMSG_ADDON_LIST
	CMSG_ADD_BATTLENET_FRIEND
	CMSG_ADD_TOY
	CMSG_ADVENTURE_JOURNAL_OPEN_QUEST
	CMSG_ADVENTURE_JOURNAL_START_QUEST
	CMSG_ADVENTURE_MAP_POI_QUERY
	CMSG_AREA_TRIGGER
	CMSG_ARTIFACT_ADD_POWER
	CMSG_ARTIFACT_SET_APPEARANCE
	CMSG_ASSIGN_EQUIPMENT_SET_SPEC
	CMSG_ATTACK_STOP
	CMSG_ATTACK_SWING
	CMSG_AUCTIONABLE_TOKEN_SELL
	CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE
	CMSG_AUCTION_BROWSE_QUERY
	CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE
	CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE
	CMSG_AUCTION_GET_COMMODITY_QUOTE
	CMSG_AUCTION_HELLO_REQUEST
	CMSG_AUCTION_LIST_BIDDED_ITEMS
	CMSG_AUCTION_LIST_BUCKETS_BY_BUCKET_KEYS
	CMSG_AUCTION_LIST_ITEMS_BY_BUCKET_KEY
	CMSG_AUCTION_LIST_ITEMS_BY_ITEM_ID
	CMSG_AUCTION_REPLICATE_ITEMS
	CMSG_AUTH_CONTINUED_SESSION
	CMSG_AUTOBANK_REAGENT
	CMSG_AUTOSTORE_BANK_REAGENT
	CMSG_AUTO_EQUIP_ITEM
	CMSG_AUTO_EQUIP_ITEM_SLOT
	CMSG_AUTO_STORE_BAG_ITEM
	CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER
	CMSG_AZERITE_EMPOWERED_ITEM_VIEWED
	CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE
	CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE
	CMSG_BATTLEFIELD_LEAVE
	CMSG_BATTLEMASTER_JOIN_BRAWL
	CMSG_BATTLEMASTER_JOIN_SKIRMISH
	CMSG_BATTLENET_CHALLENGE_RESPONSE
	CMSG_BATTLENET_REQUEST
	CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE
	CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT
	CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE
	CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET
	CMSG_BATTLE_PAY_GET_PRODUCT_LIST
	CMSG_BATTLE_PAY_GET_PURCHASE_LIST
	CMSG_BATTLE_PAY_OPEN_CHECKOUT
	CMSG_BATTLE_PAY_QUERY_CLASS_TRIAL_BOOST_RESULT
	CMSG_BATTLE_PAY_REQUEST_CHARACTER_BOOST_UNREVOKE
	CMSG_BATTLE_PAY_REQUEST_PRICE_INFO
	CMSG_BATTLE_PAY_START_PURCHASE
	CMSG_BATTLE_PAY_START_VAS_PURCHASE
	CMSG_BATTLE_PAY_TRIAL_BOOST_CHARACTER
	CMSG_BATTLE_PET_CLEAR_FANFARE
	CMSG_BATTLE_PET_DELETE_PET
	CMSG_BATTLE_PET_DELETE_PET_CHEAT
	CMSG_BATTLE_PET_MODIFY_NAME
	CMSG_BATTLE_PET_REQUEST_JOURNAL
	CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK
	CMSG_BATTLE_PET_SET_BATTLE_SLOT
	CMSG_BATTLE_PET_SET_FLAGS
	CMSG_BATTLE_PET_SUMMON
	CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY
	CMSG_BATTLE_PET_UPDATE_NOTIFY
	CMSG_BLACK_MARKET_BID_ON_ITEM
	CMSG_BLACK_MARKET_OPEN
	CMSG_BLACK_MARKET_REQUEST_ITEMS
	CMSG_BONUS_ROLL
	CMSG_BUG_REPORT
	CMSG_BUY_BACK_ITEM
	CMSG_BUY_REAGENT_BANK
	CMSG_CAGE_BATTLE_PET
	CMSG_CALENDAR_COMMUNITY_FILTER
	CMSG_CALENDAR_GET
	CMSG_CALENDAR_REMOVE_INVITE
	CMSG_CANCEL_MASTER_LOOT_ROLL
	CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS
	CMSG_CANCEL_QUEUED_SPELL
	CMSG_CAN_DUEL
	CMSG_CHALLENGE_MODE_REQUEST_LEADERS
	CMSG_CHALLENGE_MODE_REQUEST_MAP_STATS
	CMSG_CHANGE_BAG_SLOT_FLAG
	CMSG_CHANGE_BANK_BAG_SLOT_FLAG
	CMSG_CHANGE_MONUMENT_APPEARANCE
	CMSG_CHANGE_SUB_GROUP
	CMSG_CHARACTER_RENAME_REQUEST
	CMSG_CHAR_RACE_OR_FACTION_CHANGE
	CMSG_CHAT_ADDON_MESSAGE
	CMSG_CHAT_ADDON_MESSAGE_TARGETED
	CMSG_CHAT_CHANNEL_ANNOUNCEMENTS
	CMSG_CHAT_CHANNEL_BAN
	CMSG_CHAT_CHANNEL_DECLINE_INVITE
	CMSG_CHAT_CHANNEL_DISPLAY_LIST
	CMSG_CHAT_CHANNEL_INVITE
	CMSG_CHAT_CHANNEL_KICK
	CMSG_CHAT_CHANNEL_LIST
	CMSG_CHAT_CHANNEL_MODERATOR
	CMSG_CHAT_CHANNEL_OWNER
	CMSG_CHAT_CHANNEL_PASSWORD
	CMSG_CHAT_CHANNEL_SET_OWNER
	CMSG_CHAT_CHANNEL_SILENCE_ALL
	CMSG_CHAT_CHANNEL_UNBAN
	CMSG_CHAT_CHANNEL_UNMODERATOR
	CMSG_CHAT_CHANNEL_UNSILENCE_ALL
	CMSG_CHAT_JOIN_CHANNEL
	CMSG_CHAT_LEAVE_CHANNEL
	CMSG_CHAT_MESSAGE_AFK
	CMSG_CHAT_MESSAGE_CHANNEL
	CMSG_CHAT_MESSAGE_DND
	CMSG_CHAT_MESSAGE_EMOTE
	CMSG_CHAT_MESSAGE_GUILD
	CMSG_CHAT_MESSAGE_INSTANCE_CHAT
	CMSG_CHAT_MESSAGE_OFFICER
	CMSG_CHAT_MESSAGE_PARTY
	CMSG_CHAT_MESSAGE_RAID
	CMSG_CHAT_MESSAGE_RAID_WARNING
	CMSG_CHAT_MESSAGE_SAY
	CMSG_CHAT_MESSAGE_WHISPER
	CMSG_CHAT_MESSAGE_YELL
	CMSG_CHAT_REGISTER_ADDON_PREFIXES
	CMSG_CHAT_REPORT_FILTERED
	CMSG_CHAT_REPORT_IGNORED
	CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES
	CMSG_CHOICE_RESPONSE
	CMSG_CLEAR_NEW_APPEARANCE
	CMSG_CLEAR_RAID_MARKER
	CMSG_CLIENT_PORT_GRAVEYARD
	CMSG_CLOSE_INTERACTION
	CMSG_CLOSE_QUEST_CHOICE
	CMSG_CLUB_FINDER_APPLICATION_RESPONSE
	CMSG_CLUB_FINDER_GET_APPLICANTS_LIST
	CMSG_CLUB_FINDER_POST
	CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA
	CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST
	CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB
	CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST
	CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS
	CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT
	CMSG_CLUB_INVITE
	CMSG_COLLECTION_ITEM_SET_FAVORITE
	CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS
	CMSG_COMMENTATOR_START_WARGAME
	CMSG_COMMERCE_TOKEN_GET_COUNT
	CMSG_COMMERCE_TOKEN_GET_LOG
	CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE
	CMSG_COMPLAINT
	CMSG_CONFIRM_ARTIFACT_RESPEC
	CMSG_CONFIRM_RESPEC_WIPE
	CMSG_CONNECT_TO_FAILED
	CMSG_CONSUMABLE_TOKEN_BUY
	CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE
	CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY
	CMSG_CONSUMABLE_TOKEN_REDEEM
	CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION
	CMSG_CONTRIBUTION_CONTRIBUTE
	CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST
	CMSG_CONVERSATION_LINE_STARTED
	CMSG_CONVERT_RAID
	CMSG_CREATE_CHARACTER
	CMSG_CREATE_SHIPMENT
	CMSG_DB_QUERY_BULK
	CMSG_DECLINE_GUILD_INVITES
	CMSG_DECLINE_PETITION
	CMSG_DELETE_EQUIPMENT_SET
	CMSG_DEPOSIT_REAGENT_BANK
	CMSG_DESTROY_ITEM
	CMSG_DF_BOOT_PLAYER_VOTE
	CMSG_DF_GET_JOIN_STATUS
	CMSG_DF_GET_SYSTEM_INFO
	CMSG_DF_JOIN
	CMSG_DF_LEAVE
	CMSG_DF_PROPOSAL_RESPONSE
	CMSG_DF_READY_CHECK_RESPONSE
	CMSG_DF_SET_ROLES
	CMSG_DF_TELEPORT
	CMSG_DISCARDED_TIME_SYNC_ACKS
	CMSG_DO_MASTER_LOOT_ROLL
	CMSG_DO_READY_CHECK
	CMSG_DUEL_RESPONSE
	CMSG_EJECT_PASSENGER
	CMSG_ENABLE_NAGLE
	CMSG_ENABLE_TAXI_NODE
	CMSG_ENGINE_SURVEY
	CMSG_ENTER_ENCRYPTED_MODE_ACK
	CMSG_ENUM_CHARACTERS
	CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT
	CMSG_GAME_EVENT_DEBUG_DISABLE
	CMSG_GAME_EVENT_DEBUG_ENABLE
	CMSG_GAME_OBJ_REPORT_USE
	CMSG_GAME_OBJ_USE
	CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING
	CMSG_GARRISON_CANCEL_CONSTRUCTION
	CMSG_GARRISON_CHECK_UPGRADEABLE
	CMSG_GARRISON_COMPLETE_MISSION
	CMSG_GARRISON_GENERATE_RECRUITS
	CMSG_GARRISON_GET_BUILDING_LANDMARKS
	CMSG_GARRISON_GET_MISSION_REWARD
	CMSG_GARRISON_MISSION_BONUS_ROLL
	CMSG_GARRISON_PURCHASE_BUILDING
	CMSG_GARRISON_RECRUIT_FOLLOWER
	CMSG_GARRISON_REMOVE_FOLLOWER
	CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING
	CMSG_GARRISON_RENAME_FOLLOWER
	CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA
	CMSG_GARRISON_REQUEST_CLASS_SPEC_CATEGORY_INFO
	CMSG_GARRISON_REQUEST_LANDING_PAGE_SHIPMENT_INFO
	CMSG_GARRISON_REQUEST_SHIPMENT_INFO
	CMSG_GARRISON_RESEARCH_TALENT
	CMSG_GARRISON_SET_BUILDING_ACTIVE
	CMSG_GARRISON_SET_FOLLOWER_FAVORITE
	CMSG_GARRISON_SET_FOLLOWER_INACTIVE
	CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES
	CMSG_GARRISON_START_MISSION
	CMSG_GARRISON_SWAP_BUILDINGS
	CMSG_GENERATE_RANDOM_CHARACTER_NAME
	CMSG_GET_ACCOUNT_CHARACTER_LIST
	CMSG_GET_CHALLENGE_MODE_REWARDS
	CMSG_GET_GARRISON_INFO
	CMSG_GET_ITEM_PURCHASE_DATA
	CMSG_GET_MIRROR_IMAGE_DATA
	CMSG_GET_PVP_OPTIONS_ENABLED
	CMSG_GET_RAF_ACCOUNT_INFO
	CMSG_GET_REMAINING_GAME_TIME
	CMSG_GET_TROPHY_LIST
	CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS
	CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST
	CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST
	CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY
	CMSG_GM_TICKET_GET_CASE_STATUS
	CMSG_GM_TICKET_GET_SYSTEM_STATUS
	CMSG_GUILD_ADD_BATTLENET_FRIEND
	CMSG_GUILD_ASSIGN_MEMBER_RANK
	CMSG_GUILD_AUTO_DECLINE_INVITATION
	CMSG_GUILD_BANK_ACTIVATE
	CMSG_GUILD_BANK_LOG_QUERY
	CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY
	CMSG_GUILD_BANK_SET_TAB_TEXT
	CMSG_GUILD_BANK_TEXT_QUERY
	CMSG_GUILD_CHALLENGE_UPDATE_REQUEST
	CMSG_GUILD_CHANGE_NAME_REQUEST
	CMSG_GUILD_DECLINE_INVITATION
	CMSG_GUILD_DELETE
	CMSG_GUILD_DELETE_RANK
	CMSG_GUILD_DEMOTE_MEMBER
	CMSG_GUILD_EVENT_LOG_QUERY
	CMSG_GUILD_GET_ACHIEVEMENT_MEMBERS
	CMSG_GUILD_GET_RANKS
	CMSG_GUILD_GET_ROSTER
	CMSG_GUILD_INVITE_BY_NAME
	CMSG_GUILD_NEWS_UPDATE_STICKY
	CMSG_GUILD_OFFICER_REMOVE_MEMBER
	CMSG_GUILD_PERMISSIONS_QUERY
	CMSG_GUILD_PROMOTE_MEMBER
	CMSG_GUILD_QUERY_MEMBERS_FOR_RECIPE
	CMSG_GUILD_QUERY_MEMBER_RECIPES
	CMSG_GUILD_QUERY_NEWS
	CMSG_GUILD_QUERY_RECIPES
	CMSG_GUILD_REPLACE_GUILD_MASTER
	CMSG_GUILD_SET_ACHIEVEMENT_TRACKING
	CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT
	CMSG_GUILD_SET_GUILD_MASTER
	CMSG_GUILD_SET_MEMBER_NOTE
	CMSG_GUILD_SET_RANK_PERMISSIONS
	CMSG_GUILD_SHIFT_RANK
	CMSG_GUILD_UPDATE_INFO_TEXT
	CMSG_GUILD_UPDATE_MOTD_TEXT
	CMSG_HOTFIX_REQUEST
	CMSG_INITIATE_ROLE_POLL
	CMSG_ISLAND_QUEUE
	CMSG_ITEM_PURCHASE_REFUND
	CMSG_JOIN_PET_BATTLE_QUEUE
	CMSG_JOIN_RATED_BATTLEGROUND
	CMSG_KEYBOUND_OVERRIDE
	CMSG_LEARN_PVP_TALENTS
	CMSG_LEARN_TALENTS
	CMSG_LEAVE_GROUP
	CMSG_LEAVE_PET_BATTLE_QUEUE
	CMSG_LFG_LIST_APPLY_TO_GROUP
	CMSG_LFG_LIST_CANCEL_APPLICATION
	CMSG_LFG_LIST_DECLINE_APPLICANT
	CMSG_LFG_LIST_GET_STATUS
	CMSG_LFG_LIST_INVITE_APPLICANT
	CMSG_LFG_LIST_INVITE_RESPONSE
	CMSG_LFG_LIST_JOIN
	CMSG_LFG_LIST_LEAVE
	CMSG_LFG_LIST_SEARCH
	CMSG_LFG_LIST_UPDATE_REQUEST
	CMSG_LF_GUILD_ADD_RECRUIT
	CMSG_LF_GUILD_BROWSE
	CMSG_LF_GUILD_DECLINE_RECRUIT
	CMSG_LF_GUILD_GET_APPLICATIONS
	CMSG_LF_GUILD_GET_GUILD_POST
	CMSG_LF_GUILD_GET_RECRUITS
	CMSG_LF_GUILD_REMOVE_RECRUIT
	CMSG_LF_GUILD_SET_GUILD_POST
	CMSG_LIVE_REGION_ACCOUNT_RESTORE
	CMSG_LIVE_REGION_CHARACTER_COPY
	CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST
	CMSG_LOADING_SCREEN_NOTIFY
	CMSG_LOAD_SELECTED_TROPHY
	CMSG_LOGOUT_INSTANT
	CMSG_LOG_DISCONNECT
	CMSG_LOG_STREAMING_ERROR
	CMSG_LOOT_ITEM
	CMSG_LOOT_UNIT
	CMSG_LOW_LEVEL_RAID1
	CMSG_LOW_LEVEL_RAID2
	CMSG_MAIL_GET_LIST
	CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT
	CMSG_MASTER_LOOT_ITEM
	CMSG_MINIMAP_PING
	CMSG_MISSILE_TRAJECTORY_COLLISION
	CMSG_MOUNT_CLEAR_FANFARE
	CMSG_MOUNT_SET_FAVORITE
	CMSG_MOUNT_SPECIAL_ANIM
	CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK
	CMSG_MOVE_CHANGE_TRANSPORT
	CMSG_MOVE_CHANGE_VEHICLE_SEATS
	CMSG_MOVE_DISMISS_VEHICLE
	CMSG_MOVE_DOUBLE_JUMP
	CMSG_MOVE_ENABLE_DOUBLE_JUMP_ACK
	CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK
	CMSG_MOVE_FALL_LAND
	CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK
	CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK
	CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK
	CMSG_MOVE_FORCE_ROOT_ACK
	CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK
	CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK
	CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK
	CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK
	CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK
	CMSG_MOVE_FORCE_UNROOT_ACK
	CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK
	CMSG_MOVE_HEARTBEAT
	CMSG_MOVE_JUMP
	CMSG_MOVE_REMOVE_MOVEMENT_FORCES
	CMSG_MOVE_REMOVE_MOVEMENT_FORCE_ACK
	CMSG_MOVE_SEAMLESS_TRANSFER_COMPLETE
	CMSG_MOVE_SET_CAN_TURN_WHILE_FALLING_ACK
	CMSG_MOVE_SET_COLLISION_HEIGHT_ACK
	CMSG_MOVE_SET_FACING
	CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK
	CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK
	CMSG_MOVE_SET_PITCH
	CMSG_MOVE_SET_RUN_MODE
	CMSG_MOVE_SET_VEHICLE_REC_ID_ACK
	CMSG_MOVE_SET_WALK_MODE
	CMSG_MOVE_START_ASCEND
	CMSG_MOVE_START_BACKWARD
	CMSG_MOVE_START_DESCEND
	CMSG_MOVE_START_FORWARD
	CMSG_MOVE_START_PITCH_DOWN
	CMSG_MOVE_START_PITCH_UP
	CMSG_MOVE_START_STRAFE_LEFT
	CMSG_MOVE_START_STRAFE_RIGHT
	CMSG_MOVE_START_SWIM
	CMSG_MOVE_START_TURN_LEFT
	CMSG_MOVE_START_TURN_RIGHT
	CMSG_MOVE_STOP
	CMSG_MOVE_STOP_ASCEND
	CMSG_MOVE_STOP_PITCH
	CMSG_MOVE_STOP_STRAFE
	CMSG_MOVE_STOP_SWIM
	CMSG_MOVE_STOP_TURN
	CMSG_MOVE_TELEPORT_ACK
	CMSG_MOVE_TOGGLE_COLLISION_CHEAT
	CMSG_MOVE_UPDATE_FALL_SPEED
	CMSG_NEUTRAL_PLAYER_SELECT_FACTION
	CMSG_OBJECT_UPDATE_FAILED
	CMSG_OBJECT_UPDATE_RESCUED
	CMSG_OPEN_MISSION_NPC
	CMSG_OPEN_SHIPMENT_NPC
	CMSG_OPEN_TRADESKILL_NPC
	CMSG_PARTY_INVITE
	CMSG_PARTY_INVITE_RESPONSE
	CMSG_PARTY_UNINVITE
	CMSG_PETITION_RENAME_GUILD
	CMSG_PETITION_SHOW_LIST
	CMSG_PET_BATTLE_FINAL_NOTIFY
	CMSG_PET_BATTLE_INPUT
	CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT
	CMSG_PET_BATTLE_QUIT_NOTIFY
	CMSG_PET_BATTLE_REPLACE_FRONT_PET
	CMSG_PET_BATTLE_REQUEST_PVP
	CMSG_PET_BATTLE_REQUEST_UPDATE
	CMSG_PET_BATTLE_REQUEST_WILD
	CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY
	CMSG_PET_BATTLE_WILD_LOCATION_FAIL
	CMSG_PUSH_QUEST_TO_PARTY
	CMSG_PVP_LOG_DATA
	CMSG_QUERY_BATTLE_PET_NAME
	CMSG_QUERY_COMMUNITY_NAME
	CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT
	CMSG_QUERY_CORPSE_TRANSPORT
	CMSG_QUERY_COUNTDOWN_TIMER
	CMSG_QUERY_CREATURE
	CMSG_QUERY_GAME_OBJECT
	CMSG_QUERY_GARRISON_CREATURE_NAME
	CMSG_QUERY_GUILD_INFO
	CMSG_QUERY_NEXT_MAIL_TIME
	CMSG_QUERY_NPC_TEXT
	CMSG_QUERY_PAGE_TEXT
	CMSG_QUERY_PETITION
	CMSG_QUERY_PET_NAME
	CMSG_QUERY_PLAYER_NAME
	CMSG_QUERY_QUEST_COMPLETION_NPCS
	CMSG_QUERY_QUEST_INFO
	CMSG_QUERY_REALM_NAME
	CMSG_QUERY_SCENARIO_POI
	CMSG_QUERY_TREASURE_PICKER
	CMSG_QUERY_VOID_STORAGE
	CMSG_QUEST_GIVER_ACCEPT_QUEST
	CMSG_QUEST_GIVER_CHOOSE_REWARD
	CMSG_QUEST_GIVER_COMPLETE_QUEST
	CMSG_QUEST_GIVER_HELLO
	CMSG_QUEST_GIVER_QUERY_QUEST
	CMSG_QUEST_GIVER_REQUEST_REWARD
	CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY
	CMSG_QUEST_GIVER_STATUS_QUERY
	CMSG_QUEST_LOG_REMOVE_QUEST
	CMSG_QUEST_PUSH_RESULT
	CMSG_QUEST_SESSION_BEGIN_RESPONSE
	CMSG_QUEST_SESSION_REQUEST_START
	CMSG_QUEST_SESSION_REQUEST_STOP
	CMSG_QUEUED_MESSAGES_END
	CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS
	CMSG_QUICK_JOIN_REQUEST_INVITE
	CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION
	CMSG_QUICK_JOIN_RESPOND_TO_INVITE
	CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED
	CMSG_RAF_CLAIM_ACTIVITY_REWARD
	CMSG_RAF_CLAIM_NEXT_REWARD
	CMSG_RAF_GENERATE_RECRUITMENT_LINK
	CMSG_RAF_UPDATE_RECRUITMENT_INFO
	CMSG_RAID_OR_BATTLEGROUND_ENGINE_SURVEY
	CMSG_RANDOM_ROLL
	CMSG_READY_CHECK_RESPONSE
	CMSG_REMOVE_NEW_ITEM
	CMSG_REMOVE_RAF_RECRUIT
	CMSG_REORDER_CHARACTERS
	CMSG_REPLACE_TROPHY
	CMSG_REPORT_CLIENT_VARIABLES
	CMSG_REPORT_ENABLED_ADDONS
	CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS
	CMSG_REPORT_PVP_PLAYER_AFK
	CMSG_REPORT_SERVER_LAG
	CMSG_REQUEST_AREA_POI_UPDATE
	CMSG_REQUEST_BATTLEFIELD_STATUS
	CMSG_REQUEST_CATEGORY_COOLDOWNS
	CMSG_REQUEST_CEMETERY_LIST
	CMSG_REQUEST_CHALLENGE_MODE_AFFIXES
	CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO
	CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS
	CMSG_REQUEST_CROWD_CONTROL_SPELL
	CMSG_REQUEST_FORCED_REACTIONS
	CMSG_REQUEST_GUILD_PARTY_STATE
	CMSG_REQUEST_GUILD_REWARDS_LIST
	CMSG_REQUEST_LFG_LIST_BLACKLIST
	CMSG_REQUEST_PARTY_JOIN_UPDATES
	CMSG_REQUEST_PLAYED_TIME
	CMSG_REQUEST_PVP_BRAWL_INFO
	CMSG_REQUEST_PVP_REWARDS
	CMSG_REQUEST_QUEST_LINES_FOR_MAP
	CMSG_REQUEST_RATED_BATTLEFIELD_INFO
	CMSG_REQUEST_REALM_GUILD_MASTER_INFO
	CMSG_REQUEST_RESEARCH_HISTORY
	CMSG_REQUEST_STABLED_PETS
	CMSG_REQUEST_WORLD_QUEST_UPDATE
	CMSG_RESET_CHALLENGE_MODE
	CMSG_RESET_CHALLENGE_MODE_CHEAT
	CMSG_REVERT_MONUMENT_APPEARANCE
	CMSG_RIDE_VEHICLE_INTERACT
	CMSG_SAVE_CUF_PROFILES
	CMSG_SAVE_EQUIPMENT_SET
	CMSG_SAVE_GUILD_EMBLEM
	CMSG_SCENE_PLAYBACK_CANCELED
	CMSG_SCENE_PLAYBACK_COMPLETE
	CMSG_SCENE_TRIGGER_EVENT
	CMSG_SEND_CONTACT_LIST
	CMSG_SEND_TEXT_EMOTE
	CMSG_SERVER_TIME_OFFSET_REQUEST
	CMSG_SET_ACHIEVEMENTS_HIDDEN
	CMSG_SET_ACTION_BAR_TOGGLES
	CMSG_SET_ADVANCED_COMBAT_LOGGING
	CMSG_SET_ASSISTANT_LEADER
	CMSG_SET_BACKPACK_AUTOSORT_DISABLED
	CMSG_SET_BANK_AUTOSORT_DISABLED
	CMSG_SET_CURRENCY_FLAGS
	CMSG_SET_DIFFICULTY_ID
	CMSG_SET_DUNGEON_DIFFICULTY
	CMSG_SET_EVERYONE_IS_ASSISTANT
	CMSG_SET_FACTION_AT_WAR
	CMSG_SET_FACTION_NOT_AT_WAR
	CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE
	CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT
	CMSG_SET_LFG_BONUS_FACTION_ID
	CMSG_SET_LOOT_METHOD
	CMSG_SET_LOOT_SPECIALIZATION
	CMSG_SET_PARTY_ASSIGNMENT
	CMSG_SET_PARTY_LEADER
	CMSG_SET_PET_SLOT
	CMSG_SET_PREFERRED_CEMETERY
	CMSG_SET_PVP
	CMSG_SET_RAID_DIFFICULTY
	CMSG_SET_ROLE
	CMSG_SET_SHEATHED
	CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT
	CMSG_SET_TRADE_CURRENCY
	CMSG_SET_USING_PARTY_GARRISON
	CMSG_SET_WAR_MODE
	CMSG_SHOW_TRADE_SKILL
	CMSG_SIGN_PETITION
	CMSG_SILENCE_PARTY_TALKER
	CMSG_SORT_BAGS
	CMSG_SORT_BANK_BAGS
	CMSG_SORT_REAGENT_BANK_BAGS
	CMSG_SPELL_CLICK
	CMSG_STAND_STATE_CHANGE
	CMSG_START_CHALLENGE_MODE
	CMSG_START_SPECTATOR_WAR_GAME
	CMSG_START_WAR_GAME
	CMSG_SUPPORT_TICKET_SUBMIT_BUG
	CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT
	CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION
	CMSG_SURRENDER_ARENA
	CMSG_SUSPEND_TOKEN_RESPONSE
	CMSG_SWAP_SUB_GROUPS
	CMSG_SWAP_VOID_ITEM
	CMSG_TABARD_VENDOR_ACTIVATE
	CMSG_TALK_TO_GOSSIP
	CMSG_TAXI_NODE_STATUS_QUERY
	CMSG_TAXI_QUERY_AVAILABLE_NODES
	CMSG_TAXI_REQUEST_EARLY_LANDING
	CMSG_TIME_ADJUSTMENT_RESPONSE
	CMSG_TIME_SYNC_RESPONSE
	CMSG_TIME_SYNC_RESPONSE_DROPPED
	CMSG_TIME_SYNC_RESPONSE_FAILED
	CMSG_TOGGLE_DIFFICULTY
	CMSG_TOY_CLEAR_FANFARE
	CMSG_TRADE_SKILL_SET_FAVORITE
	CMSG_TRANSMOGRIFY_ITEMS
	CMSG_TUTORIAL
	CMSG_TWITTER_CHECK_STATUS
	CMSG_TWITTER_CONNECT
	CMSG_TWITTER_DISCONNECT
	CMSG_TWITTER_POST
	CMSG_UNDELETE_CHARACTER
	CMSG_UNLEARN_SPECIALIZATION
	CMSG_UNLOCK_VOID_STORAGE
	CMSG_UPDATE_AREA_TRIGGER_VISUAL
	CMSG_UPDATE_CLIENT_SETTINGS
	CMSG_UPDATE_RAID_TARGET
	CMSG_UPDATE_SPELL_VISUAL
	CMSG_UPDATE_VAS_PURCHASE_STATES
	CMSG_UPGRADE_GARRISON
	CMSG_USED_FOLLOW
	CMSG_USE_CRITTER_ITEM
	CMSG_USE_EQUIPMENT_SET
	CMSG_USE_TOY
	CMSG_VAS_CHECK_TRANSFER_OK
	CMSG_VAS_GET_QUEUE_MINUTES
	CMSG_VAS_GET_SERVICE_STATUS
	CMSG_VIOLENCE_LEVEL
	CMSG_VOICE_CHAT_JOIN_CHANNEL
	CMSG_VOICE_CHAT_LOGIN
	CMSG_VOID_STORAGE_TRANSFER
	CMSG_WHO_IS
	CMSG_WORLD_PORT_RESPONSE

	CMSG_BF_MGR_ENTRY_INVITE_RESPONSE
	CMSG_BF_MGR_QUEUE_INVITE_RESPONSE
	CMSG_BF_MGR_QUEUE_EXIT_REQUEST

	SMSG_ABORT_NEW_WORLD
	SMSG_ACCOUNT_CRITERIA_UPDATE
	SMSG_ACCOUNT_MOUNT_UPDATE
	SMSG_ACCOUNT_TOY_UPDATE
	SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE
	SMSG_ACCOUNT_TRANSMOG_UPDATE
	SMSG_ACTIVATE_ESSENCE_FAILED
	SMSG_ACTIVATE_TAXI_REPLY
	SMSG_ACTIVE_GLYPHS
	SMSG_ADDON_LIST_REQUEST
	SMSG_ADD_BATTLENET_FRIEND_RESPONSE
	SMSG_ADD_ITEM_PASSIVE
	SMSG_ADD_LOSS_OF_CONTROL
	SMSG_ADJUST_SPLINE_DURATION
	SMSG_ADVENTURE_MAP_OPEN_NPC
	SMSG_AE_LOOT_TARGETS
	SMSG_AE_LOOT_TARGET_ACK
	SMSG_ALLIED_RACE_DETAILS
	SMSG_ALL_ACCOUNT_CRITERIA
	SMSG_ALL_GUILD_ACHIEVEMENTS
	SMSG_APPLY_MOUNT_EQUIPMENT_RESULT
	SMSG_ARCHAEOLOGY_SURVERY_CAST
	SMSG_AREA_POI_UPDATE_RESPONSE
	SMSG_AREA_TRIGGER_DENIED
	SMSG_AREA_TRIGGER_FORCE_SET_POSITION_AND_FACING
	SMSG_AREA_TRIGGER_NO_CORPSE
	SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL
	SMSG_AREA_TRIGGER_RE_PATH
	SMSG_AREA_TRIGGER_RE_SHAPE
	SMSG_AREA_TRIGGER_SET_VISUAL_ANIM
	SMSG_AREA_TRIGGER_UNATTACH
	SMSG_ARENA_CROWD_CONTROL_SPELL_RESULT
	SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS
	SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED
	SMSG_ARTIFACT_FORGE_ERROR
	SMSG_ARTIFACT_RESPEC_PROMPT
	SMSG_ARTIFACT_XP_GAIN
	SMSG_ATTACKER_STATE_UPDATE
	SMSG_ATTACK_START
	SMSG_ATTACK_STOP
	SMSG_ATTACK_SWING_ERROR
	SMSG_ATTACK_SWING_LANDED_LOG
	SMSG_AUCTIONABLE_TOKEN_AUCTION_SOLD
	SMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE_RESPONSE
	SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED
	SMSG_AUCTION_CLOSED_NOTIFICATION
	SMSG_AUCTION_FAVORITE_LIST
	SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT
	SMSG_AUCTION_HELLO_RESPONSE
	SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT
	SMSG_AUCTION_LIST_BUCKETS_RESULT
	SMSG_AUCTION_LIST_ITEMS_RESULT
	SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT
	SMSG_AUCTION_OUTBID_NOTIFICATION
	SMSG_AUCTION_OWNER_BID_NOTIFICATION
	SMSG_AUCTION_REPLICATE_RESPONSE
	SMSG_AUCTION_WON_NOTIFICATION
	SMSG_AURA_POINTS_DEPLETED
	SMSG_AUTH_FAILED
	SMSG_AVAILABLE_HOTFIXES
	SMSG_AZERITE_RESPEC_NPC
	SMSG_BAG_CLEANUP_FINISHED
	SMSG_BATCH_PRESENCE_SUBSCRIPTION
	SMSG_BATTLEFIELD_STATUS_ACTIVE
	SMSG_BATTLEFIELD_STATUS_FAILED
	SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION
	SMSG_BATTLEFIELD_STATUS_NONE
	SMSG_BATTLEFIELD_STATUS_QUEUED
	SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS
	SMSG_BATTLEGROUND_INIT
	SMSG_BATTLEGROUND_PLAYER_POSITIONS
	SMSG_BATTLEGROUND_POINTS
	SMSG_BATTLENET_CHALLENGE_ABORT
	SMSG_BATTLENET_CHALLENGE_START
	SMSG_BATTLENET_NOTIFICATION
	SMSG_BATTLENET_RESPONSE
	SMSG_BATTLE_NET_CONNECTION_STATUS
	SMSG_BATTLE_PAY_ACK_FAILED
	SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED
	SMSG_BATTLE_PAY_COLLECTION_ITEM_DELIVERED
	SMSG_BATTLE_PAY_CONFIRM_PURCHASE
	SMSG_BATTLE_PAY_DELIVERY_ENDED
	SMSG_BATTLE_PAY_DELIVERY_STARTED
	SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED
	SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE
	SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE
	SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE
	SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE
	SMSG_BATTLE_PAY_MOUNT_DELIVERED
	SMSG_BATTLE_PAY_PURCHASE_UPDATE
	SMSG_BATTLE_PAY_START_CHECKOUT
	SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE
	SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE
	SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE
	SMSG_BATTLE_PAY_VAS_GUILD_FOLLOW_INFO
	SMSG_BATTLE_PAY_VAS_GUILD_MASTER_LIST
	SMSG_BATTLE_PETS_HEALED
	SMSG_BATTLE_PET_CAGE_DATE_ERROR
	SMSG_BATTLE_PET_DELETED
	SMSG_BATTLE_PET_ERROR
	SMSG_BATTLE_PET_JOURNAL
	SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED
	SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED
	SMSG_BATTLE_PET_LICENSE_CHANGED
	SMSG_BATTLE_PET_RESTORED
	SMSG_BATTLE_PET_REVOKED
	SMSG_BATTLE_PET_SET_MAX_PETS
	SMSG_BATTLE_PET_TRAP_LEVEL
	SMSG_BATTLE_PET_UPDATES
	SMSG_BIND_POINT_UPDATE
	SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT
	SMSG_BLACK_MARKET_OPEN_RESULT
	SMSG_BLACK_MARKET_OUTBID
	SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT
	SMSG_BLACK_MARKET_WON
	SMSG_BONUS_ROLL_EMPTY
	SMSG_BOSS_KILL
	SMSG_BROADCAST_ACHIEVEMENT
	SMSG_BROADCAST_SUMMON_CAST
	SMSG_BROADCAST_SUMMON_RESPONSE
	SMSG_BUY_SUCCEEDED
	SMSG_CACHE_INFO
	SMSG_CACHE_VERSION
	SMSG_CALENDAR_COMMUNITY_INVITE
	SMSG_CALENDAR_INVITE_ADDED
	SMSG_CALENDAR_INVITE_ALERT
	SMSG_CALENDAR_INVITE_NOTES
	SMSG_CALENDAR_INVITE_NOTES_ALERT
	SMSG_CALENDAR_INVITE_REMOVED
	SMSG_CALENDAR_INVITE_REMOVED_ALERT
	SMSG_CALENDAR_INVITE_STATUS
	SMSG_CALENDAR_INVITE_STATUS_ALERT
	SMSG_CALENDAR_MODERATOR_STATUS
	SMSG_CAMERA_EFFECT
	SMSG_CANCEL_ORPHAN_SPELL_VISUAL
	SMSG_CANCEL_SCENE
	SMSG_CANCEL_SPELL_VISUAL
	SMSG_CANCEL_SPELL_VISUAL_KIT
	SMSG_CAN_DUEL_RESULT
	SMSG_CAN_REDEEM_TOKEN_FOR_BALANCE_RESPONSE
	SMSG_CAPTURE_POINT_REMOVED
	SMSG_CATEGORY_COOLDOWN
	SMSG_CHALLENGE_MODE_COMPLETE
	SMSG_CHALLENGE_MODE_REQUEST_LEADERS_RESULT
	SMSG_CHALLENGE_MODE_RESET
	SMSG_CHALLENGE_MODE_START
	SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT
	SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT
	SMSG_CHANGE_REALM_TICKET_RESPONSE
	SMSG_CHANNEL_NOTIFY_JOINED
	SMSG_CHANNEL_NOTIFY_LEFT
	SMSG_CHARACTER_CHECK_UPGRADE_RESULT
	SMSG_CHARACTER_OBJECT_TEST_RESPONSE
	SMSG_CHARACTER_RENAME_RESULT
	SMSG_CHARACTER_UPGRADE_ABORTED
	SMSG_CHARACTER_UPGRADE_COMPLETE
	SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT
	SMSG_CHARACTER_UPGRADE_STARTED
	SMSG_CHAR_CUSTOMIZE_FAILURE
	SMSG_CHAR_CUSTOMIZE_SUCCESS
	SMSG_CHAR_FACTION_CHANGE_RESULT
	SMSG_CHAT
	SMSG_CHAT_AUTO_RESPONDED
	SMSG_CHAT_DOWN
	SMSG_CHAT_IGNORED_ACCOUNT_MUTED
	SMSG_CHAT_IS_DOWN
	SMSG_CHAT_PLAYER_NOTFOUND
	SMSG_CHAT_RECONNECT
	SMSG_CHAT_SERVER_MESSAGE
	SMSG_CHEAT_IGNORE_DIMISHING_RETURNS
	SMSG_CHECK_WARGAME_ENTRY
	SMSG_CLAIM_RAF_REWARD_RESPONSE
	SMSG_CLEAR_ALL_SPELL_CHARGES
	SMSG_CLEAR_BOSS_EMOTES
	SMSG_CLEAR_COOLDOWNS
	SMSG_CLEAR_LOSS_OF_CONTROL
	SMSG_CLEAR_RESURRECT
	SMSG_CLEAR_SPELL_CHARGES
	SMSG_CLOSE_ARTIFACT_FORGE
	SMSG_CLOSE_HEART_FORGE
	SMSG_CLUB_FINDER_ERROR_MESSAGE
	SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE
	SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST
	SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST
	SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE
	SMSG_CLUB_FINDER_UPDATE_APPLICATIONS
	SMSG_COIN_REMOVED
	SMSG_COMMERCE_TOKEN_GET_COUNT_RESPONSE
	SMSG_COMMERCE_TOKEN_GET_LOG_RESPONSE
	SMSG_COMMERCE_TOKEN_GET_MARKET_PRICE_RESPONSE
	SMSG_COMMERCE_TOKEN_UPDATE
	SMSG_COMPLAINT_RESULT
	SMSG_COMPLETE_SHIPMENT_RESPONSE
	SMSG_CONFIRM_PARTY_INVITE
	SMSG_CONNECT_TO
	SMSG_CONQUEST_FORMULA_CONSTANTS
	SMSG_CONSOLE_WRITE
	SMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE_RESPONSE
	SMSG_CONSUMABLE_TOKEN_BUY_CHOICE_REQUIRED
	SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE
	SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED
	SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE
	SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE
	SMSG_CONTROL_UPDATE
	SMSG_CORPSE_LOCATION
	SMSG_CORPSE_TRANSPORT_QUERY
	SMSG_CREATE_CHAR
	SMSG_CREATE_SHIPMENT_RESPONSE
	SMSG_CUSTOM_LOAD_SCREEN
	SMSG_DAILY_QUESTS_RESET
	SMSG_DB_REPLY
	SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE
	SMSG_DELETE_CHAR
	SMSG_DESTROY_ARENA_UNIT
	SMSG_DIFFERENT_INSTANCE_FROM_PARTY
	SMSG_DISCONNECT_REASON
	SMSG_DISENCHANT_CREDIT
	SMSG_DISMOUNT_RESULT
	SMSG_DISPLAY_GAME_ERROR
	SMSG_DISPLAY_PLAYER_CHOICE
	SMSG_DISPLAY_PROMOTION
	SMSG_DISPLAY_QUEST_POPUP
	SMSG_DISPLAY_TOAST
	SMSG_DISPLAY_WORLD_TEXT
	SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR
	SMSG_DROP_NEW_CONNECTION
	SMSG_DUEL_ARRANGED
	SMSG_DUEL_IN_BOUNDS
	SMSG_DUEL_OUT_OF_BOUNDS
	SMSG_ENCHANTMENT_LOG
	SMSG_ENCOUNTER_END
	SMSG_ENCOUNTER_START
	SMSG_END_LIGHTNING_STORM
	SMSG_ENTER_ENCRYPTED_MODE
	SMSG_ENUM_CHARACTERS_RESULT
	SMSG_ENUM_VAS_PURCHASE_STATES_RESPONSE
	SMSG_ENVIRONMENTAL_DAMAGE_LOG
	SMSG_EQUIPMENT_SET_ID
	SMSG_FACTION_BONUS_INFO
	SMSG_FAILED_PLAYER_CONDITION
	SMSG_FAILED_QUEST_TURN_IN
	SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN
	SMSG_FORCE_OBJECT_RELINK
	SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT
	SMSG_GAME_OBJECT_BASE
	SMSG_GAME_OBJECT_CUSTOM_ANIM
	SMSG_GAME_OBJECT_DESPAWN
	SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL
	SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT
	SMSG_GAME_OBJECT_RESET_STATE
	SMSG_GAME_OBJECT_SET_STATE_LOCAL
	SMSG_GAME_OBJECT_UI_LINK
	SMSG_GAME_SPEED_SET
	SMSG_GAME_TIME_SET
	SMSG_GAME_TIME_UPDATE
	SMSG_GARRISON_ADD_FOLLOWER_RESULT
	SMSG_GARRISON_ADD_MISSION_RESULT
	SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT
	SMSG_GARRISON_BUILDING_ACTIVATED
	SMSG_GARRISON_BUILDING_LANDMARKS
	SMSG_GARRISON_BUILDING_REMOVED
	SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT
	SMSG_GARRISON_CLEAR_ALL_FOLLOWERS_EXHAUSTION
	SMSG_GARRISON_COMPLETE_MISSION_RESULT
	SMSG_GARRISON_CREATE_RESULT
	SMSG_GARRISON_DELETE_RESULT
	SMSG_GARRISON_FOLLOWER_CATEGORIES
	SMSG_GARRISON_FOLLOWER_CHANGED_ABILITIES
	SMSG_GARRISON_FOLLOWER_CHANGED_DURABILITY
	SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL
	SMSG_GARRISON_FOLLOWER_CHANGED_STATUS
	SMSG_GARRISON_FOLLOWER_CHANGED_XP
	SMSG_GARRISON_IS_UPGRADEABLE_RESULT
	SMSG_GARRISON_LEARN_BLUEPRINT_RESULT
	SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT
	SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT
	SMSG_GARRISON_LIST_MISSIONS_CHEAT_RESULT
	SMSG_GARRISON_MISSION_AREA_BONUS_ADDED
	SMSG_GARRISON_MISSION_BONUS_ROLL_RESULT
	SMSG_GARRISON_MISSION_LIST_UPDATE
	SMSG_GARRISON_MISSION_REWARD_RESPONSE
	SMSG_GARRISON_MISSION_UPDATE_CAN_START
	SMSG_GARRISON_NUM_FOLLOWER_ACTIVATIONS_REMAINING
	SMSG_GARRISON_OPEN_ARCHITECT
	SMSG_GARRISON_OPEN_MISSION_NPC
	SMSG_GARRISON_OPEN_RECRUITMENT_NPC
	SMSG_GARRISON_OPEN_TALENT_NPC
	SMSG_GARRISON_OPEN_TRADESKILL_NPC
	SMSG_GARRISON_PLACE_BUILDING_RESULT
	SMSG_GARRISON_PLOT_PLACED
	SMSG_GARRISON_PLOT_REMOVED
	SMSG_GARRISON_RECALL_PORTAL_LAST_USED_TIME
	SMSG_GARRISON_RECALL_PORTAL_USED
	SMSG_GARRISON_RECRUITMENT_FOLLOWERS_GENERATED
	SMSG_GARRISON_RECRUIT_FOLLOWER_RESULT
	SMSG_GARRISON_REMOTE_INFO
	SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT
	SMSG_GARRISON_REMOVE_FOLLOWER_RESULT
	SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT
	SMSG_GARRISON_START_MISSION_RESULT
	SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT
	SMSG_GARRISON_UPGRADE_RESULT
	SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT
	SMSG_GENERATE_SSO_TOKEN_RESPONSE
	SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT
	SMSG_GET_DISPLAYED_TROPHY_LIST_RESPONSE
	SMSG_GET_GARRISON_INFO_RESULT
	SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE
	SMSG_GET_REMAINING_GAME_TIME_RESPONSE
	SMSG_GET_SELECTED_TROPHY_ID_RESPONSE
	SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE
	SMSG_GET_SHIPMENT_INFO_RESPONSE
	SMSG_GET_TROPHY_LIST_RESPONSE
	SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT
	SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT
	SMSG_GM_REQUEST_PLAYER_INFO
	SMSG_GM_TICKET_CASE_STATUS
	SMSG_GM_TICKET_SYSTEM_STATUS
	SMSG_GOD_MODE
	SMSG_GOSSIP_TEXT_UPDATE
	SMSG_GROUP_ACTION_THROTTLED
	SMSG_GROUP_AUTO_KICK
	SMSG_GROUP_NEW_LEADER
	SMSG_GUILD_ACHIEVEMENT_DELETED
	SMSG_GUILD_ACHIEVEMENT_EARNED
	SMSG_GUILD_ACHIEVEMENT_MEMBERS
	SMSG_GUILD_BANK_LOG_QUERY_RESULTS
	SMSG_GUILD_BANK_QUERY_RESULTS
	SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY
	SMSG_GUILD_BANK_TEXT_QUERY_RESULT
	SMSG_GUILD_CHALLENGE_COMPLETED
	SMSG_GUILD_CHALLENGE_UPDATE
	SMSG_GUILD_CHANGE_NAME_RESULT
	SMSG_GUILD_CRITERIA_DELETED
	SMSG_GUILD_CRITERIA_UPDATE
	SMSG_GUILD_EVENT_AWAY_CHANGE
	SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED
	SMSG_GUILD_EVENT_BANK_MONEY_CHANGED
	SMSG_GUILD_EVENT_DISBANDED
	SMSG_GUILD_EVENT_LOG_QUERY_RESULTS
	SMSG_GUILD_EVENT_MOTD
	SMSG_GUILD_EVENT_NEW_LEADER
	SMSG_GUILD_EVENT_PLAYER_JOINED
	SMSG_GUILD_EVENT_PLAYER_LEFT
	SMSG_GUILD_EVENT_PRESENCE_CHANGE
	SMSG_GUILD_EVENT_RANKS_UPDATED
	SMSG_GUILD_EVENT_RANK_CHANGED
	SMSG_GUILD_EVENT_TAB_ADDED
	SMSG_GUILD_EVENT_TAB_DELETED
	SMSG_GUILD_EVENT_TAB_MODIFIED
	SMSG_GUILD_EVENT_TAB_TEXT_CHANGED
	SMSG_GUILD_FLAGGED_FOR_RENAME
	SMSG_GUILD_INVITE_DECLINED
	SMSG_GUILD_INVITE_EXPIRED
	SMSG_GUILD_ITEM_LOOTED
	SMSG_GUILD_KNOWN_RECIPES
	SMSG_GUILD_MEMBERS_WITH_RECIPE
	SMSG_GUILD_MEMBER_DAILY_RESET
	SMSG_GUILD_MEMBER_RECIPES
	SMSG_GUILD_MEMBER_UPDATE_NOTE
	SMSG_GUILD_MOVED
	SMSG_GUILD_MOVE_STARTING
	SMSG_GUILD_NAME_CHANGED
	SMSG_GUILD_NEWS
	SMSG_GUILD_NEWS_DELETED
	SMSG_GUILD_PARTY_STATE
	SMSG_GUILD_PERMISSIONS_QUERY_RESULTS
	SMSG_GUILD_RANKS
	SMSG_GUILD_REPUTATION_REACTION_CHANGED
	SMSG_GUILD_RESET
	SMSG_GUILD_REWARD_LIST
	SMSG_GUILD_ROSTER_UPDATE
	SMSG_GUILD_SEND_RANK_CHANGE
	SMSG_HOTFIX_CONNECT
	SMSG_HOTFIX_MESSAGE
	SMSG_INITIAL_SETUP
	SMSG_INSPECT_RESULT
	SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY
	SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT
	SMSG_INSTANCE_ENCOUNTER_END
	SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT
	SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE
	SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION
	SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE
	SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START
	SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE
	SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED
	SMSG_INSTANCE_ENCOUNTER_START
	SMSG_INSTANCE_ENCOUNTER_TIMER_START
	SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS
	SMSG_INSTANCE_ENCOUNTER_UPDATE_SUPPRESS_RELEASE
	SMSG_INSTANCE_GROUP_SIZE_CHANGED
	SMSG_INSTANCE_INFO
	SMSG_INTERRUPT_POWER_REGEN
	SMSG_INVALIDATE_PAGE_TEXT
	SMSG_INVENTORY_FIXUP_COMPLETE
	SMSG_INVENTORY_FULL_OVERFLOW
	SMSG_ISLANDS_MISSION_NPC
	SMSG_ISLAND_AZERITE_GAIN
	SMSG_ISLAND_COMPLETE
	SMSG_IS_QUEST_COMPLETE_RESPONSE
	SMSG_ITEM_CHANGED
	SMSG_ITEM_EXPIRE_PURCHASE_REFUND
	SMSG_ITEM_INTERACTION_COMPLETE
	SMSG_ITEM_PURCHASE_REFUND_RESULT
	SMSG_LEARNED_SPELLS
	SMSG_LEARN_PVP_TALENT_FAILED
	SMSG_LEARN_TALENT_FAILED
	SMSG_LEGACY_LOOT_RULES
	SMSG_LEVEL_LINKING_RESULT
	SMSG_LEVEL_UP_INFO
	SMSG_LFG_BOOT_PLAYER
	SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN
	SMSG_LFG_LIST_APPLICANT_LIST_UPDATE
	SMSG_LFG_LIST_APPLICATION_STATUS_UPDATE
	SMSG_LFG_LIST_APPLY_TO_GROUP_RESULT
	SMSG_LFG_LIST_JOIN_RESULT
	SMSG_LFG_LIST_SEARCH_RESULTS
	SMSG_LFG_LIST_SEARCH_RESULTS_UPDATE
	SMSG_LFG_LIST_SEARCH_STATUS
	SMSG_LFG_LIST_UPDATE_BLACKLIST
	SMSG_LFG_LIST_UPDATE_EXPIRATION
	SMSG_LFG_LIST_UPDATE_STATUS
	SMSG_LFG_READY_CHECK_RESULT
	SMSG_LFG_READY_CHECK_UPDATE
	SMSG_LFG_UPDATE_STATUS
	SMSG_LF_GUILD_APPLICANT_LIST_CHANGED
	SMSG_LF_GUILD_APPLICATIONS
	SMSG_LF_GUILD_APPLICATIONS_LIST_CHANGED
	SMSG_LF_GUILD_BROWSE
	SMSG_LF_GUILD_COMMAND_RESULT
	SMSG_LF_GUILD_POST
	SMSG_LF_GUILD_RECRUITS
	SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT
	SMSG_LIVE_REGION_CHARACTER_COPY_RESULT
	SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT
	SMSG_LOAD_CUF_PROFILES
	SMSG_LOAD_EQUIPMENT_SET
	SMSG_LOGIN_SET_TIME_SPEED
	SMSG_LOG_XP_GAIN
	SMSG_LOOT_RELEASE
	SMSG_LOOT_RELEASE_ALL
	SMSG_LOOT_ROLLS_COMPLETE
	SMSG_LOSS_OF_CONTROL_AURA_UPDATE
	SMSG_MAIL_COMMAND_RESULT
	SMSG_MAIL_QUERY_NEXT_TIME_RESULT
	SMSG_MAP_OBJECTIVES_INIT
	SMSG_MAP_OBJ_EVENTS
	SMSG_MASTER_LOOT_CANDIDATE_LIST
	SMSG_MESSAGE_BOX
	SMSG_MINIMAP_PING
	SMSG_MIRROR_IMAGE_COMPONENTED_DATA
	SMSG_MIRROR_IMAGE_CREATURE_DATA
	SMSG_MISSILE_CANCEL
	SMSG_MOUNT_RESULT
	SMSG_MOVEMENT_ENFORCEMENT_ALERT
	SMSG_MOVE_APPLY_MOVEMENT_FORCE
	SMSG_MOVE_DISABLE_COLLISION
	SMSG_MOVE_DISABLE_DOUBLE_JUMP
	SMSG_MOVE_DISABLE_GRAVITY
	SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY
	SMSG_MOVE_ENABLE_COLLISION
	SMSG_MOVE_ENABLE_DOUBLE_JUMP
	SMSG_MOVE_ENABLE_GRAVITY
	SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY
	SMSG_MOVE_REMOVE_MOVEMENT_FORCE
	SMSG_MOVE_ROOT
	SMSG_MOVE_SET_ACTIVE_MOVER
	SMSG_MOVE_SET_CAN_TURN_WHILE_FALLING
	SMSG_MOVE_SET_COLLISION_HEIGHT
	SMSG_MOVE_SET_COMPOUND_STATE
	SMSG_MOVE_SET_FEATHER_FALL
	SMSG_MOVE_SET_FLIGHT_BACK_SPEED
	SMSG_MOVE_SET_FLIGHT_SPEED
	SMSG_MOVE_SET_HOVERING
	SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES
	SMSG_MOVE_SET_LAND_WALK
	SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE
	SMSG_MOVE_SET_NORMAL_FALL
	SMSG_MOVE_SET_PITCH_RATE
	SMSG_MOVE_SET_RUN_BACK_SPEED
	SMSG_MOVE_SET_RUN_SPEED
	SMSG_MOVE_SET_SWIM_BACK_SPEED
	SMSG_MOVE_SET_SWIM_SPEED
	SMSG_MOVE_SET_TURN_RATE
	SMSG_MOVE_SET_VEHICLE_REC_ID
	SMSG_MOVE_SET_WALK_SPEED
	SMSG_MOVE_SET_WATER_WALK
	SMSG_MOVE_SKIP_TIME
	SMSG_MOVE_SPLINE_DISABLE_COLLISION
	SMSG_MOVE_SPLINE_DISABLE_GRAVITY
	SMSG_MOVE_SPLINE_ENABLE_COLLISION
	SMSG_MOVE_SPLINE_ENABLE_GRAVITY
	SMSG_MOVE_SPLINE_ROOT
	SMSG_MOVE_SPLINE_SET_FEATHER_FALL
	SMSG_MOVE_SPLINE_SET_FLIGHT_BACK_SPEED
	SMSG_MOVE_SPLINE_SET_FLIGHT_SPEED
	SMSG_MOVE_SPLINE_SET_FLYING
	SMSG_MOVE_SPLINE_SET_HOVER
	SMSG_MOVE_SPLINE_SET_LAND_WALK
	SMSG_MOVE_SPLINE_SET_NORMAL_FALL
	SMSG_MOVE_SPLINE_SET_PITCH_RATE
	SMSG_MOVE_SPLINE_SET_RUN_BACK_SPEED
	SMSG_MOVE_SPLINE_SET_RUN_MODE
	SMSG_MOVE_SPLINE_SET_RUN_SPEED
	SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED
	SMSG_MOVE_SPLINE_SET_SWIM_SPEED
	SMSG_MOVE_SPLINE_SET_TURN_RATE
	SMSG_MOVE_SPLINE_SET_WALK_MODE
	SMSG_MOVE_SPLINE_SET_WALK_SPEED
	SMSG_MOVE_SPLINE_SET_WATER_WALK
	SMSG_MOVE_SPLINE_START_SWIM
	SMSG_MOVE_SPLINE_STOP_SWIM
	SMSG_MOVE_SPLINE_UNROOT
	SMSG_MOVE_SPLINE_UNSET_FLYING
	SMSG_MOVE_SPLINE_UNSET_HOVER
	SMSG_MOVE_TELEPORT
	SMSG_MOVE_UNROOT
	SMSG_MOVE_UNSET_CAN_TURN_WHILE_FALLING
	SMSG_MOVE_UNSET_HOVERING
	SMSG_MOVE_UNSET_IGNORE_MOVEMENT_FORCES
	SMSG_MOVE_UPDATE
	SMSG_MOVE_UPDATE_APPLY_MOVEMENT_FORCE
	SMSG_MOVE_UPDATE_COLLISION_HEIGHT
	SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED
	SMSG_MOVE_UPDATE_FLIGHT_SPEED
	SMSG_MOVE_UPDATE_KNOCK_BACK
	SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE
	SMSG_MOVE_UPDATE_PITCH_RATE
	SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE
	SMSG_MOVE_UPDATE_RUN_BACK_SPEED
	SMSG_MOVE_UPDATE_RUN_SPEED
	SMSG_MOVE_UPDATE_SWIM_BACK_SPEED
	SMSG_MOVE_UPDATE_SWIM_SPEED
	SMSG_MOVE_UPDATE_TELEPORT
	SMSG_MOVE_UPDATE_TURN_RATE
	SMSG_MOVE_UPDATE_WALK_SPEED
	SMSG_MYTHIC_PLUS_ALL_MAP_STATS
	SMSG_MYTHIC_PLUS_CURRENT_AFFIXES
	SMSG_MYTHIC_PLUS_NEW_SEASON_RECORD
	SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD
	SMSG_MYTHIC_PLUS_WEEKLY_REWARD_RESPONSE
	SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT
	SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION
	SMSG_NOTIFY_MONEY
	SMSG_NOTIFY_RECEIVED_MAIL
	SMSG_ON_MONSTER_MOVE
	SMSG_OPEN_ARTIFACT_FORGE
	SMSG_OPEN_HEART_FORGE
	SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP
	SMSG_OPEN_SHIPMENT_NPC_RESULT
	SMSG_PAGE_TEXT
	SMSG_PARTY_INVITE
	SMSG_PARTY_KILL_LOG
	SMSG_PARTY_MEMBER_FULL_STATE
	SMSG_PARTY_MEMBER_PARTIAL_STATE
	SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE
	SMSG_PARTY_UPDATE
	SMSG_PENDING_RAID_LOCK
	SMSG_PETITION_ALREADY_SIGNED
	SMSG_PETITION_RENAME_GUILD_RESPONSE
	SMSG_PETITION_SHOW_LIST
	SMSG_PET_ADDED
	SMSG_PET_BATTLE_CHAT_RESTRICTED
	SMSG_PET_BATTLE_DEBUG_QUEUE_DUMP_RESPONSE
	SMSG_PET_BATTLE_FINALIZE_LOCATION
	SMSG_PET_BATTLE_FINAL_ROUND
	SMSG_PET_BATTLE_FINISHED
	SMSG_PET_BATTLE_FIRST_ROUND
	SMSG_PET_BATTLE_INITIAL_UPDATE
	SMSG_PET_BATTLE_MAX_GAME_LENGTH_WARNING
	SMSG_PET_BATTLE_PVP_CHALLENGE
	SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH
	SMSG_PET_BATTLE_QUEUE_STATUS
	SMSG_PET_BATTLE_REPLACEMENTS_MADE
	SMSG_PET_BATTLE_REQUEST_FAILED
	SMSG_PET_BATTLE_ROUND_RESULT
	SMSG_PET_BATTLE_SLOT_UPDATES
	SMSG_PET_CLEAR_SPELLS
	SMSG_PET_GOD_MODE
	SMSG_PET_LEARNED_SPELLS
	SMSG_PET_NEWLY_TAMED
	SMSG_PET_SLOT_UPDATED
	SMSG_PET_SPELLS_MESSAGE
	SMSG_PET_STABLE_LIST
	SMSG_PET_STABLE_RESULT
	SMSG_PET_UNLEARNED_SPELLS
	SMSG_PHASE_SHIFT_CHANGE
	SMSG_PLAYER_AZERITE_ITEM_EQUIPPED_STATUS_CHANGED
	SMSG_PLAYER_AZERITE_ITEM_GAINS
	SMSG_PLAYER_BONUS_ROLL_FAILED
	SMSG_PLAYER_BOUND
	SMSG_PLAYER_CONDITION_RESULT
	SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID
	SMSG_PLAYER_SAVE_GUILD_EMBLEM
	SMSG_PLAYER_TABARD_VENDOR_ACTIVATE
	SMSG_PLAYER_TUTORIAL_HIGHLIGHT_SPELL
	SMSG_PLAYER_TUTORIAL_UNHIGHLIGHT_SPELL
	SMSG_PLAY_ONE_SHOT_ANIM_KIT
	SMSG_PLAY_ORPHAN_SPELL_VISUAL
	SMSG_PLAY_SCENE
	SMSG_PLAY_SPEAKERBOT_SOUND
	SMSG_PLAY_SPELL_VISUAL_KIT
	SMSG_PRELOAD_CHILD_MAP
	SMSG_PREPOPULATE_NAME_CACHE
	SMSG_PRE_RESSURECT
	SMSG_PRINT_NOTIFICATION
	SMSG_PROC_RESIST
	SMSG_PUSH_SPELL_TO_ACTION_BAR
	SMSG_PVP_MATCH_COMPLETE
	SMSG_PVP_MATCH_INITIALIZE
	SMSG_PVP_MATCH_START
	SMSG_PVP_MATCH_STATISTICS
	SMSG_PVP_OPTIONS_ENABLED
	SMSG_QUERY_BATTLE_PET_NAME_RESPONSE
	SMSG_QUERY_COMMUNITY_NAME_RESPONSE
	SMSG_QUERY_CREATURE_RESPONSE
	SMSG_QUERY_GAME_OBJECT_RESPONSE
	SMSG_QUERY_GARRISON_CREATURE_NAME_RESPONSE
	SMSG_QUERY_GUILD_INFO_RESPONSE
	SMSG_QUERY_ITEM_TEXT_RESPONSE
	SMSG_QUERY_NPC_TEXT_RESPONSE
	SMSG_QUERY_PAGE_TEXT_RESPONSE
	SMSG_QUERY_PETITION_RESPONSE
	SMSG_QUERY_PET_NAME_RESPONSE
	SMSG_QUERY_PLAYER_NAME_RESPONSE
	SMSG_QUERY_QUEST_INFO_RESPONSE
	SMSG_QUEST_COMPLETION_NPC_RESPONSE
	SMSG_QUEST_FORCE_REMOVED
	SMSG_QUEST_GIVER_INVALID_QUEST
	SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE
	SMSG_QUEST_GIVER_QUEST_COMPLETE
	SMSG_QUEST_GIVER_QUEST_DETAILS
	SMSG_QUEST_GIVER_QUEST_FAILED
	SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE
	SMSG_QUEST_GIVER_REQUEST_ITEMS
	SMSG_QUEST_GIVER_STATUS
	SMSG_QUEST_GIVER_STATUS_MULTIPLE
	SMSG_QUEST_LINES_FOR_MAP_RESPONSE
	SMSG_QUEST_LOG_FULL
	SMSG_QUEST_POI_CHANGED
	SMSG_QUEST_PUSH_RESULT
	SMSG_QUEST_SESSION_INFO_RESPONSE
	SMSG_QUEST_SESSION_READY_CHECK
	SMSG_QUEST_SESSION_READY_CHECK_RESPONSE
	SMSG_QUEST_SESSION_RESULT
	SMSG_QUEST_SPAWN_TRACKING_UPDATE
	SMSG_QUEST_UPDATE_ADD_CREDIT
	SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE
	SMSG_QUEST_UPDATE_ADD_PVP_CREDIT
	SMSG_QUEST_UPDATE_COMPLETE
	SMSG_QUEST_UPDATE_COMPLETE_BY_SPELL
	SMSG_QUEST_UPDATE_FAILED
	SMSG_QUEST_UPDATE_FAILED_TIMER
	SMSG_QUEUE_SUMMARY_UPDATE
	SMSG_RAF_ACCOUNT_INFO
	SMSG_RAF_ACTIVITY_STATE_CHANGED
	SMSG_RAID_DIFFICULTY_SET
	SMSG_RAID_MARKERS_CHANGED
	SMSG_RANDOM_ROLL
	SMSG_RATED_PVP_INFO
	SMSG_READY_CHECK_COMPLETED
	SMSG_READY_CHECK_RESPONSE
	SMSG_READY_CHECK_STARTED
	SMSG_READ_ITEM_RESULT_FAILED
	SMSG_READ_ITEM_RESULT_OK
	SMSG_REALM_LOOKUP_INFO
	SMSG_REALM_QUERY_RESPONSE
	SMSG_REATTACH_RESURRECT
	SMSG_RECRUIT_A_FRIEND_FAILURE
	SMSG_REFRESH_COMPONENT
	SMSG_REFRESH_SPELL_HISTORY
	SMSG_REMOVE_ITEM_PASSIVE
	SMSG_REMOVE_LOSS_OF_CONTROL
	SMSG_REPLACE_TROPHY_RESPONSE
	SMSG_REPORT_PVP_PLAYER_AFK_RESULT
	SMSG_REQUEST_CEMETERY_LIST_RESPONSE
	SMSG_REQUEST_PVP_REWARDS_RESPONSE
	SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE
	SMSG_RESEARCH_COMPLETE
	SMSG_RESET_COMPRESSION_CONTEXT
	SMSG_RESET_WEEKLY_CURRENCY
	SMSG_RESPEC_WIPE_CONFIRM
	SMSG_RESTRICTED_ACCOUNT_WARNING
	SMSG_RESUME_CAST
	SMSG_RESUME_COMMS
	SMSG_RESUME_TOKEN
	SMSG_RETURN_APPLICANT_LIST
	SMSG_RETURN_RECRUITING_CLUBS
	SMSG_ROLE_CHANGED_INFORM
	SMSG_ROLE_CHOSEN
	SMSG_ROLE_POLL_INFORM
	SMSG_RUNE_REGEN_DEBUG
	SMSG_SCENARIO_COMPLETED
	SMSG_SCENARIO_POIS
	SMSG_SCENARIO_PROGRESS_UPDATE
	SMSG_SCENARIO_SHOW_CRITERIA
	SMSG_SCENARIO_STATE
	SMSG_SCENARIO_UI_UPDATE
	SMSG_SCENARIO_VACATE
	SMSG_SCENE_OBJECT_EVENT
	SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND
	SMSG_SCENE_OBJECT_PET_BATTLE_FINISHED
	SMSG_SCENE_OBJECT_PET_BATTLE_FIRST_ROUND
	SMSG_SCENE_OBJECT_PET_BATTLE_INITIAL_UPDATE
	SMSG_SCENE_OBJECT_PET_BATTLE_REPLACEMENTS_MADE
	SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT
	SMSG_SCRIPT_CAST
	SMSG_SEASON_INFO
	SMSG_SELL_RESPONSE
	SMSG_SEND_ITEM_PASSIVES
	SMSG_SEND_KNOWN_SPELLS
	SMSG_SEND_RAID_TARGET_UPDATE_ALL
	SMSG_SEND_RAID_TARGET_UPDATE_SINGLE
	SMSG_SEND_SPELL_CHARGES
	SMSG_SEND_SPELL_HISTORY
	SMSG_SERVER_FIRST_ACHIEVEMENTS
	SMSG_SERVER_TIME
	SMSG_SERVER_TIME_OFFSET
	SMSG_SETUP_CURRENCY
	SMSG_SETUP_RESEARCH_HISTORY
	SMSG_SET_AI_ANIM_KIT
	SMSG_SET_ALL_TASK_PROGRESS
	SMSG_SET_ANIM_TIER
	SMSG_SET_CHR_UPGRADE_TIER
	SMSG_SET_CURRENCY
	SMSG_SET_DF_FAST_LAUNCH_RESULT
	SMSG_SET_DUNGEON_DIFFICULTY
	SMSG_SET_FACTION_AT_WAR
	SMSG_SET_FACTION_NOT_VISIBLE
	SMSG_SET_ITEM_PURCHASE_DATA
	SMSG_SET_LOOT_METHOD_FAILED
	SMSG_SET_MAX_WEEKLY_QUANTITY
	SMSG_SET_MELEE_ANIM_KIT
	SMSG_SET_MOVEMENT_ANIM_KIT
	SMSG_SET_PET_SPECIALIZATION
	SMSG_SET_PLAY_HOVER_ANIM
	SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE
	SMSG_SET_SPELL_CHARGES
	SMSG_SET_TASK_COMPLETE
	SMSG_SET_TIME_ZONE_INFORMATION
	SMSG_SET_VEHICLE_REC_ID
	SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI
	SMSG_SHOW_TAXI_NODES
	SMSG_SHOW_TRADE_SKILL_RESPONSE
	SMSG_SOCKET_GEMS_FAILURE
	SMSG_SOCKET_GEMS_SUCCESS
	SMSG_SPECIAL_MOUNT_ANIM
	SMSG_SPEC_INVOLUNTARILY_CHANGED
	SMSG_SPELL_ABSORB_LOG
	SMSG_SPELL_CATEGORY_COOLDOWN
	SMSG_SPELL_CHANNEL_START
	SMSG_SPELL_CHANNEL_UPDATE
	SMSG_SPELL_DAMAGE_SHIELD
	SMSG_SPELL_DISPELL_LOG
	SMSG_SPELL_ENERGIZE_LOG
	SMSG_SPELL_EXECUTE_LOG
	SMSG_SPELL_FAILURE_MESSAGE
	SMSG_SPELL_HEAL_ABSORB_LOG
	SMSG_SPELL_HEAL_LOG
	SMSG_SPELL_INSTAKILL_LOG
	SMSG_SPELL_INTERRUPT_LOG
	SMSG_SPELL_MISS_LOG
	SMSG_SPELL_NON_MELEE_DAMAGE_LOG
	SMSG_SPELL_OR_DAMAGE_IMMUNE
	SMSG_SPELL_PERIODIC_AURA_LOG
	SMSG_SPELL_PREPARE
	SMSG_SPELL_VISUAL_LOAD_SCREEN
	SMSG_STAND_STATE_UPDATE
	SMSG_START_ELAPSED_TIMER
	SMSG_START_ELAPSED_TIMERS
	SMSG_START_LIGHTNING_STORM
	SMSG_START_LOOT_ROLL
	SMSG_START_TIMER
	SMSG_STOP_ELAPSED_TIMER
	SMSG_STOP_SPEAKERBOT_SOUND
	SMSG_STREAMING_MOVIES
	SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED
	SMSG_SUPERCEDED_SPELLS
	SMSG_SUSPEND_TOKEN
	SMSG_SYNC_WOW_ENTITLEMENTS
	SMSG_TAXI_NODE_STATUS
	SMSG_TIME_ADJUSTMENT
	SMSG_TIME_SYNC_REQUEST
	SMSG_TITLE_LOST
	SMSG_TOTEM_DURATION_CHANGED
	SMSG_TOTEM_MOVED
	SMSG_TRADE_UPDATED
	SMSG_TREASURE_PICKER_RESPONSE
	SMSG_TURN_IN_PETITION_RESULT
	SMSG_TWITTER_STATUS
	SMSG_UI_TIME
	SMSG_UI_HEALING_RANGE_MODIFIED
	SMSG_UI_ITEM_INTERACTION_NPC
	SMSG_UNDELETE_CHARACTER_RESPONSE
	SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE
	SMSG_UNLEARNED_SPELLS
	SMSG_UNLOAD_CHILD_MAP
	SMSG_UPDATE_ACTION_BUTTONS
	SMSG_UPDATE_BNET_SESSION_KEY
	SMSG_UPDATE_CAPTURE_POINT
	SMSG_UPDATE_CELESTIAL_BODY
	SMSG_UPDATE_CHARACTER_FLAGS
	SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN
	SMSG_UPDATE_COOLDOWN
	SMSG_UPDATE_EXPANSION_LEVEL
	SMSG_UPDATE_GAME_TIME_STATE
	SMSG_UPDATE_PRIMARY_SPEC
	SMSG_UPDATE_TALENT_DATA
	SMSG_UPDATE_TASK_PROGRESS
	SMSG_UPDATE_WEEKLY_SPELL_USAGE
	SMSG_USE_EQUIPMENT_SET_RESULT
	SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE
	SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE
	SMSG_VAS_GET_SERVICE_STATUS_RESPONSE
	SMSG_VAS_PURCHASE_COMPLETE
	SMSG_VAS_PURCHASE_STATE_UPDATE
	SMSG_VENDOR_INVENTORY
	SMSG_VIGNETTE_UPDATE
	SMSG_VOICE_CHANNEL_INFO_RESPONSE
	SMSG_VOICE_LOGIN_RESPONSE
	SMSG_VOID_ITEM_SWAP_RESPONSE
	SMSG_VOID_STORAGE_CONTENTS
	SMSG_VOID_STORAGE_FAILED
	SMSG_VOID_STORAGE_TRANSFER_CHANGES
	SMSG_VOID_TRANSFER_RESULT
	SMSG_WAIT_QUEUE_FINISH
	SMSG_WAIT_QUEUE_UPDATE
	SMSG_WARDEN3_DATA
	SMSG_WARDEN3_DISABLED
	SMSG_WARDEN3_ENABLED
	SMSG_WARFRONT_COMPLETE
	SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT
	SMSG_WEEKLY_SPELL_USAGE
	SMSG_WHO_IS
	SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME
	SMSG_WORLD_MAP_OPEN_NPC
	SMSG_WORLD_QUEST_UPDATE_RESPONSE
	SMSG_WORLD_SERVER_INFO
	SMSG_WOW_ENTITLEMENT_NOTIFICATION
	SMSG_XP_GAIN_ABORTED
	SMSG_XP_GAIN_ENABLED

	// Opcodes that are not generated automatically
	SMSG_ACCOUNT_HEIRLOOM_UPDATE // no client handler
	SMSG_COMPRESSED_PACKET

	// Deleted opcodes, here only to allow compile
	SMSG_BF_MGR_EJECTED
	SMSG_BF_MGR_ENTERING
	SMSG_BF_MGR_ENTRY_INVITE
	SMSG_BF_MGR_QUEUE_INVITE
	SMSG_BF_MGR_QUEUE_REQUEST_RESPONSE
	WorldType_Max
)

func LookupWorldType

func LookupWorldType(build vsn.Build, u32 uint32) (WorldType, error)

func WorldTypeFromString

func WorldTypeFromString(str string) (WorldType, error)

func (WorldType) Description

func (wt WorldType) Description() string

func (WorldType) Predict

func (wt WorldType) Predict(name string) []string

func (WorldType) String

func (i WorldType) String() string

func (WorldType) ToValue

func (wt WorldType) ToValue(name string) (interface{}, error)

Directories

Path Synopsis
package chat contains packets relating to the in-game chatbox feature.
package chat contains packets relating to the in-game chatbox feature.
Package update provides functions for serializing and deserializing SMSG_UPDATE_OBJECT.
Package update provides functions for serializing and deserializing SMSG_UPDATE_OBJECT.
d12340
Descriptor module for version 12340 3.3.5a (WoTLK)
Descriptor module for version 12340 3.3.5a (WoTLK)
d3368
Descriptor module for version 3368 (Alpha)
Descriptor module for version 3368 (Alpha)
d5875
Descriptor module for protocol 5875 1.12.1 (Vanilla)
Descriptor module for protocol 5875 1.12.1 (Vanilla)
d8606
Descriptor module for version 8606 2.4.3 (TBC)
Descriptor module for version 8606 2.4.3 (TBC)
descriptorsupport
This package imports object update descriptors so you can use multiple versions without recompiling.
This package imports object update descriptors so you can use multiple versions without recompiling.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL