Skip to main content
Commandコンポーネントは、!(または他の設定されたプレフィックス)で始まるユーザーコマンドメッセージによってトリガーされます。!helpコマンドをトリガーする例を次に示します:

Commandコンポーネントの追加

1つのプラグインには任意の数のコマンドを含めることができます。プラグインディレクトリでコマンドlbp comp Commandを実行し、プロンプトに従ってコマンド設定を入力します。
これにより、components/commands/ディレクトリにinfo.yamlinfo.pyファイルが生成されます。.yamlファイルは!infoコマンドの基本情報を定義し、.pyファイルはコマンドハンドラです:

マニフェストファイル: Commandコンポーネント

プラグイン処理

以下のコードがデフォルトで生成されます(components/command/<command_name>.py)。Infoクラスのinitializeメソッドでサブコマンド処理ロジックを登録して実装する必要があります。
サブコマンドの追加:
このコードでは、@self.subcommandデコレータを通じてsend関数がサブコマンドとして登録され、コマンドコンテキスト(ExecuteContext)情報を出力し、それを返信メッセージに連結します。

サブコマンド登録

nameはサブコマンド名です。空のままにすると、メインコマンドを処理することを意味します。空でない場合、2番目のパラメータをコマンドとして照合します。例えば:
  • !infoは、name=""のサブコマンドに一致
  • !info fieldは、name=“field”のサブコマンドに一致
  • !info field valueは、name=“field”のサブコマンドに一致し、valueがサブコマンドパラメータ
  • 特に、name="*"は、一致しないすべての第1レベルサブコマンドに一致し、infoの後の各セクションをパラメータとして渡します。例えば!info 123!info abc。ユーザーの入力に応じて、context.crt_paramsから['123']または['abc']を取得できます。
サブコマンド関数では、context変数を通じてコマンドパラメータを読み取ることができます。 上記のコマンドの効果は画像に示されています:

コマンドコンテキスト

コマンド戻り値

コマンド戻り値(CommandReturn)は、現在テキスト、画像(image_url、画像リンク)、エラーの返却をサポートしています。
コマンド処理は複数のメッセージを返すことをサポートしているため、yieldステートメントを使用してメッセージを返してください。 具体的な戻り値については、CommandReturnの定義を参照してください: langbot_plugin.api.entities.builtin.command.context.CommandReturn

次のステップ

コマンド登録とコマンド実行の基本情報を学びました。次は: