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

时间:2020-08-27 17:56:18

标签: javascript node.js discord.js

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

GuildMember.ban()

但是,如果某个用户不在行会中但您想禁止他们,则不可能获得其GuildMember对象。有替代方法吗?


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

example

是否可以使用discord.js复制此内容?


在研究此问题期间,我偶然发现了someone asking the same question as me。可接受的答案是使用Guild.ban函数。

但是,由于我无法在Guild class docs中找到该方法,并且使用了相同的答案fetchUser()(已弃用的函数),因此得出的结论是,该方法仅在{{ 1}}。

由于它以前是早期版本中的函数,所以我确定现在还没有找到它的方法。


最后,我知道我可以将discord.js v11添加到一个数组中,并且每当发出User ID事件时,我都可以针对该数组检查它们的guildMemberAdd,但是我会仍然想知道是否可以通过User ID禁止成员。预先感谢!


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

1 个答案:

答案 0 :(得分:4)

在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);