我的 Discord 服务器上有一个经济系统,玩家可以购买 30 天的 VIP。数据保存在firestore云数据库中。机器人每 4 小时检查一次是否有人超过了他的 VIP,它应该删除它,但它不起作用。
控制台说:Cannot read property 'roles' of undefined.
这是代码中不起作用的部分:
let server = bot.guilds.cache.get("472822894649540608");
let player = server.members.cache.get('452773419105255435');
player.roles.remove('476112578280685568');
感谢您的帮助
答案 0 :(得分:2)
您不应该假设该成员在缓存中。在这种情况下,它不是。相反,始终fetch()
成员:
let server = bot.guilds.cache.get("472822894649540608");
let player = await server.members.fetch('452773419105255435');
player.roles.remove('476112578280685568');
P.S.:我认为在 v11 中曾经可以工作,但在 v12 中不再有效。