Discord.js 的欢迎消息 - “无法读取未定义的属性 'get'”

Posted

技术标签:

【中文标题】Discord.js 的欢迎消息 - “无法读取未定义的属性 \'get\'”【英文标题】:Welcome message with Discord.js - "Cannot read property 'get' of undefined"Discord.js 的欢迎消息 - “无法读取未定义的属性 'get'” 【发布时间】:2018-11-20 02:50:24 【问题描述】:

我正在使用库 Discord.js/Node.js 学习 javascript,并且正在构建一个 Discord 机器人来锻炼自己。

我正在尝试向我的 discord 服务器的新成员发送消息。 我正在寻找的属性是 .find,我在 Discord.js 的 wiki 上的任何地方都没有找到它,而且我遇到了一个错误,上面写着 Cannot read property 'get' of undefined

所以我决定使用 Ii 在 Discord.js 的 Wiki 上找到的属性 .Get。 我也有同样的错误。我不知道如何告诉机器人在新用户第一次加入服务器时向他发送消息。

这是我的代码:

bot.on("guildMemberAdd", MemberAdd => 
   MemberAdd.guild.channel.get("enter-leave").send("HI, welcome on my server.")
   console.log("enter");
);

【问题讨论】:

只是仔细阅读文档,我认为“频道”是您需要的属性? (您只有“频道”,它不是 guild 的属性) 成功了,谢谢,我为这个错误感到非常沮丧:)。 【参考方案1】:

答案是我忘记了 .channels 的 S。 .channel 是另一个属性。

所以我的代码是

bot.on("guildMemberAdd", MemberAdd => 

MemberAdd.guild.channels.find("name", "general").send("Bienvenu dans ma taverne mon chou :heart:.")

console.log("enter"); );

【讨论】:

【参考方案2】:

对于 discord.js v12 你这样做:

bot.on("guildMemberAdd", MemberAdd => 
   let channel = MemberAdd.guild.channels.cache.find(channel => channel.name === "enter-leave")
   channel.send("HI, welcome on my server.")
   console.log("enter");
);

【讨论】:

以上是关于Discord.js 的欢迎消息 - “无法读取未定义的属性 'get'”的主要内容,如果未能解决你的问题,请参考以下文章

Node.js + Discord.js:无法读取未定义的属性“类”

Discord.js TypeError:无法读取未定义的属性“get”

discord.js v13 TypeError:无法读取未定义的属性“createMessageCollector”

Discord.js TypeError:无法读取未定义的属性'id'-channel.id

Discord.js 无法读取未定义的属性“获取”

无法读取未定义的属性“发送”(Discord.js)