Changed all gate signs to be wall signs instead of sign posts.

- Also, now highlighting active warzones with a redstone torch on its warhub gate
This commit is contained in:
taoneill 2014-02-01 17:08:46 -05:00
parent b17e38cfd2
commit 0e481bb5d5
3 changed files with 16 additions and 7 deletions

View File

@ -297,6 +297,8 @@ public class WarPlayerListener implements Listener {
return; return;
} }
latestLocations.put(player.getName(), playerLoc); latestLocations.put(player.getName(), playerLoc);
// Signs can automatically teleport you to specific or random warzones
if (playerLoc.getBlock().getType() == Material.SIGN_POST) { if (playerLoc.getBlock().getType() == Material.SIGN_POST) {
Sign sign = (Sign) playerLoc.getBlock().getState(); Sign sign = (Sign) playerLoc.getBlock().getState();
if (sign.getLine(0).equals("[zone]")) { if (sign.getLine(0).equals("[zone]")) {
@ -319,6 +321,7 @@ public class WarPlayerListener implements Listener {
} }
} }
} }
Warzone locZone = Warzone.getZoneByLocation(playerLoc); Warzone locZone = Warzone.getZoneByLocation(playerLoc);
ZoneLobby locLobby = ZoneLobby.getLobbyByLocation(playerLoc); ZoneLobby locLobby = ZoneLobby.getLobbyByLocation(playerLoc);

View File

@ -258,8 +258,8 @@ public class WarHub {
Block zoneGate = this.zoneGateBlocks.get(zone.getName()); Block zoneGate = this.zoneGateBlocks.get(zone.getName());
if (zoneGate != null) { if (zoneGate != null) {
zoneGate.getRelative(left).getRelative(back, 1).setType(Material.SIGN_POST); zoneGate.getRelative(BlockFace.UP, 2).getRelative(back, 1).setType(Material.WALL_SIGN);
org.bukkit.block.Sign block = (org.bukkit.block.Sign) zoneGate.getRelative(left).getRelative(back, 1).getState(); org.bukkit.block.Sign block = (org.bukkit.block.Sign) zoneGate.getRelative(BlockFace.UP, 2).getRelative(back, 1).getState();
org.bukkit.material.Sign data = (Sign) block.getData(); org.bukkit.material.Sign data = (Sign) block.getData();
data.setFacingDirection(this.getOrientation().getOppositeFace()); data.setFacingDirection(this.getOrientation().getOppositeFace());
block.setData(data); block.setData(data);
@ -277,6 +277,11 @@ public class WarHub {
block.setLine(i, lines[i]); block.setLine(i, lines[i]);
} }
block.update(true); block.update(true);
if (zonePlayers > 0) {
// add redstone torch to gate if there are players in it (to highlight active zones)
zoneGate.getRelative(BlockFace.UP, 1).getRelative(left).getRelative(back, 1).setType(Material.REDSTONE_TORCH_ON);
}
} else { } else {
War.war.log("Failed to find warhub gate for " + zone.getName() + " warzone.", Level.WARNING); War.war.log("Failed to find warhub gate for " + zone.getName() + " warzone.", Level.WARNING);
} }

View File

@ -760,17 +760,18 @@ public class ZoneLobby {
} else if (this.wall == Direction.WEST()) { } else if (this.wall == Direction.WEST()) {
direction = Direction.EAST(); direction = Direction.EAST();
} }
if (this.wall == Direction.NORTH()) { if (this.wall == Direction.NORTH()) {
block = gate.getRelative(direction).getRelative(Direction.EAST()); block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
} else if (this.wall == Direction.EAST()) { } else if (this.wall == Direction.EAST()) {
block = gate.getRelative(direction).getRelative(Direction.SOUTH()); block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
} else if (this.wall == Direction.SOUTH()) { } else if (this.wall == Direction.SOUTH()) {
block = gate.getRelative(direction).getRelative(Direction.WEST()); block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
} else if (this.wall == Direction.WEST()) { } else if (this.wall == Direction.WEST()) {
block = gate.getRelative(direction).getRelative(Direction.NORTH()); block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
} }
block.setType(Material.SIGN_POST); block.setType(Material.WALL_SIGN);
org.bukkit.block.Sign state = (org.bukkit.block.Sign) block.getState(); org.bukkit.block.Sign state = (org.bukkit.block.Sign) block.getState();
org.bukkit.material.Sign data = (Sign) state.getData(); org.bukkit.material.Sign data = (Sign) state.getData();
data.setFacingDirection(direction); data.setFacingDirection(direction);