private void SendCommande(string consoleText) { if (consoleText == "") { return; } consoleText = consoleText.ToUpper(); string cmd = ""; string[] args = GetArguments(consoleText, out cmd); ECommandResult result = ECommandResult.Failed; if (cmdNames.Contains(cmd)) { result = InvokeOnSendCommand(cmd, args); } Color color = result == ECommandResult.Successed ? sucessCmd : failedCmd; string[] type = new string[args.Length + 1]; args.CopyTo(type, 1); type[0] = cmd; if (result == ECommandResult.Successed) { InvokeOnSucessedCommand(type); } else { InvokeOnFailedCommand(type); } historic.Enqueue(new SLineHistory(consoleText, color)); ViewHistory(); }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns></returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; if (commandArguments.Arguments.Count > 0) { string name = commandArguments.RawArguments; if (commandArguments.Bot.LoadedModules.ContainsKey(commandArguments.RawArguments)) { commandArguments.Bot.UnloadModuleAsync(commandArguments.Bot.LoadedModules[commandArguments.RawArguments]).GetAwaiter().GetResult(); ret = ECommandResult.Successful; IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); if (chat_services != null) { foreach (IChat chat in chat_services) { if (chat != null) { chat.SendMessage("Module \"" + commandArguments.RawArguments + "\" has been successfully unloaded.", commandArguments.MessageChannel); } } } } } return(ret); }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns>Command result</returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; IModules[] modules_services = commandArguments.Bot.GetServices <IModules>(); IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); if ((modules_services != null) && (chat_services != null)) { List <Embed> embeds = new List <Embed>(); foreach (IModules modules in modules_services) { EmbedBuilder embed_builder = PrepareEmbedBuilder(); foreach (IModule module in modules.LoadedModules.Values) { embed_builder.AddField(module.Name, "Version: " + module.Version + Environment.NewLine + "Author: " + module.Author + Environment.NewLine + "URI: " + module.URI); } embeds.Add(embed_builder.Build()); } foreach (IChat chat in chat_services) { if (chat != null) { foreach (Embed embed in embeds) { chat.SendEmbed(embed, commandArguments.MessageChannel); } } } embeds.Clear(); ret = ECommandResult.Successful; } return(ret); }
public void HandleResult(ECommandResult result) { switch (result) { case ECommandResult.NotEnoughCurrency: GameEntry.UI.ShowTips("金币不足!"); break; } }
public override bool HandleResult(ECommandResult result) { if (m_ResultHandler != null) { return(m_ResultHandler.Invoke(result)); } return(false); }
/// <summary> /// 处理结果 /// </summary> /// <param name="result"></param> /// <returns></returns> public override bool HandleResult(ECommandResult result) { if (result == ECommandResult.Success) { GameEntry.UI.ShowTips("出售成功!"); return(true); } return(false); }
/// <summary> /// 处理结果 /// </summary> /// <param name="result"></param> /// <returns></returns> public override bool HandleResult(ECommandResult result) { if (result == ECommandResult.Success) { // GameEntry.UI.ShowSecretaryTips("发生突发事件!"); return(true); } return(false); }
/// <summary> /// 处理结果 /// </summary> /// <param name="result"></param> /// <returns></returns> public override bool HandleResult(ECommandResult result) { if (result == ECommandResult.Success) { var evt = ReferencePool.Acquire <EvtZooBusinessTriggered>(); GameEntry.Event.Fire(this, evt); return(true); } return(false); }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns></returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; if (commandArguments.Arguments.Count == 1) { CommandsConfiguration commands_configuration = commandArguments.Bot.GetService <CommandsConfiguration>(); if (commands_configuration != null) { string message = null; string command = commandArguments.Arguments[0].Trim().ToLower(); CommandConfigurationData command_configuration_data = null; if (commands_configuration.Data.Commands.ContainsKey(command)) { command_configuration_data = commands_configuration.Data.Commands[command]; if (command_configuration_data == null) { command_configuration_data = new CommandConfigurationData(); commands_configuration.Data.Commands[command] = command_configuration_data; } } else { command_configuration_data = new CommandConfigurationData(); commands_configuration.Data.Commands.Add(command, command_configuration_data); } if (command_configuration_data.Enabled) { command_configuration_data.Enabled = false; commands_configuration.Save(); message = "Command \"" + command + "\" has been successfully disabled."; ret = ECommandResult.Successful; } else { message = "Command \"" + command + "\" is already disabled."; } if (message != null) { IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); if (chat_services != null) { foreach (IChat chat in chat_services) { if (chat != null) { chat.SendMessage(message, commandArguments.MessageChannel); } } } } } } return(ret); }
/// <summary> /// 处理结果 /// </summary> /// <param name="result"></param> /// <returns></returns> public override bool HandleResult(ECommandResult result) { if (result == ECommandResult.Success) { GameEntry.UI.ShowSecretaryTips("发生突发事件!"); var evt = ReferencePool.Acquire <EvtEventTriggered>(); evt.ZooEventId = EventId; GameEntry.Event.Fire(this, evt); return(true); } return(false); }
/// <summary> /// 处理结果 /// </summary> /// <param name="result"></param> /// <returns></returns> public override bool HandleResult(ECommandResult result) { if (result == ECommandResult.Success) { GameEntry.UI.ShowTips("拆除成功!"); var evt = ReferencePool.Acquire <EvtFinishEdit>(); evt.IsConfirmEdit = true; GameEntry.Event.Fire(this, evt); return(true); } return(false); }
private ECommandResult InvokeOnSendCommand(string cmd, string[] args) { ECommandResult result = ECommandResult.Failed; if (string.IsNullOrEmpty(cmd) || !allCommand.ContainsKey(cmd)) { return(ECommandResult.Failed); } foreach (SendCommandDelegate func in allCommand[cmd]) { if (func(args) == ECommandResult.Successed) { result = ECommandResult.Successed; } } return(result); }
/// <summary> /// 处理结果 /// </summary> /// <param name="result"></param> /// <returns></returns> public override bool HandleResult(ECommandResult result) { if (result == ECommandResult.Success) { GameEntry.UI.ShowTips("修改名字成功!"); return(true); } else if (result == ECommandResult.Fail) { switch (FailType) { case 1: GameEntry.UI.ShowTips("名字相同,不能修改!"); return(true); } } return(false); }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns>Command result</returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); if (chat_services != null) { EmbedBuilder embed_builder = new EmbedBuilder(); StringBuilder loaded_services = new StringBuilder(); bool first = true; embed_builder.WithTitle(":tickets: Services"); embed_builder.WithColor(Color.Red); foreach (object service in commandArguments.Bot.LoadedServices) { if (first) { first = false; } else { loaded_services.Append(", "); } loaded_services.Append(service.GetType().FullName); } if (first) { loaded_services.Append("No services found."); } embed_builder.AddField("Loaded services", loaded_services.ToString()); Embed embed = embed_builder.Build(); foreach (IChat chat in chat_services) { if (chat != null) { chat.SendEmbed(embed, commandArguments.MessageChannel); } } ret = ECommandResult.Successful; } return(ret); }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns></returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; if (commandArguments.Arguments.Count > 0) { string path = commandArguments.RawArguments; if (File.Exists(path)) { try { path = Path.GetFullPath(path); IModule module = commandArguments.Bot.LoadModuleAsync(path).GetAwaiter().GetResult(); if (module != null) { module.InitAsync(commandArguments.Bot); ret = ECommandResult.Successful; IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); if (chat_services != null) { foreach (IChat chat in chat_services) { if (chat != null) { chat.SendMessage("Module \"" + module.Name + "\" has been successfully loaded.", commandArguments.MessageChannel); } } } } } catch (Exception e) { Console.Error.WriteLine(e); } } } return(ret); }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns>Command result</returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; if (commandArguments.Arguments.Count == 5) { string global_guild_specifier = commandArguments.Arguments[0]; string role_user_specifier = commandArguments.Arguments[1]; string role_user_id_string = commandArguments.Arguments[2]; string privilege = commandArguments.Arguments[3]; string level_string = commandArguments.Arguments[4]; ulong role_user_id; uint level; if (ulong.TryParse(role_user_id_string, out role_user_id) && uint.TryParse(level_string, out level)) { IPrivileges[] privileges_services = commandArguments.Bot.GetServices <IPrivileges>(); IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); if (privileges_services != null) { switch (global_guild_specifier.ToLower()) { case "global": if (role_user_specifier.ToLower() == "user") { foreach (IPrivileges privileges in privileges_services) { privileges.SetGlobalUserPrivilege(role_user_id, privilege, level); privileges.Save(); foreach (IChat chat in chat_services) { if (chat != null) { if (level == 0U) { chat.SendMessage("Global privilege \"" + privilege + "\" has been removed from user \"" + role_user_id + "\".", commandArguments.MessageChannel); } else { chat.SendMessage("Global privilege \"" + privilege + "\" has been set to level \"" + level + "\" for user \"" + role_user_id + "\".", commandArguments.MessageChannel); } } } ret = ECommandResult.Successful; } } break; case "guild": switch (role_user_specifier.ToLower()) { case "role": foreach (IPrivileges privileges in privileges_services) { privileges.SetGuildRolePrivilege(((SocketGuildChannel)(commandArguments.MessageChannel)).Guild.Id, role_user_id, privilege, level); privileges.Save(); foreach (IChat chat in chat_services) { if (chat != null) { if (level == 0U) { chat.SendMessage("Guild privilege \"" + privilege + "\" has been removed from role \"" + role_user_id + "\".", commandArguments.MessageChannel); } else { chat.SendMessage("Guild privilege \"" + privilege + "\" has been set to level \"" + level + "\" for role \"" + role_user_id + "\".", commandArguments.MessageChannel); } } } } break; case "user": foreach (IPrivileges privileges in privileges_services) { privileges.SetGuildUserPrivilege(((SocketGuildChannel)(commandArguments.MessageChannel)).Guild.Id, role_user_id, privilege, level); privileges.Save(); foreach (IChat chat in chat_services) { if (chat != null) { if (level == 0U) { chat.SendMessage("Guild privilege \"" + privilege + "\" has been removed from user \"" + role_user_id + "\".", commandArguments.MessageChannel); } else { chat.SendMessage("Guild privilege \"" + privilege + "\" has been set to level \"" + level + "\" for user \"" + role_user_id + "\".", commandArguments.MessageChannel); } } } } break; } break; } } } } return(ret); }
public virtual bool HandleResult(ECommandResult result) { return(true); }
/// <summary> /// Constructor /// </summary> /// <param name="result">Result</param> /// <param name="compiledCommand">Compiled command</param> /// <param name="missingPrivileges">Missing privileges</param> public CommandResult(ECommandResult result, ICompiledCommand compiledCommand, IDictionary <string, uint> missingPrivileges) { Result = result; CompiledCommand = compiledCommand; MissingPrivileges = new ReadOnlyDictionary <string, uint>(missingPrivileges); }
/// <summary> /// Constructor /// </summary> /// <param name="result">Result</param> /// <param name="compiledCommand">Compiled command</param> public CommandResult(ECommandResult result, ICompiledCommand compiledCommand) { Result = result; CompiledCommand = compiledCommand; }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns>Command result</returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; ICommands[] commands_services = commandArguments.Bot.GetServices <ICommands>(); IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); HelpConfiguration help_configuration = commandArguments.Bot.GetService <HelpConfiguration>(); if ((commands_services != null) && (chat_services != null) && (help_configuration != null)) { List <Embed> embeds = new List <Embed>(); if (commandArguments.Arguments.Count > 0) { string command_string = commandArguments.Arguments[0]; List <KeyValuePair <ICommands, ICommand> > command_list = new List <KeyValuePair <ICommands, ICommand> >(); foreach (ICommands commands in commands_services) { ICommand command = commands.FindCommand(command_string); if (command != null) { command_list.Add(new KeyValuePair <ICommands, ICommand>(commands, command)); } } if (command_list.Count > 0) { foreach (KeyValuePair <ICommands, ICommand> command in command_list) { EmbedBuilder embed_builder = PrepareEmbedBuilder("Help topic for command \"" + command.Value.Name + "\""); embed_builder.AddField("Command", command.Value.Name, true); embed_builder.AddField("Description", command.Value.Description, true); embed_builder.AddField("Full description", command.Value.FullDescription); StringBuilder required_privileges = new StringBuilder(); foreach (KeyValuePair <string, uint> privilege in command.Value.ForceRequiredPrivileges) { required_privileges.Append("\""); required_privileges.Append(privilege.Key); required_privileges.Append("\" : "); required_privileges.Append(privilege.Value.ToString()); } if (required_privileges.Length > 0) { embed_builder.AddField("Required privileges", required_privileges); } ICommandGroup command_group = command.Key.GetCommandGroup(command.Value.CommandGroup); if (command_group != null) { StringBuilder more_commands = new StringBuilder(); bool first = true; foreach (ICommand command_group_command in command.Key.FromCommandGroup(command_group)) { if (first) { first = false; } else { more_commands.Append(", "); } more_commands.Append(command_group_command.Name); } if (first) { more_commands.Append("No commands?"); } embed_builder.AddField("More commands " + command_group.Icon, more_commands.ToString()); } embeds.Add(embed_builder.Build()); } } else { List <KeyValuePair <ICommands, ICommandGroup> > command_group_list = new List <KeyValuePair <ICommands, ICommandGroup> >(); string command_group_name_key = commandArguments.Arguments[0].Trim().ToLower(); foreach (ICommands commands in commands_services) { ICommandGroup command_group = commands.GetCommandGroup(command_string); if (command_group != null) { if (command_group.Name.Trim().ToLower() == command_group_name_key) { command_group_list.Add(new KeyValuePair <ICommands, ICommandGroup>(commands, command_group)); } } } if (command_group_list.Count > 0) { foreach (KeyValuePair <ICommands, ICommandGroup> command_group in command_group_list) { EmbedBuilder embed_builder = PrepareEmbedBuilder("Help topic for command group \"" + command_group.Value.Icon + " " + command_group.Value.Name + "\""); StringBuilder command_group_commands = new StringBuilder(); bool first = true; foreach (ICommand command_group_command in command_group.Key.FromCommandGroup(command_group.Value)) { if (first) { first = false; } else { command_group_commands.Append(", "); } command_group_commands.Append(command_group_command.Name); } if (first) { command_group_commands.Append("No commands?"); } embed_builder.AddField("Commands", command_group_commands.ToString()); command_group_commands.Clear(); embeds.Add(embed_builder.Build()); } } else { foreach (ICommands commands in commands_services) { EmbedBuilder embed_builder = PrepareEmbedBuilder(); embed_builder.WithTitle("Help topics similar to \"" + command_string + "\""); StringBuilder all_commands_groups = new StringBuilder(); bool first = true; foreach (ICommand command in commands.AvailableCommands) { if (Levenshtein.GetDistance(command_string, command.Name) <= help_configuration.Data.MaximumLevenshteinDistance) { if (first) { first = false; } else { all_commands_groups.Append(", "); } all_commands_groups.Append(command.Name); } } if (first) { all_commands_groups.Append("No similar commands found"); } embed_builder.AddField("Commands", all_commands_groups.ToString()); all_commands_groups.Clear(); first = true; foreach (ICommandGroup command_group in commands.AvailableCommandGroups) { if (Levenshtein.GetDistance(command_string, command_group.Name) <= help_configuration.Data.MaximumLevenshteinDistance) { if (first) { first = false; } else { all_commands_groups.Append(", "); } all_commands_groups.Append(command_group.Icon); all_commands_groups.Append(" "); all_commands_groups.Append(command_group.Name); } } if (first) { all_commands_groups.Append("No similar command groups found"); } embed_builder.AddField("Command groups", all_commands_groups.ToString()); embeds.Add(embed_builder.Build()); } } command_group_list.Clear(); } command_list.Clear(); } else { foreach (ICommands commands in commands_services) { EmbedBuilder embed_builder = PrepareEmbedBuilder("Help topics"); StringBuilder command_group_commands = new StringBuilder(); foreach (ICommandGroup command_group in commands.AvailableCommandGroups) { bool first = true; command_group_commands.Clear(); foreach (ICommand command_group_command in commands.FromCommandGroup(command_group)) { if (first) { first = false; } else { command_group_commands.Append(", "); } command_group_commands.Append(command_group_command.Name); } if (first) { command_group_commands.Append("No commands specified yet."); } embed_builder.AddField(command_group.Icon + " " + command_group.Name, command_group_commands.ToString()); } embeds.Add(embed_builder.Build()); } } foreach (IChat chat in chat_services) { foreach (Embed embed in embeds) { chat.SendEmbedAsync(embed, commandArguments.MessageChannel); } } embeds.Clear(); ret = ECommandResult.Successful; } return(ret); }
/// <summary> /// Execute command /// </summary> /// <param name="commandArguments">Command arguments</param> /// <returns>Command result</returns> public ECommandResult Execute(ICommandArguments commandArguments) { ECommandResult ret = ECommandResult.Failed; if (commandArguments.Arguments.Count == 3) { string command = commandArguments.Arguments[0].Trim().ToLower(); string privilege = commandArguments.Arguments[1]; uint level; if (uint.TryParse(commandArguments.Arguments[2], out level)) { CommandsConfiguration commands_configuration = commandArguments.Bot.GetService <CommandsConfiguration>(); if (commands_configuration != null) { string message = null; CommandConfigurationData command_configuration_data = null; if (commands_configuration.Data.Commands.ContainsKey(command)) { command_configuration_data = commands_configuration.Data.Commands[command]; if (command_configuration_data == null) { command_configuration_data = new CommandConfigurationData(); commands_configuration.Data.Commands[command] = command_configuration_data; } } else { command_configuration_data = new CommandConfigurationData(); commands_configuration.Data.Commands.Add(command, command_configuration_data); } if (level == 0U) { if (command_configuration_data.Privileges.ContainsKey(privilege)) { command_configuration_data.Privileges.Remove(privilege); commands_configuration.Save(); message = "Privilege requirement \"" + privilege + "\" for \"" + command + "\" has been successfully removed."; ret = ECommandResult.Successful; } else { message = "Privilege requirement \"" + privilege + "\" doesn't exist for \"" + command + "\"."; } } else { if (command_configuration_data.Privileges.ContainsKey(privilege)) { command_configuration_data.Privileges[privilege] = level; commands_configuration.Save(); message = "Privilege requirement \"" + privilege + "\" for \"" + command + "\" has been successfully updated to level " + level + "."; } else { command_configuration_data.Privileges.Add(privilege, level); commands_configuration.Save(); message = "Privilege requirement \"" + privilege + "\" for \"" + command + "\" has been successfully set to level " + level + "."; } ret = ECommandResult.Successful; } if (message != null) { IChat[] chat_services = commandArguments.Bot.GetServices <IChat>(); if (chat_services != null) { foreach (IChat chat in chat_services) { if (chat != null) { chat.SendMessage(message, commandArguments.MessageChannel); } } } } } } } return(ret); }