mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-29 19:52:55 +01:00
Add Beacon block state for hopper events. Fixes BUKKIT-3932
This commit is contained in:
parent
377be0a79e
commit
ee572114dd
3 changed files with 40 additions and 1 deletions
|
@ -22,7 +22,7 @@ public class TileEntityBeacon extends TileEntity implements IInventory {
|
|||
private int maxStack = MAX_STACK;
|
||||
|
||||
public ItemStack[] getContents() {
|
||||
return null;
|
||||
return new ItemStack[] { this.h }; // Should be inventorySlot
|
||||
}
|
||||
|
||||
public void onOpen(CraftHumanEntity who) {
|
||||
|
|
37
src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java
Normal file
37
src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java
Normal file
|
@ -0,0 +1,37 @@
|
|||
package org.bukkit.craftbukkit.block;
|
||||
|
||||
import net.minecraft.server.TileEntityBeacon;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Beacon;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.inventory.CraftInventory;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
public class CraftBeacon extends CraftBlockState implements Beacon {
|
||||
private final CraftWorld world;
|
||||
private final TileEntityBeacon beacon;
|
||||
|
||||
public CraftBeacon(final Block block) {
|
||||
super(block);
|
||||
|
||||
world = (CraftWorld) block.getWorld();
|
||||
beacon = (TileEntityBeacon) world.getTileEntityAt(getX(), getY(), getZ());
|
||||
}
|
||||
|
||||
public Inventory getInventory() {
|
||||
return new CraftInventory(beacon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(boolean force) {
|
||||
boolean result = super.update(force);
|
||||
|
||||
if (result) {
|
||||
beacon.update();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -265,6 +265,8 @@ public class CraftBlock implements Block {
|
|||
return new CraftSkull(this);
|
||||
case COMMAND:
|
||||
return new CraftCommandBlock(this);
|
||||
case BEACON:
|
||||
return new CraftBeacon(this);
|
||||
default:
|
||||
return new CraftBlockState(this);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue