首页 > 解决方案 > 禁止使用用户 ID discord.js 的用户

问题描述

我对不和谐机器人编码有点新,我有一个问题。我想要一个禁止命令,该命令将禁止命令中提到的用户具有命令中提供的 ID 的用户。例如:&ban @User#0001 将禁止 User#0001 ,但 如果命令如下所示:&ban 123456789123456789(假设这是 User#0001 的 ID)它仍然会禁止 User#0001(因为它是用户的 ID)。

我有这个代码,如果我提到用户,它会起作用,但如果我输入 ID,它就不起作用。

const Discord = require('discord.js');

module.exports = {
    name: 'testban',
    description: "Executer will ban 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

即使我只提供身份证,我怎么能禁止这个人?

标签: javascriptdiscord.js

解决方案


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

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

推荐阅读