Skip to main content
LangBotのパイプラインは実行時にイベントを生成し、プラグインがフックして処理できるようにします。各プラグインは1つのイベントリスナー(components/event_listener/default.yaml)のみを持つことができますが、その中で任意の数のイベントを登録できます。

イベントリスナーコンポーネントの追加

プラグインディレクトリでコマンドlbp comp EventListenerを実行します。イベントリスナーコンポーネントの作成には設定は必要ありません。
これにより、components/event_listener/ディレクトリにdefault.yamldefault.pyファイルが生成されます。.yamlファイルはイベントリスナーの基本情報を定義し、.pyファイルはイベントリスナーハンドラです:

マニフェストファイル: イベントリスナー

各プラグインは1つのイベントリスナーのみを持つことができるため、マニフェストファイルでの変更は必要ありません。

プラグイン処理

以下のコードがデフォルトで生成されます(components/event_listener/default.py)。DefaultEventListenerクラスのinitializeメソッドでイベント処理ロジックを登録して実装する必要があります。
特定のイベントのリスナーを追加:
このコードは、PersonMessageReceived(プライベートチャットからのメッセージを受信)イベントのリスナーを登録し、イベントがトリガーされたときにイベントコンテキスト(EventContext)情報を出力し、イベントコンテキストAPIを呼び出してメッセージで返信します。 EventContextはこのイベントトリガーの共通コンテキスト情報を保存し、EventContext.eventはPersonMessageReceived(または他の対応するイベントタイプ)のオブジェクトで、イベントの詳細情報を保存します。

イベント登録

イベント登録は@self.handlerデコレータを通じて実装され、デコレータのパラメータはイベントタイプです。監視可能なすべてのイベントはlangbot_plugin.api.entities.builtin.eventsで定義されています。

次のステップ

イベントリスナーの基本情報を学びました。次は: