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