Creating Buttons #
Button
files contain a button handler. They aren't responsible for adding buttons to messages but are a way of running code when the buttons you made are pressed.
import { button } from 'jellycommands';
export default button({
id: 'test',
run: () => {
// Do something with button click
}
})
You can view a list of all the button options here
TIP
If you are unsure how to add buttons to messages, checkout the Discord.js Guide
Button id
#
The id
field on the button is important, it can be a string
, regexp
, or a function. The id
field corresponds to the customId
feild you set when you create a button.
Simple ids #
The simplest form is a plain string, for example you could have an id of hello
. This might be a button that does the same thing each time.
import { button } from 'jellycommands';
export default button({
id: 'hello',
run: async ({ interaction }) => {
await interaction.reply({
content: 'Hello there!'
})
}
})
Regex & Function ids #
If the id is not the same each time. As an example, say you have a button that should respond with a fruit name. Your id might look like fruit_[FRUIT NAME]
, we can impliment this with regex or a function. The function should always return true
or false
import { button } from 'jellycommands';
export default button({
// a regex id
id: /fruit_([\w])+/,
// a function id
id: (id) => {
return id.startsWith('fruit_');
},
run: async ({ interaction }) => {
const fruit = interaction.customId.replace('fruit_', '');
await interaction.reply({
content: `Your fruit is ${fruit}`
})
}
})
Button run
handler #
When an event
is invoked, the event's run
function is called. This is where your custom event logic lives.
When a button is clicked, the run
function is called. This is where your custom logic for the button lives.
You are provided with context
, which allows you to get things such as the interaction
.
Context #
The context object has the following properties:
interaction ButtonInteraction
#
The button interaction from discord.js
client JellyCommands
#
The client used by the command.
props Props
#
Your project's props.