Minestom

Générez votre monde Massif dans un projet Minestom.

La bibliothèque Massif se branche sur la génération de monde normale de Minestom. Elle est faite pour Minestom 2026.10.05-26.2 et Java 25.

1. Ajoutez la dépendance

Pendant la bêta, la bibliothèque se trouve dans le registre de paquets de Smolder. Votre invitation contient les identifiants ; placez-les dans les variables d’environnement SMOLDER_MAVEN_USERNAME et SMOLDER_MAVEN_TOKEN, puis ajoutez à build.gradle.kts :

repositories {
    maven("https://git.neo.smolder.fr/api/packages/Smolder/maven") {
        credentials {
            username = System.getenv("SMOLDER_MAVEN_USERNAME")
            password = System.getenv("SMOLDER_MAVEN_TOKEN")
        }
    }
}

dependencies {
    implementation("fr.smolder.massif:massif-upstream-minestom:0.1.0")
}

2. Chargez votre monde

Téléchargez votre export depuis votre compte et livrez-le avec votre serveur, par exemple sous le nom world.massif à côté de votre JAR.

MassifWorld.install fait tout en un appel : il vérifie la signature de l’export (et refuse tout ce que Massif n’a pas produit), enregistre ses biomes et installe le générateur. Appelez-le au démarrage du serveur, avant le chargement du moindre chunk ou la connexion d’un joueur :

import fr.smolder.massif.upstream.MassifWorld;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
import java.nio.file.Path;

public class WorldServer {
    public static void main(String[] args) throws Exception {
        var server = MinecraftServer.init();
        MassifWorld world = null;
        try {
            var instance = MinecraftServer.getInstanceManager().createInstanceContainer();
            world = MassifWorld.install(Path.of("world.massif"), instance);
            MinecraftServer.getGlobalEventHandler().addListener(AsyncPlayerConfigurationEvent.class, event -> {
                event.setSpawningInstance(instance);
                event.getPlayer().setRespawnPoint(new Pos(0, 64, 0));
            });
            server.start("0.0.0.0", 25565);
            System.in.read(); // Entrée pour arrêter
        } finally {
            MinecraftServer.stopCleanly();
            if (world != null) world.close();
        }
    }
}

Lancez avec Java 25 et --enable-native-access=ALL-UNNAMED. Réglez la hauteur d’apparition selon votre terrain. Gardez l’objet world jusqu’à l’arrêt du serveur, puis fermez-le.

Bon à savoir

  • Massif génère la hauteur définie pour votre monde ; tout le reste est de l’air.
  • La génération tourne sur les workers natifs de Massif, elle ne bloque donc pas votre thread de tick.
  • Les entités générées et le contenu de plugins (comme les blocs CraftEngine) demandent une configuration en plus ; demandez-nous si votre monde en utilise.