【发布时间】:2023-01-29 12:53:16
【问题描述】:
我有一个玩家表,如果玩家的 is_deleted 为 1,则应从他那里删除该角色,我使用下面的代码执行此操作,但似乎不起作用,所以我的问题是:这个错误是关于什么的?
错误
member.roles.remove(role);
^
TypeError: Cannot read properties of undefined (reading 'roles')
代码
conec.query("SELECT players.user_discord_id, teams.discord_group_id FROM players RIGHT JOIN teams ON players.team_id=teams.id WHERE players.is_deleted=1", async function (err, result, fields) {
if (err) throw err;
for (const item of result) {
user = item.user_discord_id;
role = item.discord_group_id;
guild = client.guilds.cache.get(targetGuild);
member = guild.members.cache.get(user);
member.roles.remove(role);
console.log("removed role " + role + " from " + user);
}
})
【问题讨论】:
-
你如何存储
user_discord_id和discord_group_id?作为字符串还是数字? -
user_discord_id是完整的标签 -> 例如Name#1234 -> 存储为varchar所以是一个字符串。discord_group_id也存储为varchar所以一个 String -
哦,我明白了,所以这实际上不是用户的 ID,而是他们的标签。您应该存储他们的 ID。如果您无法更改它,则可以获取所有成员并遍历它们以找到具有您保存在数据库中的标签的成员。
标签: javascript discord.js