mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 11:27:35 +01:00
SPIGOT-798: Allow for CustomPotionEffects to be empty
This commit is contained in:
parent
e4ca2af9c4
commit
5b2764148d
@ -47,18 +47,16 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
|
|||||||
if (tag.hasKey(POTION_EFFECTS.NBT)) {
|
if (tag.hasKey(POTION_EFFECTS.NBT)) {
|
||||||
NBTTagList list = tag.getList(POTION_EFFECTS.NBT, 10);
|
NBTTagList list = tag.getList(POTION_EFFECTS.NBT, 10);
|
||||||
int length = list.size();
|
int length = list.size();
|
||||||
if (length > 0) {
|
customEffects = new ArrayList<PotionEffect>(length);
|
||||||
customEffects = new ArrayList<PotionEffect>(length);
|
|
||||||
|
|
||||||
for (int i = 0; i < length; i++) {
|
for (int i = 0; i < length; i++) {
|
||||||
NBTTagCompound effect = list.get(i);
|
NBTTagCompound effect = list.get(i);
|
||||||
PotionEffectType type = PotionEffectType.getById(effect.getByte(ID.NBT));
|
PotionEffectType type = PotionEffectType.getById(effect.getByte(ID.NBT));
|
||||||
int amp = effect.getByte(AMPLIFIER.NBT);
|
int amp = effect.getByte(AMPLIFIER.NBT);
|
||||||
int duration = effect.getInt(DURATION.NBT);
|
int duration = effect.getInt(DURATION.NBT);
|
||||||
boolean ambient = effect.getBoolean(AMBIENT.NBT);
|
boolean ambient = effect.getBoolean(AMBIENT.NBT);
|
||||||
boolean particles = effect.getBoolean(SHOW_PARTICLES.NBT);
|
boolean particles = effect.getBoolean(SHOW_PARTICLES.NBT);
|
||||||
customEffects.add(new PotionEffect(type, duration, amp, ambient, particles));
|
customEffects.add(new PotionEffect(type, duration, amp, ambient, particles));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -82,7 +80,7 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
|
|||||||
@Override
|
@Override
|
||||||
void applyToItem(NBTTagCompound tag) {
|
void applyToItem(NBTTagCompound tag) {
|
||||||
super.applyToItem(tag);
|
super.applyToItem(tag);
|
||||||
if (hasCustomEffects()) {
|
if (customEffects != null) {
|
||||||
NBTTagList effectList = new NBTTagList();
|
NBTTagList effectList = new NBTTagList();
|
||||||
tag.set(POTION_EFFECTS.NBT, effectList);
|
tag.set(POTION_EFFECTS.NBT, effectList);
|
||||||
|
|
||||||
@ -127,7 +125,7 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasCustomEffects() {
|
public boolean hasCustomEffects() {
|
||||||
return !(customEffects == null || customEffects.isEmpty());
|
return customEffects != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PotionEffect> getCustomEffects() {
|
public List<PotionEffect> getCustomEffects() {
|
||||||
@ -177,6 +175,9 @@ class CraftMetaPotion extends CraftMetaItem implements PotionMeta {
|
|||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (customEffects.isEmpty()) {
|
||||||
|
customEffects = null;
|
||||||
|
}
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user