【问题标题】:My ban command isn't doing anything discord.js我的禁令命令没有做任何事情 discord.js
【发布时间】:2021-06-25 16:02:09
【问题描述】:

我的禁令命令不起作用有人可以帮助我吗?这是我第一个使用 discord.js 的不和谐机器人。如果有人能告诉我我的错误,为什么它没有做任何事情并且在我做的时候没有回复(a!ban @usera! 是我的机器人前缀。

这是整个命令:

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

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    您不应混用用户和成员。您不能禁止用户,只能禁止成员。当你想禁止一个成员时,你可以使用 mentions.members 而不是 mentions.users

    我已经重写了你的代码,它似乎可以正常工作:

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

    【讨论】:

      猜你喜欢
      • 2021-04-12
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      相关资源
      最近更新 更多