S
S
SasukeUchiha2022-04-03 18:31:00
Bots
SasukeUchiha, 2022-04-03 18:31:00

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.6249bdb12636b891979579.jpeg

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Alexander, 2022-04-03
@SasukeUchiha

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

if I understand correctly, private is a voice channel.
in this case, to rename, you can use the .setName() method

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question