Durabilités items



  • j'ai créer un item voici sa class

    
    package com.adamitemod.mod.items;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.potion.Potion;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.util.ChatComponentTranslation;
    import net.minecraft.world.World;
    
    public class SpeedStick extends Item
    {
    
    public SpeedStick()
    {
    this.setMaxDamage(16);
    this.setMaxStackSize(1);
    }
    
    @Override
    public void onUpdate(ItemStack item, World world, Entity player, int slotIndex, boolean inHand)
    {
    if(item.hasTagCompound())//Si ton item n'a pas de tag alors on ne fait rien
    {
    if(item.stackTagCompound.getInteger("timer") > 0)//si ton timer est supérieur à 0 (après un clic droit logiquement)
    {
    item.stackTagCompound.setInteger("timer", (int) (item.stackTagCompound.getInteger("timer") + 1));//On l'incrémente de 1 à chaque tick
    }
    if(item.stackTagCompound.getInteger("timer") >= (int) (26*20))//Remplace 6 par le nombre de secondes du timer souhaité
    {
    item.stackTagCompound.setInteger("timer", 0);//On remet à 0 si le timer est arrivé à la limite souhaitée
    }
    }
    super.onUpdate(item, world, player, slotIndex, inHand);
    }
    
    public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player)
    {
    if(!item.hasTagCompound())
    {
    item.setTagCompound(new NBTTagCompound());
    item.stackTagCompound.setInteger("timer", 0);
    }
    if(item.stackTagCompound.getInteger("timer") == 0)
    {
    player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 3));
    item.stackTagCompound.setInteger("timer", 1);
    }
    else
    {
    if(world.isRemote)
    player.addChatComponentMessage(new ChatComponentTranslation("Tu dois attendre que le baton se recharge !"));
    }
    return item;
    }
    
    @SideOnly(Side.CLIENT)
    public boolean hasEffect(ItemStack item)
    {
    return true;
    }
    }
    
    

    Mais il ne perd pas de dura comment faire sans les metadata ?


  • Administrateurs

    Dans la condition

    if(item.stackTagCompound.getInteger("timer") == 0)
    {
    player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 3));
    item.stackTagCompound.setInteger("timer", 1);
    }
    

    ajoute item.damageItem(1, player);