feat: member avatar/name logging, timeout logging

This commit is contained in:
sam 2024-10-11 20:38:53 +02:00
parent c906a4d6b6
commit d445b5ba44
10 changed files with 350 additions and 17 deletions

View file

@ -1,5 +1,7 @@
using Catalogger.Backend.Cache.InMemoryCache;
using Remora.Discord.API;
using Remora.Discord.API.Abstractions.Gateway.Events;
using Remora.Discord.API.Abstractions.Objects;
using Remora.Discord.Gateway.Responders;
using Remora.Results;
@ -12,9 +14,36 @@ public class AuditLogResponder(AuditLogCache auditLogCache, ILogger logger)
public Task<Result> RespondAsync(IGuildAuditLogEntryCreate evt, CancellationToken ct = default)
{
_logger.Debug("type: {ActionType}", evt.ActionType);
_logger.Debug("{Id}, {Reason}", evt.ID, evt.Reason);
if (evt.TargetID == null || evt.UserID == null)
return Task.FromResult(Result.Success);
throw new NotImplementedException();
switch (evt.ActionType)
{
case AuditLogEvent.MemberKick:
auditLogCache.SetKick(evt.GuildID, evt.TargetID, evt.UserID.Value, evt.Reason);
break;
case AuditLogEvent.MemberBanAdd:
auditLogCache.SetBan(evt.GuildID, evt.TargetID, evt.UserID.Value, evt.Reason);
break;
case AuditLogEvent.MemberBanRemove:
auditLogCache.SetUnban(evt.GuildID, evt.TargetID, evt.UserID.Value, evt.Reason);
break;
case AuditLogEvent.MemberUpdate:
auditLogCache.SetMemberUpdate(
evt.GuildID,
evt.TargetID,
evt.UserID.Value,
evt.Reason
);
break;
default:
_logger.Debug(
"Received audit log event {Id} that we don't care about, ignoring",
evt.ID
);
break;
}
return Task.FromResult(Result.Success);
}
}

View file

@ -36,6 +36,7 @@ public class GuildMemberAddResponder(
await memberCache.SetAsync(member.GuildID, member);
var user = member.User.GetOrThrow();
userCache.UpdateUser(user);
var builder = new EmbedBuilder()
.WithTitle("Member joined")