Exemplo n.º 1
0
        internal override void Init(CommandGroupBuilder cgb)
        {
            cgb.CreateCommand(Module.Prefix + "chnlfilterinv")
            .Alias(Module.Prefix + "cfi")
            .Description("Aktiviert, oder deaktiviert automatische Löschung von Einladungen in diesem Channel." +
                         "Falls kein Channel gewählt, derzeitige Channel. Benutze ALL um alle derzeitig existierenden Channel zu wählen." +
                         $" | `{Prefix}cfi 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");

                    if (chanStr?.ToLowerInvariant().Trim() != "all")
                    {
                        var chan = string.IsNullOrWhiteSpace(chanStr)
                                ? e.Channel
                                : PermissionHelper.ValidateChannel(e.Server, chanStr);
                        await PermissionsHandler.SetChannelFilterInvitesPermission(chan, state).ConfigureAwait(false);
                        await e.Channel.SendMessage($"Invite Filter wurde **{(state ? "aktiviert" : "deaktiviert")}** für Channel **{chan.Name}**.")
                        .ConfigureAwait(false);
                        return;
                    }
                    //all channels

                    foreach (var curChannel in e.Server.TextChannels)
                    {
                        await PermissionsHandler.SetChannelFilterInvitesPermission(curChannel, state).ConfigureAwait(false);
                    }
                    await e.Channel.SendMessage($"Invite Filter wurde **{(state ? "aktiviert" : "deaktiviert")}** für **ALL** Channel.")
                    .ConfigureAwait(false);
                }
                catch (Exception ex)
                {
                    await e.Channel.SendMessage($"💢 Fehler: {ex.Message}").ConfigureAwait(false);
                }
            });

            cgb.CreateCommand(Module.Prefix + "srvrfilterinv")
            .Alias(Module.Prefix + "sfi")
            .Description($"Aktiviert, oder deaktiviert automatische Löschung von Einladungenauf diesem Server. | `{Prefix}sfi disable`")
            .Parameter("bool")
            .Do(async e =>
            {
                try
                {
                    var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
                    await PermissionsHandler.SetServerFilterInvitesPermission(e.Server, state).ConfigureAwait(false);
                    await e.Channel.SendMessage($"Invite Filter wurde **{(state ? "aktiviert" : "deaktiviert")}** für diesen Server.")
                    .ConfigureAwait(false);
                }
                catch (Exception ex)
                {
                    await e.Channel.SendMessage($"💢 Fehler: {ex.Message}").ConfigureAwait(false);
                }
            });
        }
Exemplo n.º 2
0
        internal override void Init(CommandGroupBuilder cgb)
        {
            cgb.CreateCommand(Module.Prefix + "cfi")
            .Alias(Module.Prefix + "channelfilterinvites")
            .Description("Enables or disables automatic deleting of invites on the channel." +
                         "If no channel supplied, it will default to current one. Use ALL to apply to all existing channels at once." +
                         "\n**Usage**: ;cfi 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");

                    if (chanStr?.ToLowerInvariant().Trim() != "all")
                    {
                        var chan = string.IsNullOrWhiteSpace(chanStr)
                                ? e.Channel
                                : PermissionHelper.ValidateChannel(e.Server, chanStr);
                        PermissionsHandler.SetChannelFilterInvitesPermission(chan, state);
                        await e.Channel.SendMessage($"Invite Filter has been **{(state ? "enabled" : "disabled")}** for **{chan.Name}** channel.");
                        return;
                    }
                    //all channels

                    foreach (var curChannel in e.Server.TextChannels)
                    {
                        PermissionsHandler.SetChannelFilterInvitesPermission(curChannel, state);
                    }
                    await e.Channel.SendMessage($"Invite Filter has been **{(state ? "enabled" : "disabled")}** for **ALL** channels.");
                } catch (Exception ex) {
                    await e.Channel.SendMessage($"💢 Error: {ex.Message}");
                }
            });

            cgb.CreateCommand(Module.Prefix + "sfi")
            .Alias(Module.Prefix + "serverfilterinvites")
            .Description("Enables or disables automatic deleting of invites on the server.\n**Usage**: ;sfi disable")
            .Parameter("bool")
            .Do(async e => {
                try {
                    var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
                    PermissionsHandler.SetServerFilterInvitesPermission(e.Server, state);
                    await e.Channel.SendMessage($"Invite Filter has been **{(state ? "enabled" : "disabled")}** for this server.");
                } catch (Exception ex) {
                    await e.Channel.SendMessage($"💢 Error: {ex.Message}");
                }
            });
        }