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

标签 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() (不推荐使用的函数),因此我得出的结论是它只能在 discord.js v11 中使用。
由于它以前是早期版本中的一个功能,我敢肯定现在我还没有找到一种方法可以做到这一点。

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

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

最佳答案

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

关于javascript - 如何禁止不在服务器中的人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63621712/

相关文章:

javascript - 无法在 Chrome 扩展程序中运行内容脚本

javascript - 传递方法时访问javascript实例成员

javascript - Webkit 浏览器不允许我设置 CORS 预检 header

firefox - 自动启动 x-server 和自己的服务

node.js - 向特定 channel 发送消息,不起作用

node.js - 为什么运行app.js会显示错误: Cannot find module 'discord.js'

javascript - 在 jQuery 中检查 HTML 元素的显示值并保存到 Cookie

javascript - 无法使用 Web Video Kit API 将视频发布到 Tiktok

node.js - 应用程序使用(验证器()); ^ 类型错误 : validator is not a function

javascript - 检查 channel 名称