package net.minecraft.server; public class TileEntityNote extends TileEntity { public byte note; public boolean f; public TileEntityNote() {} public NBTTagCompound save(NBTTagCompound nbttagcompound) { super.save(nbttagcompound); nbttagcompound.setByte("note", this.note); nbttagcompound.setBoolean("powered", this.f); return nbttagcompound; } public void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); this.note = nbttagcompound.getByte("note"); this.note = (byte) MathHelper.clamp(this.note, 0, 24); this.f = nbttagcompound.getBoolean("powered"); } public void a() { this.note = (byte) ((this.note + 1) % 25); this.update(); } public void play(World world, BlockPosition blockposition) { if (world.getType(blockposition.up()).getMaterial() == Material.AIR) { Material material = world.getType(blockposition.down()).getMaterial(); byte b0 = 0; if (material == Material.STONE) { b0 = 1; } if (material == Material.SAND) { b0 = 2; } if (material == Material.SHATTERABLE) { b0 = 3; } if (material == Material.WOOD) { b0 = 4; } // CraftBukkit start org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(this.world, blockposition.getX(), blockposition.getY(), blockposition.getZ(), b0, this.note); if (!event.isCancelled()) { world.playBlockAction(blockposition, Blocks.NOTEBLOCK, event.getInstrument().getType(), event.getNote().getId()); } // CraftBukkit end } } }