我是编码不和谐机器人的新手,但我遇到了问题。我想拥有一个禁止命令,该命令将禁止命令中的提到的用户或具有该命令中提供的ID的用户。例如: &ban @ User#0001将禁止User#0001 但是 如果命令如下所示: &ban 123456789123456789(假设这是用户#0001的ID) 仍然会禁止用户#0001(因为它是用户的ID)。
我有这段代码,如果我提到用户,它会起作用,但是如果输入ID,它就不会起作用。
const Discord = require('discord.js');
module.exports = {
name: 'testban',
description: "Executer will simp for the mentioned user",
execute(message, args){
if (!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send("Invalid Permissions")
let User = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0])
if (!User) return message.channel.send("Invalid User")
if (User.hasPermission("BAN_MEMBERS")) return message.reply("Can't ban that one, he also can ban")
let banReason = args.join(" ").slice(22);
if (!banReason) {
banReason = "None"
}
console.log(`USER = ${User}`)
User.ban({reason: banReason})
var UserID = User.id
console.log(`USER ID = ${UserID}`)
}
}
输入ID时出现的错误是:
message.guild.members.get is not a function
即使我仅提供ID,如何禁止该人?
答案 0 :(得分:2)
如果您使用的是更新版本的discord.js,则需要使用cache
,只需将其更改为:
message.guild.members.cache.get(args[0])