Я пытаюсь создать бота discord в основном просто для развлечения, но, похоже, я не могу заставить операторы if else, используемые в моей команде kick, работать должным образом

#javascript #discord #discord.js

#javascript #Discord #discord.js

Вопрос:

часть команды kicking работает правильно, а затем корректно отправляет сообщение о том, что она ударила упомянутого человека. Однако я хочу, чтобы бот отправил сообщение о том, что вам нужно упомянуть пользователя, если пользователь не был упомянут. Я также хочу, чтобы бот отправил сообщение, если у игрока, пытающегося использовать бота, нет надлежащих разрешений, чтобы ударить кого-то, или если бот не может ударить человека, которого пользователь пытается использовать для удара ботом.

Это мой код для того, что я пытаюсь сделать.

 Crashbot.on('message', message => {
  if (message.member.hasPermission("KICK_MEMBERS")) {
    if (message.content.startsWith(prefix   'kick')) {
      const user = message.mentions.users.first();
      if (user) {
        const member = message.guild.member(user);
        if (member) {
          member.kick('optional reason that will display in the audit logs')
            .then(() => {
              // We let the message author know we were able to kick the person
              message.reply(`Successfully kicked ${user.tag}`);
            })
            .catch(err => {
              message.reply('I was unable to kick that user');
              console.error(err);
            });
        } else {
          message.reply("You need to mention a user to kick");
        }
      }
    }
  }
});
  

Комментарии:

1. Можете ли вы предоставить более конкретные подробности по проблеме? Что вы привязали?

Ответ №1:

Это тот, который я использую. Он проверяет, упоминали ли вы что-либо для начала, он выдает вам предупреждающее сообщение, если он не может найти пользователя, это не сработает, если у вас нет разрешения пинать людей, и если он не может пнуть человека, он скажет вам, что он не мог его пнуть. Кроме того, вы можете указать необязательную причину для запуска после.

Пример использования: !kick @Apolko24 Неправильное использование слов

 const kUser = message.guild.member(message.mentions.users.first());
if (!args[0]) return message.channel.send('Please mention someone');
if (!kUser) return message.channel.send(`I can't find ${args[0]}`);
if (!message.member.hasPermission('KICK_MEMBERS')) return message.channel.send("You can't kick users");
if (kUser.hasPermission('MANAGE_GUILD')) return message.channel.send("That user can't be kicked");

const kReason = args.join(" ").slice(22);
if (kReason) {
  const kickEmbed = new MessageEmbed()
  .setTitle("Kick")
  .setColor(0xbbffff)
  .addField("Kicked user:", `${kUser}`)
  .addField("Kicked by:", `${message.author}`)
  .addField("Reason", kReason)

  message.guild.member(kUser).kick();
  message.channel.send(kickEmbed);
} else {
  const kickEmbed = new MessageEmbed()
  .setTitle("Kick")
  .setColor(0xbbffff)
  .addField("Kicked user:", `${kUser}`)
  .addField("Kicked by:", `${message.author}`)

  message.guild.member(kUser).kick();
  message.channel.send(kickEmbed);
}
  

(вы должны поместить это в свое заявление if (message.content.StartsWith(prefix ‘kick’)))