Package org.bukkit.inventory.meta

# Interface PotionMeta

All Superinterfaces:
  `Cloneable`, `ConfigurationSerializable`, `ItemMeta`, `PersistentDataHolder`

public interface PotionMeta extends ItemMeta
Represents a potion or item that can have custom effects.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`addCustomEffect(@NotNull PotionEffect effect, boolean overwrite)`
Adds a custom potion effect to this potion.
`boolean`
`clearCustomEffects()`
Removes all custom potion effects from this potion.
`PotionMeta`
`clone()`
`@NotNull PotionData`
`getBasePotionData()`
Returns the potion data about the base potion
`@Nullable Color`
`getColor()`
Gets the potion color that is set.
`@NotNull List<PotionEffect>`
`getCustomEffects()`
Gets an immutable list containing all custom potion effects applied to this potion.
`boolean`
`hasColor()`
Checks for existence of a potion color.
`boolean`
`hasCustomEffect(@NotNull PotionEffectType type)`
Checks for a specific custom potion effect type on this potion.
`boolean`
`hasCustomEffects()`
Checks for the presence of custom potion effects.
`boolean`
`removeCustomEffect(@NotNull PotionEffectType type)`
Removes a custom potion effect from this potion.
`void`
`setBasePotionData(@NotNull PotionData data)`
Sets the underlying potion data
`void`
`setColor(@Nullable Color color)`
Sets the potion color.
`boolean`
`setMainEffect(@NotNull PotionEffectType type)`
Deprecated.
use `setBasePotionData(org.bukkit.potion.PotionData)`

### Methods inherited from interface org.bukkit.configuration.serialization.ConfigurationSerializable

`serialize`

### Methods inherited from interface org.bukkit.inventory.meta.ItemMeta

`addAttributeModifier, addEnchant, addItemFlags, displayName, displayName, getAsString, getAttributeModifiers, getAttributeModifiers, getAttributeModifiers, getCanDestroy, getCanPlaceOn, getCustomModelData, getCustomTagContainer, getDestroyableKeys, getDisplayName, getDisplayNameComponent, getEnchantLevel, getEnchants, getItemFlags, getLocalizedName, getLore, getLoreComponents, getPlaceableKeys, hasAttributeModifiers, hasConflictingEnchant, hasCustomModelData, hasDestroyableKeys, hasDisplayName, hasEnchant, hasEnchants, hasItemFlag, hasLocalizedName, hasLore, hasPlaceableKeys, isUnbreakable, lore, lore, removeAttributeModifier, removeAttributeModifier, removeAttributeModifier, removeEnchant, removeItemFlags, setAttributeModifiers, setCanDestroy, setCanPlaceOn, setCustomModelData, setDestroyableKeys, setDisplayName, setDisplayNameComponent, setLocalizedName, setLore, setLoreComponents, setPlaceableKeys, setUnbreakable, setVersion`

### Methods inherited from interface org.bukkit.persistence.PersistentDataHolder

`getPersistentDataContainer`

## Method Details

### setBasePotionData

void setBasePotionData(@NotNull @NotNull PotionData data)
Sets the underlying potion data

Parameters:
  `data` - PotionData to set the base potion state to

### getBasePotionData

@NotNull @NotNull PotionData getBasePotionData()
Returns the potion data about the base potion

Returns:
  a PotionData object

### hasCustomEffects

boolean hasCustomEffects()
Checks for the presence of custom potion effects.

Returns:
  true if custom potion effects are applied

### getCustomEffects

@NotNull @NotNull List<PotionEffect> getCustomEffects()
Gets an immutable list containing all custom potion effects applied to this potion.

Plugins should check that hasCustomEffects() returns true before calling this method.

Returns:
  the immutable list of custom potion effects

### addCustomEffect

boolean addCustomEffect(@NotNull @NotNull PotionEffect effect, boolean overwrite)
Adds a custom potion effect to this potion.

Parameters:
  `effect` - the potion effect to add
  `overwrite` - true if any existing effect of the same type should be overwritten
Returns:
  true if the potion meta changed as a result of this call

### removeCustomEffect

boolean removeCustomEffect(@NotNull @NotNull PotionEffectType type)
Removes a custom potion effect from this potion.

Parameters:
  `type` - the potion effect type to remove
Returns:
  true if the potion meta changed as a result of this call

### hasCustomEffect

boolean hasCustomEffect(@NotNull @NotNull PotionEffectType type)
Checks for a specific custom potion effect type on this potion.

Parameters:
  `type` - the potion effect type to check for
Returns:
  true if the potion has this effect

### setMainEffect

@Deprecated boolean setMainEffect(@NotNull @NotNull PotionEffectType type)
Deprecated.
use `setBasePotionData(org.bukkit.potion.PotionData)`
Moves a potion effect to the top of the potion effect list.

This causes the client to display the potion effect in the potion's name.

Parameters:
  `type` - the potion effect type to move
Returns:
  true if the potion meta changed as a result of this call

### clearCustomEffects

boolean clearCustomEffects()
Removes all custom potion effects from this potion.

Returns:
  true if the potion meta changed as a result of this call

### hasColor

boolean hasColor()
Checks for existence of a potion color.

Returns:
  true if this has a custom potion color

### getColor

@Nullable @Nullable Color getColor()
Gets the potion color that is set. A custom potion color will alter the display of the potion in an inventory slot.

Plugins should check that hasColor() returns `true` before calling this method.

Returns:
  the potion color that is set

### setColor

void setColor(@Nullable @Nullable Color color)
Sets the potion color. A custom potion color will alter the display of the potion in an inventory slot.

Parameters:
  `color` - the color to set

### clone

PotionMeta clone()

Specified by:
  `clone` in interface `ItemMeta`