• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    ENREGISTER un item

    Sans suite
    1.12.x
    6
    15
    2027
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • S
      Sciron dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

        1 réponse Dernière réponse Répondre Citer 0
        • S
          Sciron dernière édition par

          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 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

            1 réponse Dernière réponse Répondre Citer 0
            • S
              Sciron dernière édition par

              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 réponse Dernière réponse Répondre Citer 0
              • A
                aypristyle dernière édition par

                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 réponse Dernière réponse Répondre Citer 1
                • S
                  Sciron dernière édition par

                  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 réponse Dernière réponse Répondre Citer 0
                  • SpyMan
                    SpyMan dernière édition par

                    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 réponse Dernière réponse Répondre Citer 0
                    • BrokenSwing
                      BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par

                      Suivez les tutoriels

                      1 réponse Dernière réponse Répondre Citer 0
                      • A
                        aypristyle dernière édition par

                        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 réponse Dernière réponse Répondre Citer 0
                        • Superloup10
                          Superloup10 Modérateurs dernière édition par

                          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 réponse Dernière réponse Répondre Citer 0
                          • SpyMan
                            SpyMan dernière édition par

                            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 réponse Dernière réponse Répondre Citer 0
                            • A
                              aypristyle dernière édition par

                              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 réponse Dernière réponse Répondre Citer 0
                              • S
                                Sciron dernière édition par

                                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 réponse Dernière réponse Répondre Citer 0
                                • A
                                  aypristyle dernière édition par

                                  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 réponse Dernière réponse Répondre Citer 0
                                  • 1 / 1
                                  • Premier message
                                    Dernier message
                                  Design by Woryk
                                  Contact / Mentions Légales

                                  MINECRAFT FORGE FRANCE © 2018

                                  Powered by NodeBB