@SasukeUchiha

Как сделать таблицу с кнопками для управления приватами?

Недавно увидел систему управления приватами, и захотелось сделать такую для своего бота.

6249bdb12636b891979579.jpeg
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
Alexandre888
@Alexandre888 Куратор тега discord.js
Javascript-разработчик
всё о кнопках - как создавать их, как добавлять на них эмодзи, как менять стиль кнопок

для определения нажатий на кнопки - 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', () => {
	// здесь пишите код для действий, которые будут происходить после остановки сбора нажатий на кнопки
});


если правильно понял, приват - это голосовой канал.
в таком случае, для переименования, вы можете использовать метод .setName()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы