【发布时间】:2021-10-10 10:18:40
【问题描述】:
所以,我的服务器为每个用户都有频道,频道的名称就是他们的用户 ID。
我希望它的工作方式是;
当用户向机器人发送任何消息时,机器人会在服务器中查找该频道(以用户 ID 命名的频道)并将其在 DM 中收到的消息内容发送,但我不断收到错误消息:
Cannot read property "send" of undefined
这是我的代码
client.on("message", async (message) => {
if (message.channel.type === "dm") {
if (message.author.bot) return;
var guild = client.guilds.cache.get("840120593311334410");
const cha = message.author.id;
var hsa = await guild.channels.cache.find((ch) => ch.name === cha);
hsa.send("test");
}
});
【问题讨论】:
-
您收到错误是因为您将
await与guild.channels.cache.find一起使用。Collection.find是一种同步方法。删除await。 -
不行,还是不行。
-
由于频道是通过他们的 ID 映射的,你可以简单地做
var hsa = guild.channels.cache.get(cha) -
问题是我不是通过频道 id 来查找频道,而是通过消息作者的 id 来查找频道,因为这就是频道的命名方式。
-
您确定频道存在吗?你什么时候创建它们?机器人是否有权查看它?
标签: javascript node.js discord discord.js