Discord.js v13 , Считывает статус пользователей и назначает/удаляет роли

#javascript #discord.js

Вопрос:

Я пытаюсь заставить бота проверять статус пользователей, когда у них есть discord.gg/ или .gg/ по статусу дайте роль, и если они ее уберут, удалите ее

 client.on('presenceUpdate', async (oldPresence, newPresence) =gt; { const role = newPresence.guild.roles.cache.get('910192386267840513'); const member = newPresence.member; const activities = member.user.presence.activities[0];  if (activities amp;amp; (activities.state.includes('.gg/') || activities.state.includes('discord.gg/'))) {  return newPresence.member.roles.add(role); } else if (member.roles.cache.get(role.id)) {  newPresence.member.roles.remove(role); }});  

Это ошибка, которую он показывает

 const activities = member.user.presence.activities[0];  ^  TypeError: Cannot read properties of undefined (reading 'activities')  

Ответ №1:

User у s больше нет presence s. Вам нужно будет использовать GuildMember , чтобы получить присутствие

 const activities = member.presence.activities[0]  

Комментарии:

1. О, спасибо тебе! но это работает только один раз, нужно ли мне зацикливать его?

2. Что вы имеете в виду 1 раз? Мероприятие проводится только один раз?

3. Да, он отслеживает только первое обновление

4. Однако проходит ли мероприятие? Поместите console.log("Running") в верхней части обратного вызова, чтобы убедиться, что

5. Действительно, действительно спасибо вам! Я работаю над этой штукой уже 3 дня.