22 lines
669 B
TypeScript
22 lines
669 B
TypeScript
import { type ClientEvents } from "discord.js";
|
|
import { join } from "node:path";
|
|
import { requireDirectory } 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(import.meta.dirname, "events");
|
|
export const eventMap =
|
|
await requireDirectory<DiscordEvent<any>>(eventDirectory);
|