Add API to PotionEffect to determine whether particles are visible and displayed to the client. Fixes SPIGOT-125

By: 0x277F <0x277F@gmail.com>
This commit is contained in:
Bukkit/Spigot 2014-12-05 14:09:05 -07:00
parent 52f6aff4e1
commit 816db9f46b

View file

@ -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;