Answer the question
In order to leave comments, you need to log in
How to make a table with buttons for managing privates?
Recently I saw a private management system, and I would like to make one for my bot. I would be grateful if someone could help with this.
Answer the question
In order to leave comments, you need to log in
all about buttons - how to create them, how to add emojis to them, how to change button style
to detect button clicks - https://discordjs.guide/popular-topics/collectors....
const { MessageActionRow, MessageButton } = require('discord.js');
// ^^ необходимо обязательно указывать MessageActionRow и MessageButton
const row = new MessageActionRow() // пример "набора" компонентов (компоненты в вашем случае - кнопки)
.addComponents(
new MessageButton()
.setCustomId('здесь указывается ID кнопки, придуманное вами, в целях последующей идентификации кнопки')
.setEmoji('здесь указывается эмодзи, который будет на кнопке (обязательно в формате эмодзи, не в :таком:)')
.setStyle('здесь указывается стиль кнопки - есть пять стилей, про которые написано в статьях, приведённых выше'),
);
await interaction.reply({ /* для того, чтобы отправить сообщение с кнопками */
content: 'контент_сообщения',
embeds: [embed], // embed'ы (если нужно прикрепить)
components: [row] // "наборы" компонентов
});
const message = await interaction.fetchReply(); // ждём, пока бот "получит" ответ на слэш-команду
const collector = message.createMessageComponentCollector({ // "сбор" нажатий на кнопки
componentType: "BUTTON",
time: 60000 // время сбора, указывается в миллисекундах
});
collector.on('collect', i => {
// здесь пишите код для действий, которые будут происходить после нажатия на кнопки
// i.user.id - ID пользователя, который нажал на любую из кнопок | сравнивайте с interaction.user.id, если хотите удостовериться, что на кнопку нажимает именно тот, кто отправил слэш-команду
// i.customId - ID кнопки (customId, который указывался ранее, в MessageActionRow), на которую нажали.
});
collector.on('end', () => {
// здесь пишите код для действий, которые будут происходить после остановки сбора нажатий на кнопки
});
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question