Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package org.bukkit.material;
2
3import org.bukkit.Material;
4
5import java.util.HashSet;
6
7public class Jukebox extends MaterialData {
8 private static HashSet<Material> recordTypes = new HashSet<Material>();
9
10 static {
11 recordTypes.add(Material.GOLD_RECORD);
12 recordTypes.add(Material.GREEN_RECORD);
13 }
14
15 public Jukebox() {
16 super(Material.JUKEBOX);
17 }
18
19 public Jukebox(int type) {
20 super(type);
21 }
22
23 public Jukebox(Material type) {
24 super((recordTypes.contains(type)) ? Material.JUKEBOX : type);
25 if (recordTypes.contains(type)) {
26 setPlaying(type);
27 }
28 }
29
30 public Jukebox(int type, byte data) {
31 super(type, data);
32 }
33
34 public Jukebox(Material type, byte data) {
35 super(type, data);
36 }
37
38 /**
39 * Gets the type of record currently playing
40 *
41 * @return The type of record (Material.GOLD_RECORD or Material.GREEN_RECORD), or null for none.
42 */
43 public Material getPlaying() {
44 switch ((int) getData()) {
45 default:
46 case 0x0:
47 return null;
48
49 case 0x1:
50 return Material.GOLD_RECORD;
51
52 case 0x2:
53 return Material.GREEN_RECORD;
54 }
55 }
56
57 /**
58 * Sets the type of record currently playing
59 *
60 * @param rec The type of record (Material.GOLD_RECORD or Material.GREEN_RECORD), or null for none.
61 */
62 public void setPlaying(Material rec) {
63 if (rec == null) {
64 setData((byte) 0x0);
65 } else {
66 switch (rec) {
67 case GOLD_RECORD:
68 setData((byte) 0x1);
69 break;
70
71 case GREEN_RECORD:
72 setData((byte) 0x2);
73 break;
74
75 default:
76 setData((byte) 0x0);
77 }
78 }
79 }
80
81 @Override
82 public String toString() {
83 return super.toString() + " playing " + getPlaying();
84 }
85}