Archiviert
13
0

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

Dieser Commit ist enthalten in:
EvilSeph 2011-06-17 03:16:18 -04:00
Ursprung cc1b0a005c
Commit 39332e5c87
2 geänderte Dateien mit 36 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -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;
}
}
}
}

Datei anzeigen

@ -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);