SPIGOT-1357: Add potion particle effect color getters to API.

By: md_5 <git@md-5.net>
This commit is contained in:
Bukkit/Spigot 2016-03-01 08:30:03 +11:00
parent 93f59ff2de
commit 3cb487abe5

View file

@ -4,6 +4,7 @@ import java.util.Map;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.Color;
import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.configuration.serialization.SerializableAs; import org.bukkit.configuration.serialization.SerializableAs;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
@ -28,6 +29,7 @@ public class PotionEffect implements ConfigurationSerializable {
private final PotionEffectType type; private final PotionEffectType type;
private final boolean ambient; private final boolean ambient;
private final boolean particles; private final boolean particles;
private final Color color;
/** /**
* Creates a potion effect. * Creates a potion effect.
@ -37,14 +39,30 @@ public class PotionEffect implements ConfigurationSerializable {
* @param amplifier the amplifier, see {@link PotionEffect#getAmplifier()} * @param amplifier the amplifier, see {@link PotionEffect#getAmplifier()}
* @param ambient the ambient status, see {@link PotionEffect#isAmbient()} * @param ambient the ambient status, see {@link PotionEffect#isAmbient()}
* @param particles the particle status, see {@link PotionEffect#hasParticles()} * @param particles the particle status, see {@link PotionEffect#hasParticles()}
* @param color the particle color, see {@link PotionEffect#getColor()}
*/ */
public PotionEffect(PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles){ public PotionEffect(PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, Color color){
Validate.notNull(type, "effect type cannot be null"); Validate.notNull(type, "effect type cannot be null");
this.type = type; this.type = type;
this.duration = duration; this.duration = duration;
this.amplifier = amplifier; this.amplifier = amplifier;
this.ambient = ambient; this.ambient = ambient;
this.particles = particles; this.particles = particles;
this.color = color;
}
/**
* Creates a potion effect with no defined color.
*
* @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) {
this(type, duration, amplifier, ambient, true, null);
} }
/** /**
@ -186,6 +204,13 @@ public class PotionEffect implements ConfigurationSerializable {
return particles; return particles;
} }
/**
* @return color of this potion's particles. May be null if the potion has no particles or defined color.
*/
public Color getColor() {
return color;
}
@Override @Override
public int hashCode() { public int hashCode() {
int hash = 1; int hash = 1;