summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java
index 8bcc476e..8a668e9e 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaFirework.java
@@ -103,7 +103,15 @@ class CraftMetaFirework extends CraftMetaItem implements FireworkMeta {
.trail(explosion.getBoolean(EXPLOSION_TRAIL.NBT))
.with(getEffectType(0xff & explosion.getByte(EXPLOSION_TYPE.NBT)));
- for (int color : explosion.getIntArray(EXPLOSION_COLORS.NBT)) {
+ int[] colors = explosion.getIntArray(EXPLOSION_COLORS.NBT);
+ // People using buggy command generators specify a list rather than an int here, so recover with dummy data.
+ // Wrong: Colors: [1234]
+ // Right: Colors: [I;1234]
+ if (colors.length == 0) {
+ effect.withColor(Color.WHITE);
+ }
+
+ for (int color : colors) {
effect.withColor(Color.fromRGB(color));
}