将命令锁定到特定角色

时间:2019-08-31 10:08:30

标签: discord.js

我已经创建了一个如下所示的命令,我想要它,因此只有“ 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;
      });
    }
  });

任何帮助将不胜感激。

1 个答案:

答案 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是否具有您所获取的角色即可!