ItemStack stack = ((EntityItem)event.entity).getEntityItem();
if(!(event.entity instanceof EntityItemSpecial)) {
if(stack.getItem() == net.minecraft.init.Items.iron_ingot || stack.getItem() == Item.getItemFromBlock(net.minecraft.init.Blocks.iron_block)) {
EntityItemSpecial seedEntity = new EntityItemSpecial(event.world, stack.copy());
seedEntity.delayBeforeCanPickup = ((EntityItem)event.entity).delayBeforeCanPickup;
seedEntity.copyDataFrom(event.entity, true);
event.setCanceled(true);
stack.stackSize = 0; //Tinkers Construct fix, because tinkers invokes EntityItem#onCollideWithPlayer(EntityItem) without checking if the item entity is dead.
event.world.spawnEntityInWorld(seedEntity);
}
}