package greymerk.roguelike.treasure.loot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; public enum PotionEffect { SPEED(1), SLOWNESS(2), HASTE(3), FATIGUE(4), STRENGTH(5), HEALTH(6), DAMAGE(7), JUMP(8), NAUSIA(9), REGEN(10), RESISTANCE(11), FIRERESIST(12), WATERBREATH(13), INVISIBILITY(14), BLINDNESS(15), NIGHTVISION(16), HUNGER(17), WEAKNESS(18), POISON(19), WITHER(20), HEALTHBOOST(21), ABSORPTION(22), SATURATION(23), GLOWING(24), LEVITATION(25), LUCK(26), BAD_LUCK(27); public static int TICKS_PER_SECOND = 20; private int id; PotionEffect(int id){ this.id = id; } public static int getEffectID(PotionEffect type){ return type.id; } public static void addCustomEffect(ItemStack potion, PotionEffect type, int amplifier, int duration){ final String CUSTOM = "CustomPotionEffects"; NBTTagCompound tag = potion.getTagCompound(); if(tag == null){ tag = new NBTTagCompound(); potion.setTagCompound(tag); } NBTTagList effects; effects = tag.getTagList(CUSTOM, 10); if (effects == null){ effects = new NBTTagList(); tag.setTag(CUSTOM, effects); } NBTTagCompound toAdd = new NBTTagCompound(); toAdd.setByte("Id", (byte)type.id); toAdd.setByte("Amplifier", (byte)(amplifier - 1)); toAdd.setInteger("Duration", duration * TICKS_PER_SECOND); toAdd.setBoolean("Ambient", true); effects.appendTag(toAdd); tag.setTag(CUSTOM, effects); potion.setTagCompound(tag); } }