From 0a1c89e4b1ce8902cfc9b21ae1844653d1f59781 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 23 Dec 2022 11:46:35 +1100 Subject: [PATCH] SPIGOT-7212: Allow negative firework power --- .../craftbukkit/inventory/CraftMetaFirework.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java index 9698623bc..03174b42c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java @@ -53,7 +53,7 @@ class CraftMetaFirework extends CraftMetaItem implements FireworkMeta { static final ItemMetaKey EXPLOSION_FADE = new ItemMetaKey("FadeColors"); private List effects; - private int power; + private Integer power; CraftMetaFirework(CraftMetaItem meta) { super(meta); @@ -80,7 +80,7 @@ class CraftMetaFirework extends CraftMetaItem implements FireworkMeta { NBTTagCompound fireworks = tag.getCompound(FIREWORKS.NBT); - power = 0xff & fireworks.getByte(FLIGHT.NBT); + power = (int) fireworks.getByte(FLIGHT.NBT); if (!fireworks.contains(EXPLOSIONS.NBT)) { return; @@ -181,7 +181,7 @@ class CraftMetaFirework extends CraftMetaItem implements FireworkMeta { Integer power = SerializableMeta.getObject(Integer.class, map, FLIGHT.BUKKIT, true); if (power != null) { - setPower(power); + this.power = power; } Iterable effects = SerializableMeta.getObject(Iterable.class, map, EXPLOSIONS.BUKKIT, true); @@ -234,7 +234,7 @@ class CraftMetaFirework extends CraftMetaItem implements FireworkMeta { } if (hasPower()) { - fireworks.putByte(FLIGHT.NBT, (byte) power); + fireworks.putByte(FLIGHT.NBT, power.byteValue()); } } @@ -267,7 +267,7 @@ class CraftMetaFirework extends CraftMetaItem implements FireworkMeta { } boolean hasPower() { - return power != 0; + return power != null && power != 0; } @Override