Bots 欢迎因“原因”导致Bot不工作;无法读取属性';查找';“未定义”的定义;

Bots 欢迎因“原因”导致Bot不工作;无法读取属性';查找';“未定义”的定义;,bots,discord.js,Bots,Discord.js,好的,我想让我的机器人在欢迎频道中欢迎新用户,所以我使用了find。以下是我到目前为止得到的信息: client.on('guildMemberAdd', member => { let guild = member.guild; guild.channel.find('name','welcome','welcoming','greeting','general').send(`AYYY! Welcome ${member.user} to our Discord Server! Che

好的,我想让我的机器人在欢迎频道中欢迎新用户,所以我使用了
find
。以下是我到目前为止得到的信息:

client.on('guildMemberAdd', member => {
let guild = member.guild;
guild.channel.find('name','welcome','welcoming','greeting','general').send(`AYYY! Welcome ${member.user} to our Discord Server! Check out the FAQ, Info, and/or The Rules channels (if there is) for some documentation and support to help you get ready!`);
});
预期结果:欢迎使用
find
on频道的用户

实际结果:无法读取未定义的属性“find”


我尝试了很多东西,但结果都是一样的。另外,
频道
不起作用,只有
频道

是帮会。频道s带有s,您必须使用

client.on('guildMemberAdd', member => {
let guild = member.guild;
guild.channels.cache.find('name','welcome','welcoming','greeting','general').send(`AYYY! Welcome ${member.user} to our Discord Server! Check out the FAQ, Info, and/or The Rules channels (if there is) for some documentation and support to help you get ready!`);
});
编辑:
你找不到多个频道。你只需要写一个名字

我也不相信可以使用
.find()
返回多个通道,因为它总是返回在数组中找到的第一个元素

但是,您可以创建另一个数组,该数组是基于频道名称的
guild.channels.cache
过滤器,然后在该数组上使用
.forEach()
向每个频道发送消息,如下所示:

function channelNamesFilter(channel) {
    let channelNames = ['name','welcome','welcoming','greeting','general'];

    if(channelNames.includes(channel.name)) {
        return true;
    }

    return false;
}

let filteredChannels = guild.channels.cache.filter(channelNamesFilter);
filteredChannels.forEach(element => element.send('AYYY! Welcome ${member.user.name} to our Discord Server! Check out the FAQ, Info, and/or The Rules channels (if there is) for some documentation and support to help you get ready!'));

还请注意,我是如何将
${member.user}
更改为
${member.user.name}
,第一个是对象,第二个是字符串形式的name属性。

您使用的是
discord.js
的哪个版本?我认为它是新的。find是数组上的一个方法。看起来guild.channel未定义(不存在/未设置)可能尝试console.log该成员,以便您可以看到该成员上确实存在哪些属性?它不起作用,现在我得到了:fn=fn.bind(thisArg);fn.bind不是一个函数,它说它来自
C:\Users\63929\node_modules\@discordjs\collection\dist\index.js:158
我不确定您是否可以同时找到多个频道,请尝试使用
频道=>channel.name=='''.
“name”、“…”