yaejunyang/packages/bot/event.ts
2026-02-09 18:31:56 +00:00

21 lines
671 B
TypeScript

import { ClientEvents } from "discord.js";
import { join } from "node:path";
import { requireDirectorySync } from "../utils/requireDirectory";
export interface DiscordEvent<Event extends keyof ClientEvents> {
event: Event
callback: (...args: ClientEvents[Event]) => Promise<void>
}
export function defineEvent<Event extends keyof ClientEvents>(
event: Event,
callback: (...args: ClientEvents[Event]) => Promise<void>
): DiscordEvent<Event> {
return {
event: event,
callback: callback,
}
}
export const eventDirectory = join(__dirname, "events");
export const eventMap = requireDirectorySync<DiscordEvent<any>>(eventDirectory);