feat: role delete logging, used invite logging, also some random changes
This commit is contained in:
parent
4f54077c68
commit
c906a4d6b6
18 changed files with 386 additions and 76 deletions
|
|
@ -0,0 +1,38 @@
|
|||
using Catalogger.Backend.Cache;
|
||||
using Remora.Discord.API.Abstractions.Gateway.Events;
|
||||
using Remora.Discord.Gateway.Responders;
|
||||
using Remora.Results;
|
||||
|
||||
namespace Catalogger.Backend.Bot.Responders.MemberUpdate;
|
||||
|
||||
public class GuildMemberUpdateResponder(ILogger logger, IMemberCache memberCache)
|
||||
: IResponder<IGuildMemberUpdate>
|
||||
{
|
||||
private readonly ILogger _logger = logger.ForContext<GuildMemberUpdateResponder>();
|
||||
|
||||
public async Task<Result> RespondAsync(
|
||||
IGuildMemberUpdate newMember,
|
||||
CancellationToken ct = default
|
||||
)
|
||||
{
|
||||
try
|
||||
{
|
||||
var oldMember = await memberCache.TryGetAsync(newMember.GuildID, newMember.User.ID);
|
||||
if (oldMember == null)
|
||||
{
|
||||
_logger.Information(
|
||||
"Received member update event for {MemberId} in {GuildId} but they weren't cached, ignoring",
|
||||
newMember.User.ID,
|
||||
newMember.GuildID
|
||||
);
|
||||
return Result.Success;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
await memberCache.UpdateAsync(newMember);
|
||||
}
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue