javascript - 错误覆盖权限
问题描述
message.guild.channels.create(`ticket-${message.author.username}`).then
(channel => channel.overwritePermissions(Support, {
SEND_MESSAGES: true,
READ_MESSAGES: true
}));
channel.overwritePermissions(everyone, {
SEND_MESSAGES: false,
READ_MESSAGES: false
});
channel.overwritePermissions(message.author, {
SEND_MESSAGES: true,
READ_MESSAGES: true
}); {
}
我在创建频道时不知道如何添加权限,有人可以帮我吗?
解决方案
第一个错误是您正在使用Support
,everyone
和message.author
,这些都需要是引用角色 ID 或成员 ID 的 ID
这不是错误的一部分,但是因为您问过:如果您查看文档,<GuildChannelManager>.create()
您可以看到第二个参数是您可以指定的选项permissionOverwrites
,因此您可以这样做而不是修改覆盖.then
https://discord.js.org/#/docs/main/stable/class/GuildChannelManager?scrollTo=create
msg.guild.channels.create(`ticket-${message.author.username}`, {
type: 'text',
permissionOverwrites: [
{
id: "SUPPORT_ROLE_ID",
allow: ['SEND_MESSAGES', 'READ_MESSAGES'],
},
{
id: message.author.id,
allow: ['SEND_MESSAGES', 'READ_MESSAGES'],
},
{
id: message.guild.roles.everyone.id,
allow: ['SEND_MESSAGES', 'READ_MESSAGES'],
}
],
});
推荐阅读
- localization - 表格完成器的翻译不起作用
- c++ - 有没有办法在不安装 141 的情况下使用使用 Platformtoolset 141 和 Visual Studio 2019 编译的 Boost 1_72 编译 C++ 代码?
- r - 如何将零填充到空白日期?
- ssh - 带有 Internet 客户端的 Rundeck 服务器
- reactjs - 删除使用 React 中的自定义组件创建的 svg 中的换行符
- reactjs - Plesk/React/Express - 起点是 (React) index.html。但我不能做后端请求
- css - Less mixin 不适用于变量选择器
- javascript - 如何向子组件发送函数?
- google-cloud-dataflow - 启用调试|谷歌云数据流的跟踪工作器日志
- laravel - Laravel 中不存在方法 Illuminate\Auth\SessionGuard::users