简体   繁体   English

我的禁令命令没有做任何事情 discord.js

[英]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.这是我的第一个 discord 机器人与 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!如果有人能告诉我我的错误,为什么它没有做任何事情并且当我做( a!ban @user )时没有回复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 .当你想禁止一个成员时,你可以使用mentions.members mentions.users

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));
    }
  }
};

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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