禁止用户使用用户ID discord.js

时间:2020-08-26 13:40:22

标签: javascript discord.js

我是编码不和谐机器人的新手,但我遇到了问题。我想拥有一个禁止命令,该命令将禁止命令中的提到的用户或具有该命令中提供的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,如何禁止该人?

1 个答案:

答案 0 :(得分:2)

如果您使用的是更新版本的discord.js,则需要使用cache,只需将其更改为:

message.guild.members.cache.get(args[0])