![](/img/trans.png)
[英]How can I use the 'overwritePermissions' function to either turn on a certain channel's permissions?
[英]How can I fix the overwritePermissions error?
我正在嘗試創建靜音命令。我使用的是 v12 版本。 在編寫此命令時,我陷入了權限部分。 你能幫我命令嗎?
if (!muterole) {
try {
muterole = await message.guild.roles.create({ data: {
name: 'Muted',
color: '#000000',
permission: []
}});
message.guild.channels.cache.forEach(async (channel, id) => {
await channel.overwritePermissions(muterole, {
'SEND_MESSAGES': false,
'ADD_REACTION': false,
'CONNECT': false
});
});
} catch(e) {
console.log(e.message);
}
};
if (user.roles.cache.has(muterole)) return message.channel.send(`**${user.user.username}** Başarıyla tamamlandı.`)
user.roles.add(muterole)
message.channel.send(`**${user.user.username}, Başarıyla mutelendi!**`);
錯誤: <node:4788> UnhandledPromiseRejectionWarning: TypeError [INVALID_TYPE]: Supplied overwrites is not an Array or Collection of Permission Overwrites.
overwritePermissions
需要像這樣的權限字段中的數組。
channel.overwritePermissions([
{
id: muterole.id,
deny: ['SEND_MESSAGES', 'the rest of your permissions'],
},
], 'Needed to change permissions');
您在此處擁有它的方式用於updateOverwrite
,無論如何這是更好的選擇,因為它不會刪除您之前對頻道的所有權限。
因此,要解決此問題,只需將overwritePermissions
替換為updateOverwrite
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.