Supprimer un item de l'inv en 1.7



  • Bonjour, comment faire pr supprimer un item (pour echanger un item dans mon cas il faut en give puis suppr l'ancien)?
    Merci

    package com.extremium.mod.tools;
    
    import com.extremium.mod.init.ItemMod;
    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Items;
    import net.minecraft.item.ItemStack;
    import net.minecraft.item.ItemSword;
    import net.minecraft.potion.Potion;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.world.World;
    
    public class SwordDark extends ItemSword
    {
    
        public SwordDark(ToolMaterial p_i45356_1_)
        {
            super(p_i45356_1_);
        }
       
        
        
        public ItemStack onItemRightClick(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer player)
        {
            
            if(player.isSneaking())
            {
                
            
            if (p_77654_1_.stackSize <= 0)
            {
                return new ItemStack(Items.glass_bottle);
            }
    
            player.inventory.addItemStackToInventory(new ItemStack(Items.glass_bottle));
            return p_77654_1_;
            
            if(player.inventory.hasItemStack(new ItemStack(ItemMod.dark_sword)))
                
            {
                int count = 0;
                for(int i = 0; i < player.inventory.getSizeInventory(); i++)
                {
                       if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == ItemMod.dark_sword)
                       {
                           player.inventory.getItemStack();
     
                       }
                 }
            }
        }
            return p_77654_1_;
        }
        
        
        @Override
        public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity)
        {
            ((EntityLivingBase)entity).setFire(8);
            ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.weakness.id, 160, 0));;
            ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 160, 0));;
            ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.confusion.id, 160, 0));;
            return super.onLeftClickEntity(stack, player, entity);
           
            
        }
    }
    


  • @Drastic Si tu veut que remplacer l item quand il l as dans la main tu fait:
    player.getHeldItem() puis tu vérifie si c est le tiens ensuite tu le suprime puis tu lui en donne un nouveau (je sait pas si c est ce que tu veut faire car j ai pas bien compris)



  • oui mais comment faire apres ? Je crois qu'il faut qq chose d'autre (peut etre au niveau du break)

    package com.extremium.mod.tools;
    
    import com.extremium.mod.init.ItemMod;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.item.ItemSword;
    import net.minecraft.item.Item.ToolMaterial;
    import net.minecraft.world.World;
    
    public class GodSword extends ItemSword
    {
    
        public GodSword(ToolMaterial p_i45356_1_)
        {
            super(p_i45356_1_);
        }
          
        public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player)
        {
            
            if(player.isSneaking())
            {   
                
                if(player.inventory.hasItemStack(new ItemStack(ItemMod.gods_sword)))
                    
                {
                    
                    for(int i = 0; i < player.inventory.getSizeInventory(); i++)
                    {
                           if(player.getHeldItem() != null && player.inventory.getStackInSlot(i).getItem() == ItemMod.gods_sword)
                           {
                                   break;
                           }
                     }
               }
            
    
           if (itemStack.stackSize <= 0)
            {
                return new ItemStack(ItemMod.dark_sword);
            }
    
            player.inventory.addItemStackToInventory(new ItemStack(ItemMod.dark_sword));
            return itemStack;     
        }
            return itemStack;
            
    
        }
        
        
        
    }
    
    
    
    


  • Non pas besoin de regarder si il est non null tu regarde si il est égale a ton item puis tu fait:

    ItemStack item = player.getHeldItem(); //pour recuperer l item dans la main
    int damage = item.getMaxDamage(); //pour recuperer le maximum de degats que peut recevoir l item
    item.damageItem(damage, player); //pour suprimer l item
    player.inventory.addItemStackToInventory(new ItemStack(/* ton item*/)); //Puis ici tu lui donne sa nouvelle epee
    


  • @skyreth merci, un dernier probleme : litem garde 2 de dura (en gros il a 1/xxxxx)



  • @Drastic faut faire en plus un aure .damageItem



  • @Drastic Non pas besoin tu augmente juste le int damage


Log in to reply