using System; using System.Linq; using System.Data; using System.Data.SqlClient; using Filter.Networking.Instances; using Filter.Networking.Manager; using Filter.Utilities; namespace Filter.Handlers.Manager { internal class Manager29Handle { [ManagerPacketHandler(Manager29TypeClient.GuildMessage)] public static void HandleGuildMessage(ManagerClient ClientSocket, Packet ClientPacket) { if (ClientSocket.IsConnected != 0) { ClientPacket.Dispose(); return; } else { if (Program.Config.GuildProtect) { String Message; Char InvalidSymbol; if (!ClientPacket.ReadString(out Message)) { } else if (Injection.ContainsInvalidSymbol(Message, out InvalidSymbol)) { if (Program.Config.BinType == MessageType.Whisper) { Echo.SendWhisper(ClientSocket, Program.Config.BinMessage); } else { Echo.SendWorldMessage(ClientSocket, Program.Config.BinMessage); } } else { Message = Message.Replace("?", "?"); Packet RemakeClientPacket = new Packet(Manager29TypeClient.GuildMessage); RemakeClientPacket.WriteString(Message, true); ClientSocket.Server.SendPacket(RemakeClientPacket); if (Program.Config.GuildLog) { using (var Connection = new SqlConnection()) { Connection.ConnectionString = Program.ConnectionBuilder.ConnectionString; try { Connection.Open(); } catch { } if (Connection.State == ConnectionState.Open) { using (var Command = Connection.CreateCommand()) { Command.CommandText = String.Format("INSERT INTO {0}..tGuild (sSender, sMessage) VALUES ('{1}', '{2}')", Program.Config.SQLChatLogs, ClientSocket.CharacterName, Message); try { Command.ExecuteNonQuery(); } catch { } } } Connection.Close(); } } } } else { ClientSocket.Server.SendPacket(ClientPacket); } } ClientPacket.Dispose(); } } }