    001    package net.minecraft.item;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.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    }