#Reading .includes("discord.gg/xyz") on a user presence status

34 messages · Page 1 of 1 (latest)

sharp kindle
#

Hello, i want to check if the status of a member includes "discord.gg/x", but i can't read .includes on the .state (i check the doc and .state is a string so i don't understand.)

My presenceUpdate.js :

const Discord = require("discord.js")

module.exports = async (client, oldPresence, newPresence) => {

    const StatutSupporter = 'discord.gg/xyz';
    const RoleID = '1055190724649439313'
    const RoleSupporter = newPresence.member.guild.roles.cache.get(RoleID);

    if (newPresence.activities[0].state.includes(StatutSupporter)) {
        newPresence.member.roles.add(RoleSupporter)

    } else {
        if (newPresence.member.roles.cache.has(RoleID)) {
            newPresence.member.roles.remove(RoleSupporter)
        }
    }
}
rare sky
#

• What's your exact discord.js npm list discord.js and node node -v version?
• Post the full error stack trace, not just the top part!
• Show your code!
• Explain what exactly your issue is.
• Not a discord.js issue? Check out #useful-servers.

sharp kindle
#

Error :

node:events:491
      throw er; // Unhandled 'error' event
      ^

TypeError: Cannot read properties of null (reading 'includes')
    at module.exports (C:\Users\Eleve\Desktop\Underlight\Prodigy\events\presenceUpdate.js:10:70)
    at Client.emit (node:events:513:28)
    at PresenceUpdateAction.handle (C:\Users\Eleve\Desktop\Underlight\Prodigy\node_modules\discord.js\src\client\actions\PresenceUpdate.js:37:19)
    at module.exports [as PRESENCE_UPDATE] (C:\Users\Eleve\Desktop\Underlight\Prodigy\node_modules\discord.js\src\client\websocket\handlers\PRESENCE_UPDATE.js:4:33)
    at WebSocketManager.handlePacket (C:\Users\Eleve\Desktop\Underlight\Prodigy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
    at WebSocketShard.onPacket (C:\Users\Eleve\Desktop\Underlight\Prodigy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:489:22)
    at WebSocketShard.onMessage (C:\Users\Eleve\Desktop\Underlight\Prodigy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:328:10)
    at callListener (C:\Users\Eleve\Desktop\Underlight\Prodigy\node_modules\ws\lib\event-target.js:290:14)
    at WebSocket.onMessage (C:\Users\Eleve\Desktop\Underlight\Prodigy\node_modules\ws\lib\event-target.js:209:9)
    at WebSocket.emit (node:events:513:28)
Emitted 'error' event on Client instance at:
    at emitUnhandledRejectionOrErr (node:events:394:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:84:21)

Node.js v18.12.1
delicate depot
#

@sharp kindle try console.log the <Presence>.activities to check what it is, and then share with us when it errors

sharp kindle
# delicate depot <@644493634640674819> try `console.log` the `<Presence>.activities` to check wha...

Ok, so when i do this :

    if (newPresence.activities[0].state === StatutSupporter) {
        console.log(newPresence.activities[0]);
        newPresence.member.roles.add(RoleSupporter)

it works, but that's not what i want

Here is the log :

Activity {
  name: 'Custom Status',
  type: 4,
  url: null,
  details: null,
  state: 'discord.gg/underlight',
  applicationId: null,
  timestamps: null,
  party: null,
  assets: null,
  flags: ActivityFlagsBitField { bitfield: 0 },
  emoji: null,
  buttons: [],
  createdTimestamp: 1673974913747
}
delicate depot
sharp kindle
delicate depot
sharp kindle
#

ty for your time btw

delicate depot
#

NP

delicate depot
sharp kindle
#
if (newPresence.activities[0].state && newPresence.activities[0].state.includes(StatutSupporter)) {
        newPresence.member.roles.add(RoleSupporter)

    } else {
        if (newPresence.member.roles.cache.has(RoleID)) {
            newPresence.member.roles.remove(RoleSupporter)
        }
    }
}
#

works fine

sharp kindle
delicate depot
#

Fair enough, since state is a string 👍

sharp kindle
sharp kindle
#

This is weird for a "presenceUpdate" event but ok

delicate depot
sharp kindle
#

"50 requests per second during normal operations"

delicate depot
#

What's the 15s come from?

sharp kindle
#

every 15 seconds i got a new thing on my console

#

Wait

#

no

#

this is because i have this :

#

it update every time i go on new line of my code

delicate depot