feat: clean webhook cache upon leaving guild

This commit is contained in:
sam 2024-11-08 19:39:36 +01:00
parent 2deac26fc8
commit 492283b9c1
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
4 changed files with 35 additions and 10 deletions

View file

@ -35,6 +35,7 @@ public class GuildCreateResponder(
RoleCache roleCache,
IMemberCache memberCache,
IInviteCache inviteCache,
IWebhookCache webhookCache,
WebhookExecutorService webhookExecutor,
GuildFetchService guildFetchService
) : IResponder<IGuildCreate>, IResponder<IGuildDelete>
@ -114,6 +115,10 @@ public class GuildCreateResponder(
await memberCache.RemoveAllMembersAsync(evt.ID);
await inviteCache.RemoveAsync(evt.ID);
// Also clear the webhook cache
var guildConfig = await guildRepository.GetAsync(evt.ID);
await webhookCache.RemoveWebhooksAsync(guildConfig.Channels.AllChannels);
if (!wasCached || guild == null)
{
_logger.Information("Left uncached guild {GuildId}", evt.ID);