NEBULA / DEVELOPERS

Documentation développeur

L’API du mod tourne dans Minecraft, sous Java 21. Elle permet d’ajouter une machine, un type de ressource ou une intégration. L’API HTTP du site ne sert que la documentation et les releases : elle ne consulte pas le réseau d’un joueur et ne lance aucun craft.

API des addons Minecraft

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

Une simulation ne possède aucune ressource. Un adaptateur physique conserve entrées, sorties et reçu dans un même propriétaire durable.

Un addon dépend de Nebula et compile contre dev.nebulastorage.api. Isolez les adaptateurs de mods optionnels pour ne pas charger leurs classes quand le mod manque. L’API 1.0.0 est indépendante du numéro de release alpha. Ces exemples d’addon ciblent Nebula Storage alpha.7 et ses nouveaux packages. Les fichiers publiés jusqu’à alpha.6 utilisent encore dev.nexusstorage. Recompilez les addons à la mise à jour ; les identifiants Minecraft et les mondes restent inchangés.

Exemple d’enregistrement

Créez une implémentation publique de NebulaExtension et inscrivez son nom de classe complet dans META-INF/services/dev.nebulastorage.api.NebulaExtension. Ce fichier doit être une ressource du JAR, sans suffixe .txt.

L’exemple déclare le procédé example:pressing. Cette déclaration n’ajoute à elle seule ni bloc ni recette. Ajoutez un adaptateur reconnaissant votre véritable item, puis une source donnant les entrées et sorties exactes de ce procédé. L’enregistrement ne doit pas accéder à un monde.

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 du site

OpenAPI 3 · JSON · GET

Routes en lecture seule sur https://ns-api.vyxs.fr. Aucun compte ni clé API requis. Le site consulte les mêmes données via son serveur.

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
Index léger des fiches. Filtrez avec locale, q (120 caractères maximum) et category ; utilisez le slug pour obtenir l’article complet.
/v1/entries/{slug}
Article complet, cases de recettes et schémas. locale accepte en, fr, de, es, it et ja ; un slug inconnu renvoie 404.
/v1/releases
Versions publiées vérifiées, avec nom du fichier, taille et SHA-256. Les notes suivent locale. Une nouvelle release apparaît après la prochaine consultation de Forgejo et l’expiration du cache.
/v1/downloads/{version}
Transmet le JAR d’une version publiée. Comparez son SHA-256 aux métadonnées. Une version inconnue renvoie 404 ; un fichier indisponible ou non vérifié renvoie 503.

Paramètres invalides : 400. Limite de requêtes : 429 avec Retry-After. Mettez les lectures réussies en cache et attendez avant de réessayer après une erreur temporaire. Aucune route ne modifie un réseau Minecraft.

Périmètre des intégrations

JEI et EMI affichent les recettes ; Ponder fournit les tutoriels en jeu. Les machines prises en charge viennent de Vanilla, Mekanism et de plusieurs autres mods. La liste des intégrations précise les procédés compatibles et les exclusions.

Relier une vraie machine sans perte

Utilisez NebulaPlatformExtension pour un bloc Minecraft qui doit exécuter sa logique native. Résolvez seulement une machine chargée, identifiez son propriétaire persistant et exposez toutes ses entrées et sorties de traitement. Énergie, pression et autres exigences restent gérées par le mod d’origine.

  1. DécouvrirLire capacités et recettes
  2. PlanifierRéserver les ressources exactes
  3. ExécuterTransférer au vrai propriétaire
  4. ReprendreLire le reçu sauvegardé
La découverte ne modifie rien. Seule l’exécution transfère la propriété ; la reprise ne recrée jamais une entrée consommée.
NebulaPhysicalResourceMachine →