如果用户具有权限,如何发送消息

时间:2020-10-14 12:15:41

标签: node.js discord.js

好的,我试图发出一个宣布命令,使机器人说出用户要求它写的内容, 该命令运行正常,但主要问题是我不希望不是主持人/管理员的用户使用此命令,而我尝试使用if (user.hasPermission("KICK_MEMBERS"),但是我根本不知道如何在我的代码中实现此命令,在这里)

const Discord = require('discord.js');
module.exports = {
    name: 'announce',
    description: "announce",
    execute(message, args){
        const developerEmbed = new Discord.MessageEmbed()
        .setColor('#0099ff')
        .setTitle(`failed to send message`)
        .setAuthor('♥Aiko♥', 'https://i.imgur.com/1q9zMpX.png')
        .setDescription('please mention the channel first(if this promblem persists contact the developer)')
        .setTimestamp()
        .setFooter(`©Revenge#7005 | Requested by ${message.author.tag}.`);
        if(message.mentions.channels.size === 0) {
            message.channel.send(developerEmbed);
        }
        else {
            let targetChannel = message.mentions.channels.first();
    
            const args = message.content.split(" ").slice(2);
            let userMessage = args.join(" ");
            targetChannel.send(userMessage);
            message.delete();
            
        }
    }
}

是的,有什么主意如何让漫游器检查许可,然后在用户拥有许可的情况下发送消息? 我对编码很陌生,这个机器人是我的第一个更大的项目,对不起,如果这个问题看起来很愚蠢,

1 个答案:

答案 0 :(得分:1)

确保使用message.member代替user,并且应该在代码的开头实现它。

module.exports = {
 name: 'announce',
 description: "announce",
 execute(message, args) {
  if (!message.member.hasPermisson('KICK_MEMBERS')) // if member doesn't have permissions
   return message.channel.send('Insufficient Permissions');
 
  // rest of your code...