首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Mute角色覆盖他人

如何使Mute角色覆盖他人
EN

Stack Overflow用户
提问于 2020-05-28 11:19:39
回答 1查看 2.3K关注 0票数 0

我有个不和谐的机器人,它有一个无声的命令。静音命令在理论上可以工作,但是当我在适当的服务器上测试它时,我注意到了一个问题。角色“静音”被放置在角色列表的底部,这意味着它上面的所有其他角色都会覆盖静音,从而使它实际上是无用的。是否有一种方法可以将角色“静音”创建到机器人可以指定的最高级别,这样静音就可以生效了?

以下是代码:

代码语言:javascript
复制
if (command === 'mute') {
  if (!message.member.hasPermission("MANAGE_ROLES") || !message.guild.owner) return message.channel.send("You don't have enough authority to do this.");

  if (!message.guild.me.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) 
    return message.channel.send("Give me the permissions first.")

  let role = message.guild.roles.find(x => x.name === "Muted");
  let member = message.mentions.members.first() || message.guild.members.get(args[0]);
  if (!member) return message.reply(`I can't find the user ` + member)

  let duration = ms(args[1]);
  let reason = args.slice(2).join(' ');
  if (!reason) reason = "No reason provided";
  if (!role) {
    try {
      role = await message.guild.createRole({
        name: "Muted",
        color: "#000000",
        permissions: []
      })
      message.guild.channels.forEach(async(channel, id) => {
        message.channel.overwritePermission(role, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false,
          SEND_TTS_MESSAGES: false,
          ATTACH_FILES: false,
          SPEAK: false
        });
      });
    } catch (e) {
      console.log(e);
    }
  }

  member.addRole(role).catch(console.error);
  message.channel.send(`<@${member.id}> , you have been muted for ${duration}.`)

  setTimeout(function() {
    member.removeRole(role.id);
    message.channel.send(`${member} has been automatically unmuted.`);
  }, duration);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-28 14:01:34

免责声明:您似乎在使用discord.js@v11,我将用该版本的代码进行答复。

在创建角色时,应该使用position选项:

代码语言:javascript
复制
role = await message.guild.createRole({
  name: "Muted",
  color: "#000000",
  permissions: [],
  position: 1
})

您可以找到在创建角色这里时可以使用的所有选项的列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62063416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档