/// <summary>
        /// Delete all messsage emotes for this message
        /// Delete all reactions emotes on this message that belong to message owner
        /// (Do not remove reactions emotes on this message that belong to other users)
        /// </summary>
        /// <param name="todoMessage"></param>
        /// <returns></returns>
        public async Task <bool> RemoveEmoteMessage(MessageIdPayload todoMessage)
        {
            try
            {
                var messageId = todoMessage.MessageId;
                var guild     = todoMessage.Guild;

                _logger.LogDebug($"Remove emote message: {messageId}");

                var guildId = guild.Id;

                await _kattbotRepo.RemoveEmotesForMessage(messageId);

                return(true);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "RemoveEmoteMessage");
                return(false);
            }
        }
        private async Task OnMessageDeleted(DiscordClient client, MessageDeleteEventArgs eventArgs)
        {
            try
            {
                var channel = eventArgs.Channel;
                var message = eventArgs.Message;
                var guild   = eventArgs.Guild;

                if (IsPrivateMessageChannel(channel))
                {
                    return;
                }

                var messageId = message.Id;

                var todoMessage = new MessageIdPayload(messageId, guild);

                var command = new DeleteMessageCommand(todoMessage);

                _emoteCommandQueue.Enqueue(command);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, nameof(OnMessageDeleted));

                var eventContextError = new EventErrorContext()
                {
                    EventName = nameof(OnMessageDeleted),
                    User      = null,
                    Channel   = eventArgs.Channel,
                    Guild     = eventArgs.Guild
                };

                await _discordErrorLogger.LogDiscordError(eventContextError, ex.ToString());
            }
        }
Exemplo n.º 3
0
 public async Task <bool> DeleteMessage(MessageIdPayload todoMessage)
 {
     return(await _emoteMessageService.RemoveEmoteMessage(todoMessage));
 }
Exemplo n.º 4
0
 public DeleteMessageCommand(MessageIdPayload todoMessageId)
 {
     _todoMessageId = todoMessageId;
 }