Class: abstract
Listener<E, Options>
Defined in: projects/framework/src/lib/structures/Listener.ts:46
The base event class. This class is abstract and is to be extended by subclasses, which should implement the methods. In Sapphire's workflow, listeners are called when the emitter they listen on emits a new message with the same event name.
Examples
// TypeScript:
import { Events, Listener } from '@sapphire/framework';
// Define a class extending `Listener`, then export it.
// NOTE: You can use `export default` or `export =` too.
export class CoreListener extends Listener<typeof Events.ClientReady> {
public constructor(context: Listener.LoaderContext) {
super(context, { event: Events.ClientReady, once: true });
}
public run() {
this.container.client.id ??= this.container.client.user?.id ?? null;
}
}
// JavaScript:
const { Events, Listener } = require('@sapphire/framework');
// Define a class extending `Listener`, then export it.
module.exports = class CoreListener extends Listener {
constructor(context) {
super(context, { event: Events.ClientReady, once: true });
}
run() {
this.container.client.id ??= this.container.client.user?.id ?? null;
}
}
Extends
Piece
<Options
,"listeners"
>
Type Parameters
Type Parameter | Default type |
---|---|
E extends keyof ClientEvents | symbol | "" |
Options extends Options | Options |
Constructors
new Listener()
new Listener<
E
,Options
>(context
:LoaderContext
,options
:Options
):Listener
<E
,Options
>
Defined in: projects/framework/src/lib/structures/Listener.ts:70
Parameters
Parameter | Type |
---|---|
context | LoaderContext |
options | Options |
Returns
Listener
<E
, Options
>
Overrides
Piece< Options, 'listeners' >.constructor
Properties
emitter
readonly
emitter:null
|EventEmitter
Defined in: projects/framework/src/lib/structures/Listener.ts:54
The emitter, if any.
Since
2.0.0
event
readonly
event:string
|symbol
Defined in: projects/framework/src/lib/structures/Listener.ts:60
The name of the event the listener listens to.
Since
2.0.0
once
readonly
once:boolean
Defined in: projects/framework/src/lib/structures/Listener.ts:66
Whether the listener will be unloaded after the first run.
Since
2.0.0
Methods
run()
abstract
run(...args
:E
extends keyofClientEvents
?ClientEvents
[E
<E
>] :unknown
[]):unknown
Defined in: projects/framework/src/lib/structures/Listener.ts:88
Parameters
Parameter | Type |
---|---|
...args | E extends keyof ClientEvents ? ClientEvents [E <E >] : unknown [] |
Returns
unknown
toJSON()
toJSON():
ListenerJSON
Defined in: projects/framework/src/lib/structures/Listener.ts:90
Defines the JSON.stringify
behavior of this piece.
Returns
Overrides
Piece.toJSON