繁体   English   中英

Discord.js:无法读取未定义的属性(读取“删除”)

[英]Discord.js: Cannot read properties of undefined (reading 'remove')

我正在尝试建立一个支持系统,但我的presenceUpdate事件中发生了错误。 请问你能帮帮我吗?

提前致谢

PS:我是法国人,我使用翻译,请原谅我的不精确。

事件presenceUpdate.js:

module.exports = (client, oldMember, newMember, newPresence) => {
    client.guilds.cache.forEach(guild => {
      let { soutien_role_id: soutienRoleId, soutien_text: soutienText } = client.db.settings.selectSoutien.get(guild.id);

      if(soutienRoleId && soutienText) {
        
        if (!oldMember) return;
        if (oldMember === undefined || newMember === undefined) return;
        if (oldMember.status !== newMember.status || oldMember == undefined || newMember == undefined) return;
        if (guild.members.cache.get(newMember.user.id) === undefined) return;
        
        const soutienRole = guild.roles.cache.get(`${soutienRoleId}`);
        const word = soutienText
        const members = newMember.guild.members.cache;
        let status = members.filter(m => m.presence?.status !== "offline")
        status = Array.from(status)
          
        if(!members) return;
        
        if(status[0] && status[0].includes(word)) {
            members.roles.add(soutienRole)
          } else {
            if(guild.roles.cache.some(r => r.id === soutienRoleId)) {
              guild.members.roles.remove(soutienRole)
            }
          }
        }
      })
    }

错误:

{
  "stack": "TypeError: Cannot read properties of undefined (reading 'remove')
    at C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\\src\\events\\presenceUpdate.js:24:35
    at _Collection.forEach (<anonymous>)
    at module.exports (C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\\src\\events\\presenceUpdate.js:2:25)
    at Client.emit (node:events:537:28)
    at PresenceUpdateAction.handle (C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\        
ode_modules\\discord.js\\src\\client\\actions\\PresenceUpdate.js:37:19)
    at module.exports [as PRESENCE_UPDATE] (C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\
ode_modules\\discord.js\\src\\client\\websocket\\handlers\\PRESENCE_UPDATE.js:4:33)
    at WebSocketManager.handlePacket (C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\      
ode_modules\\discord.js\\src\\client\\websocket\\WebSocketManager.js:346:31)
    at WebSocketShard.onPacket (C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\
ode_modules\\discord.js\\src\\client\\websocket\\WebSocketShard.js:478:22)
    at WebSocketShard.onMessage (C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\
ode_modules\\discord.js\\src\\client\\websocket\\WebSocketShard.js:317:10)
    at WebSocket.onMessage (C:\\Users\\smonf\\OneDrive\\Bureau\\Bots Discord\\New Projects\\- MyCorp\\archive-2022-06-25T114850Z\
ode_modules\\ws\\lib\\event-target.js:199:18)"
}

将 'oldMember, newMember' 替换为 'oldPresence, newPresence' 以便更好地理解 ( presenceUpdate ) 并尝试以下操作:

newPresence.member?.roles.remove(soutienRole)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM