package net.glowstone.block.blocktype; import net.glowstone.GlowChunk; import net.glowstone.block.GlowBlock; import net.glowstone.block.GlowBlockState; import net.glowstone.block.entity.TESign; import net.glowstone.block.entity.TileEntity; import net.glowstone.entity.GlowPlayer; import org.bukkit.Material; import org.bukkit.block.BlockFace; import org.bukkit.inventory.ItemStack; import org.bukkit.material.Sign; import org.bukkit.util.Vector; public class BlockSign extends BlockType { public BlockSign() { setDrops(new ItemStack(Material.SIGN)); } @Override public TileEntity createTileEntity(GlowChunk chunk, int cx, int cy, int cz) { return new TESign(chunk.getBlock(cx, cy, cz)); } @Override public void placeBlock(GlowPlayer player, GlowBlockState state, BlockFace face, ItemStack holding, Vector clickedLoc) { state.setType(getMaterial()); if (!(state.getData() instanceof Sign)) { warnMaterialData(Sign.class, state.getData()); return; } Sign sign = (Sign) state.getData(); sign.setFacingDirection(sign.isWallSign() ? face : player.getFacing().getOppositeFace()); } @Override public void afterPlace(GlowPlayer player, GlowBlock block, ItemStack holding, GlowBlockState oldState) { player.openSignEditor(block.getLocation()); } }