all repos — stealth-developers @ f6f5a6423298aebc9c56231c1a1ec8c68895f891

src/events/messageDelete.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
import { db, ticketMessages, tickets } from "@/database";
import { loggers } from "@/utils/logging";
import { type Client, Events, type Message } from "discord.js";
import { and, eq } from "drizzle-orm";

const logger = loggers.events.child({ name: "messageDelete" });

export default {
	event: Events.MessageDelete,
	async execute(client: Client, message: Message) {
		if (!client.user || message.author?.bot) return;

		const ticket = db
			.select()
			.from(tickets)
			.where(
				and(
					eq(tickets.channelId, message.channelId),
					eq(tickets.guildId, message.guildId ?? ""),
				),
			)
			.get();

		if (!ticket) return;

		try {
			await db
				.update(ticketMessages)
				.set({ content: "(message deleted)" })
				.where(eq(ticketMessages.messageId, message.id));
		} catch (error) {
			logger.error(error, "Failed to handle ticket message deletion");
		}
	},
};