fix(ChannelManager): Remove threads from cache upon deletion

backport #10883
This commit is contained in:
Elysia
2025-07-08 20:51:08 +07:00
parent 9d2ff0f428
commit 6f4ac78c7a

View File

@@ -59,8 +59,17 @@ class ChannelManager extends CachedManager {
_remove(id) { _remove(id) {
const channel = this.cache.get(id); const channel = this.cache.get(id);
channel?.guild?.channels.cache.delete(id); channel?.guild?.channels.cache.delete(id);
for (const [code, invite] of channel?.guild?.invites.cache ?? []) {
if (invite.channelId === id) channel.guild.invites.cache.delete(code);
}
channel?.parent?.threads?.cache.delete(id); channel?.parent?.threads?.cache.delete(id);
this.cache.delete(id); this.cache.delete(id);
if (channel?.threads) {
for (const threadId of channel.threads.cache.keys()) {
this.cache.delete(threadId);
channel.guild?.channels.cache.delete(threadId);
}
}
} }
/** /**