Résolu Probleme Generation 1.7.2
-
Bonjour, Je Crée un mod pour mon serveur et j’ai donc ajouter plusieurs minerais. Quand Je met le mod en solo tous Les Minerai se Génère Bien, Mais Quand Je met le mod sur le serv Aucun de mes Minerais Se Génère
Les Classe des Minerais
Améthiste
package fr.burning.lfc.blocks; import java.util.Random; import fr.burning.lfc.LaFrenchCraftMOD; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; public class MineraiAmethiste extends Block { public MineraiAmethiste(int i, Material material) { super(material); this.setHarvestLevel("pickaxe", 3); this.setHardness(6.0F); this.setResistance(0.2F); this.setLightLevel(0.2F); this.setStepSound(soundTypePiston); this.setBlockName("Minerai d'Amethiste"); this.setBlockTextureName(LaFrenchCraftMOD.MODID + ":Minerai_Amethiste"); } public int quantityDropped(int meta, int fortune, Random rand) { if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(meta, rand, fortune)) { int j = rand.nextInt(fortune + 2) - 1; if (j < 0) { j = 0; } return this.quantityDropped(rand) * (j + 1); } else { return this.quantityDropped(rand); } } public Item getItemDropped(int metadata, Random random, int fortune) { return LaFrenchCraftMOD.GemmeAmethiste; } }
Pheo
package fr.burning.lfc.blocks; import java.util.Random; import fr.burning.lfc.LaFrenchCraftMOD; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Items; import net.minecraft.item.Item; public class MineraiPheo extends Block { public MineraiPheo(int i, Material rock) { super(rock); /***************** * HarvestLevel: * * - Wood = 0 * * - Stone = 1 * * - Iron = 2 * * - Diamond = 3 * * - Gold = 0 * *****************/ this.setHarvestLevel("pickaxe", 3); this.setHardness(6.5F); this.setResistance(0.0F); this.setLightLevel(0.0F); this.setStepSound(soundTypePiston); this.setBlockName("Minerai de Pheonixte"); this.setBlockTextureName(LaFrenchCraftMOD.MODID + ":Minerai_Pheo"); } public int quantityDropped(int meta, int fortune, Random rand) { if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(meta, rand, fortune)) { int j = rand.nextInt(fortune + 2) - 1; if (j < 0) { j = 0; } return this.quantityDropped(rand) * (j + 1); } else { return this.quantityDropped(rand); } } public Item getItemDropped(int metadata, Random random, int fortune) { return LaFrenchCraftMOD.GemmePheo; } }
Citrine
package fr.burning.lfc.blocks; import java.util.Random; import fr.burning.lfc.LaFrenchCraftMOD; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; public class MineraiCitrine extends Block { public MineraiCitrine(int i, Material material) { super(material); /***************** * HarvestLevel: * * - Wood = 0 * * - Stone = 1 * * - Iron = 2 * * - Diamond = 3 * * - Gold = 0 * *****************/ this.setHarvestLevel("pickaxe", 3); this.setHardness(5.5F); this.setResistance(0.0F); this.setLightLevel(0.0F); this.setStepSound(soundTypePiston); this.setBlockName("Minerai de Citrine"); this.setBlockTextureName(LaFrenchCraftMOD.MODID + ":Minerai_Citrine"); } public Item getItemDropped(int metadata, Random random, int fortune) { return Item.getItemFromBlock(this); } public int QuantityDropped(Random random) { return 1; } }
Saphir
package fr.burning.lfc.blocks; import java.util.Random; import fr.burning.lfc.LaFrenchCraftMOD; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; public class MineraiSaph extends Block { public MineraiSaph(int i, Material rock) { super(rock); /***************** * HarvestLevel: * * - Wood = 0 * * - Stone = 1 * * - Iron = 2 * * - Diamond = 3 * * - Gold = 0 * *****************/ this.setHarvestLevel("pickaxe", 3); this.setHardness(7.5F); this.setResistance(0.0F); this.setLightLevel(0.0F); this.setStepSound(soundTypePiston); this.setBlockName("Minerai de Saphir"); this.setBlockTextureName(LaFrenchCraftMOD.MODID + ":Minerai_Saph"); } public Item getItemDropped(int metadata, Random random, int fortune) { return Item.getItemFromBlock(this); } public int QuantityDropped(Random random) { return 1; } }
Xp
package fr.burning.lfc.blocks; import java.util.Random; import fr.burning.lfc.LaFrenchCraftMOD; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; public class MineraiXP extends Block { public MineraiXP(int i, Material rock) { /***************** * HarvestLevel: * * - Wood = 0 * * - Stone = 1 * * - Iron = 2 * * - Diamond = 3 * * - Gold = 0 * *****************/ super(rock); this.setHarvestLevel("pickaxe", 2); this.setStepSound(soundTypePiston); this.setHardness(10.0F); this.setResistance(3.0F); this.setLightLevel(0.0F); this.setBlockName("Minerai D'XP"); this.setBlockTextureName(LaFrenchCraftMOD.MODID + ":Minerai_XP"); } public Item getItemDropped(int metadata, Random random, int fortune) { return Item.getItemFromBlock(this); } public int QuantityDropped(Random random) { return 1; } }
La Classe Generator
package fr.burning.lfc.world; import java.util.Random; import cpw.mods.fml.common.IWorldGenerator; import fr.burning.lfc.LaFrenchCraftMOD; import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; public class Generator implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator,IChunkProvider chunkProvider) { switch(world.provider.dimensionId) { case -1: generateNether(world, random, chunkX * 16, chunkZ * 16); break; case 0: generateSurface(world, random, chunkX * 16, chunkZ * 16); break; case 1: generateEnd(world, random, chunkX * 16, chunkZ * 16); break; } } private void generateNether(World world, Random random, int chunkX, int chunkZ) { generateOre(world, random, chunkX, chunkZ, LaFrenchCraftMOD.MineraiAmethiste, 0, 258, 92, 5); //Valeur élever pour les test } private void generateSurface(World world, Random random, int chunkX, int chunkZ) { generateOre(world, random, chunkX, chunkZ, LaFrenchCraftMOD.MineraiXP, 0, 16, 4, 5); generateOre(world, random, chunkX, chunkZ, LaFrenchCraftMOD.MineraiPheo, 0, 15, 5, 3); generateOre(world, random, chunkX, chunkZ, LaFrenchCraftMOD.MineraiSaph, 0, 10, 3, 4); generateOre(world, random, chunkX, chunkZ, LaFrenchCraftMOD.MineraiCitrine, 64, 128, 9, 5); } private void generateEnd(World world, Random random, int chunkX, int chunkZ) { } private void generateOre(World world, Random random, int chunkX, int chunkZ, Block block, int yMin, int yMax, int frequency, int size) { for(int i = 0 ; i < frequency ; i++) { int firstBlockX = chunkX + random.nextInt(16); int firstBlockY = yMin + random.nextInt(yMax - yMin); int firstBlockZ = chunkZ + random.nextInt(16); (new WorldGenMinable(block, size)).generate(world, random, firstBlockX, firstBlockY, firstBlockZ); } } }
La Classe Principale (Etant Très Longue Je Vais Enlever Tous les Items et Blocks qui n’on aucun Rapport) ^^
package fr.burning.lfc; /* * Les Imports */ @Mod(modid = "lfc", version = "4.0", name = "Mod LaFrenchCraft" ) public class LaFrenchCraftMOD { @Instance("lfc") public static LaFrenchCraftMOD instance; public static final String MODID = "lfc"; @SidedProxy(clientSide = "fr.burning.lfc.lib.ProxyClient", serverSide = "fr.burning.lfc.lib.ProxyCommon") public static ProxyCommon proxy; public static final CreativeTabs LaFrenchCraftBlockTabs = new LaFrenchCraftBlockTabs("LaFrenchCraftBlockTabs"); public static final CreativeTabs LaFrenchCraftItemTabs = new LaFrenchCraftItemTabs("LaFrenchCraftItemTabs"); public static final CreativeTabs LaFrenchCraftToolTabs = new LaFrenchCraftToolTabs("LaFrenchCraftToolTabs"); public static final CreativeTabs LaFrenchCraftArmorTabs = new LaFrenchCraftArmorTabs("LaFrenchCraftArmorTabs"); public static final CreativeTabs LaFrenchCraftFoodTabs = new LaFrenchCraftFoodTabs("LaFrenchCraftFoodTabs"); /*************** * Les Blocks * ***************/ public static Block MineraiXP; public static Block MineraiPheo; public static Block MineraiSaph; public static Block MineraiCitrine; public static Block MineraiAmethiste; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { System.out.println("/***preInit***/"); MineraiXP = new MineraiXP(3002, Material.rock); MineraiXP.setCreativeTab(LaFrenchCraftBlockTabs); PheoBlock = new PheoBlock(3004, Material.iron); PheoBlock.setCreativeTab(LaFrenchCraftBlockTabs); MineraiPheo = new MineraiPheo(3005, Material.rock); MineraiPheo.setCreativeTab(LaFrenchCraftBlockTabs); MineraiSaph = new MineraiSaph(3013, Material.rock); MineraiSaph.setCreativeTab(LaFrenchCraftBlockTabs); MineraiCitrine = new MineraiCitrine(3038, Material.rock); MineraiAmethiste = new MineraiAmethiste(3040, Material.rock); MineraiAmethiste.setCreativeTab(LaFrenchCraftBlockTabs); } @Mod.EventHandler public void init(FMLInitializationEvent event) { System.out.println("/***init***/"); GameRegistry.registerBlock(MineraiXP, "MineraiXP"); GameRegistry.registerBlock(MineraiPheo, "MineraiPheo"); GameRegistry.registerBlock(MineraiSaph, "MineraiSaph"); GameRegistry.registerBlock(MineraiCitrine, "MineraiCitrine"); GameRegistry.registerBlock(MineraiAmethiste, "MineraiAmethiste"); proxy.registerRenderInformation(); GameRegistry.registerWorldGenerator(new Generator(), 0); GameRegistry.registerWorldGenerator(new Generator(), -1); @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { System.out.println("/***postInit***/"); } }
Voila J’espère que Quelqu’un Pourras M’aider ^^
-
Je ne m’y connais pas en génération donc je vais pas pouvoir résoudre ton problème mais je t’informe qu’il existe la convention Java. Dans ta classe principale par exemple tes variables de type Block commencent toute par une majuscule alors qu’elles devraient commencer par une minuscule. La règle est une classe commence par une majuscules et une variable par une minuscules. Ainsi lorsque tu fait ```java
MineraiXP.setCreativeTab(“nomDuTab”);Voilà, ça ne change rien au fonctionnement du code mais c'est plus clair.
-
@‘bodri’:
Je ne m’y connais pas en génération donc je vais pas pouvoir résoudre ton problème mais je t’informe qu’il existe la convention Java. Dans ta classe principale par exemple tes variables de type Block commencent toute par une majuscule alors qu’elles devraient commencer par une minuscule. La règle est une classe commence par une majuscules et une variable par une minuscules. Ainsi lorsque tu fait ```java
MineraiXP.setCreativeTab(“nomDuTab”);Voilà, ça ne change rien au fonctionnement du code mais c'est plus clair.
Ok merci de L’info
-
Ok alors je ne vois pas trop bien, déjà pourquoi enregistres-tu dans ta partie init, 2 fois ton IWorldGenerator ? 1 fois suffit
Et puis sois sûr que le mod est bien installé sur ton serveur et régénère la map surtout.
Si ça ne marche toujours pas je comparerai avec mon code -
@‘Julot10085’:
Ok alors je ne vois pas trop bien, déjà pourquoi enregistres-tu dans ta partie init, 2 fois ton IWorldGenerator ? 1 fois suffit
Et puis sois sûr que le mod est bien installé sur ton serveur et régénère la map surtout.
Si ça ne marche toujours pas je comparerai avec mon codeIl y a IWorldGenerator enregistrer 2 fois car Il y en a un qui gere la generation des minerais du monde normal et l’autre du nether ^^
Oui mon mod est bien installer sur le serveur
-
Ton serveur a-t-il plusieurs dimensions ?
Et comme Julot l’a dit ton générateur ne devrait être enregistré qu’une seule fois et non deux fois … -
@‘robin4002’:
Ton serveur a-t-il plusieurs dimensions ?
Et comme Julot l’a dit ton générateur ne devrait être enregistré qu’une seule fois et non deux fois …ok Donc Je vais enlever un generateur et Mon serveur a plusieur dimensions oui (nether, end et le monde normal)
-
Quand je disais plusieurs dimensions je pensais à un plugin ou à un mod de multiworld. Tous les serveurs ont 3 dimensions, je voulais savoir si tu en avais plus.
-
@‘robin4002’:
Quand je disais plusieurs dimensions je pensais à un plugin ou à un mod de multiworld. Tous les serveurs ont 3 dimensions, je voulais savoir si tu en avais plus.
Non pas sur se serveur la ^^
-
Donc il n’y a aucune raison d’avoir des problèmes de génération. Regardes à coup de x-ray ta map.
-
@‘robin4002’:
Donc il n’y a aucune raison d’avoir des problèmes de génération. Regardes à coup de x-ray ta map.
ok j’avais regarder avec un //replace 1,2,3 0 de World edit et rien trouver je vais test avec X-ray
-
Envoies moi un zip avec tous le code du mod.
-
@‘robin4002’:
Envoies moi un zip avec tous le code du mod.
Je vient de t’envoyer les Source Par MP
-
Je n’ai pas trouvé de problème dans le code. Du-coup j’ai fais un gradlew build et je suis aller voir.
Et je ne vois pas où est le problème … -
@‘robin4002’:
Je n’ai pas trouvé de problème dans le code. Du-coup j’ai fais un gradlew build et je suis aller voir.
Et je ne vois pas où est le problème …Alors la je t’avoue Je Comprend pas Pourquoi Moi sa Marche pas O_o, ducous je passe en résolu je vais tester de regen la map du serv