Résolu 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)?
Mercipackage 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 faut faire en plus un aure .damageItem
-
@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