package net.glowstone.block.blocktype; import net.glowstone.block.GlowBlock; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; import org.bukkit.material.MaterialData; import org.bukkit.material.SimpleAttachableMaterialData; public class BlockAttachable extends BlockNeedsAttached { public void setAttachedFace(BlockState state, BlockFace attachedFace) { byte data = state.getRawData(); switch (attachedFace) { case UP: data |= 0; break; case WEST: data |= 1; break; case EAST: data |= 2; break; case NORTH: data |= 3; break; case SOUTH: data |= 4; break; case DOWN: data |= 5; break; } state.setRawData(data); } @Override protected BlockFace getAttachedFace(GlowBlock me) { MaterialData data = me.getState().getData(); if (data instanceof SimpleAttachableMaterialData) { return ((SimpleAttachableMaterialData) data).getAttachedFace(); } else { warnMaterialData(SimpleAttachableMaterialData.class, data); return BlockFace.DOWN; } } }