您如何让特定人员执行命令

时间:2019-06-17 18:34:05

标签: node.js command discord.js

我正在制作discord.js机器人,但遇到了问题。 我想做到这一点,所以我必须允许谁可以使用我的命令。因此,如果我只想让一个人获得私人命令,那么我只能添加代码,只有他们才能使用它。我不想为他们扮演特定角色,因为我希望他们能够在任何不和谐的服务器中使用它。有人可以帮我吗?

Well ive搜索了该怎么做,但是人们只说与角色有关的事情。

由于没有建议,我目前没有代码。

我不希望出现任何错误,因为我真的不知道该怎么办。

1 个答案:

答案 0 :(得分:0)

不仅可以基于角色,还可以通过用户ID限制对命令的访问。每个用户在Discord中都有一个链接到他们的唯一ID。发送消息后,您可以对照允许使用命令的ID来检查作者的ID。

为了存储ID,可以使用json文件或数据库。为了简单起见,在此示例中,我使用了json文件。

示例permitted.json

[
  "189855563893571595",
  "581635015151058944",
  "135190099439779841"
]

示例消息事件:

const permitted = require('./permitted.json'); // path may vary depending on the file location

client.on('message', message => {
  if (!permitted.includes(message.author.id)) return;

  // continue on 
});

“访问”命令示例:

// permitted = required json file
// args[1] = ID argument

const fs = require('fs');

if (message.author.id !== 'yourID') return;

let action;

if (!permitted.includes(args[1])) {
  permitted.push(args[1]);
  action = 'added to';
} else {
  permitted.splice(permitted.indexOf(args[1]), 1);
  action = 'removed from';
}

try {
  fs.writeFileSync('./permitted.json', JSON.stringify(permitted));
  message.channel.send(`That user has been ${action} the permitted list.`);
} catch(err) {
  console.error(err);
}