Skip to content

拡張機能 ​

拡張機能はランチャー本体を書き換えずに機能を足す仕組みです。独自ページ、インスタンスの一括処理、外部サービス連携、マルチプレイ補助などに使えます。

すぐ書き始めたい場合

6 言語分のテンプレートを用意しています:言語別テンプレート。clone して id を変えるだけです。

構成 ​

text
my-ext/
├─ manifest.json     識別子・名前・バージョン・ランタイム・エントリ・権限
├─ main.jar          エントリ(.py / .js / .exe も可)
└─ lib/              依存(任意)

データフォルダの extensions/ に置くと「設定 → 拡張機能」に表示されます。

インポート・権限確認・有効化の手順は インポートと管理 を参照してください。

信頼と検証 ​

初回読み込み時にパッケージ全体の SHA-256 を計算し、extensions/trusted.json に記録します。

json
{
  "hello-go": { "sha": "9f2c…", "enabled": true }
}
  • 内容が変わるとハッシュが合わず、読み込みが拒否されます(改ざん検出)。
  • ウイルス対策ではありません。出所不明の拡張は入れないでください。
  • 無効化は enabled を false にするだけで、ファイルは削除しません。

ライフサイクル ​

text
スキャン → manifest 読み込み → 検証 → trusted.json と照合
  → ランタイム確認 → 一時領域へ展開(ネイティブは chmod +x)
  → エントリを起動 → stdio で hello → 実行
  → 終了 / 無効化 → 一時領域を削除

拡張は別プロセスです。落ちてもランチャーは落ちず、ランチャー終了時に子プロセスも回収されます。

権限 ​

権限意味
fs.readデータフォルダの読み取り
fs.writeデータフォルダの書き込み
netネットワーク
process子プロセスの起動
uiダイアログ・通知・ページ追加
launchゲーム起動のトリガー

宣言していない権限の呼び出しは拒否され、ログに残ります。

サイズ制限 ​

項目上限
単一ファイル8 MiB
展開後16 MiB
manifest.json64 KiB

ネイティブは strip してから固めてください。

bash
go build -ldflags "-s -w" -o main.exe .
cargo build --release && strip target/release/my-ext

次に読む ​