Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Bot未设置覆盖权限的权限_Javascript_Discord_Discord.js - Fatal编程技术网

Javascript Bot未设置覆盖权限的权限

Javascript Bot未设置覆盖权限的权限,javascript,discord,discord.js,Javascript,Discord,Discord.js,我的discord bot上有一个mute命令,当指定用户名时,会给他们角色mute。它创建了这个角色,但我遇到的问题是它没有更改角色内的权限。我的机器人拥有执行类似操作所需的所有权限。以下是我正在使用的代码: let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0])); if(!tomute) return message.reply("U

我的discord bot上有一个mute命令,当指定用户名时,会给他们角色
mute
。它创建了这个角色,但我遇到的问题是它没有更改角色内的权限。我的机器人拥有执行类似操作所需的所有权限。以下是我正在使用的代码:

  let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
  if(!tomute) return message.reply("Usage: !mute <@user>");
  if(tomute.hasPermission("MANAGE_MESSAGES")) return message.reply("Can't mute them!");
  let muterole = message.guild.roles.find(`name`, "Muted");
  if(!muterole){
    try{
      muterole = await message.guild.createRole({
        name: "Muted",
        color: "#000000",
        permissions:[]
      })
      message.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(muterole, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false,
          SEND_TTS_MESSAGES: false,
          ATTACH_FILES: false,
          SPEAK: false
        });
      });
    }catch(e){
      console.log(e.stack);
    }
  }
  await(tomute.addRole(muterole.id));
  message.reply(`<@${tomute.id}> has been muted`);

  tomute.addRole(muterole.id).then(() => {
  message.delete()
  tomute.send(`You have been muted in ${message.guild.name}.`)
  })
让tomute=message.guild.member(message.indications.users.first()| | message.guild.members.get(args[0]);
if(!tomute)返回message.reply(“用法:!mute”);
if(tomute.hasPermission(“MANAGE_MESSAGES”))返回message.reply(“不能使它们静音!”);
让muterole=message.guild.roles.find(`name`,Muted”);
if(!mute角色){
试一试{
muterole=wait message.guild.createRole({
名称:“静音”,
颜色:“000000”,
权限:[]
})
message.guild.channels.forEach(异步(通道,id)=>{
等待通道。覆盖权限(互斥角色{
发送消息:false,
添加:false,
发送消息:false,
附加文件:false,
说:错
});
});
}捕获(e){
console.log(e.stack);
}
}
wait(tomute.addRole(muterole.id));
message.reply(`has mute`);
tomute.addRole(muterole.id)。然后(()=>{
message.delete()
tomute.send(`您在${message.guild.name}中被静音。`)
})

我将您的forEach更改为for循环

请尝试使用以下代码:

让tomute=message.guild.member(message.indications.users.first()| | message.guild.members.get(args[0]);
if(!tomute)返回message.reply(“用法:!mute”);
if(tomute.hasPermission(“MANAGE_MESSAGES”))返回message.reply(“不能使它们静音!”);
让muterole=message.guild.roles.find(`name`,Muted”);
if(!mute角色){
试一试{
muterole=wait message.guild.createRole({
名称:“静音”,
颜色:“000000”,
权限:[]
})
for(设i=0;i{
message.delete()
tomute.send(`您在${message.guild.name}中被静音。`)
})

谢谢。我刚刚意识到我们的两种代码都应该可以正常工作。我是个白痴。
let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
  if(!tomute) return message.reply("Usage: !mute <@user>");
  if(tomute.hasPermission("MANAGE_MESSAGES")) return message.reply("Can't mute them!");
  let muterole = message.guild.roles.find(`name`, "Muted");
  if(!muterole){
    try{
      muterole = await message.guild.createRole({
        name: "Muted",
        color: "#000000",
        permissions:[]
      })
      for (let i = 0; i < msg.guild.channels.array().length; i++) {
        await msg.guild.channels.array()[i].overwritePermissions(muterole, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false,
          SEND_TTS_MESSAGES: false,
          ATTACH_FILES: false,
          SPEAK: false
        });
      }
    }catch(e){
      console.log(e.stack);
    }
  }
  await(tomute.addRole(muterole.id));
  message.reply(`<@${tomute.id}> has been muted`);

  tomute.addRole(muterole.id).then(() => {
  message.delete()
  tomute.send(`You have been muted in ${message.guild.name}.`)
  })