Example #1
0
        private async Task OnReactionRemovedAsync(Cacheable <IUserMessage, ulong> message, ISocketMessageChannel channel, SocketReaction reaction)
        {
            using (var db = new LogDatabase())
            {
                var log = await db.Reactions.FirstOrDefaultAsync(x
                                                                 => x.MessageId == reaction.MessageId &&
                                                                 x.AuthorId == reaction.UserId &&
                                                                 x.EmojiId == reaction.Emoji.Id &&
                                                                 x.EmojiName == reaction.Emoji.Name);

                log.DeletedAt = DateTime.UtcNow;
                db.Update(log);
                await db.SaveChangesAsync();
            }
        }
Example #2
0
        private async Task OnReactionsClearedAsync(Cacheable <IUserMessage, ulong> message, ISocketMessageChannel channel)
        {
            using (var db = new LogDatabase())
            {
                var logs = db.Reactions.Where(x => x.MessageId == message.Id);

                foreach (var log in logs)
                {
                    log.DeletedAt = DateTime.UtcNow;
                }

                db.UpdateRange(logs);
                await db.SaveChangesAsync();
            }
        }
Example #3
0
        private async Task OnReactionAddedAsync(ulong id, Optional <SocketUserMessage> msg, SocketReaction reaction)
        {
            var log = new LiteDiscordReaction(reaction);

            using (var db = new LogDatabase())
            {
                var message = await db.Messages.FirstOrDefaultAsync(x => x.MessageId == reaction.MessageId);

                if (message != null)
                {
                    log.LogMessageId = message.Id;
                }

                await db.Reactions.AddAsync(log);

                await db.SaveChangesAsync();
            }
        }
Example #4
0
        private async Task OnReactionAddedAsync(Cacheable <IUserMessage, ulong> message, ISocketMessageChannel channel, SocketReaction reaction)
        {
            var log = new LiteDiscordReaction(reaction);

            using (var db = new LogDatabase())
            {
                var msg = await db.Messages.FirstOrDefaultAsync(x => x.MessageId == reaction.MessageId);

                if (msg != null)
                {
                    log.LogMessageId = msg.Id;
                }

                await db.Reactions.AddAsync(log);

                await db.SaveChangesAsync();
            }
        }