Added commands
This commit is contained in:
		| @@ -134,9 +134,100 @@ namespace NadekoBot.Modules.Conversations | |||||||
|                             str = str.Replace("%target%", e.GetArg("args")); |                             str = str.Replace("%target%", e.GetArg("args")); | ||||||
|                         } |                         } | ||||||
|  |  | ||||||
|                         await e.Channel.SendMessage(str); |                         await e.Channel.SendMessage(str).ConfigureAwait(false); | ||||||
|                     }); |                     }); | ||||||
|                 } |                 } | ||||||
|  |                 cgb.CreateCommand("addcustomreaction") | ||||||
|  |                 .Alias("acr") | ||||||
|  |                 .Description($"Add a custom reaction. **Owner Only!**\n**Usage**: {Prefix}acr \"hello\" I love saying hello to %user%") | ||||||
|  |                 .AddCheck(SimpleCheckers.OwnerOnly()) | ||||||
|  |                 .Parameter("name", ParameterType.Required) | ||||||
|  |                 .Parameter("message", ParameterType.Unparsed) | ||||||
|  |                 .Do(async e => | ||||||
|  |                 { | ||||||
|  |                     var name = e.GetArg("name"); | ||||||
|  |                     var message = e.GetArg("message").Trim(); | ||||||
|  |                     if (string.IsNullOrWhiteSpace(message)) | ||||||
|  |                     { | ||||||
|  |                         await e.Channel.SendMessage($"Incorrect command usage. See -h {Prefix}acr for correct formatting").ConfigureAwait(false); | ||||||
|  |                         return; | ||||||
|  |                     } | ||||||
|  |                     try | ||||||
|  |                     { | ||||||
|  |                         NadekoBot.Config.CustomReactions[name].Add(message); | ||||||
|  |                     } | ||||||
|  |                     catch (System.Collections.Generic.KeyNotFoundException) | ||||||
|  |                     { | ||||||
|  |                         NadekoBot.Config.CustomReactions.Add(name, new System.Collections.Generic.List<string>() { message }); | ||||||
|  |                     } | ||||||
|  |                     finally | ||||||
|  |                     { | ||||||
|  |                         Classes.JSONModels.ConfigHandler.SaveConfig(); | ||||||
|  |                     } | ||||||
|  |                     await e.Channel.SendMessage($"Added {name} : {message}").ConfigureAwait(false); | ||||||
|  |  | ||||||
|  |                 }); | ||||||
|  |  | ||||||
|  |                 cgb.CreateCommand("listcustomreactions") | ||||||
|  |                 .Alias("lcr") | ||||||
|  |                 .Description("Lists all current custom reactions. **Owner Only!**") | ||||||
|  |                 .AddCheck(SimpleCheckers.OwnerOnly()) | ||||||
|  |                 .Do(async e => | ||||||
|  |                 { | ||||||
|  |  | ||||||
|  |                     string message = $"Custom reactions:"; | ||||||
|  |                     foreach (var cr in NadekoBot.Config.CustomReactions) | ||||||
|  |                     { | ||||||
|  |                         message += $"\n**\"{cr.Key}\"**:"; | ||||||
|  |                         int i = 1; | ||||||
|  |                         foreach (var reaction in cr.Value) | ||||||
|  |                         { | ||||||
|  |                             message += "\n     " + i++ + "." + reaction; | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     await e.Channel.SendMessage(message); | ||||||
|  |                 }); | ||||||
|  |  | ||||||
|  |                 cgb.CreateCommand("deletecustomreaction") | ||||||
|  |                 .Alias("dcr") | ||||||
|  |                 .Description("Deletes a custome reaction with given name (and index)") | ||||||
|  |                 .Parameter("name", ParameterType.Required) | ||||||
|  |                 .Parameter("index", ParameterType.Optional) | ||||||
|  |                 .Do(async e => | ||||||
|  |                 { | ||||||
|  |                     var name = e.GetArg("name"); | ||||||
|  |                     if (!NadekoBot.Config.CustomReactions.ContainsKey(name)) | ||||||
|  |                     { | ||||||
|  |                         await e.Channel.SendMessage("Could not find given key"); | ||||||
|  |                         return; | ||||||
|  |                     } | ||||||
|  |                     string message = ""; | ||||||
|  |                     int index; | ||||||
|  |                     if (int.TryParse(e.GetArg("index") ?? "", out index)) | ||||||
|  |                     { | ||||||
|  |                         try | ||||||
|  |                         { | ||||||
|  |                             NadekoBot.Config.CustomReactions[name].RemoveAt(index - 1); | ||||||
|  |                             if (!NadekoBot.Config.CustomReactions[name].Any()) | ||||||
|  |                             { | ||||||
|  |                                 NadekoBot.Config.CustomReactions.Remove(name); | ||||||
|  |                             } | ||||||
|  |                             message = $"Deleted response #{index} from {name}"; | ||||||
|  |                         } | ||||||
|  |                         catch (ArgumentOutOfRangeException) | ||||||
|  |                         { | ||||||
|  |                             await e.Channel.SendMessage("Index given was out of range").ConfigureAwait(false); | ||||||
|  |                             return; | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     else | ||||||
|  |                     { | ||||||
|  |                         NadekoBot.Config.CustomReactions.Remove(name); | ||||||
|  |                         message = $"Deleted custom reaction \"{name}\""; | ||||||
|  |                     } | ||||||
|  |                     Classes.JSONModels.ConfigHandler.SaveConfig(); | ||||||
|  |                     await e.Channel.SendMessage(message); | ||||||
|  |                 });    | ||||||
|             }); |             }); | ||||||
|  |  | ||||||
|             manager.CreateCommands(NadekoBot.BotMention, cgb => |             manager.CreateCommands(NadekoBot.BotMention, cgb => | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user