Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 如何从消息接收角色_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 如何从消息接收角色

Javascript 如何从消息接收角色,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我一直在尝试做一个简单的命令,给在聊天中说话的人一个角色,比如说他们说了一个不好的词,它会给消息。author静音角色 client.on("message", (message) => { let member = message.guild.members.get(author.id); var array = fs.readFileSync('./pings.txt').toString().split("\n"); if (array.includes(message.

我一直在尝试做一个简单的命令,给在聊天中说话的人一个角色,比如说他们说了一个不好的词,它会给
消息。author
静音角色

client.on("message", (message) => {
  let member = message.guild.members.get(author.id);
  var array = fs.readFileSync('./pings.txt').toString().split("\n");
  if (array.includes(message.content)) {
    member.addRole('556210268418605069')
    message.author.send("You have been muted for using one of the pings.")
    message.author.send("If this had a legit reason to do so please message Collier.")
  } else {
    return;
  }
})
在这种情况下,如果某人ping
@everybody
或列出的ping之一,我将使其静音

有人能解释一下这是怎么回事吗


谢谢。

如果(array.includes(message.content))这一行检查的是,如果消息内容只是一个提及(例如:
CollierPlays:@everybody
),而不是更多,那么就给消息作者一个角色

我更改了您的代码,以便bot获得消息中提到的第一个角色,并检查角色名是否在您的数组中

代码如下:

注意!文本文件中的角色名称必须与前面提到的角色名称相同,请注意小写和大写,否则代码将无法工作。

client.on("message", (message) => {
  let member = message.guild.members.get(author.id);
  var array = fs.readFileSync('./pings.txt').toString().split("\n");
  if (array.includes(message.mentions.roles.first().name)) {
    member.addRole('556210268418605069')
    message.author.send("You have been muted for using one of the pings.")
    message.author.send("If this had a legit reason to do so please message Collier.")
  } else {
    return;
  }
})