using Filter; using Filter.Database.Character; using Filter.Database.GameFilter; using Filter.Networking.Instances; using Filter.Networking.Manager; using Filter.Utilities; using System; using System.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; namespace Filter.Handlers.Manager { internal class Manager8Handle { public Manager8Handle() { } [ManagerPacketHandler(Manager8TypeClient.PartyMessage)] public static void HandlePartyMessage(ManagerClient ClientSocket, Packet ClientPacket) { string str; char chr; if (ClientSocket.IsConnected != 0) { return; } if (ClientSocket.Account == null || ClientSocket.Character == null) { ClientSocket.Disconnect(); return; } Muted muted = ( from nCharNo in Program.GameFilterData.Muteds where nCharNo.nCharNo == ClientSocket.Character.nCharNo select nCharNo).FirstOrDefault(); if (!ClientPacket.ReadString(out str)) { Echo.SendWhisper(ClientSocket, "Could not read your party message.", new object[0]); return; } if (Injection.ContainsInvalidSymbol(str, out chr)) { ManagerClient clientSocket = ClientSocket; object[] objArray = new object[] { chr }; Echo.SendWhisper(clientSocket, "The party message you tried to send had a invalid symbol in. Invalid Symbol: {0}.", objArray); return; } if (muted != null) { Echo.SendWhisper(ClientSocket, "Sorry but you cannot talk in party chat, because you are muted.", new object[0]); return; } Packet packet = new Packet(Manager8TypeClient.PartyMessage); packet.WriteString(str, true); ClientSocket.Server.SendPacket(packet); } [ManagerPacketHandler(Manager8TypeClient.WhisperMessage)] public static void HandleWhisperMessage(ManagerClient ClientSocket, Packet ClientPacket) { string str; char chr; string str1; if (ClientSocket.IsConnected != 0) { return; } if (ClientSocket.Account == null || ClientSocket.Character == null) { ClientSocket.Disconnect(); return; } if (!ClientPacket.ReadString(out str1, 16)) { Echo.SendWhisper(ClientSocket, "Could not read receiver for your whisper.", new object[0]); return; } if (!ClientPacket.ReadString(out str)) { Echo.SendWhisper(ClientSocket, "Could not read message for your whisper to {0}.", new object[] { str1 }); return; } if (Injection.ContainsInvalidSymbol(str, out chr)) { object[] objArray = new object[] { chr }; Echo.SendWhisper(ClientSocket, "The message you tried to send had a invalid symbol in. Invalid Symbol: {0}.", objArray); return; } if (str.StartsWith("&") && str1.ToLower() == "echo") { Command.HandleCommand(ClientSocket, ClientPacket, str); return; } ManagerClient managerClient = ( from Character in Program.ManagerLoggedIn where Character.Character != null select Character into sID where sID.Character.sID.ToLower() == str1.ToLower() select sID).FirstOrDefault(); ManagerClient managerClient1 = managerClient; ManagerClient managerClient2 = managerClient; if (managerClient1 == null) { Echo.SendWhisper(ClientSocket, "The player is not online. Player Name: {0}.", new object[] { str1 }); return; } if (( from nCharNo in Program.GameFilterData.AntiWhispers where nCharNo.nCharNo == managerClient2.Character.nCharNo select nCharNo).FirstOrDefault() != null) { Echo.SendWhisper(ClientSocket, "The player does not wish to be whispered.", new object[] { str1 }); return; } Packet packet = new Packet(Manager8TypeClient.WhisperMessage); packet.WriteString(managerClient2.Character.sID, 16); packet.WriteString(str, true); ClientSocket.Server.SendPacket(packet); } } }