首页 > 解决方案 > 使用 permissionOverwrite 为角色通道赋予特定权限

问题描述

我目前正在开发一个 Ticket Bot,我遇到了我的问题permissionOverwrites,我想授予我的员工查看和发送消息的权限,但我尝试过的他们的方式无法正常工作。

这是代码:

permissionOverwrites: [
    {
        id: user.id,
        allow: ["SEND_MESSAGES", "VIEW_CHANNEL"]
    },
    {
        id: reaction.message.guild.roles.everyone,
        deny: ["VIEW_CHANNEL"]
    },
    {
        id: reaction.message.guild.roles.staff,
        allow: ["SEND_MESSAGES", "VIEW_CHANNEL"]
    }
],

标签: discorddiscord.js

解决方案


message.channel.createOverwrite(RoleResolvable, {
  FLAG: true
})
  .then(channel => console.log(channel.permissionOverwrites.get(message.author.id)))
  .catch(console.error);

RoleResolvable可以是角色 ID(雪花)或角色,您可以像这样获取角色:

const role = message.guild.roles.find(role => role.name === "Staff");

您可以通过的标志是Bitwise Permission Flags


推荐阅读