【发布时间】:2020-01-04 05:24:23
【问题描述】:
我找不到使用 discord.js 的事件处理程序,当用户开始流式传输或玩游戏时会触发该事件处理程序。
我已尝试使用 userUpdate(我知道这不起作用,因为它与当前用户有关,即机器人)以及 guildMemberUpdate 事件。
client.on("guildMemberUpdate", (oldUser, newUser) => {
if(oldUser.user.username === "Test"){
if(newUser.user.game.streaming){
//find the channel and post a message
}
}
});
添加断点时,我从不点击第一个 if 语句。该事件似乎不会因用户的“活动”或“状态”变化而触发。有这样的活动吗?
为清楚起见进行编辑:我一直在 discord 服务器上使用我自己的用户。我将从不玩游戏到玩游戏或流式传输,并且永远不会命中事件处理程序。包含图片以确保您可以看到我试图触发事件的状态。
【问题讨论】:
-
A. "...[
userUpdate] 属于当前用户,是机器人..." 当用户更新 something 以处理他们的用户配置文件,而不是其特定于服务器的设置。例如,任何用户更改其用户名或鉴别器都会触发它。 B. 你展示的监听器是否嵌套在另一个监听器中?如果是这种情况,则在发出外部事件之前不会附加它。 C. 你能通过在监听器函数的第一行添加console.log('emitted')(或类似的东西)来调试你的代码,并分享结果吗? -
A. userUpdate 和 guildMemberUpdate 都没有处理这个问题。 B. 不,不是。 C. 它永远不会击中侦听器,但我使用 VSCode 运行它,因此我也可以使用断点。
-
你使用的是什么版本的 Discord.js?这些事件对我来说按预期工作。
-
最新,11.5.1。我添加了一张图片,以确保我们在我说“玩游戏”时的意思一致。当我,比如说,添加一个权限时,它被解雇了。但不是为了玩游戏。
标签: node.js discord discord.js