如何禁止不在服务器中的人

Posted

技术标签:

【中文标题】如何禁止不在服务器中的人【英文标题】:How to ban someone that's not in the server 【发布时间】:2020-12-16 16:12:19 【问题描述】:

我想知道是否可以通过User ID 禁止某人。通常,要禁止某人,您会使用GuildMember.ban() method:

GuildMember.ban()

但是,如果用户不在您要禁止他们加入的公会中,则不可能获得他们的GuildMember 对象。有其他方法吗?


使用实际的 Discord 程序,可以在某人加入之前通过User ID 提及他们来禁止某人(例如:<@123456789012345678>)。然后,您可以右键单击提及,然后禁止他们:

有没有办法用discord.js 复制这个?


在研究这个问题的过程中,我偶然发现了someone asking the same question as me。接受的答案是使用Guild.ban 函数。

但是,由于我在 Guild class docs 中找不到该方法,并且使用了相同的答案 fetchUser()(已弃用的函数),我得出的结论是它只能在 discord.js v11 中使用。

由于它以前是早期版本中的一个功能,我敢肯定现在我还没有找到一种方法来做到这一点。


最后,我知道我可以将 User ID 添加到数组中,并且每当发出 guildMemberAdd 事件时,我都可以根据该数组检查他们的 User ID,但我仍然想知道是否禁止User ID 的成员是可能的。提前致谢!


编辑: Docs for the v11 Guild.ban() function

【问题讨论】:

【参考方案1】:

在 v12 中,discord.js 将此类与公会成员交互的方法全部移至 GuildMemberManager 类,可通过 guild.members 访问。

您要查找的方法是GuildMemberManager.ban(id)。文档上有一个示例:

guild.members.ban('84484653687267328')
  .then(user => console.log(`Banned $user.username || user.id || user from $guild.name`))
  .catch(console.error);

【讨论】:

很好的答案,谢谢!

以上是关于如何禁止不在服务器中的人的主要内容,如果未能解决你的问题,请参考以下文章

如何解决wordpress中的403禁止错误?

如何检查成员是不是可以在 discord.js v12 中被踢/禁止?

如何使用 JDA 禁止不和谐的人?

禁止.preventDefault()无处不在

如何将更改作为分支推送到不在主线中的远程服务器

服务账号为啥要禁止shell