#javascript #discord #discord.js
Вопрос:
Здравствуйте, я новичок в javascript и пытаюсь закодировать бота discord. Все, что я делал, шло хорошо, пока я не попытался заставить своего бота дать кому-то роль. Я хотел, чтобы бот отправил сообщение, если у кого-то нет нужной ему роли администратора, он просто наберет одну команду, и она передаст ее ему.
Мой код для бота, чтобы дать роль «Администратор»:
module.exports = {
name: 'admin',
description: "this is a role giving command!",
execute(message, args){
if(message.member.roles.cache.has('861973430189162538')){
message.channel.send('You already have the role that you have requested!');
}else if(message.member.roles.cache.has('861675046095028225')){
message.member.roles.add('861973430189162538').catch(console.error);
message.channel.send('Here you go');
}else if(message.member.roles.cache.not.has('861675046095028225')) {
message.channel.send('You do not have the permissions to get this role!');
}
}
}
Комментарии:
1. Нет, вы должны отрицать всю ценность:
if (!message.member.roles.cache.has(...))
. Однако в данном конкретном случае вам вообще не нужно второе условие.2. Предположительно, вам не нужно условие if в вашем окончательном варианте, так как это было бы верно по конструкции?
3. Попробовал это ложкой, но не получилось
4. Теему, не могли бы вы перефразировать свой комментарий, потому что я его неправильно понял
5. Для этого нет возможности
.has
. Вместо этого прочитайте значение и отмените его с помощью логического оператора NOT (!
). Но, как также заявил Спунмейстер, вам не нужно это второе условие в этом коде, потому что это отрицательное условие всегда будетtrue
при выполненииelse
части.