Class PotionEffectModifier

java.lang.Object
io.github.projectunified.craftitem.spigot.modifier.PotionEffectModifier
All Implemented Interfaces:
ItemModifier, SpigotItemModifier

public class PotionEffectModifier extends Object implements SpigotItemModifier
Spigot modifier that adds potion effects to potions and compatible items.

Supports multiple input formats:

  • Direct PotionEffect object
  • String format: "EFFECT_NAME duration amplifier" or "EFFECT_NAME,duration,amplifier"
  • Collection of PotionEffect objects
  • List of effect strings
Duration is specified in seconds and internally converted to ticks (1 second = 20 ticks).

Example Usage:


 // Direct PotionEffect
 ItemModifier mod1 = new PotionEffectModifier(
     new PotionEffect(PotionEffectType.SPEED, 2400, 2)
 );

 // String list format (duration in seconds)
 ItemModifier mod2 = new PotionEffectModifier(List.of(
     "Speed 120 2",
     "Strength, 60, 1"
 ));

 // Direct collection
 ItemModifier mod3 = new PotionEffectModifier(List.of(
     new PotionEffect(PotionEffectType.SPEED, 2400, 2)
 ));
 
  • Constructor Details

    • PotionEffectModifier

      public PotionEffectModifier(org.bukkit.potion.PotionEffect potionEffect)
      Creates a PotionEffectModifier with a single PotionEffect.
      Parameters:
      potionEffect - the potion effect to apply
    • PotionEffectModifier

      public PotionEffectModifier(String potionEffect)
      Creates a PotionEffectModifier with a potion effect string. Format: "EFFECT_NAME duration amplifier" or "EFFECT_NAME,duration,amplifier" Duration is in seconds.
      Parameters:
      potionEffect - the potion effect string
    • PotionEffectModifier

      public PotionEffectModifier(Collection<org.bukkit.potion.PotionEffect> potionEffects)
      Creates a PotionEffectModifier with a collection of PotionEffect objects.
      Parameters:
      potionEffects - the collection of potion effects
    • PotionEffectModifier

      public PotionEffectModifier(List<String> potionEffects)
      Creates a PotionEffectModifier with a list of potion effect strings. Format: "EFFECT_NAME duration amplifier" or "EFFECT_NAME,duration,amplifier" Duration is in seconds.
      Parameters:
      potionEffects - the list of potion effect strings
  • Method Details

    • modify

      public void modify(SpigotItem item, UnaryOperator<String> translator)
      Applies the potion effects to the item. Only works on items with PotionMeta (potions, splash potions, lingering potions, etc.).
      Specified by:
      modify in interface SpigotItemModifier
      Parameters:
      item - the SpigotItem to modify
      translator - the string translator for variable substitution