diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java index 9927730bf7..333b1cb09d 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java +++ b/paper-server/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; + } + } + } +}