【问题标题】:How to check two roles如何检查两个角色
【发布时间】:2021-12-07 21:12:43
【问题描述】:

我正在尝试制作命令,如果作者具有管理员或所有者角色,则该命令有效。但我不知道如何检查用户是否具有“管理员”或“所有者”角色(多个角色)。 我正在使用 discord.js v12。

我的代码:

client.on('message', message => {
    if (message.content.startsWith('!ban'))
if(message.member.roles.cache.find(r => r.name === "owner")) {
        message.delete();
    let member1 = message.mentions.members.first();
    if(!member1) return message.channel.send("You need to mention the @user!").then((declineMsg) => {
declineMsg.delete({timeout: 5000});})
      let banned = message.guild.roles.cache.find(role => role.name === "banned");
    member1.roles.add(banned);
 message.channel.send('Succesfully banned user!').then(message.delete({timeout: 5000}))}});
  });

client.on('message', message => {
    if (message.content.startsWith('!ban'))
if(message.member.roles.cache.find(r => r.name === "admin")) {
        message.delete();
    let member1 = message.mentions.members.first();
    if(!member1) return message.channel.send("You need to mention the @user!").then((declineMsg) => {
declineMsg.delete({timeout: 5000});})

      let banned = message.guild.roles.cache.find(role => role.name === "banned");
    member1.roles.add(banned);
    message.channel.send(`Succesfully banned user!`).then(message.delete({timeout: 5000}))}});
  });

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    你需要使用这样的东西:

    let role1 = message.guild.roles.cache.find(r => r.name === "owner");
    let role2 = message.guild.roles.cache.find(r => r.name === "admin");
    
    if(!message.member.roles.cache.has(role1.id) && !message.member.roles.cache.has(role2.id)) return message.reply("User don't have required roles!")
    

    【讨论】:

    • 您可以通过直接检查成员的角色缓存来缩短此时间:let role = message.member.roles.cache.find(r => ["owner", "admin"].includes(r.name)),条件为 if(!role)
    • 对不起,我是 discord.js 和 javascript 的新手。但现在我不知道如何检查多个角色。如果我将 role3 放到代码中,它会显示“无法读取未定义的属性 'id'”。
    • @Latepate 你应该再问一个问题,因为原来的问题已经回答了
    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2017-08-25
    • 1970-01-01
    • 2022-12-24
    相关资源
    最近更新 更多