From 39332e5c8747d1615a8d8efa9a7062f53e1dfe1d Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Fri, 17 Jun 2011 03:16:18 -0400 Subject: [PATCH] Added Instrument enum, Note class and get/setNote functions. Thanks xZise! --- .../craftbukkit/block/CraftNoteBlock.java | 32 +++++++++++++++++-- .../craftbukkit/entity/CraftPlayer.java | 6 ++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java index 055c74fdc3..76364cc6c1 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java @@ -1,15 +1,16 @@ package org.bukkit.craftbukkit.block; import net.minecraft.server.TileEntityNote; + +import org.bukkit.Instrument; import org.bukkit.Material; +import org.bukkit.Note; 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; @@ -22,14 +23,28 @@ public class CraftNoteBlock extends CraftBlockState implements NoteBlock { note = (TileEntityNote) world.getTileEntityAt(getX(), getY(), getZ()); } + @Deprecated public byte getNote() { return note.note; } + public byte getRawNote() { + return note.note; + } + + public void setNote(Note n) { + note.note = n.getId(); + } + + @Deprecated public void setNote(byte n) { note.note = n; } + public void setRawNote(byte n) { + note.note = n; + } + public boolean play() { Block block = getBlock(); @@ -55,4 +70,17 @@ public class CraftNoteBlock extends CraftBlockState implements NoteBlock { } } } + + public boolean play(Instrument instrument, Note note) { + Block block = getBlock(); + + synchronized (block) { + if (block.getType() == Material.NOTE_BLOCK) { + world.getHandle().d(getX(), getY(), getZ(), instrument.getType(), note.getId()); + return true; + } else { + return false; + } + } + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 56f9f6ce27..d200186037 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -15,8 +15,10 @@ import net.minecraft.server.ServerConfigurationManager; import net.minecraft.server.WorldServer; import org.bukkit.Achievement; import org.bukkit.Effect; +import org.bukkit.Instrument; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.Note; import org.bukkit.Statistic; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; @@ -150,6 +152,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { getHandle().netServerHandler.sendPacket(new Packet54PlayNoteBlock(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), instrument, note)); } + public void playNote(Location loc, Instrument instrument, Note note) { + getHandle().netServerHandler.sendPacket(new Packet54PlayNoteBlock(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), instrument.getType(), note.getId())); + } + public void playEffect(Location loc, Effect effect, int data) { int packetData = effect.getId(); Packet61 packet = new Packet61(packetData, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), data);