summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/TileEntityNote.java9
-rw-r--r--src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java6
2 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/TileEntityNote.java b/src/main/java/net/minecraft/server/TileEntityNote.java
index 684bbc6d..78c6b553 100644
--- a/src/main/java/net/minecraft/server/TileEntityNote.java
+++ b/src/main/java/net/minecraft/server/TileEntityNote.java
@@ -1,5 +1,7 @@
package net.minecraft.server;
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
+
public class TileEntityNote extends TileEntity {
public byte note = 0;
@@ -50,7 +52,12 @@ public class TileEntityNote extends TileEntity {
b0 = 4;
}
- world.playNote(i, j, k, b0, this.note);
+ // CraftBukkit start
+ org.bukkit.event.block.NotePlayEvent event = CraftEventFactory.callNotePlayEvent(this.world, i, j, k, b0, this.note);
+ if (!event.isCancelled()) {
+ this.world.playNote(i, j, k, event.getInstrument().getType(), event.getNote().getId());
+ }
+ // CraftBukkit end
}
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index a0c4715d..79ad5256 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -520,4 +520,10 @@ public class CraftEventFactory {
world.getServer().getPluginManager().callEvent(event);
return event;
}
+
+ public static NotePlayEvent callNotePlayEvent(World world, int x, int y, int z, byte instrument, byte note) {
+ NotePlayEvent event = new NotePlayEvent(world.getWorld().getBlockAt(x, y, z), org.bukkit.Instrument.getByType(instrument), new org.bukkit.Note(note));
+ world.getServer().getPluginManager().callEvent(event);
+ return event;
+ }
}