• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    ENREGISTER un item

    Sans suite
    1.12.x
    6
    15
    1943
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sciron last edited by

      Bonjour, je ne suis pas un débutant en java mais je suis récemment passer du modding 1.7.10 à 1.12 et je ne trouve plus comment enregistrer, j’aimerais que vous m’aideriez à compléter la fonction GameRegistry (ne fonctionnant pas avec le code présent)

      Merçi d’avance

      package init;
      
      import com.mod.TGOTG.Reference;
      
      import items.ItemVikingAxe;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.renderer.block.model.ModelResourceLocation;
      import net.minecraft.item.Item;
      import net.minecraftforge.fml.common.registry.GameRegistry;
      
      public class ModItems
      {
      public static Item Viking_axe;
      
      public static void init()
      {
      Viking_axe = new ItemVikingAxe();
      }
      
      public static void register()
      {
      GameRegistry.register(Viking_axe);
      }
      
      public static void registerRenders()
      {
      registerRender(Viking_axe);
      }
      
      private static void registerRender(Item item)
      {
      Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
      }
      }
      

      également rien

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        Salut,
        Il faut passer par l’event RegistryEvent.Register https://www.minecraftforgefrance.fr/showthread.php?tid=4367

        1 Reply Last reply Reply Quote 0
        • S
          Sciron last edited by

          CC, j’ai fait Ce code mais je ne suis pas sur qu’il sois sois juste car  j’ai toujours la même erreur

          public static void register()
          {
          RegistryEvent.Register<itemvikingaxe>;
          }
          
          ```</itemvikingaxe>

          également rien

          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

            Tu n’as pas regardé le lien que je t’es envoyé.

            1 Reply Last reply Reply Quote 0
            • S
              Sciron last edited by

              Si mais j’aimerais enregistrer mes items dans la class de base (1er code que je t envoyer) et pas recrée une autre class

              1. RegisteringHandler c’est possible ?

              également rien

              1 Reply Last reply Reply Quote 0
              • A
                aypristyle last edited by

                Coucou moi j’ai utilisé ses deux fonctions (la première pour le registry et le nom délocalisé et la seconde pour enregistrer mes items)

                public static void setItemName(Item item, String name)
                    {
                        // ici on va attribuer un nom à nos objets
                        item.setRegistryName(Reference.MODID, name).setUnlocalizedName(Reference.MODID + "." + name);
                    }
                
                public static void registerItem(Item item){
                ForgeRegistries.ITEMS.register(item);
                ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
                }
                

                **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                1 Reply Last reply Reply Quote 1
                • S
                  Sciron last edited by

                  J’ai essayer ton code, il n’y a pue d’erreur mais l’item n’est toujours pas implenter 😢

                  package init;
                  
                  import com.mod.TGOTG.Reference;
                  
                  import items.ItemVikingAxe;
                  import net.minecraft.client.Minecraft;
                  import net.minecraft.client.renderer.block.model.ModelResourceLocation;
                  import net.minecraft.item.Item;
                  import net.minecraftforge.client.model.ModelLoader;
                  import net.minecraftforge.event.RegistryEvent;
                  import net.minecraftforge.fml.common.registry.ForgeRegistries;
                  import net.minecraftforge.fml.common.registry.GameRegistry;
                  
                  public class ModItems
                  {
                  public static Item Viking_axe;
                  
                  public static void init()
                  {
                  Viking_axe = new ItemVikingAxe();
                  }
                  
                  public static void registerRenders()
                  {
                  registerRender(Viking_axe);
                  }
                  
                  private static void registerRender(Item item)
                  {
                  Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
                  }
                  
                  public static void register()
                  {
                  ForgeRegistries.ITEMS.register(Viking_axe);
                  ModelLoader.setCustomModelResourceLocation(Viking_axe, 0, new ModelResourceLocation(Viking_axe.getRegistryName(), "inventory"));
                  }
                  }
                  

                  également rien

                  1 Reply Last reply Reply Quote 0
                  • SpyMan
                    SpyMan last edited by

                    Pourquoi s’embêter avec des methods ??? faites le instruction par instruction c’est tellement plus simple quand l’on débute a modder en 1.10 🙂

                    1 Reply Last reply Reply Quote 0
                    • BrokenSwing
                      BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                      Suivez les tutoriels

                      1 Reply Last reply Reply Quote 0
                      • A
                        aypristyle last edited by

                        Est-ce que tu as bien une classe RegistryHandler avec au moins ça dedans ?

                        public class RegisteryHandler {
                        
                        public static void Client(){
                        
                        }
                        public static void Common()
                        {
                        NomClasse.init();
                        NomClasse.register();}
                        }
                        

                        et j’aimerais voir tes proxy aussi s’il te plaît

                        **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                        1 Reply Last reply Reply Quote 0
                        • Superloup10
                          Superloup10 Modérateurs last edited by

                          C’est quoi cette convention très mal respectée ? Ensuite, il serait peut être temps d’arrêter de vous servir d’un classe poubelle (RegisteryHandler), il vaut mieux réunir tous les blocs ensemble, etc…

                          Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                          1 Reply Last reply Reply Quote 0
                          • SpyMan
                            SpyMan last edited by

                            Je comprend pas les gens commencer par le modding avant de connaitre le langage à employer ce qui fait que le modder est complètement paumé dans un truc qui se nomme le “Code” et le rend dépendent d’autres personnes pour écrire son code

                            1 Reply Last reply Reply Quote 0
                            • A
                              aypristyle last edited by

                              Merci de ta remarque Superloup10 je pense et j’espèreavoir correctement modifié mon poste pour respecter la convention java.Mais personnellment je ne pense pas que ma classe  RegistryHandler soit encore une classe “poubelle” elle sert juste a centralisé mes autres classe (j’ai maintenant une classe BlockInit une ArmorInit etc…) Elle me sert juste à éviter de surcharger ma classe principale  😉

                              **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                              1 Reply Last reply Reply Quote 0
                              • S
                                Sciron last edited by

                                Oui, j’ai une classe RegistryHandler qui contient exactement ton code à la ligne près et voila mes proxy

                                Le client :
                                
                                package com.mod.tgotg.client;
                                
                                import java.io.File;
                                
                                import com.mod.tgotg.TgotgCommon;
                                
                                public class TgotgClient extends TgotgCommon
                                {
                                
                                @Override
                                public void preInit(File configFile)
                                {
                                super.preInit(configFile);
                                System.out.println("pre init côté Client");
                                }
                                
                                @Override
                                public void Init()
                                {
                                super.Init();
                                }
                                
                                }
                                
                                

                                Le server

                                package com.mod.tgotg.server;
                                
                                import java.io.File;
                                
                                import com.mod.tgotg.TgotgCommon;
                                
                                public class TgotgServer extends TgotgCommon
                                {
                                
                                @Override
                                public void preInit(File configFile)
                                {
                                super.preInit(configFile);
                                System.out.println("pre init côté serveur");
                                }
                                
                                @Override
                                public void Init() {
                                
                                super.Init();
                                }
                                
                                }
                                
                                

                                Le common

                                package com.mod.tgotg;
                                
                                import java.io.File;
                                
                                import com.mod.tgotg.Items.TgotgItems;
                                
                                public class TgotgCommon
                                {
                                
                                public void preInit(File configFile)
                                {
                                System.out.println("pre init côté commun");
                                TgotgItems.register();
                                }
                                
                                public void Init()
                                {
                                
                                }
                                
                                }
                                
                                

                                également rien

                                1 Reply Last reply Reply Quote 0
                                • A
                                  aypristyle last edited by

                                  Salut alors à mon avis il faut faire quelque changements dans tes proxys (je te donne ma méthode ce n’est surement pas la plus respectueuse des conventions car je suis encore débutante)
                                  On va utiliser les events comme l’a dit Robin

                                  Dans ton common proxy ajoute ça dans ta fonction preinit ```java
                                  RegisteryHandler.Common();

                                  
                                  Dans ton Client proxy il faut que tu obtienne quelquechose comme ceci
                                  ```java
                                  
                                  public class ClientProxy extends CommonProxy
                                  {
                                    public void preInit(FMLPreInitializationEvent event)
                                  {
                                  super.preInit(event);
                                  }
                                  
                                  public void init(FMLInitializationEvent event)
                                  {
                                  super.init(event);
                                  RegisteryHandler.Client();
                                  }
                                  
                                  public void postInit(FMLPostInitializationEvent event)
                                  {
                                  super.postInit(event);
                                  }
                                  }
                                  
                                  

                                  et dans ta classe principale vérifie que tu as bien dans toutes fonctions une ligne comme celle-ci

                                  proxy.nomdetafonction(event); ex proxy.preInit(event);
                                  

                                  **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

                                  1 Reply Last reply Reply Quote 0
                                  • 1 / 1
                                  • First post
                                    Last post
                                  Design by Woryk
                                  Contact / Mentions Légales

                                  MINECRAFT FORGE FRANCE © 2018

                                  Powered by NodeBB