Class: InteractionHandler<O>
The piece to be stored in Store instances.
Type parameters
Name | Type |
---|---|
O | extends Options = Options |
Hierarchy
Piece
<O
>↳
InteractionHandler
Constructors
constructor
• new InteractionHandler<O
>(context
, options
)
Type parameters
Name | Type |
---|---|
O | extends InteractionHandlerOptions <O > = InteractionHandlerOptions |
Parameters
Name | Type |
---|---|
context | PieceContext |
options | InteractionHandlerOptions |
Overrides
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:19
Properties
enabled
• enabled: boolean
Whether or not the piece is enabled.
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:450
interactionHandlerType
• Readonly
interactionHandlerType: InteractionHandlerTypes
The type for this handler
Since
3.0.0
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:17
location
• Readonly
location: PieceLocation
The location metadata for the piece's file.
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:442
name
• Readonly
name: string
The name of the piece.
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:446
options
• Readonly
options: O
The raw options passed to this Piece
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:454
store
• store: InteractionHandlerStore
The InteractionHandlerStore that contains this InteractionHandler.
Overrides
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:11
Accessors
container
• get
container(): Container
A reference to the Container object for ease of use.
See
container
Returns
Container
Inherited from
Piece.container
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:460
Methods
none
▸ none(): None
Returns
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:80
onLoad
▸ onLoad(): unknown
Per-piece listener that is called when the piece is loaded into the store. Useful to set-up asynchronous initialization tasks.
Returns
unknown
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:465
onUnload
▸ onUnload(): unknown
Per-piece listener that is called when the piece is unloaded from the store. Useful to set-up clean-up tasks.
Returns
unknown
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:470
parse
▸ parse(_interaction
): Awaitable
<Option
<unknown
>>
A custom function that will be called when checking if an interaction should be passed to this handler. You can use this method to not only filter by ids, but also pre-parse the data from the id for use in the run method.
By default, all interactions of the type you specified will run in a handler. You should override this method to change that behavior.
Example
// Parsing a button handler
public override parse(interaction: ButtonInteraction) {
if (interaction.customId.startsWith('my-awesome-clicky-button')) {
// Returning a `some` here means that the run method should be called next!
return this.some({ isMyBotAwesome: true, awesomenessLevel: 9001 });
}
// Returning a `none` means this interaction shouldn't run in this handler
return this.none();
}
Example
// Getting data from a database based on the custom id
public override async parse(interaction: ButtonInteraction) {
// This code is purely for demonstration purposes only!
if (interaction.customId.startsWith('example-data')) {
const [, userId, channelId] = interaction.customId.split('.');
const dataFromDatabase = await container.prisma.exampleData.findFirst({ where: { userId, channelId } });
// Returning a `some` here means that the run method should be called next!
return this.some(dataFromDatabase);
}
// Returning a `none` means this interaction shouldn't run in this handler
return this.none();
}
Parameters
Name | Type |
---|---|
_interaction | Interaction |
Returns
An Option (or a Promise Promised Option) that indicates if this interaction should be handled by this handler, and any extra data that should be passed to the run method
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:70
reload
▸ reload(): Promise
<void
>
Reloads the piece by loading the same path in the store.
Returns
Promise
<void
>
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:478
run
▸ Abstract
run(interaction
, parsedData?
): unknown
Parameters
Name | Type |
---|---|
interaction | Interaction |
parsedData? | unknown |
Returns
unknown
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:25
some
▸ some(): Some
<never
>
Returns
Some
<never
>
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:74
▸ some<T
>(data
): Some
<T
>
Type parameters
Name |
---|
T |
Parameters
Name | Type |
---|---|
data | T |
Returns
Some
<T
>
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:75
toJSON
▸ toJSON(): InteractionHandlerJSON
Defines the JSON.stringify
behavior of this piece.
Returns
Overrides
Defined in
projects/framework/src/lib/structures/InteractionHandler.ts:84
unload
▸ unload(): Promise
<void
>
Unloads and disables the piece.
Returns
Promise
<void
>
Inherited from
Defined in
node_modules/@sapphire/pieces/dist/index.d.ts:474