【发布时间】:2020-11-20 23:40:46
【问题描述】:
就像我在标题中所说的那样,我正在尝试创建一个 Discord 机器人,它会在我运行命令时向用户发送消息。但是,它仅在目标用户自己运行命令后才有效。在他们运行命令之后。我可以运行它,它会向他们发送消息。如果我重新启动机器人,目标用户需要运行命令才能让它再次工作。为什么会这样?我认为它可以做到,所以他们不需要先运行命令。
我使用的代码是这样的:
if (cmd === "cmd1"){
bot.users.get("<user1ID>").send("Message");
}
if (cmd === "cmd2"){
bot.users.get("<user2ID").send("<Message>");
}
如果我在 user1 运行 cmd1 之前尝试运行 cmd1,它会在控制台中抛出一个错误,提示“TypeError:无法读取未定义的属性‘发送’。”机器人和用户在一个共同的服务器中。在我看来,问题是在用户自己运行命令之前不会缓存用户。我希望这样我可以运行命令来向人们发送消息,而无需他们先这样做。目的是通知一些人预先配置的消息。
【问题讨论】:
-
使用.cache,它显示错误无法读取未定义的属性'get',没有.cache,它说无法读取未定义的属性'发送'。
标签: javascript node.js discord discord.js