Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 85 lines 2.0 kB view raw
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}