Problèmes pommes custom et enclume



  • Bonjour, je suis entrain de faire un mod Minecraft 1.7.10 mais j'ai deux problèmes :

    - J'ai ajouté un minerai (félorite) et j'ai fait une pomme (felorite apple / pomme en felorite) mais le problèmes c'est qu'il faut avoir perdu un peu de la barre          de nourriture pour pouvoir la manger.

    - Mon deuxièmee problème c'est que je ne sait pas faire en sorte qu'on puisse réparer les objet en félorite dans l’enclume avec le minerais sinon si on met par        exemple 2 plastron ça marche.

    Merci d'avance et bonne journée 😄



  • Pour ton premier problème, je ne sais pas trop mais pour réparer avec l'enclume, il faut que tu ajoute ça dans la class de l'item que tu veux réparer !

    
    1.  **public** **boolean** getIsRepairable(ItemStack input, ItemStack repair)
    2.  {
    3.  **if**(repair.getItem() == ClassPrincipale.itemQueTuVeuxUtiliserPourReparer)
    4.  {
    5.  **return** **true**;
    6.  }
    7.  **return** **false**;
    8.  }
    
    


  • @'DayZerd':

    Bonjour, je suis entrain de faire un mod Minecraft 1.7.10 mais j'ai deux problèmes :

    - J'ai ajouté un minerai (félorite) et j'ai fait une pomme (felorite apple / pomme en felorite) mais le problèmes c'est qu'il faut avoir perdu un peu de la barre          de nourriture pour pouvoir la manger.

    - Mon deuxièmee problème c'est que je ne sait pas faire en sorte qu'on puisse réparer les objet en félorite dans l’enclume avec le minerais sinon si on met par        exemple 2 plastron ça marche.

    Merci d'avance et bonne journée 😄

    Pour ton problème de la pomme mangeable sans avoir perdu un peu de barre de faim tu peu regarder dans la classe ItemFood, dans onItemRightClick il y a cette ligne :
            if (par3EntityPlayer.canEat(this.alwaysEdible))
            {
                par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
            }
    J'ai mis en commentaire le if et l'item est mangeable sans avoir besoin de perdre un peu de barre de faim.

    En regardant la pomme en or il y a .setAlwaysEdible() qui permet d'activer la possibilitée de manger sans devoir perdre un peu de faim.

    Je me suis basé sur une version inférieure à la tienne mais je pense qu'il ne doit pas y avoir de différences, ajoute donc .setAlwaysEdible() et voit si ça fonctionne.

    Je te donne un exemple d'une poire en or que j'ai ajouté dans le jeu :
    pearGold = new ItemPearGold(IdItem=IdItem+1, 4, 1.2F, false).setAlwaysEdible().setPotionEffect(Potion.regeneration.id, 5, 0, 1.0F).setItemName("pearGold").setIconCoord(11, 0);



  • Merci mais pour l'enclume ça ne marche pas 😞 https://pastebin.com/b7XfpEJp


    Merci pour la pomme, ça marche 😄


    Aussi, j'ai oublié de le dire mais le harvestlevel de mon minerai est a 2 pourtant je peux le miner a la main



  • @'DayZerd':

    Merci mais pour l'enclume ça ne marche pas 😞 https://pastebin.com/b7XfpEJp


    Merci pour la pomme, ça marche 😄

    De rien :).

    Je viens d'essayer de réparer un de mes items avec l'enclume et pour moi ça fonctionne, vérifie que l'item ou le block que tu as utilisé est bien le bon, parfois avec une erreur d'inattention le résultat peu être différent.

    Pour le problème du minage à la main je n'ai pas encore réussi à le régler mais il me semble avoir vu une solution quelque part.



  • Pour l'enclume il faut mettre ou l'item que l'on veut réparer ?



  • Le code que je t'ai donné, il faut le mettre dans la class de ton item, tout simplement.



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



  • Envoi la class de l'item



  • @'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";
        }
    }
    
    


  • 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>


  • @'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>



  • 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



  • 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



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



  • 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



  • Merci, mes problemes ont été résolu



  • 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.



  • 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