大多数功能都可以正常工作,但是此代码基于其余命令,是唯一输出仍然有效的错误消息的代码。
const { MessageEmbed } = require('discord.js');
const { CordCommand } = require('cordclient');
const resolveMember = require('../../util/resolveMember');
module.exports = class extends CordCommand {
constructor(client) {
super(client, {
name: "ban",
desc: "Bans a mentioned member in the server!",
usage: "<@member> <reason>",
group: "moderation",
botPerms: ["BAN_MEMBERS"],
userPerms: ["BAN_MEMBERS"],
guildBound: true
});
};
async run(message, args, client) {
message.delete().catch(()=>{});
if (!(args[0] && args[1])) return this.send("Please provide a Target,
and a Reason.", 10000)
const target = resolveMember(args[0], message.guild.members);
if (!target) return this.send("You didn't provide a valid target!",
10000)
if ((message.member.roles.highest.position <=
target.roles.highest.position) && message.guild.owner.id !==
message.author.id) return this.send("You can't target a member with the
same role as, or a role above you.");
if (!target.bannable) return this.send("I don't have permission to
ban that Member.", 10000)
const reason = args.slice(1).join(" ");
const banEmbed = new MessageEmbed()
.setColor("RED")
.setDescription(`**Punished By:** ${message.author.tag}
(${message.author.id})\n`+
`**Punished User:** ${target.user.tag}
(${target.user.id})\n`+
`**Reason:** ${reason}`).setTimestamp();
return target.ban({ days: 7, reason })
.then(async () => {
const case_ = await client.newCase("Ban", target,
message.member, reason);
banEmbed.setAuthor(`Moderation: Ban [Case ID:
${case_.caseId}]`, target.user.displayAvatarURL)
const guild = await client.getGuild(message.guild.id);
guild.logchannel === "0" ? false :
message.guild.channels.get(guild.logchannel).send(banEmbed);
return this.send("Successfully Banned that member.", 10000)
}).catch(e => {
console.log(e);
return this.send("An Error Ocurred when attempting to Ban
that User!", 10000)
});
};
};
显示的错误消息是
TypeError:builder_.message不是函数
但是从代码中可以看出,没有'builder._message'函数可以阻止这种情况。