diff --git a/src/NadekoBot/Modules/Utility/Utility.cs b/src/NadekoBot/Modules/Utility/Utility.cs index 1849f0066..08d4ca54d 100644 --- a/src/NadekoBot/Modules/Utility/Utility.cs +++ b/src/NadekoBot/Modules/Utility/Utility.cs @@ -367,6 +367,36 @@ public partial class Utility : NadekoModule await ConfirmLocalizedAsync(strs.emoji_added(em.ToString())); } + [Cmd] + [RequireContext(ContextType.Guild)] + [BotPerm(GuildPerm.ManageEmojisAndStickers)] + [UserPerm(GuildPerm.ManageEmojisAndStickers)] + [Priority(0)] + public async Task EmojiRemove(params Emote[] emotes) + { + var fails = new List(); + foreach (var emote in emotes) + { + var guildEmote = await ctx.Guild.GetEmoteAsync(emote.Id); + if (guildEmote is null) + { + fails.Add(emote); + } + else + { + await ctx.Guild.DeleteEmoteAsync(guildEmote); + } + } + + if (fails.Count > 0) + { + await ReplyPendingLocalizedAsync(strs.emoji_not_removed(fails.Select(x => x.ToString()).Join(" "))); + return; + } + + await ctx.OkAsync(); + } + [Cmd] [OwnerOnly] public async Task ListServers(int page = 1) diff --git a/src/NadekoBot/data/aliases.yml b/src/NadekoBot/data/aliases.yml index 4f0abd40a..ffa8258aa 100644 --- a/src/NadekoBot/data/aliases.yml +++ b/src/NadekoBot/data/aliases.yml @@ -719,6 +719,13 @@ showemojis: emojiadd: - emojiadd - ea +emojiremove: + - emojiremove + - emojirm + - er + - ed + - emojidel + - emojidelete deckshuffle: - deckshuffle - dsh diff --git a/src/NadekoBot/data/strings/responses/responses.en-US.json b/src/NadekoBot/data/strings/responses/responses.en-US.json index 3e306c022..69557c7ac 100644 --- a/src/NadekoBot/data/strings/responses/responses.en-US.json +++ b/src/NadekoBot/data/strings/responses/responses.en-US.json @@ -12,6 +12,7 @@ "invalid_emoji_link": "Specified link is either not an image or exceeds 256KB.", "emoji_add_error": "Error adding emoji. You either ran out of emoji slots, or image size is inadequate.", "emoji_added": "Added a new emoji: {0}", + "emoji_not_removed": "The following emojis were not removed: {0}", "fw_cleared": "Removed all filtered words and filtered words channel settings.", "aliases_cleared": "All {0} aliases on this server have been removed.", "no_results": "No results found.",