简体   繁体   中英

My ban command isn't doing anything discord.js

My ban command isn't working can anybody help me? This is my first discord bot with discord.js. If anyone could tell me my mistake on why it is not doing anything and not replying when I do ( a!ban @user ) the a! is my prefix for the bot.

This is the whole command:

const Discord = require("discord.js");
const { MessageEmbed } = require("discord.js");
const { Color } = require("../../config.js");

module.exports = {
  name: "ban",
  aliases: [],
  description: "Ban A Member!",
  usage: "Ban <Mention Member>",
  run: async (client, message, args) => {
    //Start
    if (!message.member.hasPermission("BAN_MEMBERS"))
      return message.channel.send(
        `You Don't Have Permission To Use This Command!`
      );

    let Member = message.mentions.users.first();

    if (!Member)
      return message.channel.send(
        `Please Mention A Member That You Want To Ban!`
      );

    if (!message.guild.members.cache.get(Member.id))
      return message.channel.send(`Please Mention A Valid Member!`);

    if (Member.id === message.author.id)
      return message.channel.send(`You Can't Ban Your Self!`);

    if (Member.id === client.user.id)
      return message.channel.send(`Please Don't Ban Me ;-;`);

    if (Member.id === message.guild.owner.user.id)
      return message.channel.send(`You Can't Ban Owner Of Server xD!`);

    let Reason = args.slice(1).join(" ");

    let User = message.guild.member(Member);

    if (!User.bannable) return message.channel.send(`I Can't Ban That Member, Maybe They Are Higher Than My Role`);

    try {
      console.log(`Member Is Going To Get Ban!`);
      setTimeout(function() {
        User.ban({ reason: `${Reason || "No Reason Provided!"}` });
      }, 2000);
      let embed = new Discord.MessageEmbed()
        .setColor(Color)
        .setTitle(`Member Banned!`)
        .addField(`Moderator`, `${message.author.tag} (${message.author.id}`)
        .addField(`Banned Member`, `${Member.tag} (${Member.id})`)
        .addField(`Reason`, `${Reason || "No Reason Provided!"}`)
        .setFooter(`Requested by ${message.author.username}`);
      if (User && Member.bot === false)
        Member.send(
          `You Have Been Banned From **${message.guild.name}** For ${Reason ||
            "No Reason Provided!"}`
        );
      message.channel.send(embed);
      console.log(
        `User: ${Member.tag} (${Member.id}) Just Got Banned From ${
          message.guild.name
        } For ${Reason || "No Reason Provided!"}`
      );
    } catch (error) {
      return message.channel
        .send(
          `I Can't Ban That Member Maybe Member Has Higher Role Than Me & My Role Is Lower Than Member!`
        )
        .then(() => console.log(error));
    }

    //End
  }
};

You should not mix users and members. You can't ban a user, you can only ban members. As you want to ban a member, instead of mentions.users you could use mentions.members .

I've rewritten your code and it seems to be working:

module.exports = {
  name: "ban",
  aliases: [],
  description: "Ban A Member!",
  usage: "Ban <Mention Member>",
  run: async (client, message, args) => {
    if (!message.member.hasPermission('BAN_MEMBERS'))
      return message.channel.send(
        `You Don't Have Permission To Use This Command!`,
      );

    let member = message.mentions.members.first();

    if (!member)
      return message.channel.send(
        `Please Mention A Member That You Want To Ban!`,
      );

    if (member.id === message.author.id)
      return message.channel.send(`You Can't Ban Your Self!`);

    if (member.id === client.user.id)
      return message.channel.send(`Please Don't Ban Me ;-;`);

    if (member.id === message.guild.owner.user.id)
      return message.channel.send(`You Can't Ban Owner Of Server xD!`);

    let reason = args.slice(1).join(' ') || 'No Reason Provided!';

    if (!member.bannable)
      return message.channel.send(
        `I Can't Ban That Member, Maybe They Are Higher Than My Role`,
      );

    try {
      console.log(`Member Is Going To Get Ban!`);
      setTimeout(function () {
        member.ban({ reason });
      }, 2000);
      let embed = new Discord.MessageEmbed()
        .setColor(Color)
        .setTitle(`Member Banned!`)
        .addField(`Moderator`, `${message.author.tag} (${message.author.id}`)
        .addField(`Banned Member`, `${member.user.tag} (${member.id})`)
        .addField(`Reason`, reason)
        .setFooter(`Requested by ${message.author.username}`);
      if (member && !member.bot)
        member.send(
          `You Have Been Banned From **${message.guild.name}** For ${reason}`,
        );
      message.channel.send(embed);
      console.log(
        `User: ${member.tag} (${member.id}) Just Got Banned From ${message.guild.name} For ${reason}`,
      );
    } catch (error) {
      return message.channel
        .send(
          `I Can't Ban That Member Maybe Member Has Higher Role Than Me & My Role Is Lower Than Member!`,
        )
        .then(() => console.log(error));
    }
  }
};

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM