PluginManagedRouter
PluginManagedRouter は、CommunityPluginManagedEvent をインストール(COMMUNITY_PLUGIN_INSTALLED)とアンインストール(COMMUNITY_PLUGIN_UNINSTALLED)に分けてルーティングする EventHandler 実装です。
インストール
Section titled “インストール”追加インストールは不要です。mixi2-js に同梱されています。
// ESMimport { PluginManagedRouter } from 'mixi2-js/helpers';// CJSconst { PluginManagedRouter } = require('mixi2-js/helpers');import { PluginManagedRouter } from '@otoneko1102/mixi2-js/helpers';基本的な使い方
Section titled “基本的な使い方”EventRouter と組み合わせる(推奨)
Section titled “EventRouter と組み合わせる(推奨)”import { EventType, StreamWatcher } from 'mixi2-js';import { EventRouter, PluginManagedRouter } from 'mixi2-js/helpers';import { EventType, StreamWatcher } from '@otoneko1102/mixi2-js';import { EventRouter, PluginManagedRouter } from '@otoneko1102/mixi2-js/helpers';const pluginRouter = new PluginManagedRouter() .onInstalled(async (community) => { console.log(`Plugin が ${community.name} にインストールされました`); // 初期設定の実施など }) .onUninstalled(async (community) => { console.log(`Plugin が ${community.name} からアンインストールされました`); // データのクリーンアップなど });
const router = new EventRouter();router.on(EventType.COMMUNITY_PLUGIN_MANAGED, (event) => pluginRouter.handle(event));
const watcher = new StreamWatcher({ client, handler: router });await watcher.watch();コールバックの第 2 引数(イベント全体)
Section titled “コールバックの第 2 引数(イベント全体)”詳細情報が必要な場合は第 2 引数からイベントオブジェクト全体を参照できます。
const pluginRouter = new PluginManagedRouter() .onInstalled(async (community, event) => { // event: CommunityPluginManagedEvent console.log("理由リスト:", event.eventReasonList); });API リファレンス
Section titled “API リファレンス”コンストラクタ
Section titled “コンストラクタ”new PluginManagedRouter()引数はありません。
| メソッド | コールバック引数 | 戻り値 | 説明 |
|---|---|---|---|
onInstalled(listener) | (community: Community, event) | this | インストール時に呼ばれるハンドラを登録 |
onUninstalled(listener) | (community: Community, event) | this | アンインストール時に呼ばれるハンドラを登録 |
handle(event) | - | - | EventHandler インターフェースの実装 |