首页 > 解决方案 > 如何在公会 discordjs V12 中从用户中删除角色?

问题描述

我的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');

谢谢您的帮助

标签: javascriptnode.jsdiscorddiscord.js

解决方案


您不应该假设该成员在缓存中。在这种情况下,它不是。相反,始终fetch()是成员:

let server = bot.guilds.cache.get("472822894649540608");
let player = await server.members.fetch('452773419105255435');
player.roles.remove('476112578280685568');

PS:我认为在 v11 中可以使用,但在 v12 中不再适用。


推荐阅读