Esempio n. 1
0
 public async ValueTask HandleReactionsCleared(object sender, ReactionsClearedEventArgs e)
 {
     foreach (var service in ReactionsClearedServices)
     {
         await ExecuteAsync((service, e) => service.OnReactionsCleared(e), service, e).ConfigureAwait(false);
     }
 }
Esempio n. 2
0
        public async Task HandleAsync(ReactionsClearedEventArgs args)
        {
            if (!(args.Channel is CachedTextChannel channel))
            {
                return;
            }

            using var ctx = new AdminDatabaseContext(_provider);
            var star = await ctx.GetSpecialEmojiAsync(channel.Guild.Id, EmojiType.Star);

            if (!args.Reactions.HasValue || !args.Reactions.Value.ContainsKey(star)) // TODO: ContainsKey works for Equals?
            {
                return;
            }

            if (!(await ctx.Starboard.FindAsync(args.Message.Id) is { } entry))
            {
                return;
            }

            ctx.Starboard.Remove(entry);
            await ctx.SaveChangesAsync();

            await args.Client.DeleteMessageAsync(entry.EntryChannelId, entry.EntryMessageId);
        }
 protected internal virtual ValueTask OnReactionsCleared(ReactionsClearedEventArgs e)
 => default;