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); }
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); }
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); }
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)); }
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)); }