ForgeEventFactory.onPlayerDestroyItem(player, stack, EnumHand.MAIN_HAND); player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY);
public void playerDestroyItem( final @Nonnull ItemStack stack, final EnumHand hand ) { if ( realPlayer ) { net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem( innerPlayer, stack, hand ); } }
private ItemStack damageTool(ItemStack stack) { EntityPlayer craftingPlayer = ForgeHooks.getCraftingPlayer(); if(stack.attemptDamageItem(1, random, craftingPlayer instanceof EntityPlayerMP ? (EntityPlayerMP) craftingPlayer : null)) { ForgeEventFactory.onPlayerDestroyItem(craftingPlayer, stack, null); return ItemStack.EMPTY; } return stack; }
private static void damageItem(ItemStack stack, EntityPlayer player) { stack.damageItem(1, player); if (stack.getCount() <= 0) { player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY); ForgeEventFactory.onPlayerDestroyItem(player, stack, EnumHand.MAIN_HAND); } }
ForgeEventFactory.onPlayerDestroyItem(player, itemstack, hand);
public static boolean onEntityInteract(Item item, EntityPlayer player, Entity target, EnumHand hand) { if (!(target instanceof EntityLivingBase)) return false; ItemStack current = player.getHeldItem(hand); if (current.isEmpty() || current.getItem() != item) return false; boolean result = item.itemInteractionForEntity(current, player, (EntityLivingBase) target, hand); if (current.getCount() <= 0) { player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); ForgeEventFactory.onPlayerDestroyItem(player, current, hand); } return result; }
/** * {@link IToolGrafter}'s drop bonus handling is done here. */ @Override public final void onBlockHarvested(World world, BlockPos pos, IBlockState state, EntityPlayer player) { int fortune = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, player.getActiveItemStack()); float saplingModifier = 1.0f; ItemStack heldStack = player.inventory.getCurrentItem(); Item heldItem = heldStack.getItem(); if (heldItem instanceof IToolGrafter) { IToolGrafter grafter = (IToolGrafter) heldItem; saplingModifier = grafter.getSaplingModifier(heldStack, world, player, pos); heldStack.damageItem(1, player); if (heldStack.isEmpty()) { net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(player, heldStack, EnumHand.MAIN_HAND); } } GameProfile playerProfile = player.getGameProfile(); NonNullList<ItemStack> drops = NonNullList.create(); getLeafDrop(drops, world, playerProfile, pos, saplingModifier, fortune); this.drops.set(drops); }
@SubscribeEvent public void onHarvestDropsEvent(BlockEvent.HarvestDropsEvent event) { IBlockState state = event.getState(); Block block = state.getBlock(); if (block instanceof BlockLeaves && !(block instanceof BlockForestryLeaves)) { EntityPlayer player = event.getHarvester(); if (player != null) { ItemStack harvestingTool = player.getHeldItemMainhand(); if (harvestingTool.getItem() instanceof IToolGrafter) { if (event.getDrops().isEmpty()) { World world = event.getWorld(); Item itemDropped = block.getItemDropped(state, world.rand, 3); if (itemDropped != Items.AIR) { event.getDrops().add(new ItemStack(itemDropped, 1, block.damageDropped(state))); } } harvestingTool.damageItem(1, player); if (harvestingTool.isEmpty()) { net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(player, harvestingTool, EnumHand.MAIN_HAND); } } } } } }
protected void damageShield(EntityLivingBase entity, float damage) { if (damage >= 3.0F && entity.getActiveItemStack().getItem().isShield(entity.getActiveItemStack(), entity)) { ItemStack copyBeforeUse = entity.getActiveItemStack().copy(); int i = 1 + MathHelper.floor(damage); entity.getActiveItemStack().damageItem(i, entity); if (entity.getActiveItemStack().isEmpty()) { EnumHand enumhand = entity.getActiveHand(); if (entity instanceof EntityPlayer) { net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem((EntityPlayer) entity, copyBeforeUse, enumhand); } if (enumhand == EnumHand.MAIN_HAND) { this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, ItemStack.EMPTY); } else { this.setItemStackToSlot(EntityEquipmentSlot.OFFHAND, ItemStack.EMPTY); } this.playSound(SoundEvents.ITEM_SHIELD_BREAK, 0.8F, 0.8F + this.world.rand.nextFloat() * 0.4F); } } }
protected void damageShield(EntityPlayer player, float damage) { if (damage >= 3.0F && player.getActiveItemStack().getItem().isShield(player.getActiveItemStack(), player)) { ItemStack copyBeforeUse = player.getActiveItemStack().copy(); int i = 1 + MathHelper.floor(damage); player.getActiveItemStack().damageItem(i, player); if (player.getActiveItemStack().isEmpty()) { EnumHand enumhand = player.getActiveHand(); net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(player, copyBeforeUse, enumhand); if (enumhand == EnumHand.MAIN_HAND) { this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, ItemStack.EMPTY); } else { this.setItemStackToSlot(EntityEquipmentSlot.OFFHAND, ItemStack.EMPTY); } player.resetActiveHand(); this.playSound(SoundEvents.ITEM_SHIELD_BREAK, 0.8F, 0.8F + this.world.rand.nextFloat() * 0.4F); } } }
@SubscribeEvent public void onEntityShielded(LivingHurtEvent event) { if (event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntityLiving(); ItemStack stack = player.getActiveItemStack(); if (!stack.isEmpty() && stack.getItem() instanceof ItemErebusShield) { ItemErebusShield shield = (ItemErebusShield) stack.getItem(); if (canBlockDamageSource(player, event.getSource()) && !player.isEntityInvulnerable(event.getSource())) { int damageInflicted = 1 + MathHelper.floor(event.getAmount()); shield.damageShield(damageInflicted, stack, player); if (stack.getCount() <= 0) { EnumHand hand = player.getActiveHand(); if (player instanceof EntityPlayerMP) { // Erebus.NETWORK_WRAPPER.sendTo(new ShieldDestroyMessage(stack), (EntityPlayerMP) player); } ForgeEventFactory.onPlayerDestroyItem(player, stack, hand); player.setHeldItem(hand, ItemStack.EMPTY); } } } } }
ForgeEventFactory.onPlayerDestroyItem(player, stack, EnumHand.MAIN_HAND); player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY);
if (itemstack.isEmpty()) { player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY); ForgeEventFactory.onPlayerDestroyItem(player, copy, EnumHand.MAIN_HAND);