From e88f6aa2de5c283785fdb5669a150719346bb082 Mon Sep 17 00:00:00 2001 From: Amelia Date: Thu, 29 Oct 2026 18:36:40 -0400 Subject: [PATCH] chore: add mfa handlers for protected routes in 0.17 deleteAccount and disableAccount are already implemented, so i only added deleteServer and deleteBot. Signed-off-by: Amelia --- src/classes/MFA.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/classes/MFA.ts b/src/classes/MFA.ts index a37a5b4f..6f879eca 100644 --- a/src/classes/MFA.ts +++ b/src/classes/MFA.ts @@ -10,6 +10,9 @@ import type { import type { Client } from "../Client.js"; +import { Bot } from "./Bot.js"; +import { Server } from "./Server.js"; + /** * Multi-Factor Authentication */ @@ -203,4 +206,36 @@ export class MFATicket { }, }); } + + /** + * Delete server + */ + async deleteServer(server: Server): Promise { + if (!(server.owner?.self ?? server.ownerId === this.#client.user?.id)) + throw new Error("NotOwner"); + + this._consume(); + return this.#client.api.delete(`/servers/${server.id}`, undefined, { + headers: { + "X-MFA-Ticket": this.token, + }, + }); + } + + /** + * Delete bot + */ + async deleteBot(bot: Bot): Promise { + if (!(bot.owner?.self ?? bot.ownerId === this.#client.user?.id)) + throw new Error("NotOwner"); + + this._consume(); + await this.#client.api.delete(`/bots/${bot.id}`, undefined, { + headers: { + "X-MFA-Ticket": this.token, + }, + }); + + this.#client.bots.delete(bot.id); + } }