簡體   English   中英

如何修復 overwritePermissions 錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM