001    package net.minecraft.item;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import java.util.List;
006    import net.minecraft.creativetab.CreativeTabs;
007    import net.minecraft.entity.player.EntityPlayer;
008    import net.minecraft.potion.Potion;
009    import net.minecraft.potion.PotionEffect;
010    import net.minecraft.world.World;
011    
012    public class ItemAppleGold extends ItemFood
013    {
014        public ItemAppleGold(int par1, int par2, float par3, boolean par4)
015        {
016            super(par1, par2, par3, par4);
017            this.setHasSubtypes(true);
018        }
019    
020        @SideOnly(Side.CLIENT)
021        public boolean hasEffect(ItemStack par1ItemStack)
022        {
023            return par1ItemStack.getItemDamage() > 0;
024        }
025    
026        @SideOnly(Side.CLIENT)
027    
028        /**
029         * Return an item rarity from EnumRarity
030         */
031        public EnumRarity getRarity(ItemStack par1ItemStack)
032        {
033            return par1ItemStack.getItemDamage() == 0 ? EnumRarity.rare : EnumRarity.epic;
034        }
035    
036        protected void func_77849_c(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
037        {
038            if (par1ItemStack.getItemDamage() > 0)
039            {
040                if (!par2World.isRemote)
041                {
042                    par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.regeneration.id, 600, 3));
043                    par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.resistance.id, 6000, 0));
044                    par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 6000, 0));
045                }
046            }
047            else
048            {
049                super.func_77849_c(par1ItemStack, par2World, par3EntityPlayer);
050            }
051        }
052    
053        @SideOnly(Side.CLIENT)
054    
055        /**
056         * returns a list of items with the same ID, but different meta (eg: dye returns 16 items)
057         */
058        public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
059        {
060            par3List.add(new ItemStack(par1, 1, 0));
061            par3List.add(new ItemStack(par1, 1, 1));
062        }
063    }