Discord の権限やロールに関するメモ
基本的な定義
「チャンネルを見る」とか「リアクションの追加」みたいな、Discord サーバーに対して行える操作はたくさんある。こういう操作全体が、集合 O としてあることにする
ロールというのは、そのロールが行える操作の集合 R(これは O の部分集合)と、自然数 p と、ユニークな Snowflake ID の 3 つ組として定義される。
R は role, p は position という気持ち
あるユーザが、ロール r_0, r_1, r_2, ..., r_k を持っていたとき、そのユーザが行える操作の集合は、基本的には、各 r_i がもつ操作の集合の和集合をとったものになる
例外:ロールを変更するという操作
じゃあなんで p だの ID だのがいるんだよという話になるが、ここで例外がある
例外として「ロールを変更する」という操作については、追加の判定が生じる
(力尽きたので wip)
todo
ロールを変更する操作におけるp / ID を使った判定ロジックを説明する
チャンネル/チャンネルカテゴリーごとの Allow / Deny / Neutral について説明する