【发布时间】:2021-10-13 01:30:57
【问题描述】:
我正在处理一个禁止命令。我希望它像 MEE6、Carl、Dyno 那样禁止。您可以提及用户或指定他们的帐户 ID。这是我的代码:
const Discord = require('discord.js')
module.exports = {
name: "ban",
description: "ban someone",
execute: async(client, message, args) => {
if(!message.member.hasPermission("BAN_MEMBERS")) return message.reply("you don't have enough permissions to use this command.").then(m => m.delete({ timeout: 5000 }));
var guild = message.guild
let target = message.mentions.members.first() || guild.members.fetch(args[0])
if(!target) return message.reply("please mention someone to ban.").then(m => m.delete({ timeout: 5000 }));
if(target.hasPermission("MANAGE_MESSAGES")) return message.reply("you cannot ban a staff member.").then(m => m.delete({ timeout: 5000 }));
if(target.id === message.author.id) {
return message.reply("you cannot ban yourself.").then(m => m.delete({ timeout: 5000 }));
}
if(target.id === client.user.id) {
return message.reply("you cannot ban the bot.").then(m => m.delete({ timeout: 5000 }));
}
let reason = args.slice(1).join(' ')
if(!reason) reason = "No reason given.";
let dmembed = new Discord.MessageEmbed()
.setTitle("You have been banned from Rice Farm #11")
.addField("Moderator", message.author)
.addField("Reason", `${reason}`)
.setDescription(`.`)
.setColor("RED")
.setFooter(``)
.setTimestamp();
await target.send(dmembed)
await message.channel.send(`**${message.author.tag}** banned **${target.user.tag}** indefinitely.\nReason: *${reason}*.`)
await target.ban({reason:reason})
let reportChannel = message.guild.channels.cache.find(
(x) => x.name === 'logs'
);
let logchat = new Discord.MessageEmbed()
.setTitle("Member Banned")
.addField("Target", `${target.user} (${target.user.id})`)
.addField("Moderator", `${message.author} (${message.author.id})`)
.addField("Reason", `${reason}`)
.setColor("GREEN")
.setFooter(`ID: ${Math.floor(Math.random() * 100000000000000)}`)
.setTimestamp()
.setThumbnail(target.user.displayAvatarURL());
await reportChannel.send(logchat)
}
}
当我尝试禁止使用 ID 时,出现错误:(node:927) UnhandledPromiseRejectionWarning: TypeError: target.hasPermission is not a function
我的目标是让机器人仅在提及 args[0] 时检查成员是否具有权限。 我知道错误很明显,但我该如何解决呢?
【问题讨论】:
-
如果你理解错误,然后想办法解决它......
-
Stackoverflow 的工作原理是列出您的尝试以及您已经尝试过的内容......您没有做到这一点
-
@PLASMAchicken 我在哪里说我理解错误?
-
> 我知道错误很明显,但我该如何解决呢?
-
如果我明白错误很明显,这并不意味着我知道如何解决这个问题
标签: javascript node.js discord discord.js bots