diff --git a/appinfo.properties b/appinfo.properties index 8c8d4c06..aa169d70 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Mon, 26 Aug 2013 01:01:42 +0200 +#Mon, 26 Aug 2013 15:12:00 +0200 program.VERSION=3.1 -program.BUILDNUM=490 -program.BUILDDATE=08/26/2013 01\:01 AM +program.BUILDNUM=501 +program.BUILDDATE=08/26/2013 03\:12 PM diff --git a/buildnumber.properties b/buildnumber.properties index 2edd1a7f..5fc94930 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Mon Aug 26 01:01:42 CEST 2013 -build.number=491 +#Mon Aug 26 15:12:00 CEST 2013 +build.number=502 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java index 6a926038..d24a6d7a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java @@ -20,6 +20,17 @@ public class Command_cage extends TFM_Command { return false; } + + if (TFM_Util.isStopCommand(args[0]) && sender instanceof Player) + { + TFM_Util.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);; + TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(sender_p); + + playerdata.setCaged(false); + playerdata.regenerateHistory(); + playerdata.clearHistory(); + return true; + } Player player; try @@ -79,7 +90,7 @@ public class Command_cage extends TFM_Command playerdata.regenerateHistory(); playerdata.clearHistory(); TFM_Util.buildHistory(targetPos, 2, playerdata); - TFM_Util.generateCube(targetPos, 2, outerMaterial); + TFM_Util.generateHollowCube(targetPos, 2, outerMaterial); TFM_Util.generateCube(targetPos, 1, innerMaterial); player.setGameMode(GameMode.SURVIVAL); diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 0ad819fe..485afac7 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -323,7 +323,7 @@ public class TFM_PlayerListener implements Listener playerdata.regenerateHistory(); playerdata.clearHistory(); TFM_Util.buildHistory(targetPos, 2, playerdata); - TFM_Util.generateCube(targetPos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER)); + TFM_Util.generateHollowCube(targetPos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER)); TFM_Util.generateCube(targetPos, 1, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER)); } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index bb03ce3a..0cc2c341 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -16,6 +16,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; import org.bukkit.*; import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; import org.bukkit.block.Skull; import org.bukkit.command.CommandSender; import org.bukkit.entity.*; @@ -150,19 +151,57 @@ public class TFM_Util { for (int zOffset = -length; zOffset <= length; zOffset++) { + final Block block = center.getRelative(xOffset, yOffset, zOffset); + if (block.getType() != material) + { + block.setType(material); + } + } + } + } + } + + public static void generateHollowCube(Location location, int length, Material material) + { + Block center = location.getBlock(); + for (int xOffset = -length; xOffset <= length; xOffset++) + { + for (int yOffset = -length; yOffset <= length; yOffset++) + { + for (int zOffset = -length; zOffset <= length; zOffset++) + { + // Hollow + if (Math.abs(xOffset) != length && Math.abs(yOffset) != length && Math.abs(zOffset) != length) + { + continue; + } + + final Block block = center.getRelative(xOffset, yOffset, zOffset); + if (material != Material.SKULL) { - center.getRelative(xOffset, yOffset, zOffset).setType(material); + // Glowstone light + if (material != Material.GLASS && xOffset == 0 && yOffset == 2 && zOffset == 0) + { + block.setType(Material.GLOWSTONE); + continue; + } + + block.setType(material); } - else + else // Darth mode { - final Block block = center.getRelative(xOffset, yOffset, zOffset); + if (Math.abs(xOffset) == length && Math.abs(yOffset) == length && Math.abs(zOffset) == length) + { + block.setType(Material.GLOWSTONE); + continue; + } + block.setType(Material.SKULL); Skull skull = (Skull) block.getState(); skull.setSkullType(SkullType.PLAYER); skull.setOwner("DarthSalamon"); skull.update(); - //skull.setRotation(block.getFace(center)); } } }