Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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
Node.js 静音角色仅在每个人都能看到的频道中工作| Bot discord.js_Node.js_Discord_Discord.js - Fatal编程技术网

Node.js 静音角色仅在每个人都能看到的频道中工作| Bot discord.js

Node.js 静音角色仅在每个人都能看到的频道中工作| Bot discord.js,node.js,discord,discord.js,Node.js,Discord,Discord.js,好的,我有一个机器人,静音角色适用于每个人都能看到的频道,但是当一个工作人员被静音时,他们不能在普通聊天中聊天,但可以在工作人员聊天中聊天,工作人员聊天只能由工作人员看到+这是代码,以防需要更改某些内容 const { red_dark } = require("../../colors.json"); const ms = require("ms"); module.exports = { name: "mute", description: "Mutes a mem

好的,我有一个机器人,静音角色适用于每个人都能看到的频道,但是当一个工作人员被静音时,他们不能在普通聊天中聊天,但可以在工作人员聊天中聊天,工作人员聊天只能由工作人员看到+这是代码,以防需要更改某些内容

const { red_dark } = require("../../colors.json");
const ms = require("ms");

module.exports = {
      name: "mute",
      description: "Mutes a member in the discord!",
      usage: "!mute <user> <reason>",
      category: "moderation",
      accessableby: "Members",
      aliases: ["m", "nospeak"],
  run: async (bot, message, args) => {
// check if the command caller has permission to use the command

if(!message.member.hasPermission("MANAGE_ROLES", "ADMINISTRATOR") || !message.guild.owner) return message.channel.send(":x: **You do not have the permission to use this command!**");

if(!message.guild.me.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) return message.channel.send(":x: **I do not have the permission to add roles!**")

//define the reason and mutee

let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));

if(!tomute) return message.reply("Couldn't find user.");


let muterole = message.guild.roles.find(`name`, "Muted");
//start of create role
if(!muterole){
  try{
    muterole = await message.guild.createRole({
      name: "Muted",
      color: "#ff0000",
      permissions:[]
    })
    message.guild.channels.forEach(async (channel, id) => {
      await channel.overwritePermissions(muterole, {
        SEND_MESSAGES: false,
        ADD_REACTIONS: false,
        CONNECT: false
      });
    });
  }catch(e){
    console.log(e.stack);
  }
}
//end of create role
let mutetime = args[1];
if(!mutetime) return message.reply(":X: You didn't specify a time!");

await(tomute.addRole(muterole.id));
message.reply(`<@${tomute.id}> has been muted for ${ms(ms(mutetime))}`);
         tomute.send(`Hello, you have been muted in ${message.guild.name} for: **${mutetime}**`).catch(err => console.log(err))

setTimeout(function(){
  tomute.removeRole(muterole.id);
  message.channel.send(`<@${tomute.id}> is no longer muted! Welcome Back!!`);
}, ms(mutetime));
  }
}```
const{red_dark}=require(“../../colors.json”);
常数ms=要求(“ms”);
module.exports={
名称:“静音”,
描述:“使不和谐中的成员静音!”,
用法:“!静音”,
类别:“适度”,
可访问者:“成员”,
别名:[“m”,“nospeak”],
运行:异步(机器人、消息、参数)=>{
//检查命令调用方是否具有使用该命令的权限
如果(!message.member.hasPermission(“管理_角色”、“管理员”)| |!message.guild.owner)返回message.channel.send(:x:*您没有使用此命令的权限!**);
if(!message.guild.me.hasPermission([“管理_角色”,“管理员”])返回message.channel.send(“:x:*我没有添加角色的权限!**”)
//定义原因并静音
让tomute=message.guild.member(message.indications.users.first()| | message.guild.members.get(args[0]);
if(!tomute)返回message.reply(“找不到用户”);
让muterole=message.guild.roles.find(`name`,Muted”);
//开始创建角色
if(!mute角色){
试一试{
muterole=wait message.guild.createRole({
名称:“静音”,
颜色:“ff0000”,
权限:[]
})
message.guild.channels.forEach(异步(通道,id)=>{
等待通道。覆盖权限(互斥角色{
发送消息:false,
添加:false,
连接:false
});
});
}捕获(e){
console.log(e.stack);
}
}
//创建角色结束
设mutetime=args[1];
if(!mutetime)返回message.reply(“:X:您没有指定时间!”);
wait(tomute.addRole(muterole.id));
message.reply(`has mute for${ms(ms(mutetime))}`);
tomute.send(`Hello,您在${message.guild.name}中被静音:*${mutetime}**`).catch(err=>console.log(err))
setTimeout(函数(){
tomute.removole(muterole.id);
message.channel.send(`不再静音!欢迎回来!!`);
},毫秒(秒);
}
}```

首先,由于新节点更新,此行不正确:

let muterole=message.guild.roles.find(`name`,“Muted”)

应更改为以下内容:

let muterole=message.guild.roles.find(r=>r.name==“Muted”)

除此之外,它必须是一些通道权限。我最近发现,如果一个用户(没有特定的mod/管理权限)有“发送消息”来允许他们的角色之一,他们就会绕过静音。若要更改此设置,则必须将其设置为null(中间的灰色选项),以拒绝他们通过静音角色进行对话。例如:

如果我试图让任何扮演“Beta测试者”角色的人保持沉默,他们仍然可以在这个特定的频道里说话,即使沉默的人被拒绝

我希望这有点道理,我希望我消除了一些困惑,这有帮助! 祝你今天愉快