如何使用命令解禁用户?

Posted

技术标签:

【中文标题】如何使用命令解禁用户?【英文标题】:How do I unban user with commands? 【发布时间】:2020-10-13 17:02:19 【问题描述】:

我正在尝试发出解除某人禁令的命令。

我已经尝试过member.unbanmessage.guild.unban 和当前的一个, message.guild.members.unban.

我不太确定该怎么做。

这是我当前的代码:

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

    module.exports = 
        name: "unban",
        description: "unbans a member from the server",
        
    
        async run (client, message, args) 
    
            if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send('You can\'t use that!')
            if(!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send('I don\'t have the permissions.')
    
            const member = message.mentions.members.first();
    
            if(!args[0]) return message.channel.send('Please specify a user');
    
    
    
            
    
            let reason = args.slice(1).join(" ");
    
            if(!reason) reason = 'Unspecified';
    
            message.guild.members.unban(`$member`, `$reason`)
            .catch(err => 
                if(err) return message.channel.send('Something went wrong')
            )
    
            const banembed = new Discord.MessageEmbed()
            .setTitle('Member Unbanned')
            .addField('User Unbanned', member)
            .addField('Unbanned by', message.author)
            .addField('Reason', reason)
            .setFooter('Time Unbanned', client.user.displayAvatarURL())
            .setTimestamp()
    
            message.channel.send(banembed);
    
    
        
    

我的命令提示符没有出现任何错误,但这就是不和谐中显示的内容:Image 并且该用户仍然未被禁止。

【问题讨论】:

【参考方案1】:

您必须将UserResolvable 传递给.unban() 方法。将 member 对象放入 template string ($member) 中会将其转换为提及用户的字符串,并且不起作用。

您的操作方式也可能行不通,因为用户在被服务器禁止时不会被提及为GuildMembers。

要解决这个问题,您可以更改您的命令,以便改为通过他们的 ID 取消禁止用户 (!unban 873478935468795467)。代码将如下所示:

message.guild.members.unban(id)

id 是一个包含 id 的字符串)

我强烈建议您查看the docs。他们为这些情况提供了很好的例子。

【讨论】:

所以我尝试使用 const userid = message.mentions.members.first().id; 来获取 ID,但这不起作用。 您不能提及不在公会中的用户 我注意到了,所以我刚开始用这个人的ID,说这是一个未知的禁令,但他的用户实际上是被禁止的 酷!愿意分享您的工作代码,以作为稍后访问此线程的人的答案吗?

以上是关于如何使用命令解禁用户?的主要内容,如果未能解决你的问题,请参考以下文章

discord.js 如何使用代码撤销对被禁止用户的禁令?

discord.js v12 解禁命令

Discord.js 解禁所有用户

使用 discord.js v12 解禁命令

cPanel/WHM IP Ban - 如何解禁 IP

错误 [BAN_RESOLVE_ID]:无法将用户 ID 解析为解禁