Added Instrument enum, Note class and get/setNote functions. Thanks xZise!

This commit is contained in:
EvilSeph 2011-06-17 03:16:18 -04:00
parent cc1b0a005c
commit 39332e5c87
2 changed files with 36 additions and 2 deletions

View file

@ -1,15 +1,16 @@
package org.bukkit.craftbukkit.block; package org.bukkit.craftbukkit.block;
import net.minecraft.server.TileEntityNote; import net.minecraft.server.TileEntityNote;
import org.bukkit.Instrument;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Note;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.NoteBlock; import org.bukkit.block.NoteBlock;
import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.craftbukkit.CraftWorld;
/** /**
* Represents a note block. * Represents a note block.
*
* @author sk89q
*/ */
public class CraftNoteBlock extends CraftBlockState implements NoteBlock { public class CraftNoteBlock extends CraftBlockState implements NoteBlock {
private final CraftWorld world; private final CraftWorld world;
@ -22,14 +23,28 @@ public class CraftNoteBlock extends CraftBlockState implements NoteBlock {
note = (TileEntityNote) world.getTileEntityAt(getX(), getY(), getZ()); note = (TileEntityNote) world.getTileEntityAt(getX(), getY(), getZ());
} }
@Deprecated
public byte getNote() { public byte getNote() {
return note.note; return note.note;
} }
public byte getRawNote() {
return note.note;
}
public void setNote(Note n) {
note.note = n.getId();
}
@Deprecated
public void setNote(byte n) { public void setNote(byte n) {
note.note = n; note.note = n;
} }
public void setRawNote(byte n) {
note.note = n;
}
public boolean play() { public boolean play() {
Block block = getBlock(); 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;
}
}
}
} }

View file

@ -15,8 +15,10 @@ import net.minecraft.server.ServerConfigurationManager;
import net.minecraft.server.WorldServer; import net.minecraft.server.WorldServer;
import org.bukkit.Achievement; import org.bukkit.Achievement;
import org.bukkit.Effect; import org.bukkit.Effect;
import org.bukkit.Instrument;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Note;
import org.bukkit.Statistic; import org.bukkit.Statistic;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld; 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)); 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) { public void playEffect(Location loc, Effect effect, int data) {
int packetData = effect.getId(); int packetData = effect.getId();
Packet61 packet = new Packet61(packetData, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), data); Packet61 packet = new Packet61(packetData, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), data);