Вы можете ограничить доступ к командам не только по ролям, но и по идентификаторам пользователей.Каждый пользователь имеет уникальный идентификатор, связанный с ним в Discord.Когда сообщение отправлено, вы можете сравнить идентификатор автора с теми, которым разрешено использовать команды.
Для хранения идентификаторов вы можете использовать файл 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);
}