diff --git a/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java b/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java index 24ee19de3f..01503f4999 100644 --- a/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java +++ b/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java @@ -26,9 +26,28 @@ public class PotionEffect implements ConfigurationSerializable { private final int duration; private final PotionEffectType type; private final boolean ambient; + private final boolean particles; /** * Creates a potion effect. + * @param type effect type + * @param duration measured in ticks, see {@link + * PotionEffect#getDuration()} + * @param amplifier the amplifier, see {@link PotionEffect#getAmplifier()} + * @param ambient the ambient status, see {@link PotionEffect#isAmbient()} + * @param particles the particle status, see {@link PotionEffect#hasParticles()} + */ + public PotionEffect(PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles){ + Validate.notNull(type, "effect type cannot be null"); + this.type = type; + this.duration = duration; + this.amplifier = amplifier; + this.ambient = ambient; + this.particles = particles; + } + + /** + * Creates a potion effect. Assumes that particles are visible * * @param type effect type * @param duration measured in ticks, see {@link @@ -37,11 +56,7 @@ public class PotionEffect implements ConfigurationSerializable { * @param ambient the ambient status, see {@link PotionEffect#isAmbient()} */ public PotionEffect(PotionEffectType type, int duration, int amplifier, boolean ambient) { - Validate.notNull(type, "effect type cannot be null"); - this.type = type; - this.duration = duration; - this.amplifier = amplifier; - this.ambient = ambient; + this(type, duration, amplifier, ambient, true); } /** @@ -162,6 +177,13 @@ public class PotionEffect implements ConfigurationSerializable { return ambient; } + /** + * @return whether this effect has particles or not + */ + public boolean hasParticles(){ + return particles; + } + @Override public int hashCode() { int hash = 1;