命令赋予机器人角色

时间:2021-01-06 21:15:32

标签: discord discord.js

我正在尝试创建一个为用户提供角色的命令。它以前可以工作,但不仅仅是给机器人一个角色。

module.exports = {
  name: "addevent",
  description: "Add the event ping role to a user",

  async run(client, message, args) {

    const { member } = message;

    if (message.member.roles.cache.has('793222158981529621')) {
      const { member } = message;
      message.channel.send(`${member} You already have this role.`)
    }

    if (message.channel.id !== '793224633759432755') return;    

    member.roles.add('793222158981529621')

    message.channel.send(`${member} Added the event ping role.`)
  }
}

这也发生在我的级别命令上,它应该检查用户的级别。它检查机器人的级别,而不是用户的级别。

1 个答案:

答案 0 :(得分:1)

KieSession

我的示例有一个名为 let role = message.guild.roles.cache.find(r => r.name === "Role Name Here"); if (message.channel.id !== 'Channel ID Here') return; if (message.member.roles.cache.has(role.id)) { return message.channel.send(`${message.member} You already have this role.`) } message.member.roles.add(role); message.channel.send(`${message.member} Added the event ping role.`); 的变量,它通过名称查找角色,因此您必须在那里提供角色的名称。您使用 role 的 if 语句是可以理解的,并且是仅在一个频道中获得角色的好方法。第二个 if 语句只是询问用户是否已经拥有该角色(不要忘记:在 message.channel.id 中,您必须提供 ID,在这种情况下,使用 .has() 可以轻松完成)。无论如何,如果用户具有该角色,它将发送一条消息并返回。否则,它会将角色添加到用户并发送消息。