#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
Я создаю команду, с помощью которой вы можете установить предупрежденную роль для своего сервера. Я столкнулся с проблемой, заключающейся в том, что для предупрежденной роли будет установлено любое значение, которое вы указываете в качестве аргумента команды. Я хочу, чтобы он принимал только действительные идентификаторы ролей, и для этого мне нужно проверить, существует ли роль с указанным идентификатором. Есть ли способ сделать это? Вот мой фрагмент кода, который, вероятно, необходим:
execute(message, args) {
if (!message.member.hasPermission('MANAGE_GUILD'))
return message.channel.send(
'You are missing the permissions to manage the server'
);
let guildID = message.guild.id;
let warnedRole = args;
if (!warnedRole) {
return message.reply('invalid role ID');
}
}
Как вы можете видеть, я пытался сделать это с if
условием, но я понял, что это не сработает, поскольку это установило бы для предупрежденной роли значение, которое вы бы ввели в качестве аргумента команды (даже несколько слов или число, например 12). Итак, есть ли способ проверить, существует ли роль с заданным идентификатором (warnedRole) в гильдии?
Ответ №1:
Предполагая, что вы используете discord.js v12
, вы можете попробовать это:
const role = message.guild.roles.cache.get(args[0]);
// if role does not exist
if (!role) {
// ...
};