Class PotionEffectType

java.lang.Object
org.bukkit.potion.PotionEffectType
All Implemented Interfaces:
net.kyori.adventure.key.Keyed, Translatable, Keyed
Direct Known Subclasses:
PotionEffectTypeWrapper

public abstract class PotionEffectType extends Object implements Keyed, Translatable
Represents a type of potion and its effect on an entity.
  • Field Details

    • SPEED

      public static final PotionEffectType SPEED
      Increases movement speed.
    • SLOW

      public static final PotionEffectType SLOW
      Decreases movement speed.
    • FAST_DIGGING

      public static final PotionEffectType FAST_DIGGING
      Increases dig speed.
    • SLOW_DIGGING

      public static final PotionEffectType SLOW_DIGGING
      Decreases dig speed.
    • INCREASE_DAMAGE

      public static final PotionEffectType INCREASE_DAMAGE
      Increases damage dealt.
    • HEAL

      public static final PotionEffectType HEAL
      Heals an entity.
    • HARM

      public static final PotionEffectType HARM
      Hurts an entity.
    • JUMP

      public static final PotionEffectType JUMP
      Increases jump height.
    • CONFUSION

      public static final PotionEffectType CONFUSION
      Warps vision on the client.
    • REGENERATION

      public static final PotionEffectType REGENERATION
      Regenerates health.
    • DAMAGE_RESISTANCE

      public static final PotionEffectType DAMAGE_RESISTANCE
      Decreases damage dealt to an entity.
    • FIRE_RESISTANCE

      public static final PotionEffectType FIRE_RESISTANCE
      Stops fire damage.
    • WATER_BREATHING

      public static final PotionEffectType WATER_BREATHING
      Allows breathing underwater.
    • INVISIBILITY

      public static final PotionEffectType INVISIBILITY
      Grants invisibility.
    • BLINDNESS

      public static final PotionEffectType BLINDNESS
      Blinds an entity.
    • NIGHT_VISION

      public static final PotionEffectType NIGHT_VISION
      Allows an entity to see in the dark.
    • HUNGER

      public static final PotionEffectType HUNGER
      Increases hunger.
    • WEAKNESS

      public static final PotionEffectType WEAKNESS
      Decreases damage dealt by an entity.
    • POISON

      public static final PotionEffectType POISON
      Deals damage to an entity over time.
    • WITHER

      public static final PotionEffectType WITHER
      Deals damage to an entity over time and gives the health to the shooter.
    • HEALTH_BOOST

      public static final PotionEffectType HEALTH_BOOST
      Increases the maximum health of an entity.
    • ABSORPTION

      public static final PotionEffectType ABSORPTION
      Increases the maximum health of an entity with health that cannot be regenerated, but is refilled every 30 seconds.
    • SATURATION

      public static final PotionEffectType SATURATION
      Increases the food level of an entity each tick.
    • GLOWING

      public static final PotionEffectType GLOWING
      Outlines the entity so that it can be seen from afar.
    • LEVITATION

      public static final PotionEffectType LEVITATION
      Causes the entity to float into the air.
    • LUCK

      public static final PotionEffectType LUCK
      Loot table luck.
    • UNLUCK

      public static final PotionEffectType UNLUCK
      Loot table unluck.
    • SLOW_FALLING

      public static final PotionEffectType SLOW_FALLING
      Slows entity fall rate.
    • CONDUIT_POWER

      public static final PotionEffectType CONDUIT_POWER
      Effects granted by a nearby conduit. Includes enhanced underwater abilities.
    • DOLPHINS_GRACE

      public static final PotionEffectType DOLPHINS_GRACE
      Increses underwater movement speed.
      Squee'ek uh'k kk'kkkk squeek eee'eek.
    • BAD_OMEN

      public static final PotionEffectType BAD_OMEN
      Triggers a raid when the player enters a village.
      oof.
    • HERO_OF_THE_VILLAGE

      public static final PotionEffectType HERO_OF_THE_VILLAGE
      Reduces the cost of villager trades.
      \o/.
  • Constructor Details

  • Method Details

    • createEffect

      @NotNull public @NotNull PotionEffect createEffect(int duration, int amplifier)
      Creates a PotionEffect from this PotionEffectType, applying duration modifiers and checks.
      Parameters:
      duration - time in ticks
      amplifier - the effect's amplifier
      Returns:
      a resulting potion effect
      See Also:
    • getDurationModifier

      @Deprecated public abstract double getDurationModifier()
      Deprecated.
      unused, always 1.0
      Returns the duration modifier applied to effects of this type.
      Returns:
      duration modifier
    • getId

      @Deprecated public int getId()
      Deprecated.
      Magic value
      Returns the unique ID of this type.
      Returns:
      Unique ID
    • getKey

      @NotNull public @NotNull NamespacedKey getKey()
      Description copied from interface: Keyed
      Return the namespaced identifier for this object.
      Specified by:
      getKey in interface Keyed
      Returns:
      this object's key
    • getName

      @NotNull public abstract @NotNull String getName()
      Returns the name of this effect type.
      Returns:
      The name of this effect type
    • isInstant

      public abstract boolean isInstant()
      Returns whether the effect of this type happens once, immediately.
      Returns:
      whether this type is normally instant
    • getColor

      @NotNull public abstract @NotNull Color getColor()
      Returns the color of this effect type.
      Returns:
      the color
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getByKey

      @Contract("null -> null") @Nullable public static @Nullable PotionEffectType getByKey(@Nullable @Nullable NamespacedKey key)
      Gets the PotionEffectType at the specified key
      Parameters:
      key - key to fetch
      Returns:
      Resulting PotionEffectType, or null if not found
    • getById

      @Deprecated @Nullable public static @Nullable PotionEffectType getById(int id)
      Deprecated.
      Magic value
      Gets the effect type specified by the unique id.
      Parameters:
      id - Unique ID to fetch
      Returns:
      Resulting type, or null if not found.
    • getByName

      @Nullable public static @Nullable PotionEffectType getByName(@NotNull @NotNull String name)
      Gets the effect type specified by the given name.
      Parameters:
      name - Name of PotionEffectType to fetch
      Returns:
      Resulting PotionEffectType, or null if not found.
    • registerPotionEffectType

      public static void registerPotionEffectType(@NotNull @NotNull PotionEffectType type)
      Registers an effect type with the given object.

      Generally not to be used from within a plugin.

      Parameters:
      type - PotionType to register
    • stopAcceptingRegistrations

      public static void stopAcceptingRegistrations()
      Stops accepting any effect type registrations.
    • values

      @NotNull public static @NotNull PotionEffectType[] values()
      Returns an array of all the registered PotionEffectTypes. This array is not necessarily in any particular order.
      Returns:
      Array of types.
    • getEffectAttributes

      @NotNull public abstract @NotNull Map<Attribute,AttributeModifier> getEffectAttributes()
      Gets the effect attributes in an immutable map.
      Returns:
      the attribute map
    • getAttributeModifierAmount

      public abstract double getAttributeModifierAmount(@NotNull Attribute attribute, int effectAmplifier)
      Gets the true modifier amount based on the effect amplifier.
      Parameters:
      attribute - the attribute
      effectAmplifier - the effect amplifier (0 indexed)
      Returns:
      the modifier amount
      Throws:
      IllegalArgumentException - if the supplied attribute is not present in the map from getEffectAttributes()
    • getEffectCategory

      @NotNull public abstract PotionEffectType.Category getEffectCategory()
      Gets the category of this effect
      Returns:
      the category