/** * Set which direction the head of the bed is facing. Note that this will * only affect one of the two blocks the bed is made of. */ public void setFacingDirection(BlockFace face) { byte data; switch (face) { case SOUTH: data = 0x0; break; case WEST: data = 0x1; break; case NORTH: data = 0x2; break; case EAST: default: data = 0x3; } if (isHeadOfBed()) { data |= 0x8; } setData(data); }
@Override public String toString() { return (isHeadOfBed() ? "HEAD" : "FOOT") + " of " + super.toString() + " facing " + getFacing(); }
/** * Returns the head of a bed given one of its blocks. * * @param block part of the bed * @return The head of the bed */ public static GlowBlock getHead(GlowBlock block) { MaterialData data = block.getState().getData(); if (!(data instanceof Bed)) { return null; } Bed bed = (Bed) data; if (bed.isHeadOfBed()) { return block; } else { return block.getRelative(bed.getFacing()); } }
/** * Returns the foot of a bed given one of its blocks. * * @param block part of the bed * @return The foot of the bed */ public static GlowBlock getFoot(GlowBlock block) { MaterialData data = block.getState().getData(); if (!(data instanceof Bed)) { return null; } Bed bed = (Bed) data; if (bed.isHeadOfBed()) { return block.getRelative(bed.getFacing().getOppositeFace()); } else { return block; } }
/** * Set which direction the head of the bed is facing. Note that this will * only affect one of the two blocks the bed is made of. */ public void setFacingDirection(BlockFace face) { byte data; switch (face) { case SOUTH: data = 0x0; break; case WEST: data = 0x1; break; case NORTH: data = 0x2; break; case EAST: default: data = 0x3; } if (isHeadOfBed()) { data |= 0x8; } setData(data); }
@Override public String toString() { return (isHeadOfBed() ? "HEAD" : "FOOT") + " of " + super.toString() + " facing " + getFacing(); }
if (bed.isHeadOfBed()) { return Collections.singletonList(block.getRelative(bed.getFacing().getOppositeFace())); } else {
private void dropTargetBlock(Block targetBlock) { if (targetBlock.getType().equals(Material.BED_BLOCK)) { Block bedHead; Block bedFeet; Bed bedBlock = (Bed) targetBlock.getState().getData(); if (!bedBlock.isHeadOfBed()) { bedFeet = targetBlock; bedHead = Utils.getBedNeighbor(bedFeet); } else { bedHead = targetBlock; bedFeet = Utils.getBedNeighbor(bedHead); } if (!BedwarsRel.getInstance().getCurrentVersion().startsWith("v1_12")) { bedFeet.setType(Material.AIR); } else { bedHead.setType(Material.AIR); } } else { targetBlock.setType(Material.AIR); } }
private void dropTargetBlock(Block targetBlock) { if (targetBlock.getType().equals(Material.BED_BLOCK)) { Block bedHead; Block bedFeet; Bed bedBlock = (Bed) targetBlock.getState().getData(); if (!bedBlock.isHeadOfBed()) { bedFeet = targetBlock; bedHead = Utils.getBedNeighbor(bedFeet); } else { bedHead = targetBlock; bedFeet = Utils.getBedNeighbor(bedHead); } if (!BedwarsRel.getInstance().getCurrentVersion().startsWith("v1_12")) { bedFeet.setType(Material.AIR); } else { bedHead.setType(Material.AIR); } } else { targetBlock.setType(Material.AIR); } }
Bed theBed = (Bed) theBlock.getState().getData(); if (!theBed.isHeadOfBed()) { neighbor = theBlock; theBlock = Utils.getBedNeighbor(neighbor);
Bed theBed = (Bed) theBlock.getState().getData(); if (!theBed.isHeadOfBed()) { neighbor = theBlock; theBlock = Utils.getBedNeighbor(neighbor);
Bed theBed = (Bed) theBlock.getState().getData(); if (!theBed.isHeadOfBed()) { neighbor = theBlock; theBlock = Utils.getBedNeighbor(neighbor);
Bed theBed = (Bed) theBlock.getState().getData(); if (!theBed.isHeadOfBed()) { neighbor = theBlock; theBlock = Utils.getBedNeighbor(neighbor);
Bed breakBed = (Bed) breakBlock.getState().getData(); if (!breakBed.isHeadOfBed()) { neighbor = breakBlock; breakBlock = Utils.getBedNeighbor(neighbor);
@Override public boolean onBreak(BlockBreakEvent event) { Player breaker = event.getPlayer(); if (owner.getPlayers().contains(breaker)) { MessageUtil.sendMessage(breaker, DMessage.ERROR_BLOCK_OWN_TEAM.getMessage()); return true; } for (DGamePlayer player : owner.getDGamePlayers()) { player.setLives(1); } owner.setLives(0); owner.getGameWorld().sendMessage(DMessage.GROUP_BED_DESTROYED.getMessage(owner.getName(), DGamePlayer.getByPlayer(breaker).getName())); Block block1 = event.getBlock(); if (((Bed) block1.getState().getData()).isHeadOfBed()) { Block block2 = getAttachedBlock(block1); if (block2 != null) { block2.setType(VanillaItem.AIR.getMaterial()); } } block1.setType(VanillaItem.AIR.getMaterial()); return true; }
Bed breakBed = (Bed) breakBlock.getState().getData(); if (!breakBed.isHeadOfBed()) { neighbor = breakBlock; breakBlock = Utils.getBedNeighbor(neighbor);
state = b.getRelative(BlockFace.DOWN).getState(); else if (state.getData() instanceof Bed && ((Bed) state.getData()).isHeadOfBed()) { state = b.getRelative(((Bed) state.getData()).getFacing().getOppositeFace()).getState();