TK Assistantの大規模更新パッチノート

こんにちは、鉄道訓練部管理者のJPSG57thです。
TK Assistantは鉄道訓練部のサーバーにおける多機能Botです。そして私が人生で初めてまともに稼働したBotであり、運用開始の25年7月から約7か月も頑張っています。

今回のアップデートは26年2月16日及び2月17日に実施した大型アップデートで追加・変更された機能を紹介します。


大きな変更点

  • コマンドプレフィックスを’!’から’/’に変更しました。
  • レベリング機能を実装しました。
  • 公式HPに投稿したお知らせ・ブログを特定のチャンネルに転送する機能を実装しました。
  • サウンドボードの削除申請をコマンド上で行えるようにしました。
  • 指導運転士から送られるフィードバックに画像や動画の添付がより簡単にできるようにしました。
  • その他運営関係者向けにコマンドを追加しました。

アップデートの経緯

26年2月16日に鉄道訓練部でかなりお世話になっているProbotの運営よりアナウンスがありました。その一部を紹介します:

この中の「The Leveling System will become Premium」(訳:レベリング機能はプレミアム化されます)とありますが、当団体は予算の都合上プレミアムに加入していません。当団体のシフト制度に「Probotにおけるレベルが10以上であれば、シフトのホストの権利を付与する」とあります。つまり、このレベリングが使えなくなることでシフト運営が崩壊する危機があります。それを乗り越えるためにTK Assistantにレベリング機能を導入することにしました。
また、以前からコマンドの使いにくさや公式HPに投稿したものをより多くのユーザーに知ってもらいたいなどと思って様々な機能を追加しました。


コマンドプレフィックスの変更について

コマンドプレフィックスとはBotを呼び起こす文字のことを指します。メジャーなBotだと/(スラッシュ)を用います(例: /verify (Bloxlinkの認証コマンド)など)。!(エクスクラメーションマーク)を例にすると!sh s(shovelの起動コマンド)があります。また、m!p <URL>(Jockie Musicの起動コマンド)のように記号を最初に置かない場合もあります。
元々TK Assistantは!(エクスクラメーションマーク)で動作していました。例えば!sound <名称>で指定したサウンドボードを流す機能がありました。

このコマンドプレフィックスの最大のメリットはコードが楽になることです。対象に/(スラッシュ)にしてしまうとdiscord.app_commandsを追加する必要が生じます。面倒くさいですね。正直私もそれが嫌だったので最初から!(エクスクラメーションマーク)を導入しましたが、機能を拡大していくうちに限界を感じたのでついに変更しました。
変更した結果、かなり便利になりました:

このように流せるものが表示されましたし、それを押せば全て打つ必要はございません。なんて便利なんだ~~~
今まで!sound awsproceedと打っていたのが/soundと打っただけですぐに出てきます。
また、/soundaddコマンドも便利になりました。今までのコマンドプレフィックスだと名称にスペースを使えませんでした。例えばPen Pineapple Apple Penというサウンドボードを追加するときはPPAPに省略したり(面倒だから皆そうするよね)、Pen-Pineapple-Apple-Penみたいに無理やりつなげる必要がありました。しかし、今回のアップデートではきちんとスペースも使えるようになったので大変便利になりました。


レベリング機能の実装

元々Probotの機能にありましたが、2月20日より改悪アップデートが行われるのを知ったので急いで追加しました。
一般的にレベルはユーザーがサーバー内で何回発言したのかに応じてXPを付与し、そのXPが一定数を超えたらレベルアップという扱いをします。そのXPはユーザーが1分ごとに発言することでランダムに付与され、特定の数式で決めたレベルアップに必要なXPを超えたらレベルアップするシステムが一般的です。もちろん今回のアップデートはその方式が採用されました。なるべく移行作業でProbotと同じXPとレベルを付与したかったですが、Probotがレベルアップに関係する数式を公開していなかったため、代わりにMEE6のレベルアップの数式を採用しました(https://github.com/Mee6/Mee6-documentation/blob/master/docs/levels_xp.md)
また、/rank/topといったProbotにあった機能を一部TK Assistantでも再現はしています。

Probotと違って背景の使用ができなくなりましたが、少なくともわかりやすい表示となっています。
また、スパムをしてもXPを荒稼ぎしないようにクールタイムを設けています。コツコツ頑張って貯めてください XDDDD


転送機能の実装

Traffic Informationと同じ手法で、スクレイピングを採用しました。HTMLコードを見て、一定時間の前のコードと後のコードで変化があったらその変化があった分を転送するようにしています。
これにより、鉄道訓練部のDiscordチャンネルからでも公式HPにあげたお知らせやブログを確認することができます。


サウンドボードの削除申請のコマンドを実装

今までサウンドボードの削除申請はお問い合わせのチケットから承っていましたが、手軽に削除の申請が行えない点を考慮した結果/soundboarddeleterequestコマンドを追加しました。このコマンドは該当するサウンドボードを指定し、理由も載せることで申請を管理者に気軽に送れます。管理者が中身を精査し、削除するかどうかを判断します。


フィードバック機能を改善

従来のフィードバックですとフィードバックを送る権限がある指導運転士が!sendfeedbackコマンドを使用することでTK Assistantから質問がたくさん送られ、さらに入力が大変で時間切れによるタイムアウトもありました。コマンドプレフィックスの変更及び改良を行った結果、フィードバックは全てフォーム上で行えるようになり、とても楽になりました。

これにより手軽にフィードバックが送れるようになりました。また、ユーザー名もコマンド入力時に同時に必須化させることで落ち着いてユーザーを探すことが可能になりました。さらに、今までできなかった画像・動画の添付も可能になりました。

※画像は実験用に送ったフィードバックで実際はもっとまじめに送ります。


他にも様々な小さい追加や運営関係者向けに様々な機能を実装しましたが、ここでは割愛させて頂きます。
これが今回のアップデートの説明です。あまりにも更新内容が多いこと、そして転送機能を知ってもらいたいので今回はこの投稿で失礼させていただきます。
それではまた~


執筆者名:JPSG57th
文 責 :同上
更新日:26年2月17日

CATEGORIES:

お知らせ

Tags:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Latest Comments