Eclipse, déclaration dans package



  • Bonsoir j'aimerais savoir s'il est possible de déclarer des items dans un package autre que mon common avec mon preInit etc.


  • Modérateurs

    Oui bien sûr. Il te faudra juste les importer après.



  • Hmm, je comprend pas pourquoi ca ne fonctionne pas, mes items étaient déclarés dans ma classe principale. J'ai donc tout repris dans une autre classe mais les items ne sont pas en jeu

    package SortCra;
    
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.registry.GameRegistry;
    import fr.shyfe.dcedo.common.Main;
    import net.minecraft.item.Item;
    
    public class SortsCra
    {
    
    public static SortsCra instance;
    
    public static Item FlecheMagique, FlecheEmpoisonne, FlecheRecul, FlecheEnflamme, FlecheExpiation, OeilTaupe, FlecheImmobilisation, FlechePunitive, TirPuissant, FlecheCinglante, FlechePersecutrice, FlecheDestructrice, FlecheAbsorbante, FlecheRalentissante, FlecheExplosive, FlecheHarcelante;
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event)
    {
    FlecheMagique = new FlecheMagique().setUnlocalizedName("flechemagique").setTextureName(Main.MODID + ":FlecheMagique").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheMagique, "FlecheMagique");
    FlecheEmpoisonne = new FlecheEmpoisonne().setUnlocalizedName("flecheempoisonne").setTextureName(Main.MODID + ":FlecheEmpoisonne").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheEmpoisonne, "FlecheEmpoisonne");
    FlecheRecul = new FlecheRecul().setUnlocalizedName("flecherecul").setTextureName(Main.MODID + ":FlecheRecul").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheRecul, "FlecheRecul");
    FlecheEnflamme = new FlecheEnflamme().setUnlocalizedName("flecheenflamme").setTextureName(Main.MODID + ":FlecheEnflamme").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheEnflamme, "FlecheEnflamme");
    FlecheExpiation = new FlecheExpiation().setUnlocalizedName("flecheexpiation").setTextureName(Main.MODID + ":FlecheExpiation").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheExpiation, "FlecheExpiation");
    OeilTaupe = new OeilTaupe().setUnlocalizedName("oeiltaupe").setTextureName(Main.MODID + ":OeilTaupe").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(OeilTaupe, "OeilTaupe");
    FlecheImmobilisation = new FlecheImmobilisation().setUnlocalizedName("flecheimmobilisation").setTextureName(Main.MODID + ":FlecheImmobilisation").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheImmobilisation, "FlecheImmobilisation");
    FlechePunitive = new FlechePunitive().setUnlocalizedName("flechepunitive").setTextureName(Main.MODID + ":FlechePunitive").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlechePunitive, "FlechePunitive");
    TirPuissant = new TirPuissant().setUnlocalizedName("tirpuissant").setTextureName(Main.MODID + ":TirPuissant").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(TirPuissant, "TirPuissant");
    FlecheCinglante = new FlecheCinglante().setUnlocalizedName("flechecinglante").setTextureName(Main.MODID + ":FlecheCinglante").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheCinglante, "FlecheCinglante");
    FlechePersecutrice = new FlechePersecutrice().setUnlocalizedName("flechepersecutrice").setTextureName(Main.MODID + ":FlechePersecutrice").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlechePersecutrice, "FlechePersecutrice");
    FlecheDestructrice = new FlecheDestructrice().setUnlocalizedName("flechedestructrice").setTextureName(Main.MODID + ":FlecheDestructrice").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheDestructrice, "FlecheDestructrice");
    FlecheAbsorbante = new FlecheAbsorbante().setUnlocalizedName("flecheabsorbante").setTextureName(Main.MODID + ":FlecheAbsorbante").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheAbsorbante, "FlecheAbsorbante");
    FlecheRalentissante = new FlecheRalentissante().setUnlocalizedName("flecheralentissante").setTextureName(Main.MODID + ":FlecheRalentissante").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheRalentissante, "FlecheRalentissante");
    FlecheExplosive = new FlecheExplosive().setUnlocalizedName("flecheexplosive").setTextureName(Main.MODID + ":FlecheExplosive").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheExplosive, "FlecheExplosive");
    FlecheHarcelante = new FlecheHarcelante().setUnlocalizedName("flecheharcelante").setTextureName(Main.MODID + ":FlecheHarcelante").setCreativeTab(Main.CreaTabSortCra);
    GameRegistry.registerItem(FlecheHarcelante, "FlecheHarcelante");
    }
    }
    


  • C'est normal il n'y aucune annotation @Mod dans ta classe.

    EDIT : si tu as déjà une classe principale il faut que tu enlèves le @EventHandler et appele la fonction preInit à partir de ta classe principale.



  • @'AymericRed':

    C'est normal il n'y aucune annotation @Mod dans ta classe.

    EDIT : si tu as déjà une classe principale il faut que tu enlèves le @EventHandler et appele la fonction preInit à partir de ta classe principale.

    "appele la fonction preInit à partir de ta classe principale." Tu peux me donner un exemple, je vois pas ce que je dois faire ? Merci.


  • Administrateurs

    déjà faut la mettre en static.
    Ensuite dans la classe principale tu fais simplement SortsCra.preInit();
    Et tu peux retirer le FMLPreInitializationEvent event dans SortsCra.java comme tu ne l'utilises pas.



  • Dans ta classe principale, dans la fonction preInit, tu fais "SortsCra.preInit(event);".
    Ah il faudra par contre que t'ajoute "static" devant le "void" de la fonction car tu n'as pas d'instance de la classe.



  • Ca fonctionne, merci 😛