使用するAPIを選ぶ
Mod APIはMinecraft内のJava 21で動き、機械・資源・連携を追加します。WebサイトのHTTP APIは文書とリリース情報だけを提供し、プレイヤーの実ネットワーク照会やクラフト開始はできません。
アドオンはNebulaに依存しdev.nebulastorage.apiに対してコンパイルします。未導入Modのクラスを読み込まないよう任意連携を隔離してください。API 1.0.0とalphaリリース番号は別です。 これらのアドオン例は、新しいパッケージを使用する Nebula Storage alpha.7 向けです。alpha.6 までの公開ファイルは dev.nexusstorage を使用しています。更新時にはアドオンを再コンパイルしてください。Minecraft の登録 ID と保存済みワールドは変更されません。
拡張を登録する
公開NebulaExtension実装を作り、完全修飾クラス名をMETA-INF/services/dev.nebulastorage.api.NebulaExtensionに書きます。.txtを付けずJARリソースに含めます。
例はexample:pressingという処理IDの宣言だけです。ブロックやレシピはまだ追加しません。実アイテムを認識するアダプターと正確な入出力を返すレシピソースを登録します。登録中にワールドへアクセスしません。
package example.nexus
import dev.nebulastorage.api.NebulaExtension
import dev.nebulastorage.api.NebulaRegistrar
import dev.nebulastorage.api.production.ProductionCapabilityId
class ExampleExtension : NebulaExtension {
override fun register(registrar: NebulaRegistrar) {
registrar.capability(ProductionCapabilityId("example:pressing"))
}
}ワールド走査なしでレシピを公開する
NebulaRecipeSource.discoverには利用可能な処理能力が渡されます。安定ID・確定出力・本来の時間と消費電力を持つ対応レシピだけ返します。副産物を含め、確率の平均値を保証に置き換えません。
データパック再読み込みなどソース変更時にrevisionを増やします。在庫変動は利用可能性の変化で、全カタログ再検出の理由ではありません。検出・解決は純粋かつ有限、資源転送なしです。
実機を安全に接続する
元の処理ロジックを動かすブロックはNebulaPlatformExtensionで接続します。読み込み済み実機だけを解決し、永続所有者と全入出力を公開します。電力や圧力は元のModが管理します。
部分挿入・出力詰まり・消費後キャンセル・チャンク解除・保存復旧・ブロック交換を試験します。資源の所有者は常に1つです。試行成功は後の実挿入成功の保証ではありません。
- 検出能力とレシピを読む
- 計画正確な資源を予約する
- 実行実際の所有者へ転送する
- 復旧保存された受領記録を読む
プレイヤーのネットワークを読む
serverStartedで照会を取得し、認証済み操作主体のUUIDでforPlayerを使います。各読み取りで権限を確認します。クライアントが送った任意UUIDを本人確認に使いません。
スナップショットは観測であり予約ではありません。実操作時に再検証し、serverStoppedで参照を解放します。主体なしのObserverは公開履歴のみ受信します。
ソース
docs/api.md; editorial/ja.json
43b4d12d69e6033c24fa8c39dac383ef2429b446