예제 #1
0
        private async static Task ChecksFailedHandler(ChecksFailedException ex, DiscordChannel logChannel)
        {
            var embed = new DiscordEmbedBuilder();

            foreach (var check in ex.FailedChecks)
            {
                string msg, checkName;
                switch (check)
                {
                case RequireBotPermissionsAttribute at:
                    checkName = "Missing Bot Permissions";
                    msg       = $"I am missing the following permissions: {string.Join(", ", at.Permissions)}";
                    break;

                case RequireDirectMessageAttribute:
                    checkName = "DM Required";
                    msg       = "This command must be used in Direct Message";
                    break;

                case RequireGuildAttribute:
                    checkName = "Guild Required";
                    msg       = "This command must be used in a guild/server (Not in direct message)";
                    break;

                case RequireNsfwAttribute:
                    checkName = "NSFW Required";
                    msg       = "This command must be used in an NSFW channel";
                    break;

                case RequirePermissionsAttribute at:
                    checkName = "Missing Permissions";
                    msg       = $"Either you or the bot (or both) is missing the following permissions: {string.Join(", ", at.Permissions)}";
                    break;

                case RequireRolesAttribute at:
                    checkName = "Missing Roles";
                    msg       = $"You are missing required roles to use this command. Missing roles: {string.Join(", ", at.RoleNames)}";
                    break;

                case RequireUserPermissionsAttribute at:
                    checkName = "Missing Permissions";
                    msg       = $"You am missing the following permissions: {string.Join(", ", at.Permissions)}";
                    break;

                case BaseCustomAttribute at:
                    checkName = at.CheckName;
                    msg       = at.CheckMessage;
                    break;

                default:
                    checkName = "Unknown Check Failed";
                    msg       = $"Check Failed: {check.GetType().Name}";
                    break;
                }
                embed.AddField(checkName, msg);
            }
            embed.WithColor(DiscordColor.Red);
            embed.WithTitle($"Command {ex.Command.Name} failed");
            await ex.Context.RespondAsync(embed : embed);
        }
예제 #2
0
        private static async Task ChecksFailedResponderAsync(CommandErrorEventArgs args, ChecksFailedException e)
        {
            var embed = CommandModule.ErrorBase()
                        .WithDescription($"Invalid Permissions: {e.Message}");

            await args.Context.RespondAsync(embed : embed);
        }
예제 #3
0
 private static async Task ChecksFailedResponderAsync(CommandErrorEventArgs args, ChecksFailedException e)
 {
     return;
 }