internal override void Init(CommandGroupBuilder cgb) { cgb.CreateCommand(Module.Prefix + "chnlfilterwords") .Alias(Module.Prefix + "cfw") .Description("Enables or disables automatic deleting of messages containing banned words on the channel." + "If no channel supplied, it will default to current one. Use ALL to apply to all existing channels at once." + $" | `{Prefix}cfw enable #general-chat`") .Parameter("bool") .Parameter("channel", ParameterType.Optional) .Do(async e => { try { var state = PermissionHelper.ValidateBool(e.GetArg("bool")); var chanStr = e.GetArg("channel")?.ToLowerInvariant().Trim(); if (chanStr != "all") { var chan = string.IsNullOrWhiteSpace(chanStr) ? e.Channel : PermissionHelper.ValidateChannel(e.Server, chanStr); await PermissionsHandler.SetChannelWordPermission(chan, state).ConfigureAwait(false); await e.Channel.SendMessage($"Word filtering has been **{(state ? "enabled" : "disabled")}** for **{chan.Name}** channel.").ConfigureAwait(false); return; } //all channels foreach (var curChannel in e.Server.TextChannels) { await PermissionsHandler.SetChannelWordPermission(curChannel, state).ConfigureAwait(false); } await e.Channel.SendMessage($"Word filtering has been **{(state ? "enabled" : "disabled")}** for **ALL** channels.").ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Error: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "addfilterword") .Alias(Module.Prefix + "afw") .Description("Adds a new word to the list of filtered words" + $" | `{Prefix}afw poop`") .Parameter("word", ParameterType.Unparsed) .Do(async e => { try { var word = e.GetArg("word"); if (string.IsNullOrWhiteSpace(word)) { return; } await PermissionsHandler.AddFilteredWord(e.Server, word.ToLowerInvariant().Trim()).ConfigureAwait(false); await e.Channel.SendMessage($"Successfully added new filtered word.").ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Error: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "rmvfilterword") .Alias(Module.Prefix + "rfw") .Description("Removes the word from the list of filtered words" + $" | `{Prefix}rw poop`") .Parameter("word", ParameterType.Unparsed) .Do(async e => { try { var word = e.GetArg("word"); if (string.IsNullOrWhiteSpace(word)) { return; } await PermissionsHandler.RemoveFilteredWord(e.Server, word.ToLowerInvariant().Trim()).ConfigureAwait(false); await e.Channel.SendMessage($"Successfully removed filtered word.").ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Error: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "lstfilterwords") .Alias(Module.Prefix + "lfw") .Description("Shows a list of filtered words" + $" | `{Prefix}lfw`") .Do(async e => { try { Classes.ServerPermissions serverPerms; if (!PermissionsHandler.PermissionsDict.TryGetValue(e.Server.Id, out serverPerms)) { return; } await e.Channel.SendMessage($"There are `{serverPerms.Words.Count}` filtered words.\n" + string.Join("\n", serverPerms.Words)).ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Error: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "srvrfilterwords") .Alias(Module.Prefix + "sfw") .Description($"Enables or disables automatic deleting of messages containing forbidden words on the server. | `{Prefix}sfw disable`") .Parameter("bool") .Do(async e => { try { var state = PermissionHelper.ValidateBool(e.GetArg("bool")); await PermissionsHandler.SetServerWordPermission(e.Server, state).ConfigureAwait(false); await e.Channel.SendMessage($"Word filtering has been **{(state ? "enabled" : "disabled")}** on this server.") .ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Error: {ex.Message}").ConfigureAwait(false); } }); }
internal override void Init(CommandGroupBuilder cgb) { cgb.CreateCommand(Module.Prefix + "chnlfilterwords") .Alias(Module.Prefix + "cfw") .Description("Aktiviert, oder deaktiviert automatische Löschung von Nachrichten auf diesem Channel, die gebannte Wörter beinhalten." + "Wenn kein Channel ausgewählt, dieser hier. Benutze ALL um auf alle derzeit existierenden Channel zu aktivieren." + $" | `{Prefix}cfw enable #general-chat`") .Parameter("bool") .Parameter("channel", ParameterType.Optional) .Do(async e => { try { var state = PermissionHelper.ValidateBool(e.GetArg("bool")); var chanStr = e.GetArg("channel")?.ToLowerInvariant().Trim(); if (chanStr != "all") { var chan = string.IsNullOrWhiteSpace(chanStr) ? e.Channel : PermissionHelper.ValidateChannel(e.Server, chanStr); await PermissionsHandler.SetChannelWordPermission(chan, state).ConfigureAwait(false); await e.Channel.SendMessage($"Wort Filterung wurde **{(state ? "aktiviert" : "deaktiviert")}** für Channel **{chan.Name}**.") .ConfigureAwait(false); return; } //all channels foreach (var curChannel in e.Server.TextChannels) { await PermissionsHandler.SetChannelWordPermission(curChannel, state).ConfigureAwait(false); } await e.Channel.SendMessage($"Wort Filterung wurde **{(state ? "aktiviert" : "deaktivert")}** für **ALLE** Channel.") .ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Fehler: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "addfilterword") .Alias(Module.Prefix + "afw") .Description("Fügt ein neues Wort zur Liste der gefilterten Wörter hinzu." + $" | `{Prefix}afw poop`") .Parameter("word", ParameterType.Unparsed) .Do(async e => { try { var word = e.GetArg("word"); if (string.IsNullOrWhiteSpace(word)) { return; } await PermissionsHandler.AddFilteredWord(e.Server, word.ToLowerInvariant().Trim()).ConfigureAwait(false); await e.Channel.SendMessage($"Neues Wort erfolgreich zum Filter hinzugefügt.") .ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Fehler: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "rmvfilterword") .Alias(Module.Prefix + "rfw") .Description("Entfernt ein Wort von der Liste der gefilterten Wörter." + $" | `{Prefix}rfw poop`") .Parameter("word", ParameterType.Unparsed) .Do(async e => { try { var word = e.GetArg("word"); if (string.IsNullOrWhiteSpace(word)) { return; } await PermissionsHandler.RemoveFilteredWord(e.Server, word.ToLowerInvariant().Trim()).ConfigureAwait(false); await e.Channel.SendMessage($"Wort erfolgreich von Liste entfernt.") .ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Fehler: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "lstfilterwords") .Alias(Module.Prefix + "lfw") .Description("Zeigt Liste der gefilterten Wörter." + $" | `{Prefix}lfw`") .Do(async e => { try { Classes.ServerPermissions serverPerms; if (!PermissionsHandler.PermissionsDict.TryGetValue(e.Server.Id, out serverPerms)) { return; } await e.Channel.SendMessage($"Es gibt `{serverPerms.Words.Count}` gefilterte Wörter.\n" + string.Join("\n", serverPerms.Words)).ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Fehler: {ex.Message}").ConfigureAwait(false); } }); cgb.CreateCommand(Module.Prefix + "srvrfilterwords") .Alias(Module.Prefix + "sfw") .Description($"Aktiviert, oder deaktiviert automatische Löschung von Nachrichten auf dem Server, die verbotene Wörter enthalten. | `{Prefix}sfi disable`") .Parameter("bool") .Do(async e => { try { var state = PermissionHelper.ValidateBool(e.GetArg("bool")); await PermissionsHandler.SetServerWordPermission(e.Server, state).ConfigureAwait(false); await e.Channel.SendMessage($"Wort Filterung wurde **{(state ? "aktiviert" : "deaktiviert")}** auf diesem Server.") .ConfigureAwait(false); } catch (Exception ex) { await e.Channel.SendMessage($"💢 Fehler: {ex.Message}").ConfigureAwait(false); } }); }