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); }
private static async Task ChecksFailedResponderAsync(CommandErrorEventArgs args, ChecksFailedException e) { var embed = CommandModule.ErrorBase() .WithDescription($"Invalid Permissions: {e.Message}"); await args.Context.RespondAsync(embed : embed); }
private static async Task ChecksFailedResponderAsync(CommandErrorEventArgs args, ChecksFailedException e) { return; }