MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Supprimer le craft d'un autre mod

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    11 Messages 3 Publieurs 2.7k Vues 1 Watching
    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.
    • D Hors-ligne
      Degraduck
      dernière édition par

      Bonjour alors voila je voudrais supprimer des craft d’un autre mod dont je n’ai pas les sources, en gros supprimer des craft du mod IronChest en 1.7.10 seulement sur le github il n’y a pas de branche 1.7.10 je voulais savoir comment faire pour récuperer la recette et l’annuler.
      Supprimer un craft je sais faire je bloc ici :

      removeRecipe(new ItemStack(???));
      

      Je ne sais pas quoi mettre dans mon ItemStack.

      1 réponse Dernière réponse Répondre Citer 0
      • BrokenSwingB Hors-ligne
        BrokenSwing Moddeurs confirmés Rédacteurs
        dernière édition par

        Là ça supprime TOUS les crafts du mod ironchest (plus précisément : tous les crafts qui ont pour résultat un objet du mod ironchest), si tu ne veux en supprimer que quelques-uns sans connaitre les noms des objets, ça va être compliqué

        
        Iterator <irecipe>it = CraftingManager.getInstance().getRecipeList().iterator();
        while(it.hasNext()) {
        IRecipe recipe = it.next();
        UniqueIdentifier uid = GameRegistry.findUniqueIdentifierFor(recipe.getRecipeOutput().getItem());
        if(uid.modId.equalsIgnoreCase("ironchest")) {
        it.remove();
        }
        }
        
        ```</irecipe>
        1 réponse Dernière réponse Répondre Citer 0
        • D Hors-ligne
          Degraduck
          dernière édition par

          je peux connaitre les noms en ouvrant avec JavaDecompiler

          1 réponse Dernière réponse Répondre Citer 0
          • BrokenSwingB Hors-ligne
            BrokenSwing Moddeurs confirmés Rédacteurs
            dernière édition par

            Tu n’as qu’à modifier la condition :

            
            List <integer>metadatas = Arrays.asList(1);
            /**
            * Metadatas :
            * 0.Iron, 1.GOLD, 2.DIAMOND, 3.COPPER, 4.SILVER, 5.CRYSTAL, 6.OBSIDIAN, 7.DIRTCHEST9000, 8.WOOD
            * – il me semble que c'est ça --
            */
            Iterator <irecipe>it = CraftingManager.getInstance().getRecipeList().iterator();
            while(it.hasNext()) {
            IRecipe recipe = it.next();
            int metadata = recipe.getRecipeOutput().getItemDamage();
            UniqueIdentifier uid = GameRegistry.findUniqueIdentifierFor(recipe.getRecipeOutput().getItem());
            if(uid.modId.equalsIgnoreCase("ironchest") && uid.name.equalsIgnoreCase("blockironchest") && metadatas.contains(metadata)) {
            it.remove();
            }
            }
            
            ```</irecipe></integer>
            1 réponse Dernière réponse Répondre Citer 0
            • robin4002R Hors-ligne
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
              dernière édition par

              Salut,
              Autre solution :

              removeRecipe(GameRegistry.findItemStack("modid", "nom de l'item ou du bloc"));
              
              1 réponse Dernière réponse Répondre Citer 0
              • D Hors-ligne
                Degraduck
                dernière édition par

                J’ai testé avec la solution de Robin et j’ai un crash:

                :::
                –-- Minecraft Crash Report ----
                // There are four lights!

                Time: 26/12/16 18:05
                Description: Initializing game

                java.lang.NullPointerException: Initializing game
                at com.degraduck.atlantidecraft.craft.RemoveRecipe.removeRecipe(RemoveRecipe.java:27)
                at com.degraduck.atlantidecraft.craft.RemoveRecipe.init(RemoveRecipe.java:16)
                at com.degraduck.atlantidecraft.core.AtlantideCraft.init(AtlantideCraft.java:75)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                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:212)
                at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                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:119)
                at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
                at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
                at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:552)
                at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)
                at net.minecraft.client.main.Main.main(SourceFile:148)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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

                – Head –
                Stacktrace:
                at com.degraduck.atlantidecraft.craft.RemoveRecipe.removeRecipe(RemoveRecipe.java:27)
                at com.degraduck.atlantidecraft.craft.RemoveRecipe.init(RemoveRecipe.java:16)
                at com.degraduck.atlantidecraft.core.AtlantideCraft.init(AtlantideCraft.java:75)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                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:212)
                at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                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:119)
                at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
                at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
                at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:552)

                – Initialization –
                Details:
                Stacktrace:
                at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)
                at net.minecraft.client.main.Main.main(SourceFile:148)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:483)
                at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

                – System Details –
                Details:
                Minecraft Version: 1.7.10
                Operating System: Windows 10 (amd64) version 10.0
                Java Version: 1.8.0_25, Oracle Corporation
                Java VM Version: Java HotSpot™ 64-Bit Server VM (mixed mode), Oracle Corporation
                Memory: 115954304 bytes (110 MB) / 312717312 bytes (298 MB) up to 5355339776 bytes (5107 MB)
                JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx5G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
                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.99.99 Minecraft Forge 10.13.4.1558 5 mods loaded, 5 mods active
                States: ‘U’ = Unloaded ‘L’ = Loaded ‘C’ = Constructed ‘H’ = Pre-initialized ‘I’ = Initialized ‘J’ = Post-initialized ‘A’ = Available ‘D’ = Disabled ‘E’ = Errored
                UCHI mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
                UCHI FML{7.10.99.99} [Forge Mod Loader] (forge-1.7.10-10.13.4.1558-1.7.10.jar)
                UCHI Forge{10.13.4.1558} [Minecraft Forge] (forge-1.7.10-10.13.4.1558-1.7.10.jar)
                UCHI IronChest{6.0.62.742} [Iron Chest] (ironchest-1.7.10-6.0.62.742-universal.jar)
                UCHE atlantidecraft{Beta 1.0.0} [Atlantide Craft] (modid-1.0.jar)
                GL info: ’ Vendor: ‘Intel’ Version: ‘4.4.0 - Build 20.19.15.4300’ Renderer: ‘Intel® HD Graphics 530’
                Launched Version: 1.7.10-Forge10.13.4.1558-1.7.10
                LWJGL: 2.9.1
                OpenGL: Intel® HD Graphics 530 GL version 4.4.0 - Build 20.19.15.4300, Intel
                GL Caps: Using GL 1.3 multitexturing.
                Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
                Anisotropic filtering is supported and maximum anisotropy is 16.
                Shaders are available because OpenGL 2.1 is supported.

                Is Modded: Definitely; Client brand changed to ‘fml,forge’
                Type: Client (map_client.txt)
                Resource Packs: [Jea’s faithful64x_v.1.4.zip, Jea’alternate stonebrick.zip, Jea’BrightGrass.zip, Jea’BrightWater.zip, Jea’detailed cobble.zip]
                Current Language: English (US)
                Profiler Position: N/A (disabled)
                Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                Anisotropic Filtering: Off (1)
                :::

                Mon code:

                removeRecipe(GameRegistry.findItemStack("IronChest", "ironchest:CRYSTAL", 0));
                
                1 réponse Dernière réponse Répondre Citer 0
                • robin4002R Hors-ligne
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                  dernière édition par

                  NullPointerException donc il n’a pas trouvé l’item, donc ce n’est pas le bon nom.
                  Je pense que c’est plutôt comme ça :
                  removeRecipe(GameRegistry.findItemStack(“IronChest”, “BlockIronChest”, 5));
                  (modid -> https://github.com/cpw/ironchest/blob/master/src/main/java/cpw/mods/ironchest/IronChest.java#L35)
                  (nom du bloc dans le registre -> https://github.com/cpw/ironchest/blob/master/src/main/java/cpw/mods/ironchest/IronChest.java#L58)
                  (et le metadata je crois que c’est 5, à vérifier)

                  Sinon pour éviter le crash si l’item n’est pas trouvé, tu peux faire comme ça :

                  ItemStack cystalChest = GameRegistry.findItemStack("IronChest", "BlockIronChest", 5);
                  if(cystalChest != null)
                  {
                     removeRecipe(cystalChest );
                  }
                  else
                  {
                     System.out.println("cystal chest not found !");
                  }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • BrokenSwingB Hors-ligne
                    BrokenSwing Moddeurs confirmés Rédacteurs
                    dernière édition par

                    Le troisième argument c’est le stackSize par contre, donc la solution de robin devrait être bonne :

                    
                    ItemStack stack = GameRegistry.findItemStack("IronChest", "BlockIronChest", 1);
                    if(stack != null) {
                    stack.setItemDamage(5);
                    removeRecipe(stack);
                    } else {
                    // …
                    }
                    
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • D Hors-ligne
                      Degraduck
                      dernière édition par

                      Merci à vous deux, j’ai pas réussi avec le code de Robin je n’arrivais pas à récupérer le métadata avec :

                      removeRecipe(GameRegistry.findItemStack("IronChest", "BlockIronChest", 5));
                      

                      j’ai testé:

                      removeRecipe(GameRegistry.findItemStack("IronChest", "BlockIronChest", 1, 5));
                      

                      Comme on peut le faire pour une pomme en or par exemple:

                      removeRecipe(new ItemStack(Items.golden_apple, 1 ,1));
                      

                      Mais le .findItemStack n’accepte pas le deuxième int qui corresponds au métadata il prend que le stackSize.

                      J’ai donc pris le code BrokenSwing et niquel .

                      Juste une petite précision le setDamageItem(5) permet de récupérer un métadata d’après ce que je vois? j’aurai pas cru dans ma tête setItemDamage c’était plus pour mettre des dommages….

                      1 réponse Dernière réponse Répondre Citer 0
                      • BrokenSwingB Hors-ligne
                        BrokenSwing Moddeurs confirmés Rédacteurs
                        dernière édition par

                        Métadata == durabilité (en gros)

                        1 réponse Dernière réponse Répondre Citer 0
                        • D Hors-ligne
                          Degraduck
                          dernière édition par

                          Ah d’accord merci 🙂

                          1 réponse Dernière réponse Répondre Citer 0
                          • 1 / 1
                          • Premier message
                            Dernier message
                          Design by Woryk
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB