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

    Résolu Supprimer les crafts des armures de bases

    1.7.x
    1.7.10
    3
    18
    3650
    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.
    • RageAgain
      RageAgain dernière édition par

      Bonjour,

      je commence depuis peu à modder avec Forge, j’ai fais un mod qui rajoute des armures à Minecraft.
      Et séparément, j’aimerai faire un mod qui permet de supprimer les crafts de bases des armures de minecrafts pour qu’ils ne soient plus craftables et qu’ils soient seulement dans le créative.

      Mais je ne sais pas comment m’y prendre sans toucher aux fichiers originaux! J’ai cru voir une fois un post parlant de ça, mais impossible de retomber sur le lien! Je suppose que je dois faire un lien vers le craftingManager.java où là, je fais un null sur les crafts?  :huh:  :huh:

      En espérant avoir une réponse claire  😊

      Cordialement,
      RageAgain

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Salut,
        Après une petite recherche :
        http://www.minecraftforge.net/forum/index.php/topic,7146.msg58748.html#msg58748
        Ou alors : https://github.com/FFMT/FFMT-libs/blob/master/common/fr/minecraftforgefrance/ffmtlibs/FFMTRegistry.java#L254

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

          J’ai pas pensé à regarder chez les anglais…merci beaucoup! :)___Et où dois-je l’insérer?

          En sachant que mon code de base ne ressemble que à ça pour l’instant :

          package fr.anticraftarmor.common;
          
          import cpw.mods.fml.common.Mod;
          import cpw.mods.fml.common.Mod.EventHandler;
          import cpw.mods.fml.common.Mod.Instance;
          import cpw.mods.fml.common.SidedProxy;
          import cpw.mods.fml.common.event.FMLInitializationEvent;
          import cpw.mods.fml.common.event.FMLPostInitializationEvent;
          import cpw.mods.fml.common.event.FMLPreInitializationEvent;
          import fr.anticraftarmor.proxy.CommonProxy;
          
          @Mod(modid = "anticraftarmor", name = "Anti Craft Armor", version = "1.0.0")
          public class AntiCraftArmor {
          @Instance("anticraftarmor")
          public static AntiCraftArmor instance;
          
          @SidedProxy(clientSide = "fr.anticraftarmor.proxy.ClientProxy", serverSide = "fr.anticraftarmor.proxy.CommonProxy")
          public static CommonProxy proxy;
          
          public static final String MODID = "anticraftarmor";
          
          @EventHandler
          public void preInit(FMLPreInitializationEvent event){
          
          }
          
          @EventHandler
          public void init(FMLInitializationEvent event){
          
          proxy.RegisterRender();
          }
          
          @EventHandler
          public void postInit(FMLPostInitializationEvent event){
          
          }
          }
          
          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            N’importe ou dans la classe, puis dans la fonction postInit tu appelle la fonction avec en argument l’item que tu veux retirer.

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

              Non, en faites, le code que tu m’as donné, c’est pour enlever les recettes d’items, mais lorsque je met en paramètre, ca me dit qu’il faut que ca soit un ItemArmor… 😞

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                Heu tu as fait quoi ?
                Envoie ton code.

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

                  package fr.anticraftarmor.common;
                  
                  import java.util.List;
                  
                  import net.minecraft.init.Blocks;
                  import net.minecraft.init.Items;
                  import net.minecraft.item.Item;
                  import net.minecraft.item.ItemArmor;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.item.crafting.CraftingManager;
                  import net.minecraft.item.crafting.IRecipe;
                  import net.minecraft.item.crafting.RecipesArmor;
                  import net.minecraft.item.crafting.ShapedRecipes;
                  import net.minecraft.item.crafting.ShapelessRecipes;
                  import cpw.mods.fml.common.Mod;
                  import cpw.mods.fml.common.Mod.EventHandler;
                  import cpw.mods.fml.common.Mod.Instance;
                  import cpw.mods.fml.common.SidedProxy;
                  import cpw.mods.fml.common.event.FMLInitializationEvent;
                  import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                  import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                  import cpw.mods.fml.common.registry.GameRegistry;
                  import fr.anticraftarmor.proxy.CommonProxy;
                  
                  @Mod(modid = "anticraftarmor", name = "Anti Craft Armor", version = "1.0.0")
                  public class AntiCraftArmor {
                  @Instance("anticraftarmor")
                  public static AntiCraftArmor instance;
                  
                  @SidedProxy(clientSide = "fr.anticraftarmor.proxy.ClientProxy", serverSide = "fr.anticraftarmor.proxy.CommonProxy")
                  public static CommonProxy proxy;
                  
                  public static final String MODID = "anticraftarmor";
                  
                  @EventHandler
                  public void preInit(FMLPreInitializationEvent event){
                  
                  }
                  
                  @EventHandler
                  public void init(FMLInitializationEvent event){
                  
                  proxy.RegisterRender();
                  }
                  
                  @EventHandler
                  public void postInit(FMLPostInitializationEvent event){
                  
                  removeRecipe(Items.leather_helmet); //Ici, erreur : The method removeRecipe(ItemStack) in the type AntiCraftArmor is not applicable for the arguments (ItemArmor)
                  
                  }
                  
                  public static void removeRecipe(ItemStack stack)
                  {
                  List <irecipe>recipeList = CraftingManager.getInstance().getRecipeList();
                  for(int i = 0; i < recipeList.size(); i++)
                  {
                  ItemStack output = recipeList.get(i).getRecipeOutput();
                  if(output != null && stack.getItem() == output.getItem() && stack.getItemDamage() == output.getItemDamage())
                  {
                  recipeList.remove(i);
                  FFMTLibs.ffmtLog.info("Removed recipe for : " + output.getItem().getUnlocalizedName(output)); //Ici, erreur aussi : FFMTLibs cannot be resolved
                  }
                  }
                  }
                  
                  }
                  
                  

                  Voila…la je coince! :(</irecipe>

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                    removeRecipe(new ItemStack(Items.leather_helmet));

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

                      Il y a toujours cette erreur là :

                      public static void removeRecipe(ItemStack stack)
                      {
                      List <irecipe>recipeList = CraftingManager.getInstance().getRecipeList();
                      for(int i = 0; i < recipeList.size(); i++)
                      {
                      ItemStack output = recipeList.get(i).getRecipeOutput();
                      if(output != null && stack.getItem() == output.getItem() && stack.getItemDamage() == output.getItemDamage())
                      {
                      recipeList.remove(i);
                      FFMTLibs.ffmtLog.info("Removed recipe for : " + output.getItem().getUnlocalizedName(output));
                      //Ici, erreur aussi : FFMTLibs cannot be resolved
                      }
                      }
                      }
                      ```</irecipe>
                      1 réponse Dernière réponse Répondre Citer 0
                      • RageAgain
                        RageAgain dernière édition par

                        Mais en tout cas, merci beaucoup, c’est déjà une erreur en moins 😄

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

                          J’ai rien dis! Il a suffit que je supprime cette ligne :

                          FFMTLibs.ffmtLog.info("Removed recipe for : " + output.getItem().getUnlocalizedName(output));
                          

                          Et c’était réglé, c’était juste une info d’après ce que je comprend!
                          Le craft est enlevé! J’ai plus qu’a faire ca pour le reste des items 😄

                          T’es un vrai DIEU robin4002! 😄 😄 ❤
                          Merci beaucoup à toi!

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

                            ENCORE UN PROBLEME =(
                            Au lancement de minecraft, celui-ci se crash après que j’ai rajouté mon petit AntiCraftArmor mod… 😞

                            Le log dans le spoiler !

                            :::

                            ---- Minecraft Crash Report ----
                            // You should try our sister game, Minceraft!

                            Time: 22/12/14 1:42
                            Description: There was a severe problem during mod loading that has caused the game to fail

                            cpw.mods.fml.common.LoaderException: java.lang.NoSuchFieldError: leather_helmet
                            at cpw.mods.fml.common.LoadController.transition(LoadController.java:162)
                            at cpw.mods.fml.common.Loader.initializeMods(Loader.java:695)
                            at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:288)
                            at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:541)
                            at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:867)
                            at net.minecraft.client.main.Main.main(SourceFile:148)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                            at java.lang.reflect.Method.invoke(Unknown Source)
                            at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                            at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                            Caused by: java.lang.NoSuchFieldError: leather_helmet
                            at fr.anticraftarmor.common.AntiCraftArmor.postInit(AntiCraftArmor.java:52)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                            at java.lang.reflect.Method.invoke(Unknown Source)
                            at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513)
                            at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                            at java.lang.reflect.Method.invoke(Unknown Source)
                            at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
                            at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
                            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
                            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
                            at com.google.common.eventbus.EventBus.post(EventBus.java:275)
                            at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208)
                            at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                            at java.lang.reflect.Method.invoke(Unknown Source)
                            at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
                            at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
                            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
                            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
                            at com.google.common.eventbus.EventBus.post(EventBus.java:275)
                            at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118)
                            at cpw.mods.fml.common.Loader.initializeMods(Loader.java:694)
                            … 10 more

                            A detailed walkthrough of the error, its code path and all known details is as follows:

                            – System Details –
                            Details:
                            Minecraft Version: 1.7.10
                            Operating System: Windows 8.1 (x86) version 6.3
                            Java Version: 1.8.0_25, Oracle Corporation
                            Java VM Version: Java HotSpot™ Client VM (mixed mode), Oracle Corporation
                            Memory: 103540136 bytes (98 MB) / 272281600 bytes (259 MB) up to 518979584 bytes (494 MB)
                            JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M
                            AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                            IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                            FML: MCP v9.05 FML v7.10.85.1230 Minecraft Forge 10.13.2.1230 8 mods loaded, 8 mods active
                            mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized
                            FML{7.10.85.1230} [Forge Mod Loader] (forge-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized
                            Forge{10.13.2.1230} [Minecraft Forge] (forge-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized
                            anticraftarmor{1.0.0} [Anti Craft Armor] (AntiCraftArmor.jar) Unloaded->Constructed->Pre-initialized->Initialized->Errored
                            ModName{1.0.0} [ModName] (equipement_1.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized
                            flansmod{4.8.0} [Flan’s Mod] (Flans Mod-1.7.10-4.8.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized
                            gvc{0.4.0} [Gliby’s Voice Chat Mod] (GlibysVC-1710_040.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized
                            mcheli{0.10.2} [MC Helicopter] (mcheli) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized

                            :::

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

                              Si il faut, voila les codes de mon mod!

                              AntiCraftArmor.java

                              package fr.anticraftarmor.common;
                              
                              import java.util.List;
                              
                              import net.minecraft.init.Blocks;
                              import net.minecraft.init.Items;
                              import net.minecraft.item.Item;
                              import net.minecraft.item.ItemArmor;
                              import net.minecraft.item.ItemStack;
                              import net.minecraft.item.crafting.CraftingManager;
                              import net.minecraft.item.crafting.IRecipe;
                              import net.minecraft.item.crafting.RecipesArmor;
                              import net.minecraft.item.crafting.ShapedRecipes;
                              import net.minecraft.item.crafting.ShapelessRecipes;
                              import cpw.mods.fml.common.Mod;
                              import cpw.mods.fml.common.Mod.EventHandler;
                              import cpw.mods.fml.common.Mod.Instance;
                              import cpw.mods.fml.common.SidedProxy;
                              import cpw.mods.fml.common.event.FMLInitializationEvent;
                              import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                              import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                              import cpw.mods.fml.common.registry.GameRegistry;
                              import fr.anticraftarmor.proxy.CommonProxy;
                              
                              @Mod(modid = "anticraftarmor", name = "Anti Craft Armor", version = "1.0.0")
                              public class AntiCraftArmor {
                              @Instance("anticraftarmor")
                              public static AntiCraftArmor instance;
                              
                              @SidedProxy(clientSide = "fr.anticraftarmor.proxy.ClientProxy", serverSide = "fr.anticraftarmor.proxy.CommonProxy")
                              public static CommonProxy proxy;
                              
                              public static final String MODID = "anticraftarmor";
                              
                              @EventHandler
                              public void preInit(FMLPreInitializationEvent event){
                              
                              }
                              
                              @EventHandler
                              public void init(FMLInitializationEvent event){
                              
                              proxy.RegisterRender();
                              }
                              
                              @EventHandler
                              public void postInit(FMLPostInitializationEvent event){
                              
                              //SUPPRESSION DES CRAFTS POUR LES ARMURES DE BASES
                              //Leather Armor
                              removeRecipes.removeRecipe(new ItemStack(Items.leather_helmet));
                              removeRecipes.removeRecipe(new ItemStack(Items.leather_chestplate));
                              removeRecipes.removeRecipe(new ItemStack(Items.leather_leggings));
                              removeRecipes.removeRecipe(new ItemStack(Items.leather_boots));
                              
                              //Chainmail Armor
                              removeRecipes.removeRecipe(new ItemStack(Items.chainmail_helmet));
                              removeRecipes.removeRecipe(new ItemStack(Items.chainmail_chestplate));
                              removeRecipes.removeRecipe(new ItemStack(Items.chainmail_leggings));
                              removeRecipes.removeRecipe(new ItemStack(Items.chainmail_boots));
                              
                              //Iron Armor
                              removeRecipes.removeRecipe(new ItemStack(Items.iron_helmet));
                              removeRecipes.removeRecipe(new ItemStack(Items.iron_chestplate));
                              removeRecipes.removeRecipe(new ItemStack(Items.iron_leggings));
                              removeRecipes.removeRecipe(new ItemStack(Items.iron_boots));
                              
                              //Golden Armor
                              removeRecipes.removeRecipe(new ItemStack(Items.golden_helmet));
                              removeRecipes.removeRecipe(new ItemStack(Items.golden_chestplate));
                              removeRecipes.removeRecipe(new ItemStack(Items.golden_leggings));
                              removeRecipes.removeRecipe(new ItemStack(Items.golden_boots));
                              
                              //Diamond Armor
                              removeRecipes.removeRecipe(new ItemStack(Items.diamond_helmet));
                              removeRecipes.removeRecipe(new ItemStack(Items.diamond_chestplate));
                              removeRecipes.removeRecipe(new ItemStack(Items.diamond_leggings));
                              removeRecipes.removeRecipe(new ItemStack(Items.diamond_boots));
                              }
                              
                              }
                              
                              

                              removeRecipes.java

                              package fr.anticraftarmor.common;
                              
                              import java.util.List;
                              
                              import net.minecraft.init.Items;
                              import net.minecraft.item.ItemStack;
                              import net.minecraft.item.crafting.CraftingManager;
                              import net.minecraft.item.crafting.IRecipe;
                              
                              public class removeRecipes extends AntiCraftArmor{
                              
                              public static void removeRecipe(ItemStack stack)
                              {
                              List <irecipe>recipeList = CraftingManager.getInstance().getRecipeList();
                              for(int i = 0; i < recipeList.size(); i++)
                              {
                              ItemStack output = recipeList.get(i).getRecipeOutput();
                              if(output != null && stack.getItem() == output.getItem() && stack.getItemDamage() == output.getItemDamage())
                              {
                              recipeList.remove(i);
                              }
                              }
                              }
                              }
                              
                              ```</irecipe>
                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                Tu as compilé comment ton mod ?

                                1 réponse Dernière réponse Répondre Citer 0
                                • Superloup10
                                  Superloup10 Modérateurs dernière édition par

                                  Déjà, les multi-posts d’affilé ne sont pas autorisés, il y a le bouton “Editer” qui est là. Ensuite, je te conseille fortement d’apprendre le Java et l’Anglais, parce que les erreurs sont en anglais.

                                  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
                                  • RageAgain
                                    RageAgain dernière édition par

                                    @robin4002: J’ai sélectionné mes packages et je les ais exporté en un .jar !

                                    @Superloup10: Excusez moi pour les multis post… 😕 D’accord pour l’anglais, mais le java, j’ai déjà fait des petites applications en console après avoir terminé le tutoriel sur le POO de openclassrooms, donc je crois avoir au moins les bases, mais j’ai beaucoup de mal en reprenant le codage de Minecraft et Forge… 😕 existe-t-il une javadoc?

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • robin4002
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                      Tu compile mal ton mod.
                                      Il faut faire comme pour le setup de forge, sauf que la c’est :
                                      gradlew build
                                      Ensuite le jar du mod se trouve dans <dossier de=“” forge=“”>/build/libs/ et s’appelle par défaut modid-1.0.jar</dossier>

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

                                        Okay! Super!
                                        merci beaucoup ! 🙂

                                        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