Discord.js TypeError:无法读取未定义的属性“id”-channel.id
Posted
技术标签:
【中文标题】Discord.js TypeError:无法读取未定义的属性“id”-channel.id【英文标题】:Discord.js TypeError: Cannot read property 'id' of undefined - channel.id 【发布时间】:2020-04-08 15:16:15 【问题描述】:(使用 discord.js javascript)
我正在努力让用户只能在我的#commands 频道中使用命令。我在命令的开头有这段代码。
if (msg === prefix + 'DAILY')
if (msg.channel.id === '29124657224757826')
每日命令在尝试使其仅在一个频道中工作之前完美运行。 这是包含第二行的错误消息:
if (msg.channel.id === '394615572257570826')
^
TypeError: Cannot read property 'id' of undefined
我相信我只需要一个 channel.id 变量,那么我该如何设置呢?如果这不是解决办法,那是什么?提前致谢。
【问题讨论】:
你的 msg 变量似乎是一个字符串,可能是Message.content
,而不是 Message 对象
正如@MichelFeldheim 所说,您需要使用msg.content
而不仅仅是msg
。这可能在某种程度上仍然有效,但与代码和任何一种方式都是更好的做法有关。
【参考方案1】:
就像评论所说,命令处理程序中的第一行需要是 msg.content 而不仅仅是消息。另一个问题是没有定义味精。我敢打赌,这是因为您的命令处理程序不是 msg,而是类似于 message 的其他东西。基于来自 this
的另一个类似问题您想要做的是使用 msg.guild.channels.find() 查找频道。我的问题是在第 2 行之后您要做什么,您正在寻找与 id 匹配的频道,这可能会让您更好地理解
【讨论】:
以上是关于Discord.js TypeError:无法读取未定义的属性“id”-channel.id的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:无法读取未定义的“获取”函数(discord.js)
Discord.js:TypeError:无法读取未定义的属性“删除”
(Discord.js)TypeError:无法读取未定义的属性“添加”
Discord.js:TypeError:无法读取未定义的属性“get”