summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java
new file mode 100644
index 00000000..6c512140
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java
@@ -0,0 +1,40 @@
+package org.bukkit.craftbukkit.block;
+
+import net.minecraft.server.TileEntityDispenser;
+import org.bukkit.block.Block;
+import org.bukkit.block.Dispenser;
+import org.bukkit.craftbukkit.CraftWorld;
+import org.bukkit.craftbukkit.inventory.CraftInventory;
+import org.bukkit.inventory.Inventory;
+
+/**
+ * Represents a dispenser.
+ *
+ * @author sk89q
+ */
+public class CraftDispenser extends CraftBlockState implements Dispenser {
+ private final CraftWorld world;
+ private final TileEntityDispenser dispenser;
+
+ public CraftDispenser(final Block block) {
+ super(block);
+
+ world = (CraftWorld)block.getWorld();
+ dispenser = (TileEntityDispenser)world.getTileEntityAt(getX(), getY(), getZ());
+ }
+
+ public Inventory getInventory() {
+ return new CraftInventory(dispenser);
+ }
+
+ @Override
+ public boolean update(boolean force) {
+ boolean result = super.update(force);
+
+ if (result) {
+ dispenser.d();
+ }
+
+ return result;
+ }
+}