diff --git a/src/events/guildDelete.ts b/src/events/guildDelete.ts index 83d0f231..8f4006a6 100644 --- a/src/events/guildDelete.ts +++ b/src/events/guildDelete.ts @@ -1,13 +1,23 @@ +import type { WardenClient, WardenPlayer } from '#src/lib/util/common.d.js'; import { logger } from '#src/lib/util/common.js'; import type { Guild } from 'discord.js'; export default { name: 'guildDelete', once: false, - execute(guild: Guild): void { + async execute(guild: Guild & { client: WardenClient }): Promise { logger.info({ message: `[G ${guild.id}] Left guild ${guild.name}`, label: 'Discord', }); + const player = guild.client.tts.players.get(guild.id) as WardenPlayer; + if (player) { + logger.info({ + message: `[G ${guild.id}] Cleaning up`, + label: 'Warden', + }); + player.channelId = null; + return player.handler.disconnect(); + } }, };