0

所以我正在尝试创建一个机器人,它将赋予在商店购买它的用户角色!购买

在互联网上,我找到了两种搜索角色的方法,它们对我没有帮助,我有一个带空格的角色,机器人不想寻找它


  let author = db.fetch(`money_${message.author.id}`)

  if (args[0] == 'Coin Owner 500k') {
    if (author < 500000) return message.channel.send('You need at least 500000 coins')

    message.guild.members.get(message.author.id).roles.add(message.guild.roles.get('Coin Owner 500k')

    db.subtract(`money_${message.author.id}`, 500000)
    message.channel.send(message.author.tag + 'Role added to you!')

  }


}```
4

1 回答 1

0

get方法将尝试检索角色,这要归功于它的 ID,在您的代码中,就像您说“我想要具有 ID 的角色Coin Owner 500k”但您实际上需要通过名称而不是 ID 获取它。

所以,要通过它的名字来获得一个角色,你可以使用这样的find方法:

// This will return the role named "Coin Owner 500k" if it exists
message.guild.roles.cache.find(role => role.name === "Coin Owner 500k");

(注意,通过角色ID获取角色get效率更高,您可以在Discord上右键单击“复制标识符”来获取所需角色的ID)

于 2020-05-20T02:14:11.520 回答