001 package org.bukkit.potion; 002 003 public enum PotionType { 004 WATER(0, null, 0), 005 REGEN(1, PotionEffectType.REGENERATION, 2), 006 SPEED(2, PotionEffectType.SPEED, 2), 007 FIRE_RESISTANCE(3, PotionEffectType.FIRE_RESISTANCE, 1), 008 POISON(4, PotionEffectType.POISON, 2), 009 INSTANT_HEAL(5, PotionEffectType.HEAL, 2), 010 NIGHT_VISION(6, PotionEffectType.NIGHT_VISION, 1), 011 WEAKNESS(8, PotionEffectType.WEAKNESS, 1), 012 STRENGTH(9, PotionEffectType.INCREASE_DAMAGE, 2), 013 SLOWNESS(10, PotionEffectType.SLOW, 1), 014 INSTANT_DAMAGE(12, PotionEffectType.HARM, 2), 015 WATER_BREATHING(13, PotionEffectType.WATER_BREATHING, 1), 016 INVISIBILITY(14, PotionEffectType.INVISIBILITY, 1), 017 ; 018 019 private final int damageValue, maxLevel; 020 private final PotionEffectType effect; 021 022 PotionType(int damageValue, PotionEffectType effect, int maxLevel) { 023 this.damageValue = damageValue; 024 this.effect = effect; 025 this.maxLevel = maxLevel; 026 } 027 028 public PotionEffectType getEffectType() { 029 return effect; 030 } 031 032 /** 033 * 034 * @deprecated Magic value 035 */ 036 @Deprecated 037 public int getDamageValue() { 038 return damageValue; 039 } 040 041 public int getMaxLevel() { 042 return maxLevel; 043 } 044 045 public boolean isInstant() { 046 return effect == null ? true : effect.isInstant(); 047 } 048 049 /** 050 * 051 * @deprecated Magic value 052 */ 053 @Deprecated 054 public static PotionType getByDamageValue(int damage) { 055 for (PotionType type : PotionType.values()) { 056 if (type.damageValue == damage) 057 return type; 058 } 059 return null; 060 } 061 062 public static PotionType getByEffect(PotionEffectType effectType) { 063 if (effectType == null) 064 return WATER; 065 for (PotionType type : PotionType.values()) { 066 if (effectType.equals(type.effect)) 067 return type; 068 } 069 return null; 070 } 071 }