NEBULA / DEVELOPERS

開発者ドキュメント

Mod APIはMinecraft内のJava 21で動き、機械・資源・連携を追加します。WebサイトのHTTP APIは文書とリリース情報だけを提供し、プレイヤーの実ネットワーク照会やクラフト開始はできません。

MinecraftアドオンAPI

dev.nebulastorage.api · Java 21 · Kotlin · NeoForge 1.21.1

シミュレーションは資源を所有しません。物理アダプターは入力、出力、受領情報を同じ永続的所有者に保存します。

アドオンは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の宣言だけです。ブロックやレシピはまだ追加しません。実アイテムを認識するアダプターと正確な入出力を返すレシピソースを登録します。登録中にワールドへアクセスしません。

ExampleExtension.kt
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"))
    }
}

META-INF/services/dev.nebulastorage.api.NebulaExtension

ServiceLoader
example.nexus.ExampleExtension

サイトAPI

OpenAPI 3 · JSON · GET

https://ns-api.vyxs.frの読み取り専用APIです。アカウントやAPIキーは不要で、Webサイトもサーバー経由で同じデータを使用します。

http
GET /v1/catalogue?locale=en&q=server
GET /v1/entries/controller?locale=fr
GET /v1/releases?locale=en
GET /v1/downloads/0.1.0-alpha.5
/v1/catalogue
軽量な記事一覧です。locale・q(最大120文字)・categoryで絞り込み、slugで全文を取得します。
/v1/entries/{slug}
記事全文・レシピスロット・図を取得します。localeはen・fr・de・es・it・ja。不明slugは404です。
/v1/releases
検証済みリリースのファイル名・サイズ・SHA-256とlocale別の説明です。新リリースはForgejo照会とキャッシュ更新後に表示されます。
/v1/downloads/{version}
公開版JARを取得します。SHA-256をメタデータと比較してください。不明版は404、未検証・取得不能ファイルは503です。

無効な引数は400、回数制限はRetry-After付き429です。成功した応答をキャッシュし、一時障害は待って再試行します。Minecraftネットワークを書き換えるAPIはありません。

連携の範囲

JEI・EMIでレシピを表示し、Ponderでゲーム内チュートリアルを見られます。Vanilla、Mekanismなどの機械に対応しています。対応工程と対象外の一覧は連携ページを確認してください。

実機を安全に接続する

元の処理ロジックを動かすブロックはNebulaPlatformExtensionで接続します。読み込み済み実機だけを解決し、永続所有者と全入出力を公開します。電力や圧力は元のModが管理します。

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