Discord.jsのチャンネル関連クラスのまとめ
Discord.jsはオブジェクト指向的に抽象化をしているので、特に種類が多いチャンネル関連のクラスが多くある
つまり「チャンネル」って言ったら「テキストチャンネル」かもしれないし「DMチャンネル」かもしれないという問題
Channelクラス
全てのチャンネルの大本になっているクラス
それらに共通している作成日時、ID、チャンネルの種類、削除メソッドなどがある
GuildChannelクラス
サーバー内のチャンネルを表すクラス
Channelクラスを継承している(つまり上位互換)ので、それの全ての機能が使える
そこに加えて、チャンネルがあるサーバー、その中でのチャンネルの位置、名前などの変更メソッドがある
ただこのGuildChannelクラスが単体で出てくることはなく、継承したものが出てくる
TextChannelクラス
サーバー内のテキストチャンネルを表すクラス
GuildChannelクラスを継承している
メッセージの送信、取得やnsfwの設定、WebHook関連の処理などがある
VoiceChannelクラス
サーバー内のボイスチャンネルを表すクラス
GuildChannelクラスを継承している
ボイスチャンネルの人数や参加する処理などがある
CategoryChannelクラス
サーバー内のカテゴリチャンネルを表す(Discord上ではチャンネルとの表記はないがAPI上はチャンネルの扱い)
GuildChannelクラスを継承している
カテゴリ内のチャンネルが取得できる
NewsChannelクラス
サーバー内のアナウンスチャンネルを表す
コミュニティサーバーでしか利用できない
GuildChannelクラスを継承している
TextChannelクラスとほぼ一緒
ThreadChannelクラス
テキストチャンネルやアナウンスチャンネル内のthreadを表すクラス
アーカイブされたという状態を持ち、その状態になると書けない
参加したという状態もある
親メッセージがある場合そのメッセージidがチャンネルidとなる
StoreChannelクラス
一般ユーザーは使うことができないので割愛
DMChannelクラス
DMチャンネルを表す(これもDiscord上ではチャンネルとの表記は無いがAPI上はチャンネルとしての扱い)
Channelクラスを継承している
DM対象のユーザーやメッセージ系の処理がある
PartialGroupDMChannelクラス
部分的なDMグループチャンネルを表すクラス
メッセージの送信とかのメソッドがなかったり”部分的な”のが引っかかるので要調査...yuta0801.icon