plugins_ja - noonworks/Nursery GitHub Wiki

プラグイン詳細

1. プラグインとは

Nurseryの機能の多くは、カスタマイズ可能なプラグインシステムで構成されています。

例えば、棒読みちゃんでメッセージを読み上げる際に、長いURLをそのまま読み上げられると不便です。そのため、標準で「URLを省略するフィルタのプラグイン」がインストールされています。このプラグインは、メッセージ内のURLを検索し「amazon.co.jpのURL」のように省略した形に変換します。

こういったプラグインは、ひとつひとつの機能は少なく、複数を組み合わせて動作するようになっています。

2. プラグインの場所と設定ファイル

標準ではpluginsフォルダの中にプラグインのファイルが入っています。

plugins
  ├─ plugins.json : プラグインの設定ファイル
  ├─ Nursery.BasicPlugins.dll : 標準プラグインのdllファイル
  ├─ Nursery.SoundEffectPlugin.dll : SEプラグインのdllファイル
  └─ Nursery.UserDefinedFilterPlugin.dll : ユーザー定義フィルタプラグインのdllファイル

2-1. plugins.json

plugins.jsonはプラグイン全体の設定が書かれたファイルです。プラグインを使う・使わない、どの順番で使う、といったことが設定されています。

{
  "plugins": [
    "Nursery.BasicPlugins.IgnoreSelfFilter",
    "Nursery.BasicPlugins.JoinCommand",
    // ...(中略)...
    "Nursery.BasicPlugins.BlankFilter",
    "Nursery.BasicPlugins.AddNameFilter"
  ]
}
  • プラグインは名前が書かれた順番で実行されます。
  • ここに名前が書かれていないプラグインは 無効化 され、使われなくなります。

2-2. プラグインの種類

2-2-1. コマンドプラグイン

コマンドプラグインは、NurseryのBotに命令を送るときに使用されます。

例:

  • Nurseryを入室させるJoinCommandプラグイン。@nursery-bot comeコマンドが使えるようになる。
  • ヘルプを表示するHelpCommandプラグイン。@nursery-bot helpコマンドが使えるようになる。
  • 音声を再生するSoundEffectCommandプラグイン。se (音声の名前)コマンドが使えるようになる。

2-2-2. フィルタプラグイン

フィルタプラグインは、メッセージを読み上げ用に変換するときに使用されます。

例:

  • URLを「example.comのURL」という形式に省略するUrlFilterプラグイン。
  • 添付ファイルがあるとき「〇個の添付ファイル」という文章を追加するAttachmentFilterプラグイン。

2-2-3. スケジューラプラグイン

スケジューラプラグインは、NurseryのBotにスケジュール(監視やタイマー機能)を追加します。

例:

  • ボイスチャンネルの参加人数を監視し、誰かが入退室したときにメッセージを表示するWelcomeSchedulerプラグイン。

3. プラグインごとの設定ファイル

pluginsフォルダ内に、(プラグインの名前).json形式の名前のファイルがあります。これらは各プラグインの設定ファイルです。

これらの設定ファイルの内容については、各プラグインの詳細を参照してください。

4. 各プラグインの詳細