void HandleNameQueryResponse(PacketReader reader) { UInt64 playerGUID = reader.ReadPackedGuid(); bool noData = reader.ReadBoolean(); if (noData) return; string name = reader.ReadCString(); reader.ReadCString(); // Realm Name (Cross Realm) reader.ReadByte(); reader.ReadByte(); reader.ReadByte(); bool declined = reader.ReadBoolean(); // Name declined/not declined if (declined) for (byte i = 0; i < 5; ++i) reader.ReadByte(); PlayerName result = Manager.m_WorldServer.PlayerNameList.Find( delegate(PlayerName playerName) { return playerName.GUID == playerGUID; }); if (result == null) { PlayerName playerName = new PlayerName(); playerName.GUID = playerGUID; playerName.Name = name; QueryChatMessage.Name = name; ReceiveMsg = QueryChatMessage; PlayerNameList.Add(playerName); } }
void HandleNameQueryResponse(PacketReader reader) { UInt64 playerGUID = reader.ReadPackedGuid(); bool noData = reader.ReadBoolean(); if (noData) { return; } string name = reader.ReadCString(); reader.ReadCString(); // Realm Name (Cross Realm) reader.ReadByte(); reader.ReadByte(); reader.ReadByte(); bool declined = reader.ReadBoolean(); // Name declined/not declined if (declined) { for (byte i = 0; i < 5; ++i) { reader.ReadByte(); } } PlayerName result = Manager.m_WorldServer.PlayerNameList.Find( delegate(PlayerName playerName) { return(playerName.GUID == playerGUID); }); if (result == null) { PlayerName playerName = new PlayerName(); playerName.GUID = playerGUID; playerName.Name = name; QueryChatMessage.Name = name; ReceiveMsg = QueryChatMessage; PlayerNameList.Add(playerName); } }
void HandleServerChatMessage(PacketReader reader) { ChatType type = (ChatType)reader.ReadByte(); Language language; UInt64 targetGUID; UInt64 targetGUIDOther; UInt32 messageLength; string channelName = null; string message; language = (Language)reader.ReadUInt32(); targetGUID = reader.ReadUInt64(); reader.ReadUInt32(); // Some flags channelName = type == ChatType.CHAT_TYPE_CHANNEL ? reader.ReadCString() : null; targetGUIDOther = reader.ReadUInt64(); messageLength = reader.ReadUInt32(); message = reader.ReadCString(); reader.ReadByte(); // chattag PlayerName result = PlayerNameList.Find((PlayerName name) => { return(name.GUID == targetGUID); }); var args = new ChatArgs { Type = type, Message = message, ChannelName = channelName != null ? channelName : string.Empty, Name = result != null ? result.Name : string.Empty }; OnChatMessage?.Invoke(null, args); if (targetGUID > 0) { PacketWriter writer = new PacketWriter(Opcodes.CMSG_NAME_QUERY); writer.Write(targetGUID); Send(writer); } }
void HandleServerChatMessage(PacketReader reader) { ChatType type = (ChatType)reader.ReadByte(); Language language; UInt64 targetGUID; UInt64 targetGUIDOther; UInt32 messageLength; string channelName = null; string message; if ((type != ChatType.CHAT_TYPE_CHANNEL && type != ChatType.CHAT_TYPE_WHISPER)) { language = (Language)reader.ReadUInt32(); } else { language = (Language)reader.ReadUInt32(); } targetGUID = reader.ReadUInt64(); reader.ReadUInt32(); switch (type) { case ChatType.CHAT_TYPE_CHANNEL: channelName = reader.ReadCString(); break; } targetGUIDOther = reader.ReadUInt64(); messageLength = reader.ReadUInt32(); message = reader.ReadCString(); reader.ReadByte(); PlayerName result = PlayerNameList.Find( delegate(PlayerName playerName) { return(playerName.GUID == targetGUID); }); if (type == ChatType.CHAT_TYPE_SYSTEM) { foreach (string syntax in message.Split('\n')) { if (!CmdList.Contains(syntax)) // Prevent double message { CmdList.Add(syntax); } } } if (result != null) { QueryChatMessage.Type = type; QueryChatMessage.Message = message; QueryChatMessage.Name = result.Name; if (channelName != null) { QueryChatMessage.ChannelName = channelName; } ReceiveMsg = QueryChatMessage; } else { QueryChatMessage.Type = type; QueryChatMessage.Message = message; if (channelName != null) { QueryChatMessage.ChannelName = channelName; } } if (targetGUID > 0) { PacketWriter writer = new PacketWriter(Opcodes.CMSG_NAME_QUERY); writer.Write(targetGUID); Send(writer); } }
void HandleServerChatMessage(PacketReader reader) { ChatType type = (ChatType)reader.ReadByte(); Language language; UInt64 targetGUID; UInt64 targetGUIDOther; UInt32 messageLength; string channelName = null; string message; Debug.WriteLine($"{type}"); /*if ((type != ChatType.CHAT_TYPE_CHANNEL && type != ChatType.CHAT_TYPE_WHISPER)) * language = (Language)reader.ReadUInt32(); * else * language = (Language)reader.ReadUInt32();*/// What is this, its either way going to be read as language language = (Language)reader.ReadUInt32(); targetGUID = reader.ReadUInt64(); reader.ReadUInt32(); // Some flags switch (type) { case ChatType.CHAT_TYPE_CHANNEL: channelName = reader.ReadCString(); break; } targetGUIDOther = reader.ReadUInt64(); messageLength = reader.ReadUInt32(); message = reader.ReadCString(); reader.ReadByte(); // chattag PlayerName result = PlayerNameList.Find((PlayerName name) => { return(name.GUID == targetGUID); }); /*PlayerName result = PlayerNameList.Find( * delegate(PlayerName playerName) * { * return playerName.GUID == targetGUID; * });*/ if (type == ChatType.CHAT_TYPE_SYSTEM) { foreach (string syntax in message.Split('\n')) { if (!CmdList.Contains(syntax)) // Prevent double message { CmdList.Add(syntax); } } } if (result != null) { QueryChatMessage.Type = type; QueryChatMessage.Message = message; QueryChatMessage.Name = result.Name; if (channelName != null) { QueryChatMessage.ChannelName = channelName; } ReceiveMsg = QueryChatMessage; } else { QueryChatMessage.Type = type; QueryChatMessage.Message = message; if (channelName != null) { QueryChatMessage.ChannelName = channelName; } } if (targetGUID > 0) { PacketWriter writer = new PacketWriter(Opcodes.CMSG_NAME_QUERY); writer.Write(targetGUID); Send(writer); } }