discord.js从频道权限中删除用户

时间:2018-10-28 14:33:31

标签: javascript discord.js

我想知道是否有人可以从文本通道权限的允许用户/角色列表中删除用户。我知道我可以简单地拒绝频道中该用户的READ_MESSAGES权限,以使房间对他们不可见。有没有办法让我的机器人将所有允许的用户从权限列表中全部删除?

谢谢。

2 个答案:

答案 0 :(得分:2)

截至撰写此答案(2021 年 3 月 30 日)和 Discord.js 版本 12.5.1 时,答案是:

// type is either 'member' or 'role'
// id is either the user or role id

const id = "12345678910112"
const type = "member"

await channel.permissionOverwrites.find(o => o.type === type && o.id === id).delete()

如果要删除多个用户/角色:

const type = 'member'
const ids = ['123456789012323', '1234567890123455']

await Promise.all(channel.permissionOverwrites.filter(o => o.type === type && ids.includes(o.id)).map(o => o.delete()));

如果您想删除每个用户/角色:

const type = 'member'

await Promise.all(channel.permissionOverwrites.filter(o => o.type === type).map(o => o.delete()));

答案 1 :(得分:0)

使用replacePermissionOverwrites

channel.replacePermissionOverwrites({
  "overwrites": channel.permissionOverwrites.filter(o => o.id !== idOfUserToRemove)
});