我正在制作discord.js机器人,但遇到了问题。 我想做到这一点,所以我必须允许谁可以使用我的命令。因此,如果我只想让一个人获得私人命令,那么我只能添加代码,只有他们才能使用它。我不想为他们扮演特定角色,因为我希望他们能够在任何不和谐的服务器中使用它。有人可以帮我吗?
Well ive搜索了该怎么做,但是人们只说与角色有关的事情。
由于没有建议,我目前没有代码。
我不希望出现任何错误,因为我真的不知道该怎么办。
答案 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);
}