diff --git a/packages/discord.js/src/managers/ChannelManager.js b/packages/discord.js/src/managers/ChannelManager.js index df099999c..9056efca0 100644 --- a/packages/discord.js/src/managers/ChannelManager.js +++ b/packages/discord.js/src/managers/ChannelManager.js @@ -61,6 +61,11 @@ class ChannelManager extends CachedManager { _remove(id) { const channel = this.cache.get(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); this.cache.delete(id); } diff --git a/packages/discord.js/src/managers/GuildChannelManager.js b/packages/discord.js/src/managers/GuildChannelManager.js index fd520609b..4ab5727d8 100644 --- a/packages/discord.js/src/managers/GuildChannelManager.js +++ b/packages/discord.js/src/managers/GuildChannelManager.js @@ -429,6 +429,7 @@ class GuildChannelManager extends CachedManager { const id = this.resolveId(channel); if (!id) throw new TypeError('INVALID_TYPE', 'channel', 'GuildChannelResolvable'); await this.client.rest.delete(Routes.channel(id), { reason }); + this.client.actions.ChannelDelete.handle({ id }); } }