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