public async Task <DiscordCommandResult> AddMainAsync( [Description("The emoji for the character you wish to add.")] IGuildEmoji emoji) { if (!EmojiToRoleMap.TryGetValue(emoji.Id, out var roleId)) { return(Response("That emoji doesn't belong to a character!")); } if (Context.Author.RoleIds.Contains(roleId)) { return(Response("You already added that character as a main!")); } if (await Database.Config.FindAsync("MAXIMUM_MAINS") is not { } maximumMains || !int.TryParse(maximumMains.Value, out var maximum)) { return(Response("This command isn't properly configured. Please contact one of the admins.")); } if (EmojiToRoleMap.Values.Count(x => Context.Author.RoleIds.Contains(x)) >= maximum) { return(Response($"You are not allowed to have more than {maximum} characters you main at once.\n" + $"You'll need to remove some first via \"{Context.Prefix}remove <character>\".")); } await Context.Author.GrantRoleAsync(roleId); return(Response($"You've added {Markdown.Bold(Context.Guild.Roles[roleId].Name)} as a main.")); }
public static Task DeleteAsync(this IGuildEmoji emoji, IRestRequestOptions options = null, CancellationToken cancellationToken = default) { var client = emoji.GetRestClient(); return(client.DeleteGuildEmojiAsync(emoji.GuildId, emoji.Id, options, cancellationToken)); }
public static Task <IGuildEmoji> ModifyAsync(this IGuildEmoji emoji, Action <ModifyGuildEmojiActionProperties> action, IRestRequestOptions options = null, CancellationToken cancellationToken = default) { var client = emoji.GetRestClient(); return(client.ModifyGuildEmojiAsync(emoji.GuildId, emoji.Id, action, options, cancellationToken)); }
public async Task <DiscordCommandResult> RemoveMainAsync( [Description("The emoji for the character you wish to remove.")] IGuildEmoji emoji) { if (!EmojiToRoleMap.TryGetValue(emoji.Id, out var roleId)) { return(Response("That emoji doesn't belong to a character!")); } if (!Context.Author.RoleIds.Contains(roleId)) { return(Response("You haven't added that character as a main!")); } await Context.Author.RevokeRoleAsync(roleId); return(Response($"You've abandoned {Markdown.Bold(Context.Guild.Roles[roleId].Name)} as a main. For shame!")); }
public static Task <IGuildEmoji> ModifyAsync(this IGuildEmoji emoji, Snowflake emojiId, Action <ModifyGuildEmojiActionProperties> action, IRestRequestOptions options = null) { var client = emoji.GetRestClient(); return(client.ModifyGuildEmojiAsync(emoji.Id, emojiId, action, options)); }
public static Task DeleteAsync(this IGuildEmoji emoji, Snowflake emojiId, IRestRequestOptions options = null) { var client = emoji.GetRestClient(); return(client.DeleteGuildEmojiAsync(emoji.Id, emojiId, options)); }