MFF

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

    Problèmes pommes custom et enclume

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    19 Messages 5 Publieurs 2.8k 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.
    • J Hors-ligne
      jojo2971
      dernière édition par

      @‘DayZerd’:

      c’est ce que j’ai fait mais ça ne marche pas

      Peut être que ton item ne prend en compte que les fonctions de la classe ItemSword sans prendre en compte la modification car ta classe d’item appelée est ItemSword avec la ligne block = (Item) (new ItemSword(enumt)…).
      Moi j’avais créé une classe ModItemSword reprenant le contenu de ItemSword étendue à Item et j’ai modifié tout ce que je voulais sans toucher au fichier de base.

      Essaye en créant une classe personnalisé étendue à ItemSword puis place la fonction getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack)
      dans la nouvelle classe qui gardera les propriétés de ItemSword en ajoutant en plus celles de la nouvelle classe.

      Par exemple la classe d’une de mes épées qui permet d’infliger un effet de potion si l’entité est touchée :

      package ModAddedItems.Items;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.block.material.Material;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.EnumAction;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.potion.Potion;
      import net.minecraft.potion.PotionEffect;
      import net.minecraft.world.World;
      
      public class ItemDarksword extends ModItemSword
      {
          private int weaponDamage;
          private final ModEnumToolMaterial toolMaterial;
      
          public ItemDarksword(int par1, ModEnumToolMaterial par2EnumToolMaterial)
          {
              super(par1, par2EnumToolMaterial);
              this.toolMaterial = par2EnumToolMaterial;
              this.maxStackSize = 1;
              this.setMaxDamage(par2EnumToolMaterial.getMaxUses());
              this.setCreativeTab(CreativeTabs.tabCombat);
              this.weaponDamage = 4 + par2EnumToolMaterial.getDamageVsEntity();
          }
      
          @Override
          /**
           * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise
           * the damage on the stack.
           */
          //public boolean hitEntity(ItemStack par1ItemStack, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving)
          //{
              //par1ItemStack.damageItem(1, par3EntityLiving);
              //return true;
          //}
          public boolean hitEntity(ItemStack par1ItemStack, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving)
          {
            par1ItemStack.damageItem(1, par3EntityLiving);
            par2EntityLiving.addPotionEffect(new PotionEffect(Potion.blindness.id, 600, 0));
            return true;
          }
      
      }
      
      

      Au lieu de Darksword = new ItemSword… j’ai donc fait :
      Darksword = new ItemDarksword(IdItem=IdItem+1, ModEnumToolMaterial.DARKSWORD).setItemName(“Darksword”).setIconCoord(0, 4);

      Je te met aussi la classe que j’ai utilisé pour tester la réparation avec l’enclume :

      package ModAddedItems.Items;
      
      import ModAddedItems.ModDeclare;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.block.material.Material;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.EnumAction;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      
      public class ModItemSword extends Item
      {
          private int weaponDamage;
          private final ModEnumToolMaterial toolMaterial;
      
          public ModItemSword(int par1, ModEnumToolMaterial par2EnumToolMaterial)
          {
              super(par1);
              this.toolMaterial = par2EnumToolMaterial;
              this.maxStackSize = 1;
              this.setMaxDamage(par2EnumToolMaterial.getMaxUses());
              this.setCreativeTab(CreativeTabs.tabCombat);
              this.weaponDamage = 4 + par2EnumToolMaterial.getDamageVsEntity();
          }
      
          public int func_82803_g()
          {
              return this.toolMaterial.getDamageVsEntity();
          }
      
          /**
           * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if
           * sword
           */
          public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
          {
              if (par2Block.blockID == Block.web.blockID)
              {
                  return 15.0F;
              }
              else
              {
                  Material var3 = par2Block.blockMaterial;
                  return var3 != Material.plants && var3 != Material.vine && var3 != Material.field_76261_t && var3 != Material.leaves && var3 != Material.pumpkin ? 1.0F : 1.5F;
              }
          }
      
          /**
           * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise
           * the damage on the stack.
           */
          public boolean hitEntity(ItemStack par1ItemStack, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving)
          {
              par1ItemStack.damageItem(1, par3EntityLiving);
              return true;
          }
      
          public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLiving par7EntityLiving)
          {
              if ((double)Block.blocksList[par3].getBlockHardness(par2World, par4, par5, par6) != 0.0D)
              {
                  par1ItemStack.damageItem(2, par7EntityLiving);
              }
      
              return true;
          }
      
          /**
           * Returns the damage against a given entity.
           */
          public int getDamageVsEntity(Entity par1Entity)
          {
              return this.weaponDamage;
          }
      
          @SideOnly(Side.CLIENT)
      
          /**
           * Returns True is the item is renderer in full 3D when hold.
           */
          public boolean isFull3D()
          {
              return true;
          }
      
          /**
           * returns the action that specifies what animation to play when the items is being used
           */
          public EnumAction getItemUseAction(ItemStack par1ItemStack)
          {
              return EnumAction.block;
          }
      
          /**
           * How long it takes to use or consume an item
           */
          public int getMaxItemUseDuration(ItemStack par1ItemStack)
          {
              return 72000;
          }
      
          /**
           * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
           */
          public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
          {
              par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
              return par1ItemStack;
          }
      
          /**
           * Returns if the item (tool) can harvest results from the block type.
           */
          public boolean canHarvestBlock(Block par1Block)
          {
              return par1Block.blockID == Block.web.blockID;
          }
      
          /**
           * Return the enchantability factor of the item, most of the time is based on material.
           */
          public int getItemEnchantability()
          {
              return this.toolMaterial.getEnchantability();
          }
      
          public String func_77825_f()
          {
              return this.toolMaterial.toString();
          }
      
          /**
           * Return whether this item is repairable in an anvil.
           */
          public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack)
          {
          if (par1ItemStack.getItem().shiftedIndex==ModDeclare.Emeraldsword.shiftedIndex) {
          if (par2ItemStack.getItem().shiftedIndex==Item.emerald.shiftedIndex) {
          return true;
          } else {
          return false;
          }
          } else if (par1ItemStack.getItem().shiftedIndex==ModDeclare.BlueEmeraldsword.shiftedIndex) {
          if (par2ItemStack.getItem().shiftedIndex==ModDeclare.BlueEmerald.shiftedIndex) {
          return true;
          } else {
          return false;
          }
          } else if (par1ItemStack.getItem().shiftedIndex==ModDeclare.RedEmeraldsword.shiftedIndex) {
          if (par2ItemStack.getItem().shiftedIndex==ModDeclare.RedEmerald.shiftedIndex) {
          return true;
          } else {
          return false;
          }
          } else if (par1ItemStack.getItem().shiftedIndex==ModDeclare.Excalibur.shiftedIndex) {
          if (par2ItemStack.getItem().shiftedIndex==Item.netherStar.shiftedIndex) {
          return true;
          } else {
          return false;
          }
          } else if (par1ItemStack.getItem().shiftedIndex==ModDeclare.KokutoYoru.shiftedIndex) {
          if (par2ItemStack.getItem().shiftedIndex==ModDeclare.marinestone.shiftedIndex) {
          return true;
          } else {
          return false;
          }
          } else if (par1ItemStack.getItem().shiftedIndex==ModDeclare.BigIronsword.shiftedIndex) {
          if (par2ItemStack.getItem().shiftedIndex==Block.blockSteel.blockID) {
          return true;
          } else {
          return false;
          }
          } else {
          return this.toolMaterial.getToolCraftingMaterial() == par2ItemStack.itemID ? true : super.getIsRepairable(par1ItemStack, par2ItemStack);
          }
          }
      
          public String getTextureFile() {
          return "/ModAddedItems/textures/items/ModItems.png";
          }
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • D Hors-ligne
        DayZerd
        dernière édition par

        Je n’y arrive pas 😞
        voila la class de mon épée :

        
        package mod.felmod;
        
        import net.minecraftforge.common.util.EnumHelper;
        
        import net.minecraft.world.World;
        import net.minecraft.item.ItemSword;
        import net.minecraft.item.ItemStack;
        import net.minecraft.item.Item;
        import net.minecraft.init.Items;
        
        import java.util.Set;
        import java.util.Random;
        import java.util.HashMap;
        
        import cpw.mods.fml.common.registry.GameRegistry;
        import cpw.mods.fml.common.event.FMLServerStartingEvent;
        import cpw.mods.fml.common.event.FMLPreInitializationEvent;
        
        public class felmod_saphirrSword {
        
        public felmod_saphirrSword() {
        }
        
        public static Item block;
        public static Object instance;
        
        public void load() {
        ItemStack stack = new ItemStack(block, 1);
        GameRegistry.addRecipe(stack,
        new Object[]{"0XX", "3XX", "6XX", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
        new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
                 GameRegistry.addRecipe(stack,
                           new Object[]{"X0X", "X3X", "X6X", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
                                     new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
                 GameRegistry.addRecipe(stack,
                           new Object[]{"XX0", "XX3", "XX6", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
                                     new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
        }
           public boolean getIsRepairable(ItemStack input, ItemStack repair)
        
        {
        
        if(repair.getItem() == mod.felmod.felmod_saphirr.block)
        
        {
        
        return true;
        
        }
        
        return false;
        
        }
        public void generateNether(World world, Random random, int chunkX, int chunkZ) {
        }
        
        public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
        }
        
        public int addFuel(ItemStack fuel) {
        return 0;
        }
        
        public void serverLoad(FMLServerStartingEvent event) {
        }
        
        public void preInit(FMLPreInitializationEvent event) {
        }
        
        public void registerRenderers() {
        }
        
        static {
        Item.ToolMaterial enumt = EnumHelper.addToolMaterial("SAPHIRRSWORD", 0, 1600, 0F, 6, 10);
        block = (Item) (new ItemSword(enumt) {
        public Set <string>getToolClasses(ItemStack stack) {
        HashMap <string, integer="">ret = new HashMap<string, integer="">();
        ret.put("sword", 0);
        return ret.keySet();
        }
        }).setUnlocalizedName("SaphirrSword").setTextureName("saphirr_sword");
        Item.itemRegistry.addObject(486, "SaphirrSword", block);
        
        }
        
        }
        
        

        et celui de mon saphir (que je veux utiliser pour réparer mon item)

        
        package mod.felmod;
        
        import net.minecraft.world.World;
        import net.minecraft.item.ItemStack;
        import net.minecraft.item.Item;
        import net.minecraft.creativetab.CreativeTabs;
        import net.minecraft.block.Block;
        
        import java.util.Random;
        
        import cpw.mods.fml.common.registry.GameRegistry;
        import cpw.mods.fml.common.event.FMLServerStartingEvent;
        import cpw.mods.fml.common.event.FMLPreInitializationEvent;
        
        @SuppressWarnings("unchecked")
        public class felmod_saphirr {
        
        public felmod_saphirr() {
        }
        
        public static Item block;
        public static Object instance;
        
        public void load() {
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"0XX", "XXX", "XXX", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"X0X", "XXX", "XXX", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XX0", "XXX", "XXX", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "0XX", "XXX", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "X0X", "XXX", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XX0", "XXX", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XXX", "0XX", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XXX", "X0X", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
                 GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XXX", "XX0", Character.valueOf('0'),
                           new ItemStack(felmod_saphirrBlock.block, 1),});
        GameRegistry.addSmelting(felmod_saphirrOre.block, new ItemStack(block), 1.0f);
        }
        
        public void generateNether(World world, Random random, int chunkX, int chunkZ) {
        }
        
        public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
        }
        
        public int addFuel(ItemStack fuel) {
        return 0;
        }
        
        public void serverLoad(FMLServerStartingEvent event) {
        }
        
        public void preInit(FMLPreInitializationEvent event) {
        }
        
        public void registerRenderers() {
        }
        
        static {
        block = (new Itemsaphirr(485));
        Item.itemRegistry.addObject(485, "Saphirr", block);
        
        }
        
        static class Itemsaphirr extends Item {
        
        public Itemsaphirr(int par1) {
        setMaxDamage(0);
        maxStackSize = 64;
        setUnlocalizedName("Saphirr");
        setTextureName("saphirr");
        setCreativeTab(CreativeTabs.tabMaterials);
        }
        
        public int getItemEnchantability() {
        return 0;
        }
        
        public int getMaxItemUseDuration(ItemStack par1ItemStack) {
        return 0;
        }
        
        public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) {
        return 1.0F;
        }
        
        }
        }
        
        ```</string,></string,></string>
        1 réponse Dernière réponse Répondre Citer 0
        • J Hors-ligne
          jojo2971
          dernière édition par

          @‘DayZerd’:

          Je n’y arrive pas 😞
          voila la class de mon épée :

          
          package mod.felmod;
          
          import net.minecraftforge.common.util.EnumHelper;
          
          import net.minecraft.world.World;
          import net.minecraft.item.ItemSword;
          import net.minecraft.item.ItemStack;
          import net.minecraft.item.Item;
          import net.minecraft.init.Items;
          
          import java.util.Set;
          import java.util.Random;
          import java.util.HashMap;
          
          import cpw.mods.fml.common.registry.GameRegistry;
          import cpw.mods.fml.common.event.FMLServerStartingEvent;
          import cpw.mods.fml.common.event.FMLPreInitializationEvent;
          
          public class felmod_saphirrSword {
          
          public felmod_saphirrSword() {
          }
          
          public static Item block;
          public static Object instance;
          
          public void load() {
          ItemStack stack = new ItemStack(block, 1);
          GameRegistry.addRecipe(stack,
          new Object[]{"0XX", "3XX", "6XX", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
          new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
                   GameRegistry.addRecipe(stack,
                             new Object[]{"X0X", "X3X", "X6X", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
                                       new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
                   GameRegistry.addRecipe(stack,
                             new Object[]{"XX0", "XX3", "XX6", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
                                       new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
          }
             public boolean getIsRepairable(ItemStack input, ItemStack repair)
          
          {
          
          if(repair.getItem() == mod.felmod.felmod_saphirr.block)
          
          {
          
          return true;
          
          }
          
          return false;
          
          }
          public void generateNether(World world, Random random, int chunkX, int chunkZ) {
          }
          
          public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
          }
          
          public int addFuel(ItemStack fuel) {
          return 0;
          }
          
          public void serverLoad(FMLServerStartingEvent event) {
          }
          
          public void preInit(FMLPreInitializationEvent event) {
          }
          
          public void registerRenderers() {
          }
          
          static {
          Item.ToolMaterial enumt = EnumHelper.addToolMaterial("SAPHIRRSWORD", 0, 1600, 0F, 6, 10);
          block = (Item) (new ItemSword(enumt) {
          public Set <string>getToolClasses(ItemStack stack) {
          HashMap <string, integer="">ret = new HashMap<string, integer="">();
          ret.put("sword", 0);
          return ret.keySet();
          }
          }).setUnlocalizedName("SaphirrSword").setTextureName("saphirr_sword");
          Item.itemRegistry.addObject(486, "SaphirrSword", block);
          
          }
          
          }
          
          

          et celui de mon saphir (que je veux utiliser pour réparer mon item)

          
          package mod.felmod;
          
          import net.minecraft.world.World;
          import net.minecraft.item.ItemStack;
          import net.minecraft.item.Item;
          import net.minecraft.creativetab.CreativeTabs;
          import net.minecraft.block.Block;
          
          import java.util.Random;
          
          import cpw.mods.fml.common.registry.GameRegistry;
          import cpw.mods.fml.common.event.FMLServerStartingEvent;
          import cpw.mods.fml.common.event.FMLPreInitializationEvent;
          
          @SuppressWarnings("unchecked")
          public class felmod_saphirr {
          
          public felmod_saphirr() {
          }
          
          public static Item block;
          public static Object instance;
          
          public void load() {
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"0XX", "XXX", "XXX", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"X0X", "XXX", "XXX", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XX0", "XXX", "XXX", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "0XX", "XXX", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "X0X", "XXX", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XX0", "XXX", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XXX", "0XX", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XXX", "X0X", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
                   GameRegistry.addRecipe(new ItemStack(block, 1), new Object[]{"XXX", "XXX", "XX0", Character.valueOf('0'),
                             new ItemStack(felmod_saphirrBlock.block, 1),});
          GameRegistry.addSmelting(felmod_saphirrOre.block, new ItemStack(block), 1.0f);
          }
          
          public void generateNether(World world, Random random, int chunkX, int chunkZ) {
          }
          
          public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
          }
          
          public int addFuel(ItemStack fuel) {
          return 0;
          }
          
          public void serverLoad(FMLServerStartingEvent event) {
          }
          
          public void preInit(FMLPreInitializationEvent event) {
          }
          
          public void registerRenderers() {
          }
          
          static {
          block = (new Itemsaphirr(485));
          Item.itemRegistry.addObject(485, "Saphirr", block);
          
          }
          
          static class Itemsaphirr extends Item {
          
          public Itemsaphirr(int par1) {
          setMaxDamage(0);
          maxStackSize = 64;
          setUnlocalizedName("Saphirr");
          setTextureName("saphirr");
          setCreativeTab(CreativeTabs.tabMaterials);
          }
          
          public int getItemEnchantability() {
          return 0;
          }
          
          public int getMaxItemUseDuration(ItemStack par1ItemStack) {
          return 0;
          }
          
          public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) {
          return 1.0F;
          }
          
          }
          }
          
          ```</string,></string,></string>
          

          Essaye en créant une classe étendue à ItemSword contenant la fonction pour réparer ton item.
          Ta classe étendue devrait ressembler à ça :

          package mod.Items;
          
          import net.minecraft.creativetab.CreativeTabs;
          import net.minecraft.item.ItemStack;
          
          public class saphirrSword extends ItemSword
          {
              private int weaponDamage;
              private final EnumToolMaterial toolMaterial;
          
              public ItemDarksword(int par1, EnumToolMaterial par2EnumToolMaterial)
              {
                  super(par1, par2EnumToolMaterial);
                  this.toolMaterial = par2EnumToolMaterial;
                  this.maxStackSize = 1;
                  this.setMaxDamage(par2EnumToolMaterial.getMaxUses());
                  this.setCreativeTab(CreativeTabs.tabCombat);
                  this.weaponDamage = 4 + par2EnumToolMaterial.getDamageVsEntity();
              }
          
              /**
               * Return whether this item is repairable in an anvil.
               */
              public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack)
              {
              if (par1ItemStack.getItem()==mod.felmod.felmod_saphirrSword.block) {
              if (par2ItemStack.getItem()==mod.felmod.felmod_saphirr.block) {
              return true;
              } else {
              return false;
              }
              }
                  return false;
              }
          }
          

          Il suffira ensuite d’appeler la nouvelle classe saphirrSword au lieu de ItemSword :

          
          package mod.mcreator;
          
          import net.minecraftforge.common.util.EnumHelper;
          
          import net.minecraft.world.World;
          import net.minecraft.item.ItemSword;
          import net.minecraft.item.ItemStack;
          import net.minecraft.item.Item;
          import net.minecraft.init.Items;
          
          import java.util.Set;
          import java.util.Random;
          import java.util.HashMap;
          
          import cpw.mods.fml.common.registry.GameRegistry;
          import cpw.mods.fml.common.event.FMLServerStartingEvent;
          import cpw.mods.fml.common.event.FMLPreInitializationEvent;
          
          public class felmod_saphirrSword {
          
              public felmod_saphirrSword() {
              }
          
              public static Item block;
              public static Object instance;
          
              public void load() {
                  ItemStack stack = new ItemStack(block, 1);
                  GameRegistry.addRecipe(stack,
                          new Object[]{"0XX", "3XX", "6XX", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
                                  new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
                    GameRegistry.addRecipe(stack,
                              new Object[]{"X0X", "X3X", "X6X", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
                                        new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
                    GameRegistry.addRecipe(stack,
                              new Object[]{"XX0", "XX3", "XX6", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3'),
                                        new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),});
              }
          
              public boolean getIsRepairable(ItemStack input, ItemStack repair)
              {
                  if(repair.getItem() == mod.felmod.felmod_saphirr.block)
                  {
                      return true;
                  }
          
                  return false;
              }
          
              public void generateNether(World world, Random random, int chunkX, int chunkZ) {
              }
          
              public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
              }
          
              public int addFuel(ItemStack fuel) {
                  return 0;
              }
          
              public void serverLoad(FMLServerStartingEvent event) {
              }
          
              public void preInit(FMLPreInitializationEvent event) {
              }
          
              public void registerRenderers() {
              }
          
              static {
                  Item.ToolMaterial enumt = EnumHelper.addToolMaterial("SAPHIRRSWORD", 0, 1600, 0F, 6, 10);
                  block = (Item) (new saphirrSword(enumt) {
                      public Set <string>getToolClasses(ItemStack stack) {
                          HashMap <string, integer="">ret = new HashMap<string, integer="">();
                          ret.put("sword", 0);
                          return ret.keySet();
                      }
                  }).setUnlocalizedName("SaphirrSword").setTextureName("saphirr_sword");
                  Item.itemRegistry.addObject(442, "SaphirrSword", block);
          
              }
          
          }
          
          

          Je ne sais pas si ça va fonctionner de cette façon pour toi car pour mes épées j’avais créé une nouvelle classe ItemSword et une nouvelle classe EnumToolMaterial pour les personnaliser au maximum. Il faudra peut être que tu fasse quelques ajustements pour que ça fonctionne.</string,></string,></string>

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

            Aie…Aie…Aie…

            Bonjour a toi jeune novice dans le monde merveilleux des erreurs et des casses tête interminable !

            ----> https://www.minecraftforgefrance.fr/showthread.php?tid=702
            ----> https://www.minecraftforgefrance.fr/showthread.php?tid=674
            ----> https://www.minecraftforgefrance.fr/showthread.php?tid=684

            Avant de poster faut lire les tutos !!! 🙂

            —> et aussi les @override au dessus des fonctions hériter de la superclass faut les mettent ça évite les erreurs 🙂

            Bref, pour ton épée faudrait en effet extends la class de ton épée a “net.minecraft.item.ItemSword”
            sinon bah le jeu sais pas trop si cet item est un item normal ou bien autre chose

            ET SURTOUT PAR PITIé RESPECTER LA “JAVA CODE CONVENTION”
            CAR --> ce genre de nom de class  “felmod_saphirrSword” desolé mais bon 😕
            ce serai plutot —> “SaphirSword”

            Lien de la java code convention : http://www.oracle.com/technetwork/java/codeconventions-150003.pdf

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

              Merci beaucoup pour votre aide mais je n’y arrive toujours pas, il n’y a aucune erreur mais lorsque je mets mon épée et le saphir dans l’enclume, je ne peux pas la réparer

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

                Ok dans ce cas la envoi moi en piece en jointe ton dossier “src” je vais te regler ce petit bug

                1 réponse Dernière réponse Répondre Citer 1
                • SpyManS Hors-ligne
                  SpyMan
                  dernière édition par

                  C’est quoi cette horreur ???
                  ce code est aussi mal organiser que moi x)
                  Vous avez réellement utiliser cette chose pour gen du code ? > “package mod.mcreator;”
                  tout le mod est a nettoyer et a réorganiser entièrement

                  tout ce que je voie de possible c’est de recup les textures et de tout refaire de A a Z

                  Car en voyant ce genre de chose

                  [font=DejaVu Sans Monopublic class ]%(#ffcb6b)[felmod_saphirrSword
                  ]%(#cad3de)[{
                  ]
                     public static Item block%(#a7dbd8)[;
                  ]    public static Object instance%(#a7dbd8)[;
                  ]
                     %(#c792ea)[static
                  ]    %(#cad3de)[{
                  ]        Item.ToolMaterial enumt = EnumHelper.addToolMaterial("SAPHIRRSWORD", 0, 1600, 0F, 6, 10)%(#a7dbd8)[;
                  ]        block = (Item) (new ItemSword(enumt%(#798194)[)
                  ]        %(#cad3de)[{
                  ]            public Set<String> getToolClasses(ItemStack stack%(#798194)[)
                  ]            %(#cad3de)[{
                  ]                HashMap<String, Integer> ret = new HashMap<String, Integer>()%(#a7dbd8)[;
                  ]                ret.put("sword", 0)%(#a7dbd8)[;
                  ]                return ret.keySet()%(#a7dbd8)[;
                  ]            %(#cad3de)[}
                  ]        }).setUnlocalizedName("SaphirrSword").setTextureName("saphirr_sword")%(#a7dbd8)[;
                  ]        Item.itemRegistry.addObject(715, "SaphirrSword", block)%(#a7dbd8)[;
                  ]
                     %(#cad3de)[}
                  ]
                     public felmod_saphirrSword%(#798194)[()
                  ]    %(#cad3de)[{
                  ]%(#cad3de)[    }
                  ]
                     public void load%(#798194)[()
                  ]    %(#cad3de)[{
                  ]        ItemStack stack = new ItemStack(block, 1)%(#a7dbd8)[;
                  ]        GameRegistry.addRecipe(stack%(#a7dbd8)[,
                  ]                new Object[{]"0XX", "3XX", "6XX", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3')%(#a7dbd8)[,
                  ]                        new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),})%(#a7dbd8)[;
                  ]        GameRegistry.addRecipe(stack%(#a7dbd8)[,
                  ]                new Object[{]"X0X", "X3X", "X6X", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3')%(#a7dbd8)[,
                  ]                        new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),})%(#a7dbd8)[;
                  ]        GameRegistry.addRecipe(stack%(#a7dbd8)[,
                  ]                new Object[{]"XX0", "XX3", "XX6", Character.valueOf('0'), new ItemStack(felmod_saphirr.block, 1), Character.valueOf('3')%(#a7dbd8)[,
                  ]                        new ItemStack(felmod_saphirr.block, 1), Character.valueOf('6'), new ItemStack(Items.stick, 1),})%(#a7dbd8)[;
                  ]    %(#cad3de)[}
                  ]
                     public void generateNether(World world, Random random, int chunkX, int chunkZ%(#798194)[)
                  ]    %(#cad3de)[{
                  ]%(#cad3de)[    }
                  ]
                     public void generateSurface(World world, Random random, int chunkX, int chunkZ%(#798194)[)
                  ]    %(#cad3de)[{
                  ]%(#cad3de)[    }
                  ]
                     public int addFuel(ItemStack fuel%(#798194)[)
                  ]    %(#cad3de)[{
                  ]        return 0%(#a7dbd8)[;
                  ]    %(#cad3de)[}
                  ]
                     public void serverLoad(FMLServerStartingEvent event%(#798194)[)
                  ]    %(#cad3de)[{
                  ]%(#cad3de)[    }
                  ]
                     public void preInit(FMLPreInitializationEvent event%(#798194)[)
                  ]    %(#cad3de)[{
                  ]%(#cad3de)[    }
                  ]
                     public void registerRenderers%(#798194)[()
                  ]    %(#cad3de)[{
                  ]    }
                  

                  DES FONCTIONS DE GÉNÉRATION dans UNE CLASS D’ITEM ?@#@!    O_O

                  Mais je pense qu’il est possible de reécrire ça rapidement 🙂

                  Je te conseille de lire les tutos du forum et de refaire ton mod dans les règles de l’art ! et si tu galère hésite pas a demander

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

                    Merci, mes problemes ont été résolu

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

                      Ah oui ? Pourrais-tu repostrer le code final et sélectionner la meilleure réponse, afin que les futurs visiteurs en détresse sachent où regardent directement et gagner du temps.

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

                        Je lui est juste réécrit entièrement ses class, la class de son épée n’était même pas extends ItemSword… voila tout le problème

                        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