首页 > 解决方案 > Discord.js TypeError:无法读取未定义的属性“id”-channel.id

问题描述

(在 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 变量,那么我将如何设置它?如果这不是解决办法,那是什么?提前致谢。

标签: javascriptnode.jstypeerrordiscorddiscord.js

解决方案


就像评论说的那样,命令处理程序中的第一行需要是 msg.content 而不仅仅是消息。另一个问题是没有定义味精。我敢打赌,这是因为您的命令处理程序不是 msg,而是类似于 message 的其他东西。基于来自此的另一个类似问题

您想要做的是使用 msg.guild.channels.find() 查找频道。我的问题是您在第 2 行之后要做什么,您正在寻找与 id 匹配的频道,这可能会让您更好地理解


推荐阅读