![](/img/trans.png)
[英]How to make an if statement work if a message starts the prefix + a command using discord.js
[英]Using node.js and the discord.js library to message users when I run a command, but it only starts to work after the targeted user runs the command
就像我在標題中所說的那樣,我正在嘗試創建一個 Discord 機器人,在我運行命令時向用戶發送消息。 但是,它僅在目標用戶自己運行命令后才有效。 在他們運行命令之后。 我可以運行它並向他們發送消息。 如果我重新啟動機器人,目標用戶需要運行命令才能再次運行。 為什么會這樣? 我認為有可能做到這一點,所以他們不需要先運行命令。
我使用的代碼是這樣的:
if (cmd === "cmd1"){
bot.users.get("<user1ID>").send("Message");
}
if (cmd === "cmd2"){
bot.users.get("<user2ID").send("<Message>");
}
如果我嘗試運行,比如說 cmd1,在 user1 運行 cmd1 之前,它會在控制台中拋出一個錯誤,提示“TypeError:無法讀取未定義的屬性‘發送’”。 機器人和用戶在一個共同的服務器中。 在我看來,問題是在用戶自己運行命令之前不會緩存用戶。 我希望這樣我就可以運行命令向人們發送消息,而無需他們先這樣做。 目的是將預先配置的消息通知一些人。
由於Discord.js V12,通過id獲取成員時需要添加cache
bot.users.cache.get("<user1ID>").send("Message");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.