Автоматическая роль, когда кто-то играет Discord. js v12 - PullRequest
0 голосов
/ 04 мая 2020

Я хочу добавить роль с использованием события presenceUpdate, когда кто-то играет

, но всякий раз, когда я пытаюсь, я получаю эту ошибку в разногласии. js v12 TypeError: Cannot read property 'activities' of undefined

Что такое я делаю не так?

Вот мои коды:

const yetkiler = require('../yetkiler.json');

module.exports = (oldPresence, newPresence) => {
    const guild = newPresence.guild;
    const oyunda = guild.roles.cache.find(role => role.name === yetkiler.oyunda);
    const yayında = guild.roles.cache.find(role => role.name === yetkiler.yayında);
    const dinliyor = guild.roles.cache.find(role => role.name === yetkiler.dinliyor);

    const eskiOyun = oldPresence.presence.activities && [0, 1, 2, 3].includes(oldPresence.presence.activities.type) ? true : false;
    const yeniOyun = newPresence.presence.activities && [0, 1, 2, 3].includes(newPresence.presence.activities.type) ? true : false;

    if (!eskiOyun && yeniOyun) {         //
        if(newPresence.presence.activities.type === 0){  
        newPresence.roles.add(oyunda)
            .then(() => console.log(`${oyunda.name} added to ${newPresence.user.tag}.`))
            .catch(console.error);
        }
        else if(newPresence.presence.activities.type === 1){  
        newPresence.roles.add(yayında)
            .then(() => console.log(`${yayında.name} added to ${newPresence.user.tag}.`))
            .catch(console.error);
        } 
        else if(newPresence.presence.activities.type === 2){  
                newPresence.roles.add(dinliyor)
                    .then(() => console.log(`${dinliyor.name} added to ${newPresence.user.tag}.`))
                    .catch(console.error);
        } 
    } else if (eskiOyun && !yeniOyun) {  //
      newPresence.roles.remove(oyunda) && newPresence.roles.remove(yayında) && newPresence.roles.remove(dinliyor)
        .then(() => console.log(`${playingRole.name} removed from ${newPresence.user.tag}.`))
        .catch(console.error);
    }
  };

1 Ответ

0 голосов
/ 04 мая 2020

Согласно документации oldPresence и newPresence уже имеют тип Присутствие . Поэтому вы хотите заменить все экземпляры newPresence.presence.activities / oldPresence.presence.activities на newPresence.activities / oldPresence.activities

...