using System; using System.Linq; using System.Data; using System.Data.SqlClient; using Filter.Networking.Instances; using Filter.Networking.Manager; namespace Filter.Utilities { internal class Command { public static void HandleCommand(ManagerClient ClientSocket, Packet ClientPacket, String CommandText) { String[] SplitCommand = CommandText.Split(' '); if (SplitCommand[0].ToLower() == "&roar") { if (SplitCommand.Length == 1) { Echo.SendWhisper(ClientSocket, "Please enter a message you would like to send."); } else if (ClientSocket.LastRoar > DateTime.Now && ClientSocket.LastRoar != DateTime.MinValue) { TimeSpan WaitSpan = ClientSocket.LastRoar.Subtract(DateTime.Now); Echo.SendWhisper(ClientSocket, "You cannot send another roar yet. Minutes left: {0} Seconds left: {1}.", WaitSpan.Minutes, WaitSpan.Seconds); } else { String Message = CommandText.Replace(CommandText.Substring(0, 6), ""); Echo.SendRoar(ClientSocket.CharacterName, Message); ClientSocket.LastRoar = DateTime.Now.AddMinutes(5); } } else if (Program.Config.CCEnabled && SplitCommand[0].ToLower() == "¤cies") { Echo.SendWhisper(ClientSocket, "Custom Currency Amounts:"); using (var Connection = new SqlConnection()) { Connection.ConnectionString = Program.ConnectionBuilder.ConnectionString; try { Connection.Open(); } catch { } if (Connection.State == ConnectionState.Open) { using (var Command = Connection.CreateCommand()) { foreach (Currency C in Program.CustomCurrency.Currencys.Values) { String CurrencyLine = String.Format("{0}: ", C.Name); if (C.Type == 1) { Command.CommandText = String.Format("SELECT TOP 1 nCharNo FROM {0}..tCharacter WHERE sID = '{1}'", Program.Config.SQLCharacter, ClientSocket.CharacterName); Int32 CharacterID = Convert.ToInt32(Command.ExecuteScalar()); Command.CommandText = String.Format("SELECT TOP 1 Amount FROM CustomCurrency..{0} WHERE nCharNo = '{1}'", C.Table, CharacterID); } else if (C.Type == 2) { Command.CommandText = String.Format("SELECT TOP 1 Amount FROM CustomCurrency..{0} WHERE nUserNo = '{1}'", C.Table, ClientSocket.AccountID); } Echo.SendWhisper(ClientSocket, String.Concat(CurrencyLine, Command.ExecuteScalar())); } } } } } else if (SplitCommand[0].ToLower() == "&online") { Console.ForegroundColor = ConsoleColor.Gray; Echo.SendWhisper(ClientSocket, "Currently playing {0}: {1}", Program.Config.SName, Program.ManagerLoggedIn.Count); Echo.SendWhisper(ClientSocket, "Character Names:"); foreach (var MClient in Program.ManagerLoggedIn.Values.Where(Character => Character.CharacterName != String.Empty)) { Echo.SendWhisper(ClientSocket, MClient.CharacterName); } } ClientPacket.Dispose(); } } }