使用する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つです。試行成功は後の実挿入成功の保証ではありません。

  1. 検出能力とレシピを読む
  2. 計画正確な資源を予約する
  3. 実行実際の所有者へ転送する
  4. 復旧保存された受領記録を読む
検出は読み取りのみです。所有権は実行時に移り、復旧で消費済み入力を再生成しません。

プレイヤーのネットワークを読む

serverStartedで照会を取得し、認証済み操作主体のUUIDでforPlayerを使います。各読み取りで権限を確認します。クライアントが送った任意UUIDを本人確認に使いません。

スナップショットは観測であり予約ではありません。実操作時に再検証し、serverStoppedで参照を解放します。主体なしのObserverは公開履歴のみ受信します。

ソース

docs/api.md; editorial/ja.json

43b4d12d69e6033c24fa8c39dac383ef2429b446