Example #1
0
 private async Task start()
 {
     main_dev_channel = (Discord.WebSocket.ISocketMessageChannel)client.GetChannel(bot_const.dev_channel_id);
     Console.WriteLine("main_dev_channel: " + main_dev_channel.Name);
     await((IMessageChannel)main_dev_channel).SendMessageAsync(bot_conf.startup_message);
     Console.WriteLine("start() called");
 }
 private async Task OnReactionAdded(Cacheable <IUserMessage, ulong> arg1, Discord.WebSocket.ISocketMessageChannel arg2, Discord.WebSocket.SocketReaction arg3)
 {
     if (arg1.Id == Message.Id && arg3.UserId != Tsukihi.Client.CurrentUser.Id && Emotes.ContainsValue(arg3.Emote))
     {
         await OnReactionChanged(arg3.Emote, Action.Added);
     }
 }
Example #3
0
        public static async Task PerformAsync(Discord.WebSocket.ISocketMessageChannel channel, IEnumerable <Models.Card> cards, Models.DisplaySettings display, Models.Languages language)
        {
            var cardViews = cards.Select(x => Views.Card.Response(x, display, language));

            var messages = cardViews.Select(x =>
                                            SendCardAndReactions(x.Item2, x.Item1, channel)
                                            );

            await Task.WhenAll(messages);

            return;
        }
Example #4
0
 private static void AssignMainDevChannel()
 {
     while (client.ConnectionState != ConnectionState.Connected)
     {
     }
     Console.WriteLine("Assigning main_dev_channel");
     while (main_dev_channel == null)
     {
         Console.WriteLine("main_dev_channel is null, trying again");
         main_dev_channel = (Discord.WebSocket.ISocketMessageChannel)client.GetChannel(bot_const.dev_channel_id);
     }
     Console.WriteLine("main_dev_channel: " + main_dev_channel.Name);
 }
Example #5
0
 public CountdownGroup(Discord.WebSocket.ISocketMessageChannel chnl, DateTime cd, string d = " ", string ex = " ")
 {
     channel     = chnl;
     countdown   = cd;
     description = d;
     running     = true;
     if (ex.ToLower().Contains("majora"))
     {
         extra = true;
     }
     if (ex.ToLower().Contains("live"))
     {
         live = true;
     }
 }
Example #6
0
        public async Task Collect(Player player, Discord.WebSocket.ISocketMessageChannel channel)
        {
            if (player != null)
            {
                player.KCoins += kuts;
                if (content != null && content.Count > 0 && !player.inventory.Add(content, -1))
                {
                    await channel.SendMessageAsync("Inventory may not contain all rewards");

                    return;
                }

                player.SaveFileMongo();
                await channel.SendMessageAsync("Mail collected and deleted successfully.");
            }

            await Database.DeleteRecord <Mail, Guid>(null, _id);
        }
Example #7
0
            public CountdownGroup(Discord.WebSocket.ISocketMessageChannel chnl, DateTime cd, string d = " ", string stream = null, string ex = " ")
            {
                channel     = chnl;
                countdown   = cd;
                description = d;
                running     = true;

                Uri  uriResult;
                bool result = Uri.TryCreate(stream, UriKind.Absolute, out uriResult) &&
                              (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);

                if ((stream.ToLower() != "majora" || stream.ToLower() != "live" || !String.IsNullOrWhiteSpace(streamlink)) && result)
                {
                    streamlink = stream;
                }
                if (ex.ToLower().Contains("majora") || stream.ToLower() == "majora")
                {
                    majora = true;
                }
                if (ex.ToLower().Contains("live") || stream.ToLower() == "live")
                {
                    live = true;
                }
            }
Example #8
0
        public static async Task SendCardAndReactions(List <Discord.Emoji> reactions, Discord.Embed embed, Discord.WebSocket.ISocketMessageChannel channel)
        {
            var message = await channel.SendMessageAsync("", embed : embed);

            // loop itself is async so we get them in the right order
            var reacionResults = reactions.Select(async x =>
                                                  await message.AddReactionAsync(x)
                                                  );
            await Task.WhenAll(reacionResults);

            return;
        }
Example #9
0
 public TwitterFeed(string twitteruser, Discord.WebSocket.ISocketMessageChannel channel)
 {
     twitterUser = twitteruser;
     channels.Add(channel);
 }
Example #10
0
 private async Task GuildHandler_ReactionAdded(Cacheable <IUserMessage, ulong> arg1, Discord.WebSocket.ISocketMessageChannel arg2, Discord.WebSocket.SocketReaction arg3)
 {
     if (arg1.Id == _book.Message.Id)
     {
         if (arg3.Emote.Name == Book.LeftArrow)
         {
             await _book.Flip(-1);
         }
         if (arg3.Emote.Name == Book.RightArrow)
         {
             await _book.Flip(1);
         }
     }
 }
        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);
                    }
                }
            }
        }
Example #12
0
        private async Task GuildHandler_ReactionAdded(Cacheable <IUserMessage, ulong> arg1, Discord.WebSocket.ISocketMessageChannel arg2, Discord.WebSocket.SocketReaction arg3)
        {
            var message = await arg1.GetOrDownloadAsync();

            if (arg1.Id == Result.Id && message.Author.Id != arg3.UserId)
            {
                if (!_recipient.HasValue || _recipient.Value == arg3.UserId)
                {
                    QuestionOption option = _options.First(x => x.Emoji == arg3.Emote.Name);
                    if (option != null)
                    {
                        await option.OnOption();

                        Detach(_handler);
                    }
                }
            }
        }