gpt4 book ai didi

javascript - 覆盖权限不起作用| Discord.js 主控

转载 作者:行者123 更新时间:2023-12-02 23:40:26 27 4
gpt4 key购买 nike

我正在将我的机器人转换为与 Discord.js 的主分支一起使用我到达了我的票证命令,它们发生了很大的变化,我设法完成了除了 overwritePermissions 部分之外的所有操作。我不确定为什么代码不起作用。如果我删除底部 2 个 overwritePermissions 部分,它可以正常工作,但所有 3 个部分都存在,则不会执行。

        let role = message.channel.guild.defaultRole;
let role2 = message.guild.roles.find(x => x.name === "Support Team");
message.guild.channels.create(`ticket-test`, {type: 'text'}).then(c => {
c.overwritePermissions({
permissionOverwrites: [{
id: role.id,
deny: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
}]
});
c.overwritePermissions({
permissionOverwrites: [{
id: role2.id,
deny: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
}]
});
c.overwritePermissions({
permissionOverwrites: [{
id: message.author.id,
allow: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
}]
});
});

我已经完成了 console.log(role.id)console.log(role2.id),它们都显示了正确的 id,只是没有执行代码.

最佳答案

您可以简单地在 channel creation options 中列出您的权限覆盖,而不是重复使用 overwritePermissions() 方法。首先。 type 的默认值已经是文本 channel ,因此您也可以省略该选项。最后,你应该始终捕获 Promise。

const everyone = message.guild.defaultRole;
const support = message.guild.roles.find(r => r.name === 'Support Team');

message.guild.channels.create('ticket-test', {
permissionOverwrites: [
{
id: everyone.id,
deny: 'VIEW_CHANNEL'
}, {
id: support.id,
allow: 'VIEW_CHANNEL'
}, {
id: message.author.id,
allow: 'VIEW_CHANNEL'
}
]
}).catch(err => console.error(err));

关于javascript - 覆盖权限不起作用| Discord.js 主控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56104419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com