【问题标题】:Is there a way to check for channel overwrites? (Discord.js v12)有没有办法检查频道覆盖? (Discord.js v12)
【发布时间】:2020-12-05 17:44:27
【问题描述】:

我正在创建一个用于锁定频道的命令,并使用.updateOverwrite() 方法来执行此操作。使用下面的代码,我试图检查通道是否已经将 VIEW_CHANNEL 设置为 false 并因此以错误消息进行响应。但是,即使频道已经被锁定,它仍然会再次“锁定”它并跳过检查,这个检查似乎只在频道解锁时被触发。是否有其他方法来检查频道覆盖情况?

    if (message.member.hasPermission('MANAGE_CHANNELS')) {
      if (!message.guild.roles.everyone.permissions.has('VIEW_CHANNEL')) {
        const errorEmbed = new Discord.MessageEmbed()
          .setDescription(`❌ '${message.channel.name}' is already locked.`)
          .setColor('RED');
        message.channel.send(errorEmbed);
      }
      else{
        message.channel.updateOverwrite(message.channel.guild.roles.everyone, { VIEW_CHANNEL: false }).then(() => {
          const msgEmbed = new Discord.MessageEmbed()
            .setDescription(`✅ '${message.channel.name}' has been locked.`)
            .setColor('GREEN');
          message.channel.send(msgEmbed);
        });
      }
    }
    else {
      const warningEmbed = new Discord.MessageEmbed()
        .setDescription('???? Sorry, you do not have sufficient permissions to do this.')
        .setColor('YELLOW');
      message.channel.send(warningEmbed);
    }

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    您需要检查频道的权限,您目前正在检查全局角色权限。这是更新的代码:

    if (message.member.hasPermission('MANAGE_CHANNELS')) {
          if (!message.channel.permissionsFor(message.guild.roles.everyone).has('VIEW_CHANNEL')) {
            const errorEmbed = new Discord.MessageEmbed()
              .setDescription(`❌ '${message.channel.name}' is already locked.`)
              .setColor('RED');
            message.channel.send(errorEmbed);
          }
          else{
            message.channel.updateOverwrite(message.channel.guild.roles.everyone, { VIEW_CHANNEL: false }).then(() => {
              const msgEmbed = new Discord.MessageEmbed()
                .setDescription(`✅ '${message.channel.name}' has been locked.`)
                .setColor('GREEN');
              message.channel.send(msgEmbed);
            });
          }
        }
        else {
          const warningEmbed = new Discord.MessageEmbed()
            .setDescription('? Sorry, you do not have sufficient permissions to do this.')
            .setColor('YELLOW');
          message.channel.send(warningEmbed);
        }
    

    【讨论】:

      猜你喜欢
      • 2020-11-14
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      • 2021-01-08
      • 2021-09-21
      • 1970-01-01
      • 2020-12-13
      • 2018-10-05
      相关资源
      最近更新 更多