diff --git a/src/bot.ts b/src/bot.ts index d6bf02f..29cf818 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -14,6 +14,7 @@ import {generateDependencyReport} from '@discordjs/voice'; import {REST} from '@discordjs/rest'; import {Routes} from 'discord-api-types/v9'; import updatePermissionsForGuild from './utils/update-permissions-for-guild.js'; +import handleGuildUpdate from './events/handle-guild-update.js'; @injectable() export default class { @@ -159,6 +160,7 @@ export default class { this.client.on('guildCreate', handleGuildCreate); this.client.on('voiceStateUpdate', handleVoiceStateUpdate); + this.client.on('guildUpdate', handleGuildUpdate); await this.client.login(this.token); } diff --git a/src/events/handle-guild-update.ts b/src/events/handle-guild-update.ts new file mode 100644 index 0000000..837bbbe --- /dev/null +++ b/src/events/handle-guild-update.ts @@ -0,0 +1,10 @@ +import {Guild} from 'discord.js'; +import updatePermissionsForGuild from '../utils/update-permissions-for-guild.js'; + +const handleGuildUpdate = async (oldGuild: Guild, newGuild: Guild) => { + if (oldGuild.ownerId !== newGuild.ownerId) { + await updatePermissionsForGuild(newGuild); + } +}; + +export default handleGuildUpdate;