【问题标题】:Is there a way to determine what guild a userUpdate event is coming from?有没有办法确定 userUpdate 事件来自哪个公会?
【发布时间】:2020-12-22 02:20:20
【问题描述】:

我正在我的 Discord.js 机器人上设置服务器日志,但我目前遇到了 userUpdate 事件。我希望它能够为两台服务器工作。因此,如果服务器 A 中发生用户更新,则将日志消息发送到服务器 A 日志通道。如果服务器 B 中发生用户更新,则将日志消息发送到服务器 B 日志通道。如果服务器 A 和服务器 B 中都发生了用户更新(用户在两个服务器中),则将日志消息发送到两个日志通道。

我试过了:

if (newUser.guild.id === '<guildid>') {
     client.channels.cache.get('<channelid>').send(embed);
}

但它不起作用。它返回错误“找不到未定义的 ID”。我查看了 Discord.js 文档,在 User 下没有 guild 属性,这显然是我收到此错误的原因。

有什么办法可以做到吗?

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    userUpdate 属性来自 user 类,因此更新不可能发生在 Guild 中。

    您可以尝试返回GuildMemberGuildMemberUpdate,这样它将具有Guild 属性。

    【讨论】:

    • 你能用 guildMemberUpdate 确定头像/用户名/鉴别器的变化吗?
    • 是的,因为事件返回两个参数 - oldMembernewMember,因为它们都属于 GuildMember 类,因此它具有来自该属性的 user 属性,您可以在 @ 之间进行比较987654331@ 和 newMember 来检测变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-17
    • 2021-12-08
    • 1970-01-01
    • 2021-02-17
    相关资源
    最近更新 更多