public void HandleFriendStatus(Parser packet)
        {
            var result = (ContactResult)packet.ReadByte();
            WriteLine("Result: " + result);

            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);

            switch (result)
            {
                case ContactResult.FriendAddedOnline:
                case ContactResult.FriendAddedOffline:
                case ContactResult.Online:
                {
                    if (result != ContactResult.Online)
                    {
                        var note = packet.ReadCString();
                        WriteLine("Note: " + note);
                    }

                    ReadSingleContactBlock(packet, false);
                    break;
                }
            }
        }
        public void HandleContactList(Parser packet)
        {
            var flags = (ContactListFlag)packet.ReadInt32();
            WriteLine("List Flags: " + flags);

            var count = packet.ReadInt32();
            WriteLine("Count: " + count);

            for (var i = 0; i < count; i++)
            {
                var guid = packet.ReadGuid();
                WriteLine("GUID: " + guid);

                var cflags = (ContactEntryFlag)packet.ReadInt32();
                WriteLine("Flags: " + cflags);

                var note = packet.ReadCString();
                WriteLine("Note: " + note);

                if (!cflags.HasFlag(ContactEntryFlag.Friend))
                    continue;

                ReadSingleContactBlock(packet, true);
            }
        }
        public void HandleSetTalkerMuted(Parser packet)
        {
            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);

            var unk = packet.ReadByte();
            WriteLine("Unk Byte: " + unk);
        }
        public void HandleVoiceRosterUpdate(Parser packet)
        {
            var unk64 = packet.ReadInt64();
            WriteLine("Unk Int64: " + unk64);

            var chanId = packet.ReadInt16();
            WriteLine("Channel ID: " + chanId);

            var chanName = packet.ReadCString();
            WriteLine("Channel Name: " + chanName);

            var key = Encoding.UTF8.GetString(packet.ReadBytes(16));
            WriteLine("Encryption Key: " + key);

            var ip = packet.ReadInt32();
            WriteLine("Voice Server IP: " + ip);

            var count = packet.ReadByte();
            WriteLine("Player Count: " + count);

            var leaderGuid = packet.ReadGuid();
            WriteLine("Leader GUID: " + leaderGuid);

            var leaderFlags = packet.ReadByte();
            WriteLine("Leader Flags: 0x" + leaderFlags.ToString("X2"));

            var unk = packet.ReadByte();
            WriteLine("Unk Byte 1: " + unk);

            for (var i = 0; i < count - 1; i++)
            {
                var guid = packet.ReadGuid();
                WriteLine("Player GUID: " + guid);

                var idx = packet.ReadByte();
                WriteLine("Index: " + idx);

                var flags = packet.ReadByte();
                WriteLine("Flags: 0x" + flags.ToString("X2"));

                var unk2 = packet.ReadByte();
                WriteLine("Unk Byte 2: " + unk2);
            }
        }
 public void HandleDelVoiceIgnore(Parser packet)
 {
     var guid = packet.ReadGuid();
     WriteLine("GUID: " + guid);
 }
        public void HandleNpcGossip(Parser packet)
        {
            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);

            var entry = packet.ReadUInt32();
            WriteLine("Menu id: " + entry);

            var textid = packet.ReadUInt32();
            WriteLine("Text id: " + textid);

            var count = packet.ReadUInt32();
            WriteLine("- Amount of Options: " + count);

            for (var i = 0; i < count; i++)
            {
                if (i != 0)
                    WriteLine("\t--");

                var index = packet.ReadUInt32();
                WriteLine("\tIndex: " + index);

                var icon = packet.ReadByte();
                WriteLine("\tIcon: " + icon);

                var box = packet.ReadBoolean();
                WriteLine("\tBox: " + box);

                var boxMoney = packet.ReadUInt32();
                if (box) // Only print if there's a box. avaliable.
                    WriteLine("\tRequired money: " + boxMoney);

                var text = packet.ReadCString();
                WriteLine("\tText: " + text);

                var boxText = packet.ReadCString();
                if (box) // Only print if there's a box avaliable.
                    WriteLine("\tBox text: " + boxText);
            }

            var questgossips = packet.ReadUInt32();
            WriteLine("- Amount of Quest gossips: " + questgossips);

            for (var i = 0; i < questgossips; i++)
            {
                if (i != 0)
                    WriteLine("\t--");

                var questID = packet.ReadUInt32();
                WriteLine("\tQuest ID: " + questID);

                var questicon = packet.ReadUInt32();
                WriteLine("\tIcon: " + questicon);

                var questlevel = packet.ReadInt32();
                WriteLine("\tLevel: " + questlevel);

                var flags = (QuestFlag)(packet.ReadUInt32() | 0xFFFF);
                WriteLine("\tFlags: " + flags);

                var unk1 = packet.ReadBoolean();
                WriteLine("\tUnknown bool: " + unk1);

                var title = packet.ReadCString();
                WriteLine("\tTitle: " + title);
            }
        }
        public void HandleServerTrainerList(Parser packet)
        {
            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);

            var type = (TrainerType)packet.ReadInt32();
            WriteLine("Type: " + type);

            var count = packet.ReadInt32();
            WriteLine("Count: " + count);

            for (var i = 0; i < count; i++)
            {
                var spell = packet.ReadInt32();
                WriteLine("Spell ID " + i + ": " + spell);

                var state = (TrainerSpellState)packet.ReadByte();
                WriteLine("State " + i + ": " + state);

                var cost = packet.ReadInt32();
                WriteLine("Cost " + i + ": " + cost);

                var profDialog = packet.ReadBoolean();
                WriteLine("Profession Dialog " + i + ": " + profDialog);

                var profButton = packet.ReadBoolean();
                WriteLine("Profession Button " + i + ": " + profButton);

                var reqLevel = packet.ReadInt32();
                WriteLine("Required Level " + i + ": " + reqLevel);

                var reqSkill = packet.ReadInt32();
                WriteLine("Required Skill " + i + ": " + reqSkill);

                var reqSkLvl = packet.ReadInt32();
                WriteLine("Required Skill Level " + i + ": " + reqSkLvl);

                var chainNode1 = packet.ReadInt32();
                WriteLine("Chain Node 1 " + i + ": " + chainNode1);

                var chainNode2 = packet.ReadInt32();
                WriteLine("Chain Node 2 " + i + ": " + chainNode2);

                var unk = packet.ReadInt32();
                WriteLine("Unk Int32 " + i + ": " + unk);

                //SQLStore.WriteData(SQLStore.TrainerSpells.GetCommand(guid.GetEntry(), spell, cost, reqLevel,
                //    reqSkill, reqSkLvl));
            }

            var titleStr = packet.ReadCString();
            WriteLine("Title: " + titleStr);
        }
        public void HandleVendorInventoryList(Parser packet)
        {
            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);

            var itemCount = packet.ReadByte();
            WriteLine("Item Count: " + itemCount);

            for (var i = 0; i < itemCount; i++)
            {
                var position = packet.ReadInt32();
                WriteLine("Item Position " + position + ": " + position);

                var itemId = packet.ReadInt32();
                WriteLine("Item ID " + i + ": " + itemId);

                var dispid = packet.ReadInt32();
                WriteLine("Display ID " + i + ": " + dispid);

                var maxCount = packet.ReadInt32();
                WriteLine("Max Count " + i + ": " + maxCount);

                var price = packet.ReadInt32();
                WriteLine("Price " + i + ": " + price);

                var maxDura = packet.ReadInt32();
                WriteLine("Max Durability " + i + ": " + maxDura);

                var buyCount = packet.ReadInt32();
                WriteLine("Buy Count " + i + ": " + buyCount);

                var extendedCost = packet.ReadInt32();
                WriteLine("Extended Cost " + i + ": " + extendedCost);

                //SQLStore.WriteData(SQLStore.VendorItems.GetCommand(guid.GetEntry(), itemId, maxCount,
                //    extendedCost));
            }
        }
Exemple #9
0
        public void HandleServerChatMessage(Parser packet)
        {
            var type = (ChatMessageType)packet.ReadByte();
            WriteLine("Type: " + type);

            var lang = (Language)packet.ReadInt32();
            WriteLine("Language: " + lang);

            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);

            var unkInt = packet.ReadInt32();
            WriteLine("Unk Int32: " + unkInt);

            switch (type)
            {
                case ChatMessageType.Say:
                case ChatMessageType.Yell:
                case ChatMessageType.Party:
                case ChatMessageType.PartyLeader:
                case ChatMessageType.Raid:
                case ChatMessageType.RaidLeader:
                case ChatMessageType.RaidWarning:
                case ChatMessageType.Guild:
                case ChatMessageType.Officer:
                case ChatMessageType.Emote:
                case ChatMessageType.TextEmote:
                case ChatMessageType.Whisper:
                case ChatMessageType.WhisperInform:
                case ChatMessageType.System:
                case ChatMessageType.Channel:
                case ChatMessageType.Battleground:
                case ChatMessageType.BattlegroundNeutral:
                case ChatMessageType.BattlegroundAlliance:
                case ChatMessageType.BattlegroundHorde:
                case ChatMessageType.BattlegroundLeader:
                case ChatMessageType.Achievement:
                case ChatMessageType.GuildAchievement:
                {
                    if (type == ChatMessageType.Channel)
                    {
                        var chanName = packet.ReadCString();
                        WriteLine("Channel Name: " + chanName);
                    }

                    var senderGuid = packet.ReadGuid();
                    WriteLine("Sender GUID: " + senderGuid);
                    break;
                }
                case ChatMessageType.MonsterSay:
                case ChatMessageType.MonsterYell:
                case ChatMessageType.MonsterParty:
                case ChatMessageType.MonsterEmote:
                case ChatMessageType.MonsterWhisper:
                case ChatMessageType.RaidBossEmote:
                case ChatMessageType.RaidBossWhisper:
                case ChatMessageType.BattleNet:
                {
                    var nameLen = packet.ReadInt32();
                    WriteLine("Name Length: " + nameLen);

                    var name = packet.ReadCString();
                    WriteLine("Name: " + name);

                    var target = packet.ReadGuid();
                    WriteLine("Receiver GUID: " + guid);

                    if (target.Full != 0)
                    {
                        var tNameLen = packet.ReadInt32();
                        WriteLine("Receiver Name Length: " + tNameLen);

                        var tName = packet.ReadCString();
                        WriteLine("Receiver Name: " + tName);
                    }
                    break;
                }
            }

            var textLen = packet.ReadInt32();
            WriteLine("Text Length: " + textLen);

            var text = packet.ReadCString();
            WriteLine("Text: " + text);

            var chatTag = (ChatTag)packet.ReadByte();
            WriteLine("Chat Tag: " + chatTag);

            if (type != ChatMessageType.Achievement && type != ChatMessageType.GuildAchievement)
                return;

            var achId = packet.ReadInt32();
            WriteLine("Achievement ID: " + achId);
        }
 public void HandleNpcHello(Parser packet)
 {
     var guid = packet.ReadGuid();
     WriteLine("GUID: " + guid);
 }
Exemple #11
0
        public void HandleGroupList(Parser packet)
        {
            var grouptype = (GroupTypeFlag)packet.ReadByte();
            WriteLine("Group Type: " + grouptype);

            var subgroup = packet.ReadByte();
            WriteLine("Sub Group: " + subgroup);

            var flags = (GroupUpdateFlag)packet.ReadByte();
            WriteLine("Flags: " + flags);

            var isbg = packet.ReadBoolean();
            WriteLine("Is Battleground: " + isbg);

            if (grouptype.HasFlag(GroupTypeFlag.LookingForDungeon))
            {
                var dungeonStatus = (InstanceStatus)packet.ReadByte();
                WriteLine("Dungeon Status: " + dungeonStatus);

                var lfgentry = ReadInt32();//packet.ReadLfgEntry();
                WriteLine("LFG Entry: " + lfgentry);
            }

            var unkint2 = packet.ReadInt64();
            WriteLine("Unk Int64: " + unkint2);

            var counter = packet.ReadInt32();
            WriteLine("Counter: " + counter);

            var numFields = packet.ReadInt32();
            WriteLine("Member Count: " + numFields);

            for (var i = 0; i < numFields; i++)
            {
                var name = packet.ReadCString();
                WriteLine("Name " + i + ": " + name);

                var guid = packet.ReadGuid();
                WriteLine("GUID " + i + ": " + guid);

                var status = (GroupMemberStatusFlag)packet.ReadByte();
                WriteLine("Status " + i + ": " + status);

                var subgroup1 = packet.ReadByte();
                WriteLine("Sub Group" + i + ": " + subgroup1);

                var flags1 = (GroupUpdateFlag)packet.ReadByte();
                WriteLine("Update Flags " + i + ": " + flags1);

                var role = (LfgRoleFlag)packet.ReadByte();
                WriteLine("Role " + i + ": " + role);
            }

            var leaderGuid = packet.ReadGuid();
            WriteLine("Leader GUID: " + leaderGuid);

            if (numFields <= 0)
                return;

            var loot = (LootMethod)packet.ReadByte();
            WriteLine("Loot Method: " + loot);

            var looterGuid = packet.ReadGuid();
            WriteLine("Looter GUID: " + looterGuid);

            var item = (ItemQuality)packet.ReadByte();
            WriteLine("Loot Threshold: " + item);

            var dungeonDifficulty = (MapDifficulty)packet.ReadByte();
            WriteLine("Dungeon Difficulty: " + dungeonDifficulty);

            var raidDifficulty = (MapDifficulty)packet.ReadByte();
            WriteLine("Raid Difficulty: " + raidDifficulty);

            var unkbyte3 = packet.ReadByte();
            WriteLine("Unk Byte: " + unkbyte3);
        }
Exemple #12
0
        public void ReadQueryHeader(Parser packet)
        {
            var entry = packet.ReadInt32();
            WriteLine("Entry: " + entry);

            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);
        }
Exemple #13
0
 public void HandleNameQuery(Parser packet)
 {
     var guid = packet.ReadGuid();
     WriteLine("GUID: " + guid);
 }
        public void HandleGOCustomAnim(Parser packet)
        {
            var guid = packet.ReadGuid();
            WriteLine("GUID: " + guid);

            var anim = packet.ReadInt32();
            WriteLine("Anim: " + anim);
        }
 public void HandleGOMisc(Parser packet)
 {
     var guid = packet.ReadGuid();
     WriteLine("GUID: " + guid);
 }