TypeError: val.array is not a function at Object.bot.findMember / В чем проблема?

Захостил дискорд бота, discord.js/Node.JS (ссылка на гит)

На тестовых дискорд серверах он функционирует нормально, а на основном сервере с более чем 1000 участников не может захватить (добавить/удалить в канале) пользователя.

Лог ошибок:

TypeError: val.array is not a function
    at Object.bot.findMember (/app/bot_modules/general/module.js:32:31)
    at /app/bot_modules/rooms/commands/add.js:36:28

module.js: 32:31:

var val = guild.members.find(val => val.displayName.includes(userid));
if( val != null) { if(val.array().length == 1){ return val; } }

add.js:36:28:

var mentions = message.mentions.members.array();
var mentionroles = message.mentions.roles.array();
var resolvables = message.cleanContent.split(" ");

//resolve flat names to fake mentions or explode
for(var i = 0; i < resolvables.length; i++){
    if(bot.findMember(resolvables[i], message.guild) != null){
        mentions.push(bot.findMember(resolvables[i], message.guild));
    }
}

В чем проблема? Почему она возникает только на крупном сервере?


Ответы (1 шт):

Автор решения: Vadim

Те, две строки замени на:

const val = guild.members.find((val)=>(val.displayName.includes(userid)));
if(val && Array.isArray(val) && val.length === 1)return val;

И вообще, console.log(val); пользуй, чтобы знать что там внутри, ничего страшного не произойдет если ты получишь методом научного тыка условный N из уравнения X * Y = N, где X - твой код, а N - результат, и путем логики сообразишь как найти правильный Y

→ Ссылка