🐷

discord.js での特定カテゴリ・チャンネル内の権限確認

2020/09/21に公開

経緯

自身が管理するdisocrdサーバー上でコマンドをdiscordBotに送ることで自動的にテキストチャンネル、ボイスチャンネルを作れるようにしようとしたかったからです。その際に、チャンネルの管理権限の無い人間が実行できては困るのでカテゴリ内でチャンネル管理権限があるかどうか調べる必要があったからです。

発生した問題

サーバー全体に関する権限に関しては下記のコードで確認できるという情報がすぐに出てきました。
 guild.member(メンバーID).hasPermission(権限名)
 サーバーを表すguildのメンバーを指定し、hasPermissionを利用して権限名称を指定すればそのメンバーがその権限を所持しているかを調べることが出来ます。
 しかしながら、同じような形で
category.member(メンバーID).hasPermission(権限名)
とやってもカテゴリ無いにおける権限は獲得できません。category.guildとしても同様です。

実際に行った取得方法

最後に本題の取得方法としては次のようになります。
 category.permissionsFor(メンバーID).has(権限名)
 とすればそのカテゴリ内部でのメンバーが持つ権限を確認することが出来ます。

最後に

皆さんがこのような機能を利用する機会があるかは分かりませんが、お役にたてれば幸いです。

Discussion