Skip to content

Discord.js ‘presenceUpdate’ not being called

I have a “Special User” which is equal to ‘Client.users.fetch(Special User’s ID)’. Then the user has two event listeners attached to the it, ‘message’ and ‘presenceUpdate’, The message event listener works perfects, although the presenceUpdate does not work at all, All help is greatly appreciated!

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);

Answer

If the presenceUpdate event doesn’t trigger, chances are you’ll need to add the GUILD_PRESENCES intent either using the client options:

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

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

// rest of your code...

In your Discord dashboard; by choosing your bot then by clicking on the Bot settings:

enter image description here