当我尝试踢比机器人角色更高的人时,它会失败但会发送 msg

时间:2021-06-04 16:01:29

标签: javascript discord bots

如果我尝试踢自己或踢比机器人更高的角色,它会失败,但会发送给提到你被踢的人。如何在机器人踢球失败时停止发送消息。

const BaseCommand = require('../../utils/structures/BaseCommand');
const Discord = require('discord.js');

module.exports = class KickCommand extends BaseCommand {
  constructor() {
    super('kick', 'moderation', []);
  }

  async run(client, message, args) {
    if (!message.member.hasPermission("KICK_MEMBERS")) return message.channel.send("Та энэ коммандыг ашиглах боломжгүй.");
    const mentionedMember = message.mentions.members.first();
    let reason = args.slice(1).join(" ");
    if (!reason) reason = "Шалтгаан өгөгдөөгүй";
    const kickEmbed = new Discord.MessageEmbed()
      .setTitle(`Та ${message.guild.name} сервэрээс хөөгдлөө`)
      .setDescription(`Шалтгаан: ${reason}`)
      .setColor("#ffffb7")
      .setTimestamp()
      .setFooter(client.user.tag, client.user.displayAvatarURL());

    // .kick @user 
    if (!args[0]) return message.channel.send("Хөөх гэж байгаа хүн ээ бататгана уу. \`.kick @user шалтгаан\`");
    if (!mentionedMember) return message.channel.send("Тодотгосон гишүүн энэ сервэрт алга байна.")
    try {
      await mentionedMember.send(kickEmbed);
    } catch (err) {
      console.log(`Гишүүн рүү захидал явуулах боломжгүй байна.`);
    }

    try {
      await mentionedMember.kick(reason);
    } catch (err) {
      console.log(err);
      return message.channel.send("Тодотгосон гишүүнийг хөөх боломжгүй байна.");
    }
  }
}

1 个答案:

答案 0 :(得分:0)

尝试在代码的踢球部分添加return

代码应该是这样的:

    try {
      await mentionedMember.send(kickEmbed);
    } catch (err) {
      return console.log(`Гишүүн рүү захидал явуулах боломжгүй байна.`);
    }

对不起,如果这不起作用,我对编码仍然很陌生