MFF

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

    J'ai trois problèmes avec la 1.7…

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.x
    12 Messages 3 Publieurs 3.5k 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.
    • samhalo007S Hors-ligne
      samhalo007
      dernière édition par

      Salut à vous,

      Depuis l’arrivée de Forge en 1.7… J’ai quelques petits problèmes avec mon mod…
      Version de Forge: 1.7.2-10.12.0.1024
      Ma classe principale:

      package fr.mrsamhalo.taherservmod;
      
      import io.netty.handler.codec.http.HttpHeaders.Names;
      
      import org.apache.logging.log4j.message.MapMessage.MapFormat;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.item.Item;
      import net.minecraft.item.Item.ToolMaterial;
      import net.minecraft.item.ItemAxe;
      import net.minecraft.item.ItemHoe;
      import net.minecraft.item.ItemPickaxe;
      import net.minecraft.item.ItemSpade;
      import net.minecraft.item.ItemSword;
      import net.minecraftforge.common.config.Configuration;
      import net.minecraftforge.common.util.EnumHelper;
      import cpw.mods.fml.common.FMLCommonHandler;
      import cpw.mods.fml.common.Mod;
      import cpw.mods.fml.common.Mod.EventHandler;
      import cpw.mods.fml.common.event.FMLInitializationEvent;
      import cpw.mods.fml.common.event.FMLPreInitializationEvent;
      import cpw.mods.fml.common.gameevent.TickEvent;
      import cpw.mods.fml.common.registry.GameRegistry;
      import cpw.mods.fml.common.registry.LanguageRegistry;
      import cpw.mods.fml.relauncher.Side;
      
      @Mod(modid = TaherServMod.MODID, version = TaherServMod.VERSION)
      public class TaherServMod
      {
         public static final String MODID = "TaherServMod";
         public static final String VERSION = "1.0";
      
         public static ToolMaterial ObsidianI = EnumHelper.addToolMaterial("ObsidianI", 3, 4683, 11.0F, 6.0F, 10);
      
         public static Item swordObsi;
         public static Item pickObsi;
         public static Item axeObsi;
         public static Item shovelObsi;
         public static Item hoeObsi;
      
         @EventHandler
         public void init(FMLInitializationEvent event)
         {
          swordObsi = new ItemSword(ObsidianI).setUnlocalizedName("swordObsi").setTextureName(TaherServMod.MODID + ":swordObsi");
          GameRegistry.registerItem(swordObsi, swordObsi.getUnlocalizedName().substring(5));
      
          pickObsi = new ItemPickaxe(ObsidianI).setUnlocalizedName("pickObsi").setTextureName(TaherServMod.MODID + ":" + "pickObsi.png");
          GameRegistry.registerItem(pickObsi, pickObsi.getUnlocalizedName().substring(5));
      
          axeObsi = new ItemAxe(ObsidianI).setUnlocalizedName("axeObsi").setTextureName(TaherServMod.MODID + ":" + "axeObsi.png");
          GameRegistry.registerItem(axeObsi, axeObsi.getUnlocalizedName().substring(5));
      
          shovelObsi = new ItemSpade(ObsidianI).setUnlocalizedName("shovelObsi").setTextureName(TaherServMod.MODID + ":shovelObsi.png");
          GameRegistry.registerItem(shovelObsi, shovelObsi.getUnlocalizedName().substring(5));
      
          hoeObsi = new ItemHoe(ObsidianI).setUnlocalizedName("hoeObsi").setTextureName(TaherServMod.MODID + ":hoeObsi.png");
          GameRegistry.registerItem(hoeObsi, hoeObsi.getUnlocalizedName().substring(5));
      
          FMLCommonHandler.instance().bus().register(new RenderTickHandler(Minecraft.getMinecraft()));
         }
      }
      

      Problème #1: Quand j’essai de créer une nouvelle pioche et une nouvelle hache, ça me dit:
      "The constructor ItemPickaxe(Item.ToolMaterial) is not visible "
      et
      "The constructor ItemAxe(Item.ToolMaterial) is not visible "
      Code: ```java

      pickObsi = new ItemPickaxe(ObsidianI).setUnlocalizedName(“pickObsi”).setTextureName(TaherServMod.MODID + “:” + “pickObsi.png”);
          GameRegistry.registerItem(pickObsi, pickObsi.getUnlocalizedName().substring(5));

      axeObsi = new ItemAxe(ObsidianI).setUnlocalizedName(“axeObsi”).setTextureName(TaherServMod.MODID + “:” + “axeObsi.png”);
          GameRegistry.registerItem(axeObsi, axeObsi.getUnlocalizedName().substring(5));

      
      Problème #2: En jeu, les Items ne chargent pas les textures... J'aimerais savoir où les placer pour que ça fonctionne... En occurence, je les place dans "\ForgeModding1.7.2\src\main\resources\assets\TaherServMod\textures\items"
      
      Problème #3: En 1.6.4, pour remplacer le menu principal, j'utilisais un TickRegistry... (Voici les codes que j'utilisais)
      Dans la méthode load de la classe principale:
      ```java
      TickRegistry.registerTickHandler(new TickHandler(), Side.CLIENT);
      

      Dans la classe TickHandler:

      package samhalo007.aperixx.gui;
      
      import java.util.EnumSet;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.GuiIngame;
      import net.minecraft.client.gui.GuiMainMenu;
      import net.minecraft.client.gui.GuiOptions;
      import net.minecraft.client.gui.GuiScreen;
      import net.minecraft.client.resources.GuiScreenTemporaryResourcePackSelect;
      import cpw.mods.fml.client.FMLClientHandler;
      import cpw.mods.fml.common.ITickHandler;
      import cpw.mods.fml.common.TickType;
      
      public class TickHandler implements ITickHandler {
      
      protected Minecraft mc;
      @Override
      public void tickStart(EnumSet <ticktype>type, Object... tickData)
      {
          if (type.equals(EnumSet.of(TickType.CLIENT)))
      {
             Minecraft mc = Minecraft.getMinecraft();
      GuiScreen guiscreen = mc.currentScreen;
             GuiAperixxMenu monMenu  = new GuiAperixxMenu();
      
      if (guiscreen instanceof GuiMainMenu && guiscreen != monMenu)
      {
      mc.displayGuiScreen(monMenu);
      }
      }
      }
      
         @Override
         public void tickEnd(EnumSet <ticktype>type, Object... tickData)
         {
         }
      
      @Override
      public EnumSet <ticktype>ticks() {
      return EnumSet.of(TickType.CLIENT);
      }
      
      @Override
      public String getLabel() {
      return getLabel();
      }
      }
      

      Mais dans la 1.7, ça ne fonctionne pas, j’aimerais savoir si il y a une alternative.

      Voilà, j’espère avoir bien fait mon topic d’aide… Merci d’avance !</ticktype></ticktype></ticktype>

      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

        Problème #1 il faut créer une classe extends ItemPickage, une extends ItemAxe, etc …
        Problème #2 presque bon, sauf que le modid doit être tout en minuscule.
        Problème #3 je te renvoie ici : http://www.minecraftforgefrance.fr/showthread.php?tid=555&pid=6034#pid6034

        Et sinon, [java] pas

        pour les codes, il y a même un petit logo java pour la balise.

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

          Wow ! Merci pour la réponse rapide !

          1. Problème réglé !
          2. Les textures ne chargent toujours pas…
          3. Il n’y aurait pas une façon de récupérer les sources du GuiMainMenu.java ?
          1 réponse Dernière réponse Répondre Citer 0
          • ÜberfapÜ Hors-ligne
            Überfap
            dernière édition par

            Oui : tu va dans l’onglet “Referrenced Libraries” sur eclipse, et tu déroule le forgeSrcxxx-xxxx-xxx, jusqu’à trouver le fichier !

            Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
            Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

            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

              #2 Mets tes items dans le preInit, en 1.7 les textures ne fonctionne que si les items et blocs sont preInit.
              #3 Voir la réponse d’AlphaSwittleTeam

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

                Je m’excuse pour la réponse en retard, j’était occupé toute la journée et c’est le seul moment donc je trouve pour répondre…
                2) Tout est réglé merci ! 🙂
                3) Ça ne donne qu’un fichier class incompréhensible…

                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

                  Tu as fait un setupDevWorkspace toi … Il faut suivre nos tutoriels 🙂
                  Vas dans le dossier de forge, fait un shift gauche + clic droit, Ouvrir une fenêtre de commande ici, et tape :
                  gradlew setupDecompWorkspace
                  une fois fini :
                  gradlew eclipse
                  Tes sources seront toujours là et tu pourra ouvrir GuiMainMenu.class sans problème.

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

                    J’avais suivi le tutoriel de LexManos… 😉


                    Bon, tous les problèmes cités ici ont été règlés !
                    Reste plus que ce prob’ qui s’est ajouté…

                    Le code de l’armure dans le fichier principal…

                    obsidianHelmet = new ArmorObsidian(ObsidianA, 0, 0).setUnlocalizedName("obsidianHelmet").setTextureName(TaherServMod.MODID + ":HelmetObsi");
                    GameRegistry.registerItem(obsidianHelmet, "obsidian_helmet", TaherServMod.MODID);
                    obsidianChestPlate = new ArmorObsidian(ObsidianA, 0, 1).setUnlocalizedName("obsidianChestPlate").setTextureName(TaherServMod.MODID + ":ChestPlateObsi");
                    GameRegistry.registerItem(obsidianChestPlate, "obsidian_chestplate", TaherServMod.MODID);
                    obsidianLeggings = new ArmorObsidian(ObsidianA, 0, 2).setUnlocalizedName("obsidianLeggings").setTextureName(TaherServMod.MODID + ":LeggingsObsi");
                    GameRegistry.registerItem(obsidianLeggings, "obsidian_leggings", TaherServMod.MODID);
                    obsidianBoots = new ArmorObsidian(ObsidianA, 0, 3).setUnlocalizedName("obsidianBoots").setTextureName(TaherServMod.MODID + ":BootsObsi");
                    GameRegistry.registerItem(obsidianBoots, "obsidian_boots", TaherServMod.MODID);
                    

                    Le code de ArmorObsidian.java

                    package fr.mrsamhalo.taherservmod;
                    
                    import net.minecraft.creativetab.CreativeTabs;
                    import net.minecraft.entity.Entity;
                    import net.minecraft.item.ItemArmor;
                    import net.minecraft.item.ItemStack;
                    
                    public class ArmorObsidian extends ItemArmor
                    {
                    public ArmorObsidian(ArmorMaterial armorMaterial, int type, int layer)
                    {
                    super(armorMaterial, type, layer);
                    setCreativeTab(CreativeTabs.tabCombat);
                    }
                    
                    public String getArmorTexture(ItemStack stack, Entity entity, int slot, int layer)
                    {
                    if(stack.getItem() == TaherServMod.obsidianLeggings)
                    {
                    return TaherServMod.MODID + "textures/models/armor/obsidian_layer_2.png"; //armure 1,
                    }
                    else if(stack.getItem() == TaherServMod.obsidianHelmet || stack.getItem() == TaherServMod.obsidianChestPlate || stack.getItem() == TaherServMod.obsidianBoots)
                    {
                    return TaherServMod.MODID + "textures/models/armor/obsidian_layer_1.png"; //armure 1, casque + plastron + bottes
                    }
                    else if(stack.getItem() == TaherServMod.obsidianLeggings)
                    {
                    return TaherServMod.MODID + "textures/models/armor/obsidian_layer_2.png"; //armure 2,
                    }
                    return TaherServMod.MODID + ":textures/models/armor/obsidian_layer_1.png";
                    }
                    }
                    
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • ÜberfapÜ Hors-ligne
                      Überfap
                      dernière édition par

                      Tiens, le code d’une armure qui marche parfaitement : http://pastebin.com/YkK6FKDm

                      Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
                      Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

                      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

                        La méthode public String getArmorTexture(ItemStack stack, Entity entity, int slot, int layer)
                        est devenu : public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)

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

                          Ooh ! Ça marche ! 😄 Merci pour l’aide rapide !

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

                            De rien 😉

                            Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
                            Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

                            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