如何使用命令解禁用户?
Posted
技术标签:
【中文标题】如何使用命令解禁用户?【英文标题】:How do I unban user with commands? 【发布时间】:2020-10-13 17:02:19 【问题描述】:我正在尝试发出解除某人禁令的命令。
我已经尝试过member.unban
、message.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
) 中会将其转换为提及用户的字符串,并且不起作用。
您的操作方式也可能行不通,因为用户在被服务器禁止时不会被提及为GuildMember
s。
要解决这个问题,您可以更改您的命令,以便改为通过他们的 ID 取消禁止用户 (!unban 873478935468795467
)。代码将如下所示:
message.guild.members.unban(id)
(id
是一个包含 id 的字符串)
我强烈建议您查看the docs。他们为这些情况提供了很好的例子。
【讨论】:
所以我尝试使用const userid = message.mentions.members.first().id;
来获取 ID,但这不起作用。
您不能提及不在公会中的用户
我注意到了,所以我刚开始用这个人的ID,说这是一个未知的禁令,但他的用户实际上是被禁止的
酷!愿意分享您的工作代码,以作为稍后访问此线程的人的答案吗?以上是关于如何使用命令解禁用户?的主要内容,如果未能解决你的问题,请参考以下文章