summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/bukkit/Material.java2
-rw-r--r--src/main/java/org/bukkit/block/Jukebox.java32
-rw-r--r--src/main/java/org/bukkit/material/Jukebox.java84
3 files changed, 33 insertions, 85 deletions
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<Material> recordTypes = new HashSet<Material>();
- 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();
- }
-}