簡體   English   中英

當我運行命令時,使用 node.js 和 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM