Ответы пользователя по тегу discord.js
  • Как выдать роль по кнопке?

    shizzzzzik
    @shizzzzzik
    Учусь программированию
    Нет такого понятия как button.guild.. Эта тема относится к интеракциям interaction.guild
    Тут вообще интересно сделан код, непонятным образом.
    Что находиться в button?
    Если ты используешь билдер, то лучше забыть вовсе про эту идею и использовать только библиотеку "discord.js"
    Просто сделай так как я.
    const { MessageButton, MessageActionRow, MessageEmbed, Collector } = require('discord.js')
    var button = new MessageButton({customId: 'addRole', label: '<название кнопки>', style: '<стиль кнопки>'})
    interaction.followUp({embeds: [embed], components: [new MessageActionRow({components: [button]})]})
    const msg = await interaction.fetchReply() // если это слэш-команда.
    const collector = msg.createMessageComponentCollector()
    collector.on('collect', async i => {
    if(i.customId === 'addRole') {
    if(i.member.roles.cache.has('id')) {
    const removerole = new MessageEmbed()
          .setColor('#2f3136')
          .setTitle(`${client.emotes.success} Вы отозвали роль "Подписка на патчи"`)
          .setFooter(`${i.member.user.tag}`, i.member.user.displayAvatarURL({ dynamic: true }))
    }
    i.member.roles.remove('id')
    return i.reply({embeds: [removerole], ephemeral: true})
    } else {
    const giverole = new MessageEmbed()
          .setColor('#2f3136')
          .setTitle(`${client.emotes.success} Вам выдана роль "Подписка на патчи"`)
          .setFooter(`${i.member.user.tag}`, i.member.user.displayAvatarURL({ dynamic: true }))
    i.member.roles.add('id')
    return i.reply({embeds: [giverole], ephemeral: true})
    }
    })
    Ответ написан