如何禁止不在服务器中的人
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);
【讨论】:
很好的答案,谢谢!以上是关于如何禁止不在服务器中的人的主要内容,如果未能解决你的问题,请参考以下文章