Discord JS 无法读取未定义的属性(读取“角色”)

问题描述 投票:0回答:2

我正在尝试删除一些角色,然后根据索引为成员分配新角色。当尝试通过

member
对象访问
message
但不访问缓存的成员对象时,像我在这段代码中所做的那样可以工作。前 6 行只是从数据库中获取用户 ID 的数组(可以工作)。 这是代码:

    const users = await verifiedUsers.find({});

    const userMap = {};
    users.forEach((user) => {
        userMap[user.ign] = user;
    });
    for (let user in userMap) {
      let userid = userMap[user].memberid
      let membe = guild.members.cache.get(userid)
      let index = userMap[user].customstats.index
      membe.roles.remove("964653007117627453");
      membe.roles.remove("964652871113142282");
      membe.roles.remove("964652446154633256");
      var role = ""
      if (index < 100) {
        role = "964653007117627453"
      }
      else if (index >= 100 && index < 200) {
          role = "964652871113142282"
      }
      else if (index >= 200 && index < 300) {
          role = "964652446154633256"
      }
      else if (index >= 400) {
          role = "964651864052334683"
      }
      membe.roles.add(role)
    }

错误:

      membe.roles.remove("964653007117627453");
            ^
TypeError: Cannot read properties of undefined (reading 'roles')
    at refreshAllRanks (C:\Users\nobyp\OneDrive\Dokumente\GitHub\FDS-Bot\counters\api-count.ts:102:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
typescript discord discord.js
2个回答
1
投票
  1. 当给定id的用户不在公会中时可能会导致。
  2. 当您尝试使用
    cache.get()
    进行操作时可能会出现这种情况。 我建议使用
    fetch()
    来获取用户、频道或公会。

0
投票

写的是“memberbe”而不是member...

© www.soinside.com 2019 - 2024. All rights reserved.