Problème génération minerai



  • Bonjour,

    J'ai crée mon mod ou j'ai crée la génération d'un minerai.
    En solo tout marche parfaitement le minerai est bien présent dans le monde.
    Mais lorsque je mets le mod sur mon serveur la génération ne marche pas.
    Pensez vous savoir d'où cela vient ?

    Merci d'avance.



  • Il nous faudrait déjà le code de la classe de ton minerai pour que l'on puisse t'aider.



  • Rn multi c'est un monde génèré avant que tu mettes le mod ?



  • @'sosoh':

    Rn multi c'est un monde génèré avant que tu mettes le mod ?

    Non je l'ai crée aprêt.

    Sinon voici la classe de la génération :

    
    package com.sebenforce;
    
    import java.util.Random;
    
    import net.minecraft.block.Block;
    import net.minecraft.init.Blocks;
    import net.minecraft.world.World;
    import net.minecraft.world.chunk.IChunkProvider;
    import net.minecraft.world.gen.feature.WorldGenMinable;
    import cpw.mods.fml.common.IWorldGenerator;
    
    public class generationGrenat implements IWorldGenerator {
    
    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
    
    {
    
        switch(world.provider.dimensionId)
    
        {
            case 0:
                generateSurface(world, random, chunkX * 16, chunkZ * 16);
                break; }}
    
    private void generateSurface(World world, Random random, int x, int z) {
    
        this.addOreSpawn(Main.mineraiGrenat, 0, Blocks.stone, world, random, x, z, 16, 16, 7, 20, 5, 54);
    
        }
    public void addOreSpawn(Block block, int metadata, Block target, World world, Random random, int blockXPos, int blockZPos, int maxX, int maxZ, int maxVeinSize, int chancesToSpawn, int minY, int maxY) {
    
        assert maxY > minY : "La position Y maximum doit être supérieure à  la position Y minimum.";
    
        assert maxX > 0 && maxX <= 16 : "X doit se trouver entre 0 et 16.";
    
        assert minY > 0 : "La position Y minimum doit être supérieure à  0.";
    
        assert maxY < 256 && maxY > 0 : "La position Y maximum doit se trouver entre 0 et 256.";
    
        assert maxZ > 0 && maxZ <= 16 : "Z doit se trouver entre 0 et 16.";
    
       for(int i = 0; i < chancesToSpawn; i++)
    
        {
    
            int posY = random.nextInt(128);
    
            if((posY <= maxY) && (posY >= minY))
    
            {
    
                (new WorldGenMinable(block, metadata, maxVeinSize, target)).generate(world, random, blockXPos + random.nextInt(16), posY, blockZPos + random.nextInt(16));
    
            }
    
        }
    
    }
    }
    
    

    Et voici ce qui est présent dans la classe principale :

    
     generationGrenat generationGrenat = new generationGrenat();
    
        generationranite generationranite = new generationranite();
        @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        {
        GameRegistry.registerWorldGenerator(generationGrenat, 0);
        GameRegistry.registerWorldGenerator(generationranite, 0);
        }
    
    

  • Administrateurs

    Ton serveur a une dimension custom ?



  • @'robin4002':

    Ton serveur a une dimension custom ?

    Non aucune.


  • Administrateurs

    Tu ne joue vraiment que sur la dimension overworld d'id 0, celle de base ?
    Si oui envoie toute ta classe principale.



  • Oui je joue que sur celle ci.
    Voici donc ma classe :

    
    package com.sebenforce;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.Item;
    import net.minecraft.item.Item.ToolMaterial;
    import net.minecraft.item.ItemArmor.ArmorMaterial;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.common.util.EnumHelper;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.Mod.Instance;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.registry.GameRegistry;
    
    @Mod(modid = "magmafusion", name = "magmafusion", version = "1.0.0")
    
    public class Main {
        @Instance("magmafusion")
        public static Main instance;
        public static final String MODID = "magmafusion";
        public static Item Grenat;
        public static Item Uranite;
        public static Item casqueGrenat, plastronGrenat, jambesGrenat, bottesGrenat;
        public static Item casqueUranite, plastronUranite, jambesUranite, bottesUranite;
        public static Item casqueMagma, plastronMagma, jambesMagma, bottesMagma;
        public static Item epeeGrenat, piocheGrenat, hacheGrenat, pelleGrenat, hoeGrenat;
        public static Item epeeUranite, piocheUranite, hacheUranite, pelleUranite, hoeUranite;
        public static Item epeeMagma, piocheMagma, hacheMagma, pelleMagma, hoeMagma;
        public static ArmorMaterial grenat = EnumHelper.addArmorMaterial("grenat", 43, new int[] {4, 10, 7, 4}, 10);
        public static ArmorMaterial uranite = EnumHelper.addArmorMaterial("uranite", 53, new int[] {5, 11, 8, 5}, 10);
        public static ArmorMaterial magma = EnumHelper.addArmorMaterial("magma", 63, new int[] {6, 12, 9, 6}, 10);
        public static ToolMaterial outilsGrenat = EnumHelper.addToolMaterial("outilsGrenat", 3, 1661, 8.0F, 4.0F, 10);
        public static ToolMaterial outilsUranite = EnumHelper.addToolMaterial("outilsUranite", 3, 1761, 9.0F, 5.0F, 10);
        public static ToolMaterial outilsMagma = EnumHelper.addToolMaterial("outilsMagma", 3, 1861, 11.0F, 6.0F, 10);
        public static Block blockGrenat;
        public static Block mineraiGrenat;
        public static Block blockUranite;
        public static Block mineraiUranite;
        public static Block blockMagma;
        public static Block obsidienneFusionne;
        public static Block blockObsidienneFusionne;
    
        generationGrenat generationGrenat = new generationGrenat();
        generationranite generationranite = new generationranite();
        @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        {
        GameRegistry.registerWorldGenerator(generationGrenat, 0);
        GameRegistry.registerWorldGenerator(generationranite, 0);
        }
        @EventHandler
        public void load(FMLInitializationEvent event)
        {
        //block
    
            mineraiGrenat = new mineraiGrenat(Material.rock).setBlockName("mineraiGrenat").setBlockTextureName(Main.MODID + ":Minerais de Grenat").setCreativeTab(CreativeTabs.tabBlock).setHardness(6.0F);;
            GameRegistry.registerBlock(mineraiGrenat, "mineraiGrenat");
    
            mineraiUranite = new mineraiUranite(Material.rock).setBlockName("mineraiUranite").setBlockTextureName(Main.MODID + ":Minerais d'Uranite").setCreativeTab(CreativeTabs.tabBlock).setHardness(6.0F);;
            GameRegistry.registerBlock(mineraiUranite, "mineraiUranite");
    
            obsidienneFusionne = new obsidienneFusionne(Material.rock).setBlockName("obsidienneFusionne").setBlockTextureName(Main.MODID + ":obsidienneFusionne").setCreativeTab(CreativeTabs.tabBlock).setHardness(60.0F).setResistance(2500.0F);;
            GameRegistry.registerBlock(obsidienneFusionne, "obsidienneFusionne");
    
        //gems
        Grenat = new Grenat().setUnlocalizedName("Grenat").setTextureName(Main.MODID + ":Grenat").setCreativeTab(CreativeTabs.tabMaterials);
            GameRegistry.registerItem(Grenat, "Grenat");
            Uranite = new Grenat().setUnlocalizedName("Uranite").setTextureName(Main.MODID + ":Uranite").setCreativeTab(CreativeTabs.tabMaterials);
            GameRegistry.registerItem(Uranite, "Uranite");
    
            //armures
            casqueGrenat = new armureGrenat(grenat, 0).setUnlocalizedName("casqueGrenat").setTextureName(MODID + ":Casque en Grenat");
            plastronGrenat = new armureGrenat(grenat, 1).setUnlocalizedName("plastronGrenat").setTextureName(MODID + ":Plastron en Grenat");
            jambesGrenat = new armureGrenat(grenat, 2).setUnlocalizedName("jambesGrenat").setTextureName(MODID + ":Jambière en Grenat");
            bottesGrenat = new armureGrenat(grenat, 3).setUnlocalizedName("bottesGrenat").setTextureName(MODID + ":Bottes en Grenat");
            GameRegistry.registerItem(casqueGrenat, "casqueGrenat");
            GameRegistry.registerItem(plastronGrenat, "plastronGrenat");
            GameRegistry.registerItem(jambesGrenat, "jambesGrenat");
            GameRegistry.registerItem(bottesGrenat, "bottesGrenat");
    
            casqueUranite = new armureUranite(uranite, 0).setUnlocalizedName("casqueUranite").setTextureName(MODID + ":Casque en Uranite");
            plastronUranite = new armureUranite(uranite, 1).setUnlocalizedName("plastronUranite").setTextureName(MODID + ":Plastron en Uranite");
            jambesUranite = new armureUranite(uranite, 2).setUnlocalizedName("jambesUranite").setTextureName(MODID + ":Jambières en Uranite");
            bottesUranite = new armureUranite(uranite, 3).setUnlocalizedName("bottesUranite").setTextureName(MODID + ":Bottes en Uranite");
            GameRegistry.registerItem(casqueUranite, "casqueUranite");
            GameRegistry.registerItem(plastronUranite, "plastronUranite");
            GameRegistry.registerItem(jambesUranite, "jambesUranite");
            GameRegistry.registerItem(bottesUranite, "bottesUranite");
    
            casqueMagma = new armureMagma(magma, 0).setUnlocalizedName("casqueMagma").setTextureName(MODID + ":helmetMagma");
            plastronMagma = new armureMagma(magma, 1).setUnlocalizedName("plastronMagma").setTextureName(MODID + ":chestplateMagma");
            jambesMagma = new armureMagma(magma, 2).setUnlocalizedName("jambesMagma").setTextureName(MODID + ":leggingsMagma");
            bottesMagma = new armureMagma(magma, 3).setUnlocalizedName("bottesMagma").setTextureName(MODID + ":bootsMagma");
            GameRegistry.registerItem(casqueMagma, "casqueMagma");
            GameRegistry.registerItem(plastronMagma, "plastronMagma");
            GameRegistry.registerItem(jambesMagma, "jambesMagma");
            GameRegistry.registerItem(bottesMagma, "bottesMagma");
    
            //outils
            epeeGrenat = new epeeGrenat(outilsGrenat).setUnlocalizedName("epeeGrenat").setTextureName(MODID + ":Epée en Grenat");
            piocheGrenat = new piocheGrenat(outilsGrenat).setUnlocalizedName("piocheGrenat").setTextureName(MODID + ":Pioche en Grenat");
            hacheGrenat = new hacheGrenat(outilsGrenat).setUnlocalizedName("hacheGrenat").setTextureName(MODID + ":Hache en Grenat");
            pelleGrenat = new pelleGrenat(outilsGrenat).setUnlocalizedName("pelleGrenat").setTextureName(MODID + ":Pelle en Grenat");
            hoeGrenat = new hoeGrenat(outilsGrenat).setUnlocalizedName("hoeGrenat").setTextureName(MODID + ":Houe en Grenat");
            GameRegistry.registerItem(epeeGrenat, "epeeGrenat");
            GameRegistry.registerItem(piocheGrenat, "piocheGrenat");
            GameRegistry.registerItem(hacheGrenat, "hacheGrenat");
            GameRegistry.registerItem(pelleGrenat, "pelleGrenat");
            GameRegistry.registerItem(hoeGrenat, "hoeGrenat");
    
            epeeUranite = new epeeFluorite(outilsUranite).setUnlocalizedName("epeeUranite").setTextureName(MODID + ":Epée en Uranite");
            piocheUranite = new piocheUranite(outilsUranite).setUnlocalizedName("piocheUranite").setTextureName(MODID + ":Pioche en Uranite");
            hacheUranite = new hacheUranite(outilsUranite).setUnlocalizedName("hacheUranite").setTextureName(MODID + ":Hache en Uranite");
            pelleUranite = new pelleUranite(outilsUranite).setUnlocalizedName("pelleUranite").setTextureName(MODID + ":Pelle en Uranite");
            hoeUranite = new hoeUranite(outilsUranite).setUnlocalizedName("hoeUranite").setTextureName(MODID + ":Houe en Uranite");
            GameRegistry.registerItem(epeeUranite, "epeeUranite");
            GameRegistry.registerItem(piocheUranite, "piocheUranite");
            GameRegistry.registerItem(hacheUranite, "hacheUranite");
            GameRegistry.registerItem(pelleUranite, "pelleUranite");
            GameRegistry.registerItem(hoeUranite, "hoeUranite");
    
            epeeMagma = new epeeMagma(outilsMagma).setUnlocalizedName("epeeMagma").setTextureName(MODID + ":swordMagma");
            piocheMagma = new piocheMagma(outilsMagma).setUnlocalizedName("piocheMagma").setTextureName(MODID + ":pickaxeMagma");
            hacheMagma = new hacheMagma(outilsMagma).setUnlocalizedName("hacheMagma").setTextureName(MODID + ":hatchetMagma");
            pelleMagma = new pelleMagma(outilsMagma).setUnlocalizedName("pelleMagma").setTextureName(MODID + ":shovelMagma");
            hoeMagma = new hoeMagma(outilsMagma).setUnlocalizedName("hoeMagma").setTextureName(MODID + ":hoeMagma");
            GameRegistry.registerItem(epeeMagma, "epeeMagma");
            GameRegistry.registerItem(piocheMagma, "piocheMagma");
            GameRegistry.registerItem(hacheMagma, "hacheMagma");
            GameRegistry.registerItem(pelleMagma, "pelleFluorite");
            GameRegistry.registerItem(hoeMagma, "hoeMagma"); 
    
            //craft
    
            GameRegistry.addShapedRecipe(new ItemStack(casqueGrenat), new Object[]{"XXX", "X X", "   ", 'X', Main.Grenat});
            GameRegistry.addShapedRecipe(new ItemStack(plastronGrenat), new Object[]{"X X", "XXX", "XXX", 'X', Main.Grenat});
            GameRegistry.addShapedRecipe(new ItemStack(jambesGrenat), new Object[]{"XXX", "X X", "X X", 'X', Main.Grenat});
            GameRegistry.addShapedRecipe(new ItemStack(bottesGrenat), new Object[]{"   ", "X X", "X X", 'X', Main.Grenat});
    
            GameRegistry.addShapedRecipe(new ItemStack(casqueUranite), new Object[]{"XXX", "X X", "   ", 'X', Main.Uranite});
            GameRegistry.addShapedRecipe(new ItemStack(plastronUranite), new Object[]{"X X", "XXX", "XXX", 'X', Main.Uranite});
            GameRegistry.addShapedRecipe(new ItemStack(jambesUranite), new Object[]{"XXX", "X X", "X X", 'X', Main.Uranite});
            GameRegistry.addRecipe(new ItemStack(bottesUranite), new Object[] {"   ", "X X", "X X", 'X', Main.Uranite});
    
            GameRegistry.addShapedRecipe(new ItemStack(casqueMagma), new Object[]{"XXX", "X X", "   ", 'X', Main.obsidienneFusionne});
            GameRegistry.addShapedRecipe(new ItemStack(plastronMagma), new Object[]{"X X", "XXX", "XXX", 'X', Main.obsidienneFusionne});
            GameRegistry.addShapedRecipe(new ItemStack(jambesMagma), new Object[]{"XXX", "X X", "X X", 'X', Main.obsidienneFusionne});
            GameRegistry.addShapedRecipe(new ItemStack(bottesMagma), new Object[]{"   ", "X X", "X X", 'X', Main.obsidienneFusionne});
    
            GameRegistry.addShapedRecipe(new ItemStack(epeeGrenat), new Object[]{" X ", " X ", " Z ", 'X', Main.Grenat,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(piocheGrenat), new Object[]{"XXX", " Z ", " Z ", 'X', Main.Grenat,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(pelleGrenat), new Object[]{" X ", " Z ", " Z ", 'X', Main.Grenat,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(hoeGrenat), new Object[]{"XX ", " Z ", " Z ", 'X', Main.Grenat,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(hacheGrenat), new Object[]{"XX ", "XZ ", " Z ", 'X', Main.Grenat,'Z', Items.stick});
    
            GameRegistry.addShapedRecipe(new ItemStack(epeeUranite), new Object[]{" X ", " X ", " Z ", 'X', Main.Uranite,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(piocheUranite), new Object[]{"XXX", " Z ", " Z ", 'X', Main.Uranite,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(pelleUranite), new Object[]{" X ", " Z ", " Z ", 'X', Main.Uranite,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(hoeUranite), new Object[]{"XX ", " Z ", " Z ", 'X', Main.Uranite,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(hacheUranite), new Object[]{"XX ", "XZ ", " Z ", 'X', Main.Uranite,'Z', Items.stick});
    
            GameRegistry.addShapedRecipe(new ItemStack(epeeMagma), new Object[]{" X ", " X ", " Z ", 'X', Main.obsidienneFusionne,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(piocheMagma), new Object[]{"XXX", " Z ", " Z ", 'X', Main.obsidienneFusionne,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(pelleMagma), new Object[]{" X ", " Z ", " Z ", 'X', Main.obsidienneFusionne,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(hoeMagma), new Object[]{"XX ", " Z ", " Z ", 'X', Main.obsidienneFusionne,'Z', Items.stick});
            GameRegistry.addShapedRecipe(new ItemStack(hacheMagma), new Object[]{"XX ", "XZ ", " Z ", 'X', Main.obsidienneFusionne,'Z', Items.stick});
    
            GameRegistry.addShapedRecipe(new ItemStack(obsidienneFusionne), new Object[]{"XXX", "XZX", "XXX", 'X', Blocks.obsidian,'Z', Items.lava_bucket});
    
        }
    
        @EventHandler
        public void postInit(FMLPostInitializationEvent event)
        {
    
        }
    }
    
    

  • Administrateurs

    Je ne sais pas pourquoi j'ai pas remarqué le problème plus tôt.
    Tous tes blocs et item devrait être dans preInit.
    Et le générateur devrait être dans init. D'ailleurs pourquoi avoir fait deux générateurs ? Un seul suffit.



  • Je crois que je viens de trouver cela vient en fait de la génération de multiverse-core qui n'a pas l'air de vouloir générer les nouveau minerais.


  • Administrateurs

    Si tu utilises multiverse tu as donc un id de monde différent, c'est ce que je te demande depuis avant et tu m'avais dit que non …

    Bref dans ce cas il suffit de retirer le

        switch(world.provider.dimensionId)
    

    Dans la classe de ton générateur.
    (donc ta fonction generate devrait ressembler à ça :

    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
    {
            generateSurface(world, random, chunkX * 16, chunkZ * 16);
    }