如何解决discord.js 发现返回未定义
我正在尝试向我的机器人添加一个小功能,以便在机器人在线时通知人们。
我做了以下事情:
//BOT connexion actions
client.on("ready",function () {
console.log("BOT connected");
client.channels.cache.find(channel => channel.name === 'ID').send("text");
});
我什至尝试使用我拥有的常量,因为所有机器人消息都在特定通道中返回,但它仍然不起作用
const channel01 = client.channels.cache.find(channel => channel.id === "ID");
...
client.channel01.send("text");
当然,ID是具体的频道ID。
我得到的错误是:(node:22000) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'send' of undefined
我不确定这里出了什么问题,因为 .send 在命令输入时得到了正确处理。
感谢您的帮助!
解决方法
如果您已经有了频道 ID,可以试试这个。
client.channels.fetch('ID').then(chan => {
chan.send('The bot is now online!');
});
至于为什么您的代码不起作用,您要使用 ID 来检查名称“general”等,这是等效的。
Does "12383929184" equal "general"?
这里有一个解决您问题的小方法:
在您的第一个函数中,您尝试按名称查找频道,尽管您似乎在尝试查找 id。 如果您尝试按名称获取频道:
const channelObject = client.channels.cache.find(ch => ch.name === 'channel name');
否则,如果您想通过 ID 找到它,您可以使用:
const channelObject = client.channels.fetch('Channel ID');
从那里,我们可以简单地输入:
channelObject.send('text')
当机器人在线时,我们会收到一点通知!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。