summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java76
1 files changed, 45 insertions, 31 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java
index 9927730b..333b1cb0 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java
@@ -1,31 +1,45 @@
-package org.bukkit.craftbukkit.block;
-
-import net.minecraft.server.TileEntityNote;
-import org.bukkit.block.Block;
-import org.bukkit.block.NoteBlock;
-import org.bukkit.craftbukkit.CraftWorld;
-
-/**
- * Represents a note block.
- *
- * @author sk89q
- */
-public class CraftNoteBlock extends CraftBlockState implements NoteBlock {
- private final CraftWorld world;
- private final TileEntityNote note;
-
- public CraftNoteBlock(final Block block) {
- super(block);
-
- world = (CraftWorld)block.getWorld();
- note = (TileEntityNote)world.getTileEntityAt(getX(), getY(), getZ());
- }
-
- public byte getNote() {
- return note.e;
- }
-
- public void setNote(byte n) {
- note.e = n;
- }
-}
+package org.bukkit.craftbukkit.block;
+
+import net.minecraft.server.TileEntityNote;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.block.NoteBlock;
+import org.bukkit.craftbukkit.CraftWorld;
+
+/**
+ * Represents a note block.
+ *
+ * @author sk89q
+ */
+public class CraftNoteBlock extends CraftBlockState implements NoteBlock {
+ private final CraftWorld world;
+ private final TileEntityNote note;
+
+ public CraftNoteBlock(final Block block) {
+ super(block);
+
+ world = (CraftWorld)block.getWorld();
+ note = (TileEntityNote)world.getTileEntityAt(getX(), getY(), getZ());
+ }
+
+ public byte getNote() {
+ return note.e;
+ }
+
+ public void setNote(byte n) {
+ note.e = n;
+ }
+
+ public boolean play() {
+ Block block = getBlock();
+
+ synchronized (block) {
+ if (block.getType() == Material.NOTE_BLOCK) {
+ note.a(world.getHandle(), getX(), getY(), getZ());
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+}