Discord 比较消息作者角色

Discord 比较消息作者角色,discord,discord.js,Discord,Discord.js,我已经问了一个与此相关的问题,但我得到的答案有点瑕疵,直到现在我才注意到。我希望addrole命令仅在消息。author的最高角色高于所述用户的最高角色时才起作用。这是我上次提问时得到的答案: const highest=member.roles.highest;//这是成员的最高角色 //如果角色高于或等于最高角色 if(最高的比较位置)(角色){ if(!message.member.hasPermission(“管理_角色”))返回message.channel.send(“无效权限”)

我已经问了一个与此相关的问题,但我得到的答案有点瑕疵,直到现在我才注意到。我希望addrole命令仅在消息。author的最高角色高于所述用户的最高角色时才起作用。这是我上次提问时得到的答案:

const highest=member.roles.highest;//这是成员的最高角色
//如果角色高于或等于最高角色
if(最高的比较位置)(角色){
if(!message.member.hasPermission(“管理_角色”))返回message.channel.send(“无效权限”)
让member=message.notices.members.first();
让role=message.indications.roles.first();
如果(!成员)
返回消息。回复(“请提及此服务器的有效成员”);
if(!role)返回message.reply(“请说明此服务器的有效角色”);
const highest=message.author.roles.highest;

if(highest.comparePosition(role)
const highest=message.author.roles.highest;

消息的作者是一个用户,用户没有角色。这就是它说的原因:
无法读取未定义的属性
,因为
作者。角色
不是一件事。您必须获取成员才能获取角色。因此,请执行以下操作:


const-highest=message.member.roles.highest;


在这里,您将消息的作者(用户)作为行会成员(成员),然后请求该成员具有的最高角色。

const highest=message.author.roles.highest;

消息的作者是一个用户,用户没有角色。这就是它说的原因:
无法读取未定义的属性
,因为
作者。角色
不是一件事。您必须获取成员才能获取角色。因此,请执行以下操作:


const-highest=message.member.roles.highest;


在这里,您将消息的作者(用户)作为行会成员(成员)然后询问该成员的最高角色。

谢谢你帮助我回答你的问题。不,问题是我把message.author和message混淆了。member
message.author
返回一个用户和
message。member
是一个行会成员。这是同一个问题。哦,我不知道,对不起,这回答了你的问题吗?不,问题是我把message.author和message混淆了。member
message.author
返回一个用户和
message。member
是一个协会会员。这是同一个问题。哦,我不知道,对不起