【问题标题】:send error message or without permission on the channel发送错误消息或未经频道许可
【发布时间】:2021-03-01 15:22:45
【问题描述】:

我的机器人在某些服务器上遇到了一些问题,问题是缺少权限,当机器人尝试执行它在服务器上没有权限的功能时会发生这种情况,并提醒机器人的用户它有没有权限在服务器上执行命令,我放了 2 个函数,以便它警告成员它没有足够的权限,但它没有前进,因为机器人没有在频道上发送消息说它没有有权限

他告诉成员他不允许创建邀请的第一个函数是

if (!message.guild.member(bot.user).hasPermission('CREATE_INSTANT_INVITE')) { return message.channel.send('I am not allowed to create invitations.');}

第二个是

} catch (e) { console.log(e) return message.reply(`The following error occurred :( \`${e.message}\` add the required permission \`MANAGE_INVITES\`.`);

const ms = require('parse-ms')
const { DiscordAPIError, MessageEmbed } = require("discord.js");
const { invalid } = require("moment");
module.exports = {
  name: "jogar",
  description: "Set the prefix of the guild!",
  category: "economia",
  run: async (bot, message, args) => {
    
   
      if (!message.guild.member(bot.user).hasPermission('CREATE_INSTANT_INVITE')) { return message.channel.send('Eu não\ tenho permissão para fazer isso!'); 
    }
    
    const { chunk } = require('../../functionsss');

    let guild = bot.guilds.cache.get("759003907858104350");
    let emoji = guild.emojis.cache.find(emoji => emoji.name === 'loading');
    let emoji2 = guild.emojis.cache.find(emoji => emoji.name === 'check');

    if(!message.member.voice.channel) return message.reply(`Você precisa está conectado ao um canal de voz para procurar partida!`)

    const voiceChannels = message.guild.channels.cache.filter(c => c.type === 'voice');
let count = 0;

const vo = message.member.voice.channel.members.size

for (const [id, voiceChannel] of voiceChannels) count += voiceChannel.members.size; 

    let membro = message.author;
 
    let newInfo = args.join(' ');
    if (!newInfo) return message.reply('Insira o codigo da sala do among! **a!jogar BCETYJ**');
    if (newInfo.length > 6) return message.channel.send(`**Max \`6\` Caracteres permitidos!**`);
    let newsInfo = chunk(newInfo, 42).join('\n');
    let embed = new Discord.MessageEmbed();
    try {
    let channel = message.member.voice.channel;
      
        channel.createInvite({
            maxAge: 3600, // 0 = infinite expiration
            maxUses: 10 // 0 = infinite uses
          })
            .then(invite=>{
                embed
                .setTitle(`${emoji} Procurando partida..`)
                .setColor('RANDOM')
                .setTimestamp()
                .setDescription(`Pessoal <@${membro.id}> está procurando mais gente para jogar!
                \n<:info:775212992895254548> **Informações:**
                **・Canal:** ${channel}
                **・Codigo:** ${newsInfo}
                **・Jogadores:** ${vo}
                \n[Entrar na partida](https://discord.gg/${invite.code})`)
                .setThumbnail('https://attackofthefanboy.com/wp-content/uploads/2020/09/Among-Us-3.jpg')
                message.channel.send(embed)
                message.react("✅");
            })

              } catch (e) {
                console.log(e)
                return message.reply(`The following error occurred :( \`${e.message}\` add the required permission \`MANAGE_INVITES\`.`);
              }}}```

【问题讨论】:

    标签: discord discord.js bots


    【解决方案1】:

    我以前遇到过这个问题,我花了几个小时排除故障。我最终发现这是我正在寻找权限的方式。 Discord.js v12 对此类功能添加了许多更改。我建议改变

    (!message.guild.member(bot.user).hasPermission('CREATE_INSTANT_INVITE'))
    

    (!message.guild.me.hasPermission("Create_Instant_Invite"){
      //rest of your code
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      相关资源
      最近更新 更多