DJS Commandsv2 docs
API Reference@djs-commands/core

Events

defineEvent and EventDefinition for typed discord.js event handlers.

defineEvent(definition)

function defineEvent<E extends keyof ClientEvents>(
	def: EventDefinition<E>,
): EventDefinition<E>;

Identity helper — same role as defineCommand. Returns the argument unchanged but lets TypeScript infer the event payload.

import { defineEvent } from "@djs-commands/core";
import { Events } from "discord.js";

export default defineEvent({
	event: Events.GuildMemberAdd,
	handler: async (member) => {
		// `member` is fully typed as GuildMember
		await member.send("Welcome!");
	},
});

Drop event files into the eventDir you pass to createCommandHandler and they're auto-registered:

createCommandHandler({
	client,
	commands: [...],
	eventDir: "./src/events",
});

EventDefinition<E>

interface EventDefinition<E extends keyof ClientEvents = keyof ClientEvents> {
	event: E;
	once?: boolean;
	handler: (...args: ClientEvents[E]) => void | Promise<void>;
}
FieldNotes
eventA keyof ClientEvents — use the Events.* enum from discord.js for v15 readiness.
onceWhen true, the handler is registered with client.once instead of client.on.
handlerCalled with whatever payload discord.js fires for the event — fully typed via ClientEvents[E].
defineEvent({
	event: Events.ClientReady,
	once: true,
	handler: (c) => console.log(`Logged in as ${c.user.tag}`),
});

Last updated on

On this page