忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/05    04« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  »06

Discord の特定ユーザをタイムアウトする bot 案

思考整理のため残す。


Discord サーバの管理人が 24365 で動けるわけではない。そんな中で錯乱した人がいる場合に「管理人でなくても複数人が希望すれば特定のユーザを既定の期間タイムアウトできる」とかそんな bot があったらいいなぁと思った。複数人の合意にしないと管理人でないユーザが独断で気に食わない人を蹴り出せるのでなし。あくまで複数人。

ユーザはスラッシュコマンドでタイムアウトして欲しいユーザを申告する。誰が誰に対してタイムアウトを望んだのかは一般ユーザからは閲覧できないようにする。既定の期間内に規定の票数集まったら対象ユーザは既定の時間タイムアウトされる。期間外の投票は無視される。

データ構造は次のようになるだろうか。

サーバリスト
├サーバ
│├設定
││├既定の期間
││├既定の票数
││└タイムアウト時間
│└対象ユーザリスト
│ ├対象ユーザ
│ │├対象ユーザ ID
│ │└投票リスト
│ │ ├投票
│ │ │├投票した人
│ │ │└投票時刻
│ │ ├投票
│ │ │├投票した人
│ │ │└投票時刻
│ │ └以下略
│ ├対象ユーザ
│ │└以下略
│ ├対象ユーザ
│ │└以下略
│ └以下略
├サーバ
│└以下略
└以下略

新規の投票が発生したタイミングで既存の投票について精査し、既定の期間よりも古いものは破棄する。その上で投票を追加する。

なお、対象ユーザが対象ユーザリストにいない場合は対象ユーザを追加するところから実施する。

追加後の票数を数え、サーバの既定の票数を越えた場合はそのユーザをタイムアウトする。この際、タイムアウトが発生した旨と誰が投票したのかをサーバの管理者に DM で通知する。

タイムアウト発生後、対象ユーザの情報は bot からは抹消する。


なお、bot がユーザのタイムアウトを設定するのはドキュメントを見る限り可能そうである。

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R