Added ZoneWallGuards for UP and DOWN walls, and changed related Warzone methods. Fixed warnings.

This commit is contained in:
taoneill 2011-05-09 00:12:49 -04:00
parent b652d12849
commit 21f7547766
13 changed files with 152 additions and 74 deletions

View File

@ -439,7 +439,6 @@ public class War extends JavaPlugin {
} else {
lobby = warzone.getLobby();
}
List<Team> teams = warzone.getTeams();
Team team = warzone.getTeamByKind(TeamKinds.teamKindFromString(name));
if(team != null) {
if(team.getFlagVolume() != null) team.getFlagVolume().resetBlocks();
@ -467,7 +466,6 @@ public class War extends JavaPlugin {
"Must be in a warzone (try /zones and /zone). ");
} else {
TeamKind kind = TeamKinds.teamKindFromString(arguments[0]);
String name = arguments[0];
Warzone warzone = this.warzone(player.getLocation());
Team team = warzone.getTeamByKind(kind);
if(team == null) {
@ -573,7 +571,6 @@ public class War extends JavaPlugin {
} else {
lobby = warzone.getLobby();
}
int resetBlocks = 0;
warzone.clearFlagThieves();
for(Team team: warzone.getTeams()) {
team.teamcast("The war has ended. " + playerListener.getAllTeamsMsg(player) + " Resetting warzone " + warzone.getName() + " and teams...");
@ -1373,7 +1370,7 @@ public class War extends JavaPlugin {
public Warzone zoneOfZoneWallAtProximity(Location location) {
for(Warzone zone : warzones) {
if(zone.isNearWall(location)) return zone;
if(zone.getWorld() == location.getWorld() && zone.isNearWall(location)) return zone;
}
return null;
}
@ -1382,6 +1379,7 @@ public class War extends JavaPlugin {
return zoneMakerNames;
}
@SuppressWarnings("static-access")
public boolean canPlayWar(Player player) {
if(Permissions != null
&& (Permissions.Security.permission(player, "war.player")
@ -1395,6 +1393,7 @@ public class War extends JavaPlugin {
return false;
}
@SuppressWarnings("static-access")
public boolean canWarp(Player player) {
if(Permissions != null
&& (Permissions.Security.permission(player, "war.warp")
@ -1408,6 +1407,7 @@ public class War extends JavaPlugin {
return false;
}
@SuppressWarnings("static-access")
public boolean canBuildOutsideZone(Player player) {
if(isBuildInZonesOnly()) {
if(Permissions != null
@ -1422,6 +1422,7 @@ public class War extends JavaPlugin {
}
}
@SuppressWarnings("static-access")
public boolean isZoneMaker(Player player) {
boolean isPlayerImpersonator = false;
for(String disguised : zoneMakersImpersonatingPlayers) {
@ -1524,6 +1525,7 @@ public class War extends JavaPlugin {
return zoneMakersImpersonatingPlayers;
}
@SuppressWarnings("static-access")
public void setupPermissions() {
Plugin test = this.getServer().getPluginManager().getPlugin("Permissions");

View File

@ -32,7 +32,6 @@ public class WarBlockListener extends BlockListener {
public void onBlockPlace(BlockPlaceEvent event) {
Player player = event.getPlayer();
Block block = event.getBlock();
boolean captured = false;
if(player != null && block != null) {
Team team = war.getPlayerTeam(player.getName());
Warzone zone = war.warzone(player.getLocation());

View File

@ -7,10 +7,8 @@ import org.bukkit.Material;
import org.bukkit.craftbukkit.entity.CraftItem;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.event.player.PlayerInventoryEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
@ -22,11 +20,9 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import com.tommytony.war.Team;
import com.tommytony.war.TeamKinds;
import com.tommytony.war.WarHub;
import com.tommytony.war.Warzone;
import com.tommytony.war.ZoneLobby;
import com.tommytony.war.jobs.RestoreDeadmanInventoryJob;
import com.tommytony.war.utils.InventoryStash;
@ -232,7 +228,6 @@ public class WarPlayerListener extends PlayerListener {
Warzone zone = locLobby.getZone();
Team oldTeam = war.getPlayerTeam(player.getName());
boolean isAutoAssignGate = false;
boolean isSomeTeamGate = false;
if(oldTeam == null && canPlay) { // trying to counter spammy player move
isAutoAssignGate = zone.getLobby().isAutoAssignGate(playerLoc);
if(isAutoAssignGate) {
@ -287,7 +282,6 @@ public class WarPlayerListener extends PlayerListener {
event.setCancelled(true);
war.badMsg(player, "Team " + team.getName() + " is full.");
}
isSomeTeamGate = true;
return;
}
}

View File

@ -7,10 +7,7 @@ import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.material.MaterialData;
import bukkit.tommytony.war.War;
@ -64,6 +61,7 @@ public class Team {
}
}
@SuppressWarnings("unused")
public void initializeTeamSpawn() {
// make air
this.spawnVolume.setToMaterial(Material.AIR);
@ -426,6 +424,7 @@ public class Team {
this.flagVolume.setCornerTwo(warzone.getWorld().getBlockAt(x+1, y+3, z+1));
}
@SuppressWarnings("unused")
public void initializeTeamFlag() {
// make air
this.flagVolume.setToMaterial(Material.AIR);

View File

@ -36,7 +36,7 @@ public class TeamKinds {
public static TeamKind teamKindFromString(String str) {
String lowered = str.toLowerCase();
for(TeamKind kind : getTeamkinds()) {
if(kind.getDefaultName().startsWith(str)) {
if(kind.getDefaultName().startsWith(lowered)) {
return kind;
}
}

View File

@ -1,17 +1,12 @@
package com.tommytony.war;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
import org.bukkit.material.MaterialData;
import bukkit.tommytony.war.War;

View File

@ -17,12 +17,8 @@ import bukkit.tommytony.war.War;
import com.tommytony.war.jobs.InitZoneJob;
import com.tommytony.war.jobs.LoadoutResetJob;
import com.tommytony.war.jobs.ResetCursorJob;
import com.tommytony.war.jobs.RespawnPlayerJob;
import com.tommytony.war.jobs.ScoreCapReachedJob;
import com.tommytony.war.utils.InventoryStash;
import com.tommytony.war.volumes.BlockInfo;
import com.tommytony.war.volumes.VerticalVolume;
import com.tommytony.war.volumes.ZoneVolume;
/**
@ -624,20 +620,40 @@ public class Warzone {
if(volume.hasTwoCorners()) {
if(Math.abs(volume.getSoutheastZ() - latestPlayerLocation.getBlockZ()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getSoutheastX()
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()) {
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
return true; // near east wall
} else if (Math.abs(volume.getSoutheastX() - latestPlayerLocation.getBlockX()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockZ() <= volume.getNorthwestZ()
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()) {
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
return true; // near south wall
} else if (Math.abs(volume.getNorthwestX() - latestPlayerLocation.getBlockX()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockZ() <= volume.getNorthwestZ()
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()) {
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
return true; // near north wall
} else if (Math.abs(volume.getNorthwestZ() - latestPlayerLocation.getBlockZ()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getSoutheastX()
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()) {
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
return true; // near west wall
} else if (Math.abs(volume.getMaxY() - latestPlayerLocation.getBlockY()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getMaxX()
&& latestPlayerLocation.getBlockX() >= volume.getMinX()
&& latestPlayerLocation.getBlockZ() <= volume.getMaxZ()
&& latestPlayerLocation.getBlockZ() >= volume.getMinZ()) {
return true; // near up wall
} else if (Math.abs(volume.getMinY() - latestPlayerLocation.getBlockY()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getMaxX()
&& latestPlayerLocation.getBlockX() >= volume.getMinX()
&& latestPlayerLocation.getBlockZ() <= volume.getMaxZ()
&& latestPlayerLocation.getBlockZ() >= volume.getMinZ()) {
return true; // near down wall
}
}
return false;
@ -647,15 +663,19 @@ public class Warzone {
List<Block> nearestWallBlocks = new ArrayList<Block>();
if(Math.abs(volume.getSoutheastZ() - latestPlayerLocation.getBlockZ()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getSoutheastX()
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()) {
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near east wall
Block eastWallBlock = world.getBlockAt(latestPlayerLocation.getBlockX() + 1, latestPlayerLocation.getBlockY(), volume.getSoutheastZ());
Block eastWallBlock = world.getBlockAt(latestPlayerLocation.getBlockX() + 1, latestPlayerLocation.getBlockY() + 1, volume.getSoutheastZ());
nearestWallBlocks.add(eastWallBlock);
}
if (Math.abs(volume.getSoutheastX() - latestPlayerLocation.getBlockX()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockZ() <= volume.getNorthwestZ()
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()) {
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near south wall
Block southWallBlock = world.getBlockAt(volume.getSoutheastX(), latestPlayerLocation.getBlockY() + 1, latestPlayerLocation.getBlockZ());
nearestWallBlocks.add(southWallBlock);
@ -663,7 +683,9 @@ public class Warzone {
if (Math.abs(volume.getNorthwestX() - latestPlayerLocation.getBlockX()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockZ() <= volume.getNorthwestZ()
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()) {
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near north wall
Block northWallBlock = world.getBlockAt(volume.getNorthwestX(), latestPlayerLocation.getBlockY() + 1, latestPlayerLocation.getBlockZ());
nearestWallBlocks.add(northWallBlock);
@ -671,11 +693,33 @@ public class Warzone {
if (Math.abs(volume.getNorthwestZ() - latestPlayerLocation.getBlockZ()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getSoutheastX()
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()) {
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near west wall
Block westWallBlock = world.getBlockAt(latestPlayerLocation.getBlockX(), latestPlayerLocation.getBlockY() + 1, volume.getNorthwestZ());
nearestWallBlocks.add(westWallBlock);
}
if (Math.abs(volume.getMaxY() - latestPlayerLocation.getBlockY()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getMaxX()
&& latestPlayerLocation.getBlockX() >= volume.getMinX()
&& latestPlayerLocation.getBlockZ() <= volume.getMaxZ()
&& latestPlayerLocation.getBlockZ() >= volume.getMinZ()) {
// near up wall
Block upWallBlock = world.getBlockAt(latestPlayerLocation.getBlockX(), volume.getMaxY(), latestPlayerLocation.getBlockZ());
nearestWallBlocks.add(upWallBlock);
}
if (Math.abs(volume.getMinY() - latestPlayerLocation.getBlockY()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getMaxX()
&& latestPlayerLocation.getBlockX() >= volume.getMinX()
&& latestPlayerLocation.getBlockZ() <= volume.getMaxZ()
&& latestPlayerLocation.getBlockZ() >= volume.getMinZ()) {
// near down wall
Block downWallBlock = world.getBlockAt(latestPlayerLocation.getBlockX(), volume.getMinY(), latestPlayerLocation.getBlockZ());
nearestWallBlocks.add(downWallBlock);
}
return nearestWallBlocks;
// note: y + 1 to line up 3 sided square with player eyes
}
@ -684,31 +728,57 @@ public class Warzone {
List<BlockFace> walls = new ArrayList<BlockFace>();
if(Math.abs(volume.getSoutheastZ() - latestPlayerLocation.getBlockZ()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getSoutheastX()
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()) {
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near east wall
walls.add(BlockFace.EAST);
}
if (Math.abs(volume.getSoutheastX() - latestPlayerLocation.getBlockX()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockZ() <= volume.getNorthwestZ()
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()) {
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near south wall
walls.add(BlockFace.SOUTH);
}
if (Math.abs(volume.getNorthwestX() - latestPlayerLocation.getBlockX()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockZ() <= volume.getNorthwestZ()
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()) {
&& latestPlayerLocation.getBlockZ() >= volume.getSoutheastZ()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near north wall
walls.add(BlockFace.NORTH);
}
if (Math.abs(volume.getNorthwestZ() - latestPlayerLocation.getBlockZ()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getSoutheastX()
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()) {
&& latestPlayerLocation.getBlockX() >= volume.getNorthwestX()
&& latestPlayerLocation.getBlockY() >= volume.getMinY()
&& latestPlayerLocation.getBlockY() <= volume.getMaxY()) {
// near west wall
walls.add(BlockFace.WEST);
}
if (Math.abs(volume.getMaxY() - latestPlayerLocation.getBlockY()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getMaxX()
&& latestPlayerLocation.getBlockX() >= volume.getMinX()
&& latestPlayerLocation.getBlockZ() <= volume.getMaxZ()
&& latestPlayerLocation.getBlockZ() >= volume.getMinZ()) {
// near up wall
walls.add(BlockFace.UP);
}
if (Math.abs(volume.getMinY() - latestPlayerLocation.getBlockY()) < minSafeDistanceFromWall
&& latestPlayerLocation.getBlockX() <= volume.getMaxX()
&& latestPlayerLocation.getBlockX() >= volume.getMinX()
&& latestPlayerLocation.getBlockZ() <= volume.getMaxZ()
&& latestPlayerLocation.getBlockZ() >= volume.getMinZ()) {
// near down wall
walls.add(BlockFace.DOWN);
}
return walls;
}
@ -742,7 +812,6 @@ public class Warzone {
for(ZoneWallGuard guard : zoneWallGuards) {
if(guard.getPlayer().getName().equals(player.getName())){
playerGuards.add(guard);
int reset = volume.resetWallBlocks(guard.getWall()); // this should restore old blocks
if(isDrawZoneOutline()) {
addZoneOutline(guard.getWall());
}
@ -751,7 +820,6 @@ public class Warzone {
// because player can go around corner
lobby.initialize();
}
//war.getLogger().info("Reset " + reset + " blocks in " + guard.getWall() + " wall of warzone " + name);
}
}
// now remove those zone guards
@ -835,8 +903,6 @@ public class Warzone {
if(playerTeam != null && playerWarzone != null) {
// teleport to team spawn upon death
war.msg(player, "You died.");
boolean newBattle = false;
boolean scoreCapReached = false;
playerWarzone.respawnPlayer(playerTeam, player);
int remaining = playerTeam.getRemainingLifes();
if(remaining == 0) { // your death caused your team to lose
@ -879,7 +945,6 @@ public class Warzone {
// we dont restore his inventory in handleScoreCapReached
// check out PLAYER_MOVE for the rest of the fix
scoreCapReached = true;
} else {
// A new battle starts. Reset the zone but not the teams.
for(Team t : teams) {
@ -887,7 +952,6 @@ public class Warzone {
}
playerWarzone.getVolume().resetBlocksAsJob();
playerWarzone.initializeZoneAsJob(player);
newBattle = true;
}
} else {
// player died without causing his team's demise

View File

@ -6,16 +6,13 @@ import java.util.Map;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.CraftWorld;
import bukkit.tommytony.war.War;
import com.tommytony.war.utils.SignHelper;
import com.tommytony.war.volumes.BlockInfo;
import com.tommytony.war.volumes.VerticalVolume;
import com.tommytony.war.volumes.Volume;
import com.tommytony.war.volumes.ZoneVolume;
@ -192,7 +189,6 @@ public class ZoneLobby {
// add team gates or single auto assign gate
placeAutoAssignGate();
int i = 0;
for(String teamName : teamGateBlocks.keySet()) {
BlockInfo gateInfo = teamGateBlocks.get(teamName);
placeGate(BlockInfo.getBlock(warzone.getWorld(), gateInfo), TeamKinds.teamKindFromString(teamName));

View File

@ -19,15 +19,10 @@ public class ZoneWallGuard {
private Player player;
private Warzone warzone;
private Location playerLocation;
private final War war;
private BlockFace wall;
private final int radius = 3;
public ZoneWallGuard(Player player, War war, Warzone warzone, BlockFace wall) {
this.player = player;
this.war = war;
this.wall = wall;
this.playerLocation = player.getLocation();
this.warzone = warzone;
@ -40,10 +35,12 @@ public class ZoneWallGuard {
// add wall guard blocks
for(Block block : nearestWallBlocks) {
toGlass(block, wall);
toGlass(block.getFace(BlockFace.UP), wall);
toGlass(block.getFace(BlockFace.UP, 2), wall);
toGlass(block.getFace(BlockFace.DOWN), wall);
toGlass(block.getFace(BlockFace.DOWN, 2), wall);
if(this.wall != BlockFace.UP && this.wall != BlockFace.DOWN) {
toGlass(block.getFace(BlockFace.UP), wall);
toGlass(block.getFace(BlockFace.UP, 2), wall);
toGlass(block.getFace(BlockFace.DOWN), wall);
toGlass(block.getFace(BlockFace.DOWN, 2), wall);
}
if(this.wall == BlockFace.NORTH && warzone.getVolume().isNorthWallBlock(block)) {
toGlass(block.getFace(BlockFace.EAST), BlockFace.NORTH);
toGlass(block.getFace(BlockFace.EAST).getFace(BlockFace.UP), BlockFace.NORTH);
@ -107,13 +104,53 @@ public class ZoneWallGuard {
toGlass(block.getFace(BlockFace.SOUTH), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.UP), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.DOWN), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.UP), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.DOWN), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH, 2), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH, 2).getFace(BlockFace.UP), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH, 2).getFace(BlockFace.DOWN), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.UP, 2), BlockFace.WEST);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.DOWN, 2), BlockFace.WEST);
} else if(this.wall == BlockFace.UP && warzone.getVolume().isUpWallBlock(block)) {
toGlass(block.getFace(BlockFace.EAST), BlockFace.UP);
toGlass(block.getFace(BlockFace.EAST, 2), BlockFace.UP);
toGlass(block.getFace(BlockFace.WEST), BlockFace.UP);
toGlass(block.getFace(BlockFace.WEST, 2), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.EAST), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.WEST), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH, 2), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH, 2).getFace(BlockFace.EAST), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH, 2).getFace(BlockFace.WEST), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.EAST, 2), BlockFace.UP);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.WEST, 2), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.EAST), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.WEST), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH, 2), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH, 2).getFace(BlockFace.EAST), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH, 2).getFace(BlockFace.WEST), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.UP, 2), BlockFace.UP);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.DOWN, 2), BlockFace.UP);
} else if (this.wall == BlockFace.DOWN && warzone.getVolume().isDownWallBlock(block)) {
toGlass(block.getFace(BlockFace.EAST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.EAST, 2), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.WEST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.WEST, 2), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.EAST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.WEST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH, 2), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH, 2).getFace(BlockFace.EAST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH, 2).getFace(BlockFace.WEST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.EAST, 2), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.NORTH).getFace(BlockFace.WEST, 2), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.EAST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.WEST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH, 2), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH, 2).getFace(BlockFace.EAST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH, 2).getFace(BlockFace.WEST), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.DOWN, 2), BlockFace.DOWN);
toGlass(block.getFace(BlockFace.SOUTH).getFace(BlockFace.DOWN, 2), BlockFace.DOWN);
}
}
}
@ -137,6 +174,14 @@ public class ZoneWallGuard {
if(warzone.getVolume().isWestWallBlock(block)) {
block.setType(Material.GLASS);
}
} else if (wall == BlockFace.UP) {
if(warzone.getVolume().isUpWallBlock(block)) {
block.setType(Material.GLASS);
}
} else if (wall == BlockFace.DOWN) {
if(warzone.getVolume().isDownWallBlock(block)) {
block.setType(Material.GLASS);
}
}
}
}

View File

@ -8,7 +8,6 @@ public class RestoreDeadmanInventoryJob implements Runnable {
private final Player player;
private final Warzone zone;
private boolean giveReward;
public RestoreDeadmanInventoryJob(Player player, Warzone zone) {
this.player = player;

View File

@ -11,16 +11,11 @@ import java.util.List;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Chest;
import org.bukkit.block.Dispenser;
import org.bukkit.block.Sign;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.MaterialData;
import bukkit.tommytony.war.War;
import com.tommytony.war.volumes.BlockInfo;
import com.tommytony.war.volumes.VerticalVolume;
import com.tommytony.war.volumes.Volume;
import com.tommytony.war.volumes.ZoneVolume;
@ -37,13 +32,6 @@ public class VolumeMapper {
load(volume, zoneName, war, world);
return volume;
}
public static VerticalVolume loadVerticalVolume(String volumeName, String zoneName,
War war, World world) {
VerticalVolume volume = new VerticalVolume(volumeName, war, world);
load(volume, zoneName, war, world);
return volume;
}
public static ZoneVolume loadZoneVolume(String volumeName, String zoneName,
War war, World world) {

View File

@ -18,7 +18,6 @@ import com.tommytony.war.TeamKinds;
import com.tommytony.war.TeamSpawnStyles;
import com.tommytony.war.Warzone;
import com.tommytony.war.ZoneLobby;
import com.tommytony.war.volumes.VerticalVolume;
import com.tommytony.war.volumes.Volume;
import com.tommytony.war.volumes.ZoneVolume;

View File

@ -3,8 +3,6 @@ package com.tommytony.war.volumes;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
/**
*