Как сделать, чтобы кнопка была доступна только для меня?
1) Если кнопка была отправлена слэш командой, то в слушателе
interactionCreate
проверяем, чтобы
interaction.message.interaction.user.id
был равен
interaction.user.id
.
2) Если кнопка была отправлена обычными сообщением, то в
customId
кнопки добавляем id того, кто может использовать кнопку и сравниваем его с
interaction.user.id
.
3) Отправить ephemeral ответ на интеракцию, чтобы сообщение мог видеть только отправитель команды.
4) Использовать коллекторы
Message#createMessageComponentCollector()
InteractionResponse#createMessageComponentCollector()
Как сделать слушатель кнопки?
1) Через ивент
interactionCreate
client.on('interactionCreate', (interaction) => {
if (interaction.isButton()) {
// code here
}
});
2) Через коллекторы
const collector = <Message>.createMessageComponentCollector({ componentType: ComponentType.Button });
collector.on('collect', (interaction) => {
// code here
});