у меня есть код на инвайт систему и мне нужно что бы он выдавал роль написавшему форму по нажатию кнопки, но почему то он не выдает роль вообще.
const { EmbedBuilder, ButtonBuilder, client, guild, ButtonStyle, TextInputBuilder, TextInputStyle, ActionRowBuilder, Events, ModalBuilder } = require("discord.js");
module.exports = {
name: "invite",
aliases: ["invite"],
run: async (client, message) => {
// кнопка новой заявки
const invbutton = new ButtonBuilder()
.setCustomId('invbutton')
.setLabel('написать заявку')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(invbutton);
// кнопка одобрения
const acceptButton = new ButtonBuilder()
.setCustomId('accept')
.setLabel('одобрить')
.setStyle(ButtonStyle.Success);
const accept = new ActionRowBuilder()
.addComponents(acceptButton);
// кнопка отказа
const cancelButton = new ButtonBuilder()
.setCustomId('cancel')
.setLabel('отклонить')
.setStyle(ButtonStyle.Danger);
const cancel = new ActionRowBuilder()
.addComponents(cancelButton)
// эмбед набора
const embed2 = new EmbedBuilder()
.setTitle(`Хотите написать заявку в Persety Famq?`)
.setDescription(`
\n
**что вы получите от нас?
\n • Дружное и ламповое комьюнити
\n • развивающийся автопарк
\n • Хороший дом в близи к центру города
\n • Должности во фракциях при активном развитии семьи
\n • удобный и оптимизированный дискорд с помощью ботов
\n • премию за активное выполнение контрактов
\n • денег на активацию контрактов
\n
\n Что мы хотим от вас?
\n • желания двигаться с нами
\n • активного продвижения семьи
\n • адекватного поведения
\n
\n если вас все устраивает то жмите на кнопку ниже и оставляйте свою заявку!**`)
.setColor(`DarkGreen`)
message.channel.send({
embeds: [embed2],
components: [row],
})
client.on(Events.InteractionCreate, async interaction => {
if (!interaction.isButton()) return;
if (interaction.customId === 'invbutton')
await interaction.showModal(modal);
if (!interaction.isButton()) return;
if (interaction.customId === 'cancel')
await interaction.reply(`вы отказали в заявке <@${member.id}>`)
})
// модальное окно заявок
const modal = new ModalBuilder()
.setCustomId('MyModal')
.setTitle('Заявки в Persety Famq');
const IDInput = new TextInputBuilder()
.setCustomId('IDInput')
.setLabel("ваше игровое имя фамилия | ID")
.setStyle(TextInputStyle.Short);
const RulesInput = new TextInputBuilder()
.setCustomId('RulesInput')
.setLabel('На сколько хорошо вы знаете правила сервера?')
.setStyle(TextInputStyle.Short);
const RprulesInput = new TextInputBuilder()
.setCustomId('RprulesInput')
.setLabel('На сколько хорошо вы знаете законы штата?')
.setStyle(TextInputStyle.Short);
const firstActionRow = new ActionRowBuilder().addComponents(IDInput);
const secondActionRow = new ActionRowBuilder().addComponents(RulesInput);
const thirdActionRow = new ActionRowBuilder().addComponents(RprulesInput);
modal.addComponents(firstActionRow, secondActionRow, thirdActionRow);
client.on(Events.InteractionCreate, async interaction => {
if (!interaction.isModalSubmit())return;
const ID = interaction.fields.getTextInputValue('IDInput');
const Rules = interaction.fields.getTextInputValue('RulesInput')
const member = interaction.member
const Rprules = interaction.fields.getTextInputValue('RprulesInput')
console.log(`IC Данные: ${ID}, \n дискорд: ${member.id} \n знание OOC правил: ${Rules} \n знание IC правил: ${Rprules}`);
//const embedyes = new EmbedBuilder()
//.setTitle('Вы приняли заявку!')
//.setDescription(`<@${member.id}> успешно принят в семью! \n рекрутёр <@>`)
//.setColor('DarkGreen')
//.setTimestamp()
// ембед об новой заявке
const embedinvite = new EmbedBuilder()
.setTitle('Новая заявка в Persety Famq!')
.setDescription(` **новая заявка от игрока в Persety Famq!
\n IC данные: ${ID}
\n Дискорд: <@${member.id}>
\n знание правил сервера: ${Rules}
\n знание законов Штата: ${Rprules}**`)
.setColor(`DarkVividPink`)
.setTimestamp()
let inv = "1124436498561896509"
client.channels.cache.get(inv).send({
embeds:[embedinvite],
components:[accept, cancel]
})
if (!interaction.isModalSubmit())return;
console.log(member.id)
const roles = interaction.message.guild.roles.cache.get('1125451719569047613')
if (!interaction.isButton()) return;
if (interaction.customId === 'accept')
await member.roles.add(roles)
})
}}