Events
Events are a fundamental part of Discord bots. They allow you to listen for specific actions or occurrences and respond accordingly. Harmonix provides a simple and intuitive way to define and handle events.
Event Structure
Events are defined in separate files within the events
or listeners
directory. Each event file exports a function that defines the event's behavior.
Example
import { defineEvent } from '@harmonix-js/core'
export default defineEvent<'ready'>((client) => {
console.log(`Logged in as ${client.user?.tag}!`)
})
Event Types
In order to let your editor know wich arguments are available for each event, you can use the defineEvent
function with a generic type argument. In the example above, the event type is 'ready'
and the editor knows that the event function receives a client
argument.
You can find a list of all available event types in the Discord API documentation.
Event Options
Events can also have options that modify their behavior. These options are passed as the first argument to the defineEvent
function.
name
: The name of the event. If not provided, the name of the file will be used.once
: Iftrue
, the event will only be triggered once. (or ends the file with.once.ts
)type
: To specify if this event is listening to a modal. ('button'
,modal
,'select'
)