Позвольте указанным мной ролям использовать команду - PullRequest
0 голосов
/ 07 января 2020

Я создал своего бота Discord для Minecraft, но у меня есть команда "satışilanı". Я хочу, чтобы эта команда использовала только людей с указанной мной ролью, но я не могу, чтобы кто-нибудь мог мне помочь?

const Discord = require('discord.js');
const moment = require('moment');

const cooldown = new Set();
exports.run = async(client, message, ops) => {
    let args = message.content.split(' ').slice(1).join(' ');
    message.delete();
    if (cooldown.has(message.author.id && message.guild.id)) {
        return message.channel.send('**:x: [YAVAŞLA] :x:** Çok hızlı ilan gönderiyorsun! **5 Dakika** beklemelisin!');
    }
    if (args.length < 1) {
        return message.channel.send(`**İlan detaylarını iletmelisin!** ${message.author}`);
    }
    if (message.member.roles.some(role => role.name === 'Whatever')) {
        return message.channel.send(`**Ticaretçi rolüne sahip olman gerekiyor!**`);
    }   
    cooldown.add(message.author.id && message.guild.id);
    setTimeout(() => {
        cooldown.delete(message.author.id && message.guild.id);
    }, 300000);
    let guild = message.guild;
    const cnl = client.channels.get('613397862545358888');
    message.channel.send(`**Hey, ${message.author}, biz satış ilanını yayınladık! :white_check_mark:`);
    const embed2 = new Discord.RichEmbed()
        .setAuthor(`MuzGO Pazar ${message.author.tag} tarafından kullanıldı!`, message.author.displayAvatarURL)
        .addField('**MuzGO Satış İlanı :pencil: **', `**İlanı Gönderen: :speaking_head: ** ${message.author.tag}`,`İlanın Gönderildiği Kanal` , '#『?』satılık-ürünler')
        .setThumbnail(message.author.displayAvatarURL)
        .setFooter(`${moment().format('MMMM Do YYYY, h:mm:ss a')}`)
        .setColor("#ffd700");
};

Здесь, вероятно, неправильно, я не могу понять.

if (message.member.roles.some(role => role.name === 'Whatever')) {
            return message.channel.send(`**Ticaretçi rolüne sahip olman gerekiyor!**`);
        }   

1 Ответ

1 голос
/ 08 января 2020
message.member.roles.some(role => role.name === 'Whatever')

Возвращает логическое значение, true, если у участника есть роль, false, если его нет. Таким образом, чтобы отправить сообщение, если участник не имеет роли, необходимо добавить !, чтобы инвертировать условие:

if (!message.member.roles.some(role => role.name === 'Whatever')) {
        // if the condition above is false, so the member doesn't have the role
        return message.channel.send(`**Ticaretçi rolüne sahip olman gerekiyor!**`);
}
...