From 2ee62eb580d88bdd59bf42ea4c6f9a12255398dd Mon Sep 17 00:00:00 2001 From: feildmaster Date: Fri, 21 Dec 2012 23:56:54 -0600 Subject: Implement API to get and set FireworkMeta on Firework entities --- .../bukkit/craftbukkit/entity/CraftFirework.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java index 78e5baa1..6bc22e4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java @@ -1,15 +1,37 @@ package org.bukkit.craftbukkit.entity; import net.minecraft.server.EntityFireworks; +import net.minecraft.server.Item; +import net.minecraft.server.ItemStack; +import org.bukkit.Material; import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.entity.EntityType; import org.bukkit.entity.Firework; +import org.bukkit.inventory.meta.FireworkMeta; public class CraftFirework extends CraftEntity implements Firework { + private static final int FIREWORK_ITEM_INDEX = 8; + + private final CraftItemStack item; public CraftFirework(CraftServer server, EntityFireworks entity) { super(server, entity); + + ItemStack item = getHandle().getDataWatcher().f(FIREWORK_ITEM_INDEX); + + if (item == null) { + item = new ItemStack(Item.FIREWORKS); + getHandle().getDataWatcher().watch(FIREWORK_ITEM_INDEX, item); + } + + this.item = CraftItemStack.asCraftMirror(item); + + // Ensure the item is a firework... + if (this.item.getType() != Material.FIREWORK) { + this.item.setType(Material.FIREWORK); + } } @Override @@ -25,4 +47,12 @@ public class CraftFirework extends CraftEntity implements Firework { public EntityType getType() { return EntityType.FIREWORK; } + + public FireworkMeta getFireworkMeta() { + return (FireworkMeta) item.getItemMeta(); + } + + public void setFireworkMeta(FireworkMeta meta) { + item.setItemMeta(meta); + } } -- cgit v1.2.3