Skip to main content
Version: 2.0

Custom Events

We've extended the behavior of @On and @Once decorators so they can work flawlessly with any kind of custom event. In fact, you can emit and handle your own events!

In order to emit an event, use the emit() method on your Client instance:

import { singleton } from '@tsyringe'
import { Client } from 'discordx'

@singleton()
export class YourService {

constructor(
private client: Client
) {}

doSomething() {

this.client.emit('myCustomEvent')
}
}

And then handle it with a method decorated with the @On or @Once decorators:

import { Discord, On } from '@decorators'

@Discord()
export class YourEventHandler {

@On('myCustomEvent')
handleMyCustomEvent() {

console.log('I handled my custom event!')
}
}
caution

Note that the class where you handle the event must be decorated with the @Discord() decorator.