diff --git a/CHANGELOG.MD b/CHANGELOG.MD index bded7eb..4ee5ed6 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,5 +1,10 @@ # Changelog +## Version 2.1.0 +- Bump dependencies +- Show guild count and memory usage in /about +- Delete guilds from database when the bot leaves them + ## Version 2.0.1 - Fetch guilds which can be pruned from the database and loop over them, instead of fetching all guilds the client is in and then fetching the settings of each guild from the database. - Add `select` to database functions. diff --git a/src/events/guildDelete.ts b/src/events/guildDelete.ts new file mode 100644 index 0000000..eba8186 --- /dev/null +++ b/src/events/guildDelete.ts @@ -0,0 +1,17 @@ +import { Events } from "discord.js" +import { logger } from "../util/logger.js" +import type { Event } from "./index.js" +import { prisma } from "../util/database.ts"; + +export default { + name: Events.GuildDelete, + once: true, + async execute(guild) { + logger.info(`Left guild ${guild.name} (${guild.id})`) + prisma.guild.delete({ + where: { + id: guild.id + } + }) + } +} satisfies Event<"guildDelete"> diff --git a/src/jobs/prune.ts b/src/jobs/prune.ts index 3dc7b30..3388d6c 100644 --- a/src/jobs/prune.ts +++ b/src/jobs/prune.ts @@ -46,13 +46,8 @@ const pruneJob = async (client: Client) => { const clientGuild = await client.guilds.fetch(guildSetting.id) if (!clientGuild) { logger.warn( - `Skipping prune for guild ${guildSetting.id} because I am not in it and deleting it from the database.` + `Skipping prune for guild ${guildSetting.id} because I am not in it.` ) - await prisma.guild.delete({ - where: { - id: guildSetting.id - } - }) continue }