21 lines
671 B
TypeScript
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);
|