Exemple #1
0
    private async ValueTask HandleProxyDeleteReaction(MessageReactionAddEvent evt, FullMessage msg)
    {
        if (!(await _cache.PermissionsIn(evt.ChannelId)).HasFlag(PermissionSet.ManageMessages))
        {
            return;
        }

        var system = await _repo.GetSystemByAccount(evt.UserId);

        // Can only delete your own message
        if (msg.System?.Id != system?.Id && msg.Message.Sender != evt.UserId)
        {
            return;
        }

        try
        {
            await _rest.DeleteMessage(evt.ChannelId, evt.MessageId);
        }
        catch (NotFoundException)
        {
            // Message was deleted by something/someone else before we got to it
        }

        await _repo.DeleteMessage(evt.MessageId);
    }
Exemple #2
0
        public Task Handle(DiscordClient shard, MessageDeleteEventArgs evt)
        {
            // Delete deleted webhook messages from the data store
            // Most of the data in the given message is wrong/missing, so always delete just to be sure.

            async Task Inner()
            {
                await Task.Delay(MessageDeleteDelay);

                await _db.Execute(c => _repo.DeleteMessage(c, evt.Message.Id));
            }

            // Fork a task to delete the message after a short delay
            // to allow for lookups to happen for a little while after deletion
            _ = Inner();
            return(Task.CompletedTask);
        }
Exemple #3
0
    public Task Handle(int shardId, MessageDeleteEvent evt)
    {
        // Delete deleted webhook messages from the data store
        // Most of the data in the given message is wrong/missing, so always delete just to be sure.

        async Task Inner()
        {
            await Task.Delay(MessageDeleteDelay);

            await _repo.DeleteMessage(evt.Id);
        }

        _lastMessage.HandleMessageDeletion(evt.ChannelId, evt.Id);

        // Fork a task to delete the message after a short delay
        // to allow for lookups to happen for a little while after deletion
        _ = Inner();
        return(Task.CompletedTask);
    }
Exemple #4
0
        private async ValueTask HandleDeleteReaction(MessageReactionAddEventArgs evt, FullMessage msg)
        {
            if (!evt.Channel.BotHasAllPermissions(Permissions.ManageMessages))
            {
                return;
            }

            // Can only delete your own message
            if (msg.Message.Sender != evt.User.Id)
            {
                return;
            }

            try
            {
                await evt.Message.DeleteAsync();
            }
            catch (NotFoundException)
            {
                // Message was deleted by something/someone else before we got to it
            }

            await _db.Execute(c => _repo.DeleteMessage(c, evt.Message.Id));
        }
Exemple #5
0
        private async ValueTask HandleProxyDeleteReaction(MessageReactionAddEvent evt, FullMessage msg)
        {
            if (!_bot.PermissionsIn(evt.ChannelId).HasFlag(PermissionSet.ManageMessages))
            {
                return;
            }

            // Can only delete your own message
            if (msg.Message.Sender != evt.UserId)
            {
                return;
            }

            try
            {
                await _rest.DeleteMessage(evt.ChannelId, evt.MessageId);
            }
            catch (NotFoundException)
            {
                // Message was deleted by something/someone else before we got to it
            }

            await _db.Execute(c => _repo.DeleteMessage(c, evt.MessageId));
        }
 public async Task Handle(MessageDeleteEventArgs evt)
 {
     // Delete deleted webhook messages from the data store
     // Most of the data in the given message is wrong/missing, so always delete just to be sure.
     await _db.Execute(c => _repo.DeleteMessage(c, evt.Message.Id));
 }