Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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]));
                }
            }
        }
Ejemplo n.º 3
0
        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);
                    }
                }
            }
        }