让我指定的角色使用命令

Posted

技术标签:

【中文标题】让我指定的角色使用命令【英文标题】:Let the roles I specify use the command 【发布时间】:2020-04-25 01:02:51 【问题描述】:

我为我的世界制作了我的 Discord 机器人,但我有命令“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】:
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!**`);

【讨论】:

没问题!您可以通过将我的答案标记为正确来将主题设置为已回答 为什么不在some 方法中反转相等检查? 因为这意味着如果你有其他角色而不是“随便”,它就行不通。但是,您可以反转相等检查,但将 some 替换为 every。喜欢:if (message.member.roles.every(role =&gt; role.name !== 'Whatever'))

以上是关于让我指定的角色使用命令的主要内容,如果未能解决你的问题,请参考以下文章

分配/删除不和谐角色

Discord Py - 如何使用文本命令向公会的所有成员添加多个角色

ECS CLI - 您不能为需要服务相关角色的服务指定 IAM 角色

我怎样才能让我的角色对角移动?

Discord.NET 分配角色

如何修复“提供的参数既不是用户也不是角色”。