【问题标题】:How to receive a role from a message如何从消息中接收角色
【发布时间】:2019-03-17 18:12:40
【问题描述】:

我一直在尝试制作一个简单的命令,为在聊天中说话的人赋予角色,假设他们说了一个坏话,它会给 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 @everyone 或列出的 ping 之一,我会将其静音。

谁能解释一下这有什么问题?

谢谢。

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

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

    我更改了您的代码,以便机器人在消息中获得第一个角色提及,并检查角色名称是否在您的数组中。

    这是代码:

    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;
      }
    })
    

    注意!文本文件中的角色名称必须与上述相同,注意大小写,否则代码将无法正常工作。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多