Problème d'ID



  • Bonjour je suis "débutant" dans ce milieu et j'ai un problème, je suis en train de créer un serveur Minecraft Modée Semi-RP, dont mon mod fait partis malheureusement mes blocks et items n'ont pas d'ID et je en sais pas comment leurs en donnée une, car quand je rajoute un Items ou un Blocks leur ID change et du coup les blocks disparaissent par exemple ...
    Merci D'avoir lue mon message et j’espère pouvoir avoir votre aide ...


  • Moddeurs confirmés Rédacteurs Administrateurs

    Salut,
    Les ids sont gérés automatiquement, tu n'as pas à t'en soucier.



  • Mais à chaque fois que j'ajoute un Item/Block a mon mods les ID change et du coup font disparaître tous les Block qui font parti de mon mod qui était sur ma map par exemple


  • Moddeurs confirmés Rédacteurs Administrateurs

    Ça ce n'est pas normal par contre.

    Tu enregistres comment tes blocs ?
    Quand tu ajoutes un nouveau bloc, est-ce que tu changes le nom des autres blocs ?



  • Voici ma class BlockMod

    package com.mod.AtomOfWar.init;
    
    import com.mod.AtomOfWar.main;
    import com.mod.AtomOfWar.ref;
    import com.mod.AtomOfWar.blocks.BlockBasic;
    import com.mod.AtomOfWar.blocks.BlockFenceMod;
    
    import cpw.mods.fml.common.registry.GameRegistry;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.creativetab.CreativeTabs;
    
    public class BlockMod
    {
        public static Block prismarine_block, prismarine_brick, darck_prismarine, sea_lantern;
        public static Block spruce_fence, dark_oak_fence, birch_fence, acacia_fence, jungle_fence;
        
        public static void init()
        {
            prismarine_block = new BlockBasic(Material.rock).setBlockName("prismarine_block").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":prismarine_block");
            prismarine_brick = new BlockBasic(Material.rock).setBlockName("prismarine_brick").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":prismarine_brick");
            darck_prismarine = new BlockBasic(Material.rock).setBlockName("darck_prismarine").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":darck_prismarine");
            sea_lantern = new BlockBasic(Material.glass).setBlockName("sea_lantern").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":sea_lantern").setLightLevel(1.0F);
            spruce_fence = new BlockFenceMod("planks_spruce", Material.wood).setBlockName("spruce_fence").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":spruce_fence");
            dark_oak_fence = new BlockFenceMod("planks_big_oak", Material.wood).setBlockName("dark_oak_fence").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":dark_oak_fence");
            birch_fence = new BlockFenceMod("planks_birch", Material.wood).setBlockName("birch_fence").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":birch_fence");
            acacia_fence = new BlockFenceMod("planks_acacia", Material.wood).setBlockName("acacia_fence").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":acacia_fence");
            jungle_fence = new BlockFenceMod("planks_jungle", Material.wood).setBlockName("jungle_fence").setCreativeTab(main.TabAtom).setBlockTextureName(ref.MOD_ID + ":jungle_fence");
            
        }
        
        public static void register()
        {
            GameRegistry.registerBlock(prismarine_block, prismarine_block.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(prismarine_brick, prismarine_brick.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(darck_prismarine, darck_prismarine.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(sea_lantern, sea_lantern.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(spruce_fence, spruce_fence.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(dark_oak_fence, dark_oak_fence.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(birch_fence, birch_fence.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(acacia_fence, acacia_fence.getUnlocalizedName().substring(5));
            GameRegistry.registerBlock(jungle_fence, jungle_fence.getUnlocalizedName().substring(5));
        }
    }
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    Je ne vois rien d'anormal.
    Lorsque tu ajoutes un bloc, avant de charger un monde, forge t'indique que des blocs sont manquants ? Ou il n'y a aucun message et les blocs disparaissent simplement au chargement du monde ?



  • non enfaîte quand je redémarre le serveur et que j'ai changer le mod pour ajouter ce que j'ai ajouter les ID change et ça me fait ça (il n'y a pas que mon mod sur le serveur)


  • Moddeurs confirmés Rédacteurs Administrateurs

    Le problème est uniquement présent sur le serveur ou aussi en solo ?
    Si ce n'est que sur le serveur, qu'est-ce que tu utilises pour ton serveur ?



  • Non seulement sur le serveur et je suis sous Thermos 1.7.10


  • Moddeurs confirmés Rédacteurs Administrateurs

    C'est surement un problème de thermos alors ...
    Ton serveur est à jour ?



  • Oui dernière version mais je ne comprend vraiment pas pourquoi l'ID change (quand je dit ID c'est le 😵 Voici mon interface :
    Sur le Serveur
    0_1541431331259_6f15028a-b1d6-4654-aa16-36bd4f44c187-image.png
    En solo :
    0_1541431411045_21620e68-81fd-40af-bff4-eeb67b486a24-image.png


  • Moddeurs confirmés Rédacteurs Administrateurs

    Je n'ai pas de solution malheureusement 😕



  • il n'y a pas moyen de donner un ID unique a mes items/blocks ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    Ils sont déjà unique. Si la question c'était de mettre des ids figés dans le code, la réponse est non.



  • Bon bah merci quand même
    Je voulais savoir aussi si il était possible de rendre un item instackable ?



  • Oui, dans le constructeur de ton Item tu met

    this.setStackSize(1);
    

    Il me semble (je ne peux pas vérifier maintenant je suis en cours dsl)
    Si jamais tu veux que ce soit applicable uniquement à un seul item de ta class alors la ou tu déclare l'item tu fais

    tonItem = new ClassDeTonItem().setStackSize(1);

  • Moddeurs confirmés Rédacteurs Administrateurs

    C'est setMaxStackSize(1)


Log in to reply