Minérais n'apparaissant pas sur sponge (coremods ou pas)



  • Bonjour, bonsoir, je reviens une seconde fois dans la même journée encore sur un problème de coremod en 1.10.2, désolé si ça paraît excessif mais cette fois-ci c'est vraiment du lourd !
    En gros j'ai codé un coremod me permettant de générer de l'uranium, histoire de me re-familiariser avec tout ce stuff en 1.10x. Bon maintenant je trouve ça étrange qu'après 3 bonnes heures passées dessus, l'ensemble ne fonctionne que sous eclipse.
    J'ai print depuis 20 minutes afin de localiser la source et il semblerait que toute la classe transformer fonctionne (sous sponge on parle bien), mais qu'au contraire, ma classe Patch avec les nouvelels méthodes de gen, n'est JAMAIS appelée une seule fois. Désolé du long pavé introductif mais il fallait recentrer les choses, n'est-ce pas ^^ ?

    Bon place au code :
    Ma classe Transformer (les dernières modifications se font au niveau des chemin aux classes obfusqués, je ne suspecte que les 2 lignes newList.add(new MethodInsnNode(blabla));

    
    public class BiomeDecoratorTransformer implements IClassTransformer
    {
    private String methodName, methodName2;
    private static String className, superclassName;
    
    @Override
    public byte[] transform(String name, String transformedName, byte[] basicClass)
    {
    if (name.equals("net.minecraft.dispenser.AnvilConverterException.ILocation"))
    {
    UraniumGenLoadingPlugin.obfuscation = false;
    }
    if (name.equals("cy")) {
    UraniumGenLoadingPlugin.obfuscation = true;
    }
    if (transformedName.equals("net.minecraft.world.biome.BiomeDecorator"))
    {
    System.out.println("UraniumMod - Patching class BiomeDecorator…");
    methodName = UraniumGenLoadingPlugin.obfuscation ? "a" : "decorate";
    methodName2 = UraniumGenLoadingPlugin.obfuscation ? "a" : "generateOres";
    className = UraniumGenLoadingPlugin.obfuscation ? "ait" : "net/minecraft/world/biome/BiomeDecorator";
    
    ClassReader cr = new ClassReader(basicClass);
    ClassNode cn = new ClassNode(Opcodes.ASM4);
    cr.accept(cn, 0);
    
    System.out.println("print #0");
    
    for (Object mnObj : cn.methods)
    {
    System.out.println("print #1");
    MethodNode mn = (MethodNode) mnObj;
    System.out.println(mn.name);
    System.out.println(methodName);
    System.out.println(mn.desc);
    
    if (mn.name.equals(methodName) && (mn.desc.equals("(Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/biome/Biome;Lnet/minecraft/util/math/BlockPos;)V")) || mn.desc.equals("(Laid;Ljava/util/Random;Laiq;Lcm;)V"))
    {
    patchMethod(mn);
    System.out.println("UraniumMod - Patching in progress");
    }
    if (mn.name.equals(methodName) && (mn.desc.equals("(Lnet/minecraft/world/World;Ljava/util/Random;)V")) || mn.desc.equals("(Laid;Ljava/util/Random;)V"))
    {
    patchMethod2(mn);
    System.out.println("UraniumMod - Second Patching in progress");
    }
    }
    ClassWriter cw = new ClassWriter(0);
    cn.accept(cw);
    
    System.out.println("Uranium Mod - Patching class BiomeDecorate maybe well done.");
    return cw.toByteArray();
    } else {
    return basicClass;
    }
    }
    
    private static void patchMethod(MethodNode mn)
    {
    System.out.println("\tPatching method decorate in BiomeDecorate");
    InsnList newList = new InsnList();
    
    mn.localVariables = new ArrayList<localvariablenode>(5);
    
    newList.add(new VarInsnNode(Opcodes.ALOAD, 1));
    newList.add(new VarInsnNode(Opcodes.ALOAD, 2));
    newList.add(new VarInsnNode(Opcodes.ALOAD, 3));
    newList.add(new VarInsnNode(Opcodes.ALOAD, 4));
    newList.add(new VarInsnNode(Opcodes.ALOAD, 0));
    newList.add(new MethodInsnNode(Opcodes.INVOKESTATIC, "fr/plaigon/uranium/common/coremod/Patch", "decoratePatch", UraniumGenLoadingPlugin.obfuscation == false ? "(Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/biome/Biome;Lnet/minecraft/util/math/BlockPos;L" + className + ";)V" : "(Laid;Ljava/util/Random;Laiq;Lcm;L" + "ait" + ";)V", false));
    newList.add(new InsnNode(Opcodes.RETURN));
    mn.instructions = newList;
    }
    
    private static void patchMethod2(MethodNode mn)
    {
    System.out.println("\tPatching second method decorate in BiomeDecorate");
    InsnList newList = new InsnList();
    
    mn.localVariables = new ArrayList<localvariablenode>(5);
    
    newList.add(new VarInsnNode(Opcodes.ALOAD, 1));
    newList.add(new VarInsnNode(Opcodes.ALOAD, 2));
    newList.add(new VarInsnNode(Opcodes.ALOAD, 0));
    newList.add(new MethodInsnNode(Opcodes.INVOKESTATIC, "fr/plaigon/uranium/common/coremod/Patch", "generateOresPatch", UraniumGenLoadingPlugin.obfuscation == false ? "(Lnet/minecraft/world/World;Ljava/util/Random;L" + className + ";)V" : "(Laid;Ljava/util/Random;L" + "ait" + ";)V", false));
    newList.add(new InsnNode(Opcodes.RETURN));
    mn.instructions = newList;
    }
    }
    
    

    Et ma seconde petite classe Patch:

    
    package fr.plaigon.uranium.common.coremod;
    
    import java.util.Random;
    
    import fr.plaigon.uranium.common.handlers.gamecontents.BlockHandler;
    import net.minecraft.block.BlockFlower;
    import net.minecraft.block.BlockStone;
    import net.minecraft.block.material.Material;
    import net.minecraft.init.Blocks;
    import net.minecraft.util.math.BlockPos;
    import net.minecraft.world.World;
    import net.minecraft.world.biome.Biome;
    import net.minecraft.world.biome.BiomeDecorator;
    import net.minecraft.world.gen.ChunkProviderSettings;
    import net.minecraft.world.gen.feature.WorldGenAbstractTree;
    import net.minecraft.world.gen.feature.WorldGenDeadBush;
    import net.minecraft.world.gen.feature.WorldGenLiquids;
    import net.minecraft.world.gen.feature.WorldGenMinable;
    import net.minecraft.world.gen.feature.WorldGenPumpkin;
    import net.minecraft.world.gen.feature.WorldGenerator;
    
    public class Patch
    {
    private static WorldGenerator uraniumGen;
    
    public static void decoratePatch(World worldIn, Random random, Biome biome, BlockPos pos, BiomeDecorator decorator)
        {
    System.out.println("decoratePatch ??");
            if (decorator.decorating)
            {
                throw new RuntimeException("Already decorating");
            }
            else
            {    
            decorator.chunkProviderSettings = ChunkProviderSettings.Factory.jsonToFactory(worldIn.getWorldInfo().getGeneratorOptions()).build();
            decorator.chunkPos = pos;
            decorator.dirtGen = new WorldGenMinable(Blocks.DIRT.getDefaultState(), decorator.chunkProviderSettings.dirtSize);
            decorator.gravelGen = new WorldGenMinable(Blocks.GRAVEL.getDefaultState(), decorator.chunkProviderSettings.gravelSize);
            decorator.graniteGen = new WorldGenMinable(Blocks.STONE.getDefaultState().withProperty(BlockStone.VARIANT, BlockStone.EnumType.GRANITE), decorator.chunkProviderSettings.graniteSize);
            decorator.dioriteGen = new WorldGenMinable(Blocks.STONE.getDefaultState().withProperty(BlockStone.VARIANT, BlockStone.EnumType.DIORITE), decorator.chunkProviderSettings.dioriteSize);
            decorator.andesiteGen = new WorldGenMinable(Blocks.STONE.getDefaultState().withProperty(BlockStone.VARIANT, BlockStone.EnumType.ANDESITE), decorator.chunkProviderSettings.andesiteSize);
            decorator.coalGen = new WorldGenMinable(Blocks.COAL_ORE.getDefaultState(), decorator.chunkProviderSettings.coalSize);
            decorator.ironGen = new WorldGenMinable(Blocks.IRON_ORE.getDefaultState(), decorator.chunkProviderSettings.ironSize);
    
            uraniumGen = new WorldGenMinable(BlockHandler.uraniumOre.getDefaultState(), decorator.chunkProviderSettings.ironSize);
    
            decorator.goldGen = new WorldGenMinable(Blocks.GOLD_ORE.getDefaultState(), decorator.chunkProviderSettings.goldSize);
            decorator.redstoneGen = new WorldGenMinable(Blocks.REDSTONE_ORE.getDefaultState(), decorator.chunkProviderSettings.redstoneSize);
            decorator.diamondGen = new WorldGenMinable(Blocks.DIAMOND_ORE.getDefaultState(), decorator.chunkProviderSettings.diamondSize);
            decorator.lapisGen = new WorldGenMinable(Blocks.LAPIS_ORE.getDefaultState(), decorator.chunkProviderSettings.lapisSize);
                genDecorationsPatch(biome, worldIn, random, decorator);
                decorator.decorating = false;
            }
        } 
    
    public static void genDecorationsPatch(Biome biomeIn, World worldIn, Random random, BiomeDecorator decorator)
        {
            net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.DecorateBiomeEvent.Pre(worldIn, random, decorator.chunkPos));
            generateOresPatch(worldIn, random, decorator);
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SAND))
            for (int i = 0; i < decorator.sandPerChunk2; ++i)
            {
                int j = random.nextInt(16) + 8;
                int k = random.nextInt(16) + 8;
                decorator.sandGen.generate(worldIn, random, worldIn.getTopSolidOrLiquidBlock(decorator.chunkPos.add(j, 0, k)));
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.CLAY))
            for (int i1 = 0; i1 < decorator.clayPerChunk; ++i1)
            {
                int l1 = random.nextInt(16) + 8;
                int i6 = random.nextInt(16) + 8;
                decorator.clayGen.generate(worldIn, random, worldIn.getTopSolidOrLiquidBlock(decorator.chunkPos.add(l1, 0, i6)));
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SAND_PASS2))
            for (int j1 = 0; j1 < decorator.sandPerChunk; ++j1)
            {
                int i2 = random.nextInt(16) + 8;
                int j6 = random.nextInt(16) + 8;
                decorator.gravelAsSandGen.generate(worldIn, random, worldIn.getTopSolidOrLiquidBlock(decorator.chunkPos.add(i2, 0, j6)));
            }
    
            int k1 = decorator.treesPerChunk;
    
            if (random.nextFloat() < decorator.extraTreeChance)
            {
                ++k1;
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.TREE))
            for (int j2 = 0; j2 < k1; ++j2)
            {
                int k6 = random.nextInt(16) + 8;
                int l = random.nextInt(16) + 8;
                WorldGenAbstractTree worldgenabstracttree = biomeIn.genBigTreeChance(random);
                worldgenabstracttree.setDecorationDefaults();
                BlockPos blockpos = worldIn.getHeight(decorator.chunkPos.add(k6, 0, l));
    
                if (worldgenabstracttree.generate(worldIn, random, blockpos))
                {
                    worldgenabstracttree.generateSaplings(worldIn, random, blockpos);
                }
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.BIG_SHROOM))
            for (int k2 = 0; k2 < decorator.bigMushroomsPerChunk; ++k2)
            {
                int l6 = random.nextInt(16) + 8;
                int k10 = random.nextInt(16) + 8;
                decorator.bigMushroomGen.generate(worldIn, random, worldIn.getHeight(decorator.chunkPos.add(l6, 0, k10)));
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.FLOWERS))
            for (int l2 = 0; l2 < decorator.flowersPerChunk; ++l2)
            {
                int i7 = random.nextInt(16) + 8;
                int l10 = random.nextInt(16) + 8;
                int j14 = worldIn.getHeight(decorator.chunkPos.add(i7, 0, l10)).getY() + 32;
    
                if (j14 > 0)
                {
                    int k17 = random.nextInt(j14);
                    BlockPos blockpos1 = decorator.chunkPos.add(i7, k17, l10);
                    BlockFlower.EnumFlowerType blockflower$enumflowertype = biomeIn.pickRandomFlower(random, blockpos1);
                    BlockFlower blockflower = blockflower$enumflowertype.getBlockType().getBlock();
    
                    if (blockflower.getDefaultState().getMaterial() != Material.AIR)
                    {
                        decorator.yellowFlowerGen.setGeneratedBlock(blockflower, blockflower$enumflowertype);
                        decorator.yellowFlowerGen.generate(worldIn, random, blockpos1);
                    }
                }
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.GRASS))
            for (int i3 = 0; i3 < decorator.grassPerChunk; ++i3)
            {
                int j7 = random.nextInt(16) + 8;
                int i11 = random.nextInt(16) + 8;
                int k14 = worldIn.getHeight(decorator.chunkPos.add(j7, 0, i11)).getY() * 2;
    
                if (k14 > 0)
                {
                    int l17 = random.nextInt(k14);
                    biomeIn.getRandomWorldGenForGrass(random).generate(worldIn, random, decorator.chunkPos.add(j7, l17, i11));
                }
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.DEAD_BUSH))
            for (int j3 = 0; j3 < decorator.deadBushPerChunk; ++j3)
            {
                int k7 = random.nextInt(16) + 8;
                int j11 = random.nextInt(16) + 8;
                int l14 = worldIn.getHeight(decorator.chunkPos.add(k7, 0, j11)).getY() * 2;
    
                if (l14 > 0)
                {
                    int i18 = random.nextInt(l14);
                    (new WorldGenDeadBush()).generate(worldIn, random, decorator.chunkPos.add(k7, i18, j11));
                }
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.LILYPAD))
            for (int k3 = 0; k3 < decorator.waterlilyPerChunk; ++k3)
            {
                int l7 = random.nextInt(16) + 8;
                int k11 = random.nextInt(16) + 8;
                int i15 = worldIn.getHeight(decorator.chunkPos.add(l7, 0, k11)).getY() * 2;
    
                if (i15 > 0)
                {
                    int j18 = random.nextInt(i15);
                    BlockPos blockpos4;
                    BlockPos blockpos7;
    
                    for (blockpos4 = decorator.chunkPos.add(l7, j18, k11); blockpos4.getY() > 0; blockpos4 = blockpos7)
                    {
                        blockpos7 = blockpos4.down();
    
                        if (!worldIn.isAirBlock(blockpos7))
                        {
                            break;
                        }
                    }
    
                    decorator.waterlilyGen.generate(worldIn, random, blockpos4);
                }
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SHROOM))
            {
            for (int l3 = 0; l3 < decorator.mushroomsPerChunk; ++l3)
            {
                if (random.nextInt(4) == 0)
                {
                    int i8 = random.nextInt(16) + 8;
                    int l11 = random.nextInt(16) + 8;
                    BlockPos blockpos2 = worldIn.getHeight(decorator.chunkPos.add(i8, 0, l11));
                    decorator.mushroomBrownGen.generate(worldIn, random, blockpos2);
                }
    
                if (random.nextInt(8) == 0)
                {
                    int j8 = random.nextInt(16) + 8;
                    int i12 = random.nextInt(16) + 8;
                    int j15 = worldIn.getHeight(decorator.chunkPos.add(j8, 0, i12)).getY() * 2;
    
                    if (j15 > 0)
                    {
                        int k18 = random.nextInt(j15);
                        BlockPos blockpos5 = decorator.chunkPos.add(j8, k18, i12);
                        decorator.mushroomRedGen.generate(worldIn, random, blockpos5);
                    }
                }
            }
    
            if (random.nextInt(4) == 0)
            {
                int i4 = random.nextInt(16) + 8;
                int k8 = random.nextInt(16) + 8;
                int j12 = worldIn.getHeight(decorator.chunkPos.add(i4, 0, k8)).getY() * 2;
    
                if (j12 > 0)
                {
                    int k15 = random.nextInt(j12);
                    decorator.mushroomBrownGen.generate(worldIn, random, decorator.chunkPos.add(i4, k15, k8));
                }
            }
    
            if (random.nextInt(8) == 0)
            {
                int j4 = random.nextInt(16) + 8;
                int l8 = random.nextInt(16) + 8;
                int k12 = worldIn.getHeight(decorator.chunkPos.add(j4, 0, l8)).getY() * 2;
    
                if (k12 > 0)
                {
                    int l15 = random.nextInt(k12);
                    decorator.mushroomRedGen.generate(worldIn, random, decorator.chunkPos.add(j4, l15, l8));
                }
            }
            } // End of Mushroom generation
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.REED))
            {
            for (int k4 = 0; k4 < decorator.reedsPerChunk; ++k4)
            {
                int i9 = random.nextInt(16) + 8;
                int l12 = random.nextInt(16) + 8;
                int i16 = worldIn.getHeight(decorator.chunkPos.add(i9, 0, l12)).getY() * 2;
    
                if (i16 > 0)
                {
                    int l18 = random.nextInt(i16);
                    decorator.reedGen.generate(worldIn, random, decorator.chunkPos.add(i9, l18, l12));
                }
            }
    
            for (int l4 = 0; l4 < 10; ++l4)
            {
                int j9 = random.nextInt(16) + 8;
                int i13 = random.nextInt(16) + 8;
                int j16 = worldIn.getHeight(decorator.chunkPos.add(j9, 0, i13)).getY() * 2;
    
                if (j16 > 0)
                {
                    int i19 = random.nextInt(j16);
                    decorator.reedGen.generate(worldIn, random, decorator.chunkPos.add(j9, i19, i13));
                }
            }
            } // End of Reed generation
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.PUMPKIN))
            if (random.nextInt(32) == 0)
            {
                int i5 = random.nextInt(16) + 8;
                int k9 = random.nextInt(16) + 8;
                int j13 = worldIn.getHeight(decorator.chunkPos.add(i5, 0, k9)).getY() * 2;
    
                if (j13 > 0)
                {
                    int k16 = random.nextInt(j13);
                    (new WorldGenPumpkin()).generate(worldIn, random, decorator.chunkPos.add(i5, k16, k9));
                }
            }
    
            if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.CACTUS))
            for (int j5 = 0; j5 < decorator.cactiPerChunk; ++j5)
            {
                int l9 = random.nextInt(16) + 8;
                int k13 = random.nextInt(16) + 8;
                int l16 = worldIn.getHeight(decorator.chunkPos.add(l9, 0, k13)).getY() * 2;
    
                if (l16 > 0)
                {
                    int j19 = random.nextInt(l16);
                    decorator.cactusGen.generate(worldIn, random, decorator.chunkPos.add(l9, j19, k13));
                }
            }
    
            if (decorator.generateLakes)
            {
                if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.LAKE_WATER))
                for (int k5 = 0; k5 < 50; ++k5)
                {
                    int i10 = random.nextInt(16) + 8;
                    int l13 = random.nextInt(16) + 8;
                    int i17 = random.nextInt(248) + 8;
    
                    if (i17 > 0)
                    {
                        int k19 = random.nextInt(i17);
                        BlockPos blockpos6 = decorator.chunkPos.add(i10, k19, l13);
                        (new WorldGenLiquids(Blocks.FLOWING_WATER)).generate(worldIn, random, blockpos6);
                    }
                }
    
                if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, random, decorator.chunkPos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.LAKE_LAVA))
                for (int l5 = 0; l5 < 20; ++l5)
                {
                    int j10 = random.nextInt(16) + 8;
                    int i14 = random.nextInt(16) + 8;
                    int j17 = random.nextInt(random.nextInt(random.nextInt(240) + 8) + 8);
                    BlockPos blockpos3 = decorator.chunkPos.add(j10, j17, i14);
                    (new WorldGenLiquids(Blocks.FLOWING_LAVA)).generate(worldIn, random, blockpos3);
                }
            }
            net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.DecorateBiomeEvent.Post(worldIn, random, decorator.chunkPos));
        }
    
    public static void generateOresPatch(World worldIn, Random random, BiomeDecorator decorator)
        {
            net.minecraftforge.common.MinecraftForge.ORE_GEN_BUS.post(new net.minecraftforge.event.terraingen.OreGenEvent.Pre(worldIn, random, decorator.chunkPos));
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.dirtGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.DIRT))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.dirtCount, decorator.dirtGen, decorator.chunkProviderSettings.dirtMinHeight, decorator.chunkProviderSettings.dirtMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.gravelGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.GRAVEL))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.gravelCount, decorator.gravelGen, decorator.chunkProviderSettings.gravelMinHeight, decorator.chunkProviderSettings.gravelMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.dioriteGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.DIORITE))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.dioriteCount, decorator.dioriteGen, decorator.chunkProviderSettings.dioriteMinHeight, decorator.chunkProviderSettings.dioriteMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.graniteGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.GRANITE))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.graniteCount, decorator.graniteGen, decorator.chunkProviderSettings.graniteMinHeight, decorator.chunkProviderSettings.graniteMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.andesiteGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.ANDESITE))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.andesiteCount, decorator.andesiteGen, decorator.chunkProviderSettings.andesiteMinHeight, decorator.chunkProviderSettings.andesiteMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.coalGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.COAL))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.coalCount, decorator.coalGen, decorator.chunkProviderSettings.coalMinHeight, decorator.chunkProviderSettings.coalMaxHeight);
    
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.ironGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.IRON))
            {
                    decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.ironCount, decorator.ironGen, decorator.chunkProviderSettings.ironMinHeight, decorator.chunkProviderSettings.ironMaxHeight);
                    System.out.println("toi aucun soucis on dirait....");
            }
    
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, uraniumGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.CUSTOM))
            {
        decorator.genStandardOre1(worldIn, random, 18, uraniumGen, 1, 32);
        System.out.println("va falloir apprendre à se montrer, nan ??");
            }
    
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.goldGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.GOLD))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.goldCount, decorator.goldGen, decorator.chunkProviderSettings.goldMinHeight, decorator.chunkProviderSettings.goldMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.redstoneGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.REDSTONE))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.redstoneCount, decorator.redstoneGen, decorator.chunkProviderSettings.redstoneMinHeight, decorator.chunkProviderSettings.redstoneMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.diamondGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.DIAMOND))
            decorator.genStandardOre1(worldIn, random, decorator.chunkProviderSettings.diamondCount, decorator.diamondGen, decorator.chunkProviderSettings.diamondMinHeight, decorator.chunkProviderSettings.diamondMaxHeight);
            if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldIn, random, decorator.lapisGen, decorator.chunkPos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.LAPIS))
            decorator.genStandardOre2(worldIn, random, decorator.chunkProviderSettings.lapisCount, decorator.lapisGen, decorator.chunkProviderSettings.lapisCenterHeight, decorator.chunkProviderSettings.lapisSpread);
            net.minecraftforge.common.MinecraftForge.ORE_GEN_BUS.post(new net.minecraftforge.event.terraingen.OreGenEvent.Post(worldIn, random, decorator.chunkPos));
        }
    }
    
    

    Bon voilà après je sais qu'il s'agit d'un problème très complexe, je ne m'attends pas à beaucoup de réposnes, mais au cas où cela puisse aider, voici un lien mediafire pour download le serveur sponge sur lequel je fais mes essais. Sa vous économisera pas mal de temps si vous souhaitez m'aider en environnement recompilé 😃
    Lien :
    http://www.mediafire.com/file/v362bdkzu6dsscc/server+test.rar
    Encore une fois merci de m'avoir lu, et bonne soirée à tout le monde !</localvariablenode></localvariablenode>





  • Je n'ai pas compris ton message.
    Tu veux que j'évite les coremods ou que je m'en serve autrement ? Tu m'envoies le github de Sponge, c'est pour que j'aille modifier ces sources ou juste pour me montrer qu'il est responsable de mes soucis ?
    Merci en tout cas de m'avoir répondu !



  • Soit évite les coremods (vu le problème je pense que c'est mieux), soit tu patch autrement Minecraft car là y'a un conflit entre ton mod et sponge et c'est possible qu'il y en ai avec d'autres mods : quand tu veux patcher une classe soit tu retires le code que tu ne veux pas, soit tu ajoutes le code que tu veux mais tu ne rediriges pas la fonction entière vers ta classe.



  • C'EST OFFICIEL ! SPONGE BLOQUE TOUS LES MINÉRAIS….
    Bravo aux devs, je sais qu'ils font un boulot de dingues, et que robin déteste qu'on les critique mais là.....Fallait se mettre d'accord avec la team de forge, car là même sans coremod, rien du tout ? C'est un sketch mdrr xD



  • Pourquoi ils bloquent tous les minerais ?



  • Car même après rechargement de la map, aucun minérais. Alors qu'en solo recompilé, tout marchait super
    Je suis convaincu que c'est sponge qui cause cela, cauldron et thermos ne m'ont jamais fait de tels coups.

    Je ne sais pas comment les autres mods de minérais 1.10.2 font pour fonctionner sur sponge. Ils ont sûrement contourné le système d'une certaine manière.

    EDIT = M-Ore fonctionne bien, étrange….Désolé, ça va pas plaire à l'auteur, mais je vais m'inspirer de son code. Si finalement, cela finit par marche, ce sujet sera clôt !



  • T'as réussi à lancer le jeu avec Sponge ?



  • Oui bien-sûr.
    Là je recompile tout un code un peu modifié, à la sauce de M-Ore, surprise j'ai envie de dire !

    EDIT = On dirait que ça marche. En gros, la seule importante modif effectuée est l'ajout d'un nouveau WorldGenMinable, avec quelque différence.
    Merci à vous tous en tout cas, et désolé du bug un peu "grotesque" !