@DooglsGo

Не работает find, почему?

Пишу бота на Node JS. После ввода человека команды идёт запрос к сайту, после чего сайт отправляет роль которую нужно поставить, после чего пытаюсь искать роль в массиве ролей дискорда, но, пишет ошибку, что это не функция.
Ошибка:
index.js:143
                let role = message.channel.guild.roles.find(c => c.name === request.responseText)
                                                       ^

TypeError: message.channel.guild.roles.find is not a function
    at exports.XMLHttpRequest.request.onload (E:\Projects\Discord Bot\index.js:143:56)
    at exports.XMLHttpRequest.dispatchEvent (E:\Projects\Discord Bot\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:591:25)
    at setState (E:\Projects\Discord Bot\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:614:14)
    at IncomingMessage.<anonymous> (E:\Projects\Discord Bot\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:447:13)
    at IncomingMessage.emit (events.js:322:22)
    at endReadableNT (_stream_readable.js:1187:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)


Код бота:
client.on('message', message => {
    if (message.author === client.user) return;

    let result = [message.content.split(' ', 1).toString(), message.content.split(' ').slice(1).join(' ')];

    var prefix = prefixarr[prefixarr.indexOf(message.content.charAt(0))]

    if (message.content.startsWith(prefix + 'auth')) {
        var request = new XMLHttpRequest();

        request.open('POST', "https://api.novostroi.org/metrostroi/discord/auth", true);

        request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

        request.send("id=" + message.author.id + "&token=" + result[1])

        message.delete()

        request.onload = function() {
            console.log(request.responseText);

            if (request.status == 200) {
                let role = message.guild.roles.find(c => c.name === request.responseText)
                let user = message.mentions.members.first();
                user.addRole(role.id);

                const embed = new MessageEmbed()
                
                .setTitle("Аккаунт подключен")

                .setDescription("Аккаунт подключен к вашей учётной записи Discord.")

                .setFooter("Сообщение удалится через 10 секунд.", false)

                message.channel.send(embed);
            } else {
                message.channel.send('Неверный SteamID');
            }
        };
    }
});
  • Вопрос задан
  • 517 просмотров
Пригласить эксперта
Ответы на вопрос 1
@DooglsGo Автор вопроса
Ха, оказывается в 12 версии Discord JS, удалили Find, помогла установка 11 версии, командой npm i discord.js@11.6.4.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы