mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-07 06:17:55 +00:00
Merge 21a63a43cc into da4c05d4ed
This commit is contained in:
commit
2bdcc1d3c0
6 changed files with 65 additions and 3 deletions
|
|
@ -32,6 +32,16 @@ public class MessageDeleted: IEventHandler<MessageDeleteEvent>, IEventHandler<Me
|
|||
async Task Inner()
|
||||
{
|
||||
await Task.Delay(MessageDeleteDelay);
|
||||
|
||||
var message = await _repo.GetMessage(evt.Id);
|
||||
if (message == null) return;
|
||||
|
||||
if (message.Member.HasValue)
|
||||
{
|
||||
var memberFull = await _repo.GetMember(message.Member.Value);
|
||||
await _repo.UpdateMemberForDeletedMessage(message.Member.Value, memberFull.MessageCount);
|
||||
}
|
||||
|
||||
await _repo.DeleteMessage(evt.Id);
|
||||
}
|
||||
|
||||
|
|
@ -53,6 +63,27 @@ public class MessageDeleted: IEventHandler<MessageDeleteEvent>, IEventHandler<Me
|
|||
_logger.Information("Bulk deleting {Count} messages in channel {Channel}",
|
||||
evt.Ids.Length, evt.ChannelId);
|
||||
await _repo.DeleteMessagesBulk(evt.Ids);
|
||||
|
||||
// get all the messages from the database
|
||||
var messages = await _repo.GetMessagesBulk(evt.Ids);
|
||||
|
||||
// make a dictionary of every member id associated with a message and how many messages it's associated with
|
||||
var memberMessageCounts = new Dictionary<MemberId, int>();
|
||||
foreach (PKMessage msg in messages)
|
||||
{
|
||||
if (!msg.Member.HasValue) continue;
|
||||
if (memberMessageCounts.ContainsKey(msg.Member.Value))
|
||||
memberMessageCounts[msg.Member.Value] = memberMessageCounts[msg.Member.Value] + 1;
|
||||
else
|
||||
memberMessageCounts[msg.Member.Value] = 1;
|
||||
}
|
||||
|
||||
// go through each member id in dictionary and decrement that member's message count by appropriate amount
|
||||
foreach (MemberId member in memberMessageCounts.Keys)
|
||||
{
|
||||
await _repo.UpdateMemberForDeletedMessage(member, (await _repo.GetMember(member)).MessageCount, memberMessageCounts[member]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_lastMessage.HandleMessageDeletion(evt.ChannelId, evt.Ids.ToList());
|
||||
|
|
|
|||
|
|
@ -141,8 +141,6 @@ public class ReactionAdded: IEventHandler<MessageReactionAddEvent>
|
|||
{
|
||||
// Message was deleted by something/someone else before we got to it
|
||||
}
|
||||
|
||||
await _repo.DeleteMessage(evt.MessageId);
|
||||
}
|
||||
|
||||
private async ValueTask HandleCommandDeleteReaction(MessageReactionAddEvent evt, ulong? authorId, bool isDM)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue