Discord.js 'presenceUpdate' 没有被调用

Posted

技术标签:

【中文标题】Discord.js \'presenceUpdate\' 没有被调用【英文标题】:Discord.js 'presenceUpdate' not being calledDiscord.js 'presenceUpdate' 没有被调用 【发布时间】:2021-10-02 06:26:54 【问题描述】:

我有一个“特殊用户”,它等于 'Client.users.fetch(Special User's ID)'。 然后用户有两个事件监听器附加到它,'message'和'presenceUpdate', 消息事件监听器工作完美,虽然 presentUpdate 根本不起作用, 非常感谢所有帮助!

require("dotenv").config();
const Discord = require(`discord.js`);
const Client = new Discord.Client();

Client.on("ready", () => 
    console.log(`\tClient Ready`);
);

var SpecialUser = Client.users
    .fetch(process.env.ID)
    .then((User) => 
        console.log(User.username);
        // Working
        User.client.addListener("message", (message) => 
            console.log("message");
        );
        // Not Working
        User.client.addListener("presenceUpdate", (Old, New) => 
            console.log(`Presence Updated`);
        );
    )
    .catch(console.error);

Client.on("message", (message) => );

Client.login(process.env.TOKEN);

【问题讨论】:

【参考方案1】:

如果presenceUpdate 事件未触发,您可能需要使用client options 添加GUILD_PRESENCES 意图:

const Discord = require(`discord.js`);

const client = new Discord.Client(
  intents: ['GUILDS', 'GUILD_MESSAGES', 'GUILD_PRESENCES'],
);

// rest of your code...

在你的Discord dashboard;选择你的机器人然后点击Bot设置:

【讨论】:

以上是关于Discord.js 'presenceUpdate' 没有被调用的主要内容,如果未能解决你的问题,请参考以下文章

Discord 错误错误 Discord.js 中的无效令牌

Discord 仅识别 discord.js 中的“ping”命令

错误“const Discord = require(discord.js) ^ ReferenceError: discord is not defined”

(Discord 机器人)当用户加入 Discord 服务器(discord.js)时,如何发送欢迎消息?

Discord.js 和 discord.js-commando 防止命令在特定通道中运行

使用 Discord 按钮的建议命令 Discord.JS