public async Task <Result> Execute(CommandMetadata data, string word) { var def = await UrbanDefinition.Get(word, ParentPlugin.EnableHyperlinkReactions); Embed embed = def.ToEmbed(); var message = await data.Message.Channel.SendMessageAsync(null, false, embed); await ParentPlugin.AddNestedDefReactions(def, message); return(new Result(null, string.Empty)); }
public async Task AddNestedDefReactions(UrbanDefinition definition, IUserMessage message) { if (EnableHyperlinkReactions) { int length = Math.Min(definition.NestedDefinitionWords.Length, ReactionEmojis.Length); AddNestedDefinitionButton(new NestedDefinitionButton(message.Id, definition.NestedDefinitionWords)); for (int i = 0; i < length; i++) { await message.AddReactionAsync(new Emoji(ReactionEmojis[i])); } } }
private async Task GuildHandler_ReactionAdded(Cacheable <IUserMessage, ulong> arg1, Discord.WebSocket.ISocketMessageChannel arg2, Discord.WebSocket.SocketReaction arg3) { if (EnableHyperlinkReactions) { NestedDefinitionButton button = _nestedButtons.FirstOrDefault(x => x.MessageId == arg1.Id); if (button != null && !arg3.User.GetValueOrDefault().IsBot) { int emoji = ReactionEmojis.ToList().IndexOf(arg3.Emote.Name); if (button.Contains(emoji)) { string word = button.Consume(emoji); var def = await UrbanDefinition.Get(word, EnableHyperlinkReactions); var msg = await arg2.SendMessageAsync(null, false, def.ToEmbed()); await AddNestedDefReactions(def, msg); } } } }