summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEvilSeph <evilseph@unaligned.org>2011-06-19 21:47:15 -0400
committerEvilSeph <evilseph@unaligned.org>2011-06-20 01:29:29 -0400
commit82a04fda101718271881b35fe4dd8237a3c65576 (patch)
tree89a166562dbfc357f984f32cf9e4f7990d491e74 /src
parent3b7f86ba5b8faedc9e59e33e306271267d3c4c55 (diff)
downloadbukkit-82a04fda101718271881b35fe4dd8237a3c65576.tar
bukkit-82a04fda101718271881b35fe4dd8237a3c65576.tar.gz
bukkit-82a04fda101718271881b35fe4dd8237a3c65576.tar.lz
bukkit-82a04fda101718271881b35fe4dd8237a3c65576.tar.xz
bukkit-82a04fda101718271881b35fe4dd8237a3c65576.zip
Added Furnace smelt and burn events.
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/event/Event.java14
-rw-r--r--src/main/java/org/bukkit/event/inventory/FurnaceBurnEvent.java71
-rw-r--r--src/main/java/org/bukkit/event/inventory/FurnaceSmeltEvent.java81
-rw-r--r--src/main/java/org/bukkit/event/inventory/InventoryListener.java23
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java15
5 files changed, 204 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java
index 888b29e5..b1b3d4e5 100644
--- a/src/main/java/org/bukkit/event/Event.java
+++ b/src/main/java/org/bukkit/event/Event.java
@@ -433,6 +433,20 @@ public abstract class Event implements Serializable {
INVENTORY_TRANSACTION (Category.INVENTORY),
/**
+ * Called when an ItemStack is successfully smelted in a furnace.
+ *
+ * @see org.bukkit.event.inventory.FurnaceSmeltEvent
+ */
+ FURNACE_SMELT (Category.INVENTORY),
+
+ /**
+ * Called when an ItemStack is successfully burned as fuel in a furnace.
+ *
+ * @see org.bukkit.event.inventory.FurnaceBurnEvent
+ */
+ FURNACE_BURN (Category.INVENTORY),
+
+ /**
* SERVER EVENTS
*/
diff --git a/src/main/java/org/bukkit/event/inventory/FurnaceBurnEvent.java b/src/main/java/org/bukkit/event/inventory/FurnaceBurnEvent.java
new file mode 100644
index 00000000..ed1f489b
--- /dev/null
+++ b/src/main/java/org/bukkit/event/inventory/FurnaceBurnEvent.java
@@ -0,0 +1,71 @@
+package org.bukkit.event.inventory;
+
+import org.bukkit.block.Block;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.Event;
+import org.bukkit.inventory.ItemStack;
+/**
+ * Called when an ItemStack is successfully burned as fuel in a furnace.
+ */
+public class FurnaceBurnEvent extends Event implements Cancellable {
+ private Block furnace;
+ private ItemStack fuel;
+ private int burnTime;
+ private boolean cancelled;
+
+ public FurnaceBurnEvent(Block furnace, ItemStack fuel, int burnTime) {
+ super(Type.FURNACE_BURN);
+
+ this.furnace = furnace;
+ this.fuel = fuel;
+ this.burnTime = burnTime;
+ this.cancelled = false;
+ }
+
+ /**
+ * Gets the block for the furnace involved in this event
+ *
+ * @return the block of the furnace
+ */
+ public Block getFurnace() {
+ return furnace;
+ }
+
+ /**
+ * Gets the fuel ItemStack for this event
+ *
+ * @return the fuel ItemStack
+ */
+ public ItemStack getFuel() {
+ return fuel;
+ }
+
+ /**
+ * Gets the default burn time for this fuel
+ *
+ * @return the default burn time for this fuel
+ */
+ public int getBurnTime() {
+ return burnTime;
+ }
+
+ /**
+ * Gets the cancellation state of this event. A cancelled event will not
+ * be executed in the server, but will still pass to other plugins
+ *
+ * @return true if this event is cancelled
+ */
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ /**
+ * Sets the cancellation state of this event. A cancelled event will not
+ * be executed in the server, but will still pass to other plugins
+ *
+ * @param cancel true if you wish to cancel this event
+ */
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/inventory/FurnaceSmeltEvent.java b/src/main/java/org/bukkit/event/inventory/FurnaceSmeltEvent.java
new file mode 100644
index 00000000..d3cd50e2
--- /dev/null
+++ b/src/main/java/org/bukkit/event/inventory/FurnaceSmeltEvent.java
@@ -0,0 +1,81 @@
+package org.bukkit.event.inventory;
+
+import org.bukkit.block.Block;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.Event;
+import org.bukkit.inventory.ItemStack;
+
+/**
+ * Called when an ItemStack is successfully smelted in a furnace.
+ */
+public class FurnaceSmeltEvent extends Event implements Cancellable{
+ private Block furnace;
+ private ItemStack source;
+ private ItemStack result;
+ private boolean cancelled;
+
+ public FurnaceSmeltEvent(Block furnace, ItemStack source, ItemStack result) {
+ super(Type.FURNACE_SMELT);
+
+ this.furnace = furnace;
+ this.source = source;
+ this.result = result;
+ this.cancelled = false;
+ }
+
+ /**
+ * Gets the block for the furnace involved in this event
+ *
+ * @return the block of the furnace
+ */
+ public Block getFurnace() {
+ return furnace;
+ }
+
+ /**
+ * Gets the smelted ItemStack for this event
+ *
+ * @return smelting source ItemStack
+ */
+ public ItemStack getSource() {
+ return source;
+ }
+
+ /**
+ * Gets the resultant ItemStack for this event
+ *
+ * @return smelting result ItemStack
+ */
+ public ItemStack getResult() {
+ return result;
+ }
+
+ /**
+ * Sets the resultant ItemStack for this event
+ *
+ * @param result new result ItemStack
+ */
+ public void setResult(ItemStack result) {
+ this.result = result;
+ }
+
+ /**
+ * Gets the cancellation state of this event. A cancelled event will not
+ * be executed in the server, but will still pass to other plugins
+ *
+ * @return true if this event is cancelled
+ */
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ /**
+ * Sets the cancellation state of this event. A cancelled event will not
+ * be executed in the server, but will still pass to other plugins
+ *
+ * @param cancel true if you wish to cancel this event
+ */
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryListener.java b/src/main/java/org/bukkit/event/inventory/InventoryListener.java
new file mode 100644
index 00000000..83e7e6d5
--- /dev/null
+++ b/src/main/java/org/bukkit/event/inventory/InventoryListener.java
@@ -0,0 +1,23 @@
+package org.bukkit.event.inventory;
+
+import org.bukkit.event.Listener;
+/**
+* Handles all events thrown in relation to Blocks
+ */
+public class InventoryListener implements Listener {
+ public InventoryListener() {}
+
+ /**
+ * Called when an ItemStack is successfully smelted in a furnace.
+ *
+ * @param event Relevant event details
+ */
+ public void onFurnaceSmelt(FurnaceSmeltEvent event) {}
+
+ /**
+ * Called when an ItemStack is successfully burned as fuel in a furnace.
+ *
+ * @param event Relevant event details
+ */
+ public void onFurnaceBurn(FurnaceBurnEvent event) {}
+}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 8ee81fd0..ec3eb340 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -26,6 +26,7 @@ import org.bukkit.event.server.*;
import org.bukkit.event.vehicle.*;
import org.bukkit.event.world.*;
import org.bukkit.event.weather.*;
+import org.bukkit.event.inventory.*;
import org.bukkit.plugin.*;
import org.yaml.snakeyaml.error.YAMLException;
@@ -812,6 +813,20 @@ public final class JavaPluginLoader implements PluginLoader {
}
};
+ // Inventory Events
+ case FURNACE_SMELT:
+ return new EventExecutor() {
+ public void execute(Listener listener, Event event) {
+ ((InventoryListener) listener).onFurnaceSmelt((FurnaceSmeltEvent) event);
+ }
+ };
+ case FURNACE_BURN:
+ return new EventExecutor() {
+ public void execute(Listener listener, Event event) {
+ ((InventoryListener) listener).onFurnaceBurn((FurnaceBurnEvent) event);
+ }
+ };
+
// Custom Events
case CUSTOM_EVENT:
return new EventExecutor() {