Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 54 lines 1.5 kB view raw
1package org.bukkit.craftbukkit.block; 2 3import net.minecraft.server.BlockDispenser; 4import net.minecraft.server.TileEntityDispenser; 5import org.bukkit.Material; 6import org.bukkit.block.Block; 7import org.bukkit.block.Dispenser; 8import org.bukkit.craftbukkit.CraftWorld; 9import org.bukkit.craftbukkit.inventory.CraftInventory; 10import org.bukkit.inventory.Inventory; 11 12import java.util.Random; 13 14public class CraftDispenser extends CraftBlockState implements Dispenser { 15 private final CraftWorld world; 16 private final TileEntityDispenser dispenser; 17 18 public CraftDispenser(final Block block) { 19 super(block); 20 21 world = (CraftWorld) block.getWorld(); 22 dispenser = (TileEntityDispenser) world.getTileEntityAt(getX(), getY(), getZ()); 23 } 24 25 public Inventory getInventory() { 26 return new CraftInventory(dispenser); 27 } 28 29 public boolean dispense() { 30 Block block = getBlock(); 31 32 synchronized (block) { 33 if (block.getType() == Material.DISPENSER) { 34 BlockDispenser dispense = (BlockDispenser) net.minecraft.server.Block.DISPENSER; 35 36 dispense.dispense(world.getHandle(), getX(), getY(), getZ(), new Random()); 37 return true; 38 } else { 39 return false; 40 } 41 } 42 } 43 44 @Override 45 public boolean update(boolean force) { 46 boolean result = super.update(force); 47 48 if (result) { 49 dispenser.update(); 50 } 51 52 return result; 53 } 54}