我正在尝试删除一些角色,然后根据索引为成员分配新角色。当尝试通过
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)
cache.get()
进行操作时可能会出现这种情况。
我建议使用 fetch()
来获取用户、频道或公会。写的是“memberbe”而不是member...