Beispiel #1
0
 private async Task OnMessageReactionsCleared(MessageReactionsClearEventArgs e)
 {
     if (MessageReactionsCleared != null)
     {
         await MessageReactionsCleared(e);
     }
 }
Beispiel #2
0
        internal static async Task BotClientMessageReactionsCleared(MessageReactionsClearEventArgs e)
        {
            // Before anything, let's make sure that...
            //  1) This is not the rimboard channel
            //  2) Rimboard is enabled.
            //  3) The Rimboard webhook is not default.
            if (e.Channel.Id != Program.Settings.RimboardChannelId &&
                Program.Settings.RimboardEnabled &&
                Program.Settings.RimboardWebhookId != BotSettings.Default.RimboardWebhookId)
            {
                // Let's now try to get the Rimboard message.
                PinInfo pinInfo = await QueryDatabaseForOriginalMessage(e.Message.Id, 0);

                bool validPinInfo = !pinInfo.Equals(PinInfo.Invalid);

                if (validPinInfo)
                {
                    var pinnedMessage = await e.Guild.GetChannel(pinInfo.PinnedChannelId)
                                        .GetMessageAsync(pinInfo.PinnedMessageId);

                    var a = RemovePinFromDatabase(pinInfo);
                    var b = pinnedMessage.DeleteAsync();

                    await Task.WhenAll(a, b);
                }
            }
        }
Beispiel #3
0
        public static async Task ReactionClear(ModCoreShard bot, MessageReactionsClearEventArgs e)
        {
            GuildSettings cfg = null;

            using (var db = bot.Database.CreateContext())
            {
                cfg = e.Channel.Guild.GetGuildSettings(db);
                if (cfg == null)
                {
                    return;
                }

                var          emoji = cfg.Starboard.Emoji;
                DiscordEmoji em    = null;
                if (emoji.EmojiId != 0)
                {
                    em = DiscordEmoji.FromGuildEmote(e.Client, (ulong)emoji.EmojiId);
                }
                else
                {
                    em = DiscordEmoji.FromUnicode(e.Client, emoji.EmojiName);
                }

                if (cfg.Starboard.Enable)
                {
                    var c = e.Channel.Guild.Channels.First(x => x.Key == (ulong)cfg.Starboard.ChannelId).Value;
                    if (db.StarDatas.Any(x => (ulong)x.MessageId == e.Message.Id))
                    {
                        await(await c.GetMessageAsync((ulong)db.StarDatas.First(x => (ulong)x.MessageId == e.Message.Id).StarboardMessageId)).DeleteAsync();
                        db.StarDatas.RemoveRange(db.StarDatas.Where(x => (ulong)x.MessageId == e.Message.Id));
                        await db.SaveChangesAsync();
                    }
                }
            }
        }
Beispiel #4
0
        private Task Client_MessageReactionsCleared(MessageReactionsClearEventArgs e)
        {
            if (reactionTriggers.Remove(e.Message))
            {
                Logger.LogMessage(LogLevel.Info, "ReactionTrigger", "Removed extraneous reaction trigger as reactions were removed.", DateTime.Now);
            }

            return(Done);
        }
        protected virtual void ReactionsCleared(MessageReactionsClearEventArgs e)
        {
            if (!CheckRequirements(e.Channel, e.Message))
            {
                return;
            }

            OnReactionsCleared?.Invoke(e);
        }
Beispiel #6
0
        private Task OnReactionsCleared(MessageReactionsClearEventArgs e)
        {
            if (e.Message.Id != Message.Id)
            {
                return(Task.CompletedTask);
            }

            _context.Post((o) => ((MessageViewModel)o).Reactions.Clear(), this);
            return(Task.CompletedTask);
        }
Beispiel #7
0
 private Task HandleReactionClear(DiscordClient client, MessageReactionsClearEventArgs eventargs)
 {
     foreach (var req in this._requests)
     {
         // match message
         if (req._message.Id == eventargs.Message.Id && req._message.ChannelId == eventargs.Channel.Id)
         {
             req.ClearCollected();
         }
     }
     return(Task.CompletedTask);
 }
Beispiel #8
0
 private Task HandleReactionClear(DiscordClient client, MessageReactionsClearEventArgs eventargs)
 {
     // foreach request add
     foreach (var req in this._requests)
     {
         if (req._message.Id == eventargs.Message.Id)
         {
             req._collected.Clear();
         }
     }
     return(Task.CompletedTask);
 }
Beispiel #9
0
        async Task HandleReactionClear(MessageReactionsClearEventArgs eventargs)
        {
            await Task.Yield();

            // foreach request add
            foreach (var req in _requests)
            {
                if (req.message.Id == eventargs.Message.Id)
                {
                    req._collected.Clear();
                }
            }
        }
Beispiel #10
0
        async Task HandleReactionClear(MessageReactionsClearEventArgs eventargs)
        {
            await Task.Yield();

            foreach (var req in _requests)
            {
                // match message
                if (req._message.Id == eventargs.Message.Id && req._message.ChannelId == eventargs.Channel.Id)
                {
                    req.ClearCollected();
                }
            }
        }
Beispiel #11
0
        async Task HandleReactionClear(DiscordClient client, MessageReactionsClearEventArgs eventargs)
        {
            await Task.Yield();

            foreach (var req in _requests)
            {
                var msg = await req.GetMessageAsync().ConfigureAwait(false);

                if (msg.Id == eventargs.Message.Id)
                {
                    await ResetReactionsAsync(req).ConfigureAwait(false);
                }
            }
        }
Beispiel #12
0
        async Task HandleReactionClear(MessageReactionsClearEventArgs eventargs)
        {
            await Task.Yield();

            foreach (var req in _requests)
            {
                var msg = await req.GetMessageAsync();

                if (msg.Id == eventargs.Message.Id)
                {
                    await ResetReactionsAsync(req);
                }
            }
        }
Beispiel #13
0
 private Task Client_MessageReactionRemoveAll(MessageReactionsClearEventArgs e)
 => this._messageReactionsCleared.InvokeAsync(e);
        public static Task MessageReactionsClearedEventHandlerAsync(TheGodfatherBot bot, MessageReactionsClearEventArgs e)
        {
            if (e.Guild is null || e.Channel is null || e.Message is null || e.Message.Author == bot.Client.GetShard(e.Channel.Guild).CurrentUser)
            {
                return(Task.CompletedTask);
            }

            if (bot.Services.GetRequiredService <BlockingService>().IsChannelBlocked(e.Channel.Id))
            {
                return(Task.CompletedTask);
            }

            if (e.Message.Author == bot.Client.CurrentUser && bot.Services.GetRequiredService <ChannelEventService>().IsEventRunningInChannel(e.Channel.Id))
            {
                return(Task.CompletedTask);
            }

            if (!LoggingService.IsLogEnabledForGuild(bot, e.Guild.Id, out LoggingService logService, out LocalizedEmbedBuilder emb))
            {
                return(Task.CompletedTask);
            }

            if (LoggingService.IsChannelExempted(bot, e.Guild, e.Channel, out _))
            {
                return(Task.CompletedTask);
            }

            LocalizationService ls = bot.Services.GetRequiredService <LocalizationService>();

            string jumplink = Formatter.MaskedUrl(ls.GetString(e.Guild.Id, "str-jumplink"), e.Message.JumpLink);

            emb.WithLocalizedTitle(DiscordEventType.MessageReactionsCleared, "evt-msg-reactions-clear", desc: jumplink);
            emb.AddLocalizedTitleField("str-location", e.Channel.Mention, inline: true);
            emb.AddLocalizedTitleField("str-author", e.Message.Author?.Mention, inline: true);
            return(logService.LogAsync(e.Channel.Guild, emb));
        }
Beispiel #15
0
        private /*async*/ Task Discord_MessageReactionRemoveAll(MessageReactionsClearEventArgs e)
        {
            return(Task.Delay(0));

            //await e.Message.DeleteAllReactions();
        }
Beispiel #16
0
 private Task Event_MessageReactionsCleared(DiscordClient d, MessageReactionsClearEventArgs e)
 {
     d.Logger.LogDebug(BotEventId, "Event_MessageReactionsCleared.");
     return(Task.CompletedTask);
 }
Beispiel #17
0
 private Task MessageReactionsCleared(MessageReactionsClearEventArgs e)
 {
     /* This would kill my bot */
     return(Task.CompletedTask);
 }
Beispiel #18
0
 private Task ClientOnMessageReactionsCleared(MessageReactionsClearEventArgs args)
 {
     return(OnReactionEvent(_emoji, true, args.Guild, args.Message));
 }
Beispiel #19
0
 private Task Client_MessageReactionsCleared(MessageReactionsClearEventArgs e)
 {
     e.Client.DebugLogger.LogMessage(LogLevel.Info, "BotApp", e.ToString(), DateTime.Now);
     return(Task.CompletedTask);
 }
Beispiel #20
0
 private Task Discord_MessageReactionRemoveAll(MessageReactionsClearEventArgs e)
 {
     return(Task.Delay(0));
 }
Beispiel #21
0
 public static Task ReactionRemoveAllHandler(MessageReactionsClearEventArgs e)
 {
     return(Task.CompletedTask);
 }