我已经创建了一个如下所示的命令,我想要它,因此只有“ Founder / Leader”角色可以使用它,因此不会被滥用。
到目前为止,这是我的代码,但是我迷失了如何制作它的方法,所以只有我能做到。
if (msg.guild && msg.content.startsWith('!priv')) {
let text = msg.content.slice('!priv'.length); // cuts off the /private part
msg.guild.members.forEach(member => {
if (member.id != client.user.id && !member.user.bot) member.send(text);
return;
});
}
});
任何帮助将不胜感激。
答案 0 :(得分:0)
以下代码应该可以工作:
if (msg.guild && msg.content.startsWith('!priv')) {
const fetchedRole = msg.guild.roles.find((r) => r.name.toLowerCase() === 'founder/leader'); // fetch the role
if (!msg.member.roles.has(fetchedRole.id)) return msg.reply('You don\'t have the founder/leader role!'); // if the member of the message has not the role with the above fetched name, the bot throws an error (error message)
let text = msg.content.slice('!priv'.length); // cuts off the /private part
msg.guild.members.forEach(member => {
if (member.id != client.user.id && !member.user.bot) member.send(text);
return;
});
}
首先,您必须获取消息成员必须具有的角色。完成此步骤后,只需检查msg.member.roles
是否具有您所获取的角色即可!