BotBone Next
TypeScript による Xeltica/BotBone
の再実装。
Node.js v17.5.0が必要。
システム アーキテクチャー
本システムは、
- コア
- アダプター
- コマンド
- プラグイン からなります。
コア
コアは、プラグイン、アダプター、コマンドを読み込み管理します。
アダプター
アダプターは、BotBoneとサービスをつなぐインターフェイスの役割を持ちます。サービスを操作するAPIを実装し、リプライなどのイベントが起こるたびにコアにイベントをemitします。
コマンド
コマンドは、/
から始まる特定のフォーマットの文字列を受け取ったときに動作し、必ず結果を返します。
プラグイン
プラグインは、コアのイベントを購読したり、アダプターを介してサービスを操作したりと、実際のBotの挙動を提供します。
なぜ再実装?
元々BotBoneはC#で書かれていました。リポジトリ
以下の理由で、TypeScriptで、フルスクラッチで開発を開始することとなりました。
- Misskeyアダプターに使用していたライブラリ「OrionDevelop/Disboard」が長らくメンテナンスされていない
- misskey-jsというMisskey開発元が提供する公式ライブラリが開発開始した
- 開発者が、C#よりTypeScriptのほうが個人的に書きやすいなと感じ始めた
- 旧BotBoneの設計自体にいくつか課題が見え始めた
方針
本プロジェクトの目標は、C#で書かれた旧BotBoneと同等の機能を備えつつ、旧BotBoneにおいて煩雑な設計を取っ払い、なるべくシンプルに設計したBotフレームワークを開発することです。
旧BotBoneが持っていたパワフルな機能はほぼすべて実装するつもりですが、いくつかは旧BotBoneとは異なる形での実装・あるいは廃止します。
- Rating APIは実装しません。 代わりにビルトインのプラグインとして作り直します。好感度はUserStorage APIを介して取得できるようにします。
- UserStorage キーの仕様を変更します。