Exemplo n.º 1
0
        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);
                }
            });
        }
Exemplo n.º 2
0
        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);
                }
            });
        }