From 1002e546a4605c6fee9a30ac4265c3b4367421ce Mon Sep 17 00:00:00 2001 From: Celtic Minstrel Date: Mon, 22 Aug 2011 01:27:48 -0400 Subject: Remove Jukebox MaterialData in favour of Jukebox BlockState --- src/main/java/org/bukkit/Material.java | 2 +- src/main/java/org/bukkit/block/Jukebox.java | 32 ++++++++++ src/main/java/org/bukkit/material/Jukebox.java | 84 -------------------------- 3 files changed, 33 insertions(+), 85 deletions(-) create mode 100644 src/main/java/org/bukkit/block/Jukebox.java delete mode 100644 src/main/java/org/bukkit/material/Jukebox.java (limited to 'src') diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java index b316cd52..32290de9 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java @@ -96,7 +96,7 @@ public enum Material { CACTUS(81, MaterialData.class), CLAY(82), SUGAR_CANE_BLOCK(83, MaterialData.class), - JUKEBOX(84, Jukebox.class), + JUKEBOX(84), FENCE(85), PUMPKIN(86, Pumpkin.class), NETHERRACK(87), diff --git a/src/main/java/org/bukkit/block/Jukebox.java b/src/main/java/org/bukkit/block/Jukebox.java new file mode 100644 index 00000000..6d941168 --- /dev/null +++ b/src/main/java/org/bukkit/block/Jukebox.java @@ -0,0 +1,32 @@ +package org.bukkit.block; + +import org.bukkit.Material; + +/** + * Represents a Jukebox + */ +public interface Jukebox extends BlockState { + /** + * Get the record currently playing + * @return The record Material, or AIR if none is playing + */ + public Material getPlaying(); + + /** + * Set the record currently playing + * @param record The record Material, or null/AIR to stop playing + */ + public void setPlaying(Material record); + + /** + * Check if the jukebox is currently playing a record + * @return True if there is a record playing + */ + public boolean isPlaying(); + + /** + * Stop the jukebox playing and eject the current record + * @return True if a record was ejected; false if there was none playing + */ + public boolean eject(); +} diff --git a/src/main/java/org/bukkit/material/Jukebox.java b/src/main/java/org/bukkit/material/Jukebox.java deleted file mode 100644 index 53b51adf..00000000 --- a/src/main/java/org/bukkit/material/Jukebox.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.bukkit.material; - -import java.util.HashSet; - -import org.bukkit.Material; - -public class Jukebox extends MaterialData { - private static HashSet recordTypes = new HashSet(); - static { - recordTypes.add(Material.GOLD_RECORD); - recordTypes.add(Material.GREEN_RECORD); - } - - public Jukebox() { - super(Material.JUKEBOX); - } - - public Jukebox(int type) { - super(type); - } - - public Jukebox(Material type) { - super((recordTypes.contains(type)) ? Material.JUKEBOX : type); - if (recordTypes.contains(type)) { - setPlaying(type); - } - } - - public Jukebox(int type, byte data) { - super(type, data); - } - - public Jukebox(Material type, byte data) { - super(type, data); - } - - /** - * Gets the type of record currently playing - * - * @return The type of record (Material.GOLD_RECORD or Material.GREEN_RECORD), or null for none. - */ - public Material getPlaying() { - switch ((int) getData()) { - default: - case 0x0: - return null; - - case 0x1: - return Material.GOLD_RECORD; - - case 0x2: - return Material.GREEN_RECORD; - } - } - - /** - * Sets the type of record currently playing - * - * @param rec The type of record (Material.GOLD_RECORD or Material.GREEN_RECORD), or null for none. - */ - public void setPlaying(Material rec) { - if (rec == null) { - setData((byte) 0x0); - } else { - switch (rec) { - case GOLD_RECORD: - setData((byte) 0x1); - break; - - case GREEN_RECORD: - setData((byte) 0x2); - break; - - default: - setData((byte) 0x0); - } - } - } - - @Override - public String toString() { - return super.toString() + " playing " + getPlaying(); - } -} -- cgit v1.2.3