diff --git a/events/channels.ts b/events/channels.ts index c2b73f56d..03d2675ca 100644 --- a/events/channels.ts +++ b/events/channels.ts @@ -6,6 +6,12 @@ import { eventHandlers } from "../module/client.ts"; export const handleInternalChannelCreate = (data: ChannelCreatePayload) => { const channel = createChannel(data); cache.channels.set(channel.id, channel); + if (channel.guild_id) { + const guild = cache.guilds.get(channel.guild_id); + if (guild) { + guild.channels.set(channel.id, channel); + } + } eventHandlers.channelCreate?.(channel); }; @@ -15,6 +21,13 @@ export const handleInternalChannelUpdate = (data: ChannelCreatePayload) => { cache.channels.set(channel.id, channel); if (!cachedChannel) return; + if (channel.guild_id) { + const guild = cache.guilds.get(channel.guild_id) + if (guild) { + guild.channels.set(channel.id, channel) + } + } + eventHandlers.channel_update?.(channel, cachedChannel); }; @@ -42,6 +55,8 @@ export const handleInternalChannelDelete = (data: ChannelCreatePayload) => { ], }); } + + guild?.channels.delete(data.id) } cache.channels.delete(data.id);