diff options
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java | 76 |
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; + } + } + } +} |