首页 > 解决方案 > 有人玩 Discord.js v12 时的自动角色

问题描述

presenceUpdate我想在有人玩时添加一个使用事件的角色

但是每当我尝试时,我都会在 discord.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);
    }
  };

标签: javascriptnode.jsdiscorddiscord.js

解决方案


根据文档 oldPresencenewPresence并且已经属于Presence类型。因此,您希望将 / 的所有实例替换为newPresence.presence.activities/oldPresence.presence.activitiesnewPresence.activitiesoldPresence.activities


推荐阅读