示例#1
0
        public async Task <string> BoratGame(IInvocationContext context)
        {
            IReactableMessage message = (IReactableMessage)await context.Channel.SendAsync(Message.Create("hello give me a thumbs up if you think i'm very nice"));

            if (message == null)
            {
                return("I can't read reactions anyway here, I don't like!");
            }

            await Task.Delay(5000);

            StringBuilder builder = new StringBuilder();

            foreach (Reaction reaction in await message.GetReactions())
            {
                if (reaction.Emoji.Contains("👍"))
                {
                    foreach (IUser user in reaction.Reactors)
                    {
                        builder.Append($"{user.Name}, I like! ");
                    }
                }
            }
            if (builder.Length == 0)
            {
                return("I don't like you either!");
            }

            return(builder.ToString());
        }
示例#2
0
        private async void MessageBusOnReceived(object sender, MessageReceivedEventArgs e)
        {
            IReactableMessage message = e.Message as IReactableMessage;

            if (message == null)
            {
                return;
            }

            if (message.Text.Split(' ').Any(x => x.Equals("anime", StringComparison.OrdinalIgnoreCase)))
            {
                foreach (var reactId in _animeReactionIds)
                {
                    try
                    {
                        await message.React(reactId);
                    }
                    catch
                    {
                        // Whatever
                        break;
                    }
                }
            }
        }
示例#3
0
        private async void MessageBus_Received(object sender, MessageReceivedEventArgs e)
        {
            IReactableMessage reactableMessage = e.Message as IReactableMessage;

            if (reactableMessage != null && _boratPhrases.Any(x => reactableMessage.Text.CaseInsensitiveContains(x)))
            {
                try
                {
                    await reactableMessage.React("<:borat:244253799030587402>");

                    if (_rnd.Next(0, 100) < 5)
                    {
                        await e.Context.Raiser.SendAsync(
                            Message.Create($"{e.Context.User.Mention} Dude is that Borat?"));
                    }
                }
                catch
                {
                    // ignore
                }
            }
        }