diff --git a/appinfo.properties b/appinfo.properties index a37838e2..8c8d4c06 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Sat, 24 Aug 2013 21:35:24 +0200 +#Mon, 26 Aug 2013 01:01:42 +0200 program.VERSION=3.1 -program.BUILDNUM=482 -program.BUILDDATE=08/24/2013 09\:35 PM +program.BUILDNUM=490 +program.BUILDDATE=08/26/2013 01\:01 AM diff --git a/buildnumber.properties b/buildnumber.properties index 4f2d1beb..2edd1a7f 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Sat Aug 24 21:35:24 CEST 2013 -build.number=483 +#Mon Aug 26 01:01:42 CEST 2013 +build.number=491 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java index 3dc15656..6a926038 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java @@ -34,13 +34,14 @@ public class Command_cage extends TFM_Command TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player); - Material cage_material_outer = Material.GLASS; - Material cage_material_inner = Material.AIR; + Material outerMaterial = Material.GLASS; + Material innerMaterial = Material.AIR; + if (args.length >= 2) { if (TFM_Util.isStopCommand(args[1])) { - TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName() + ".", true); + TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName(), true); playerdata.setCaged(false); playerdata.regenerateHistory(); @@ -50,10 +51,13 @@ public class Command_cage extends TFM_Command } else { - cage_material_outer = Material.matchMaterial(args[1]); - if (cage_material_outer == null) + if ("darth".equalsIgnoreCase(args[1])) { - cage_material_outer = Material.GLASS; + outerMaterial = Material.SKULL; + } + else if (Material.matchMaterial(args[1]) != null) + { + outerMaterial = Material.matchMaterial(args[1]); } } } @@ -62,25 +66,32 @@ public class Command_cage extends TFM_Command { if (args[2].equalsIgnoreCase("water")) { - cage_material_inner = Material.STATIONARY_WATER; + innerMaterial = Material.STATIONARY_WATER; } else if (args[2].equalsIgnoreCase("lava")) { - cage_material_inner = Material.STATIONARY_LAVA; + innerMaterial = Material.STATIONARY_LAVA; } } - Location targetPos = player.getLocation().add(0, 1, 0); - playerdata.setCaged(true, targetPos, cage_material_outer, cage_material_inner); + Location targetPos = player.getLocation().clone().add(0, 1, 0); + playerdata.setCaged(true, targetPos, outerMaterial, innerMaterial); playerdata.regenerateHistory(); playerdata.clearHistory(); TFM_Util.buildHistory(targetPos, 2, playerdata); - TFM_Util.generateCube(targetPos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER)); - TFM_Util.generateCube(targetPos, 1, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER)); + TFM_Util.generateCube(targetPos, 2, outerMaterial); + TFM_Util.generateCube(targetPos, 1, innerMaterial); player.setGameMode(GameMode.SURVIVAL); - TFM_Util.adminAction(sender.getName(), "Caging " + player.getName() + ".", true); + if (outerMaterial != Material.SKULL) + { + TFM_Util.adminAction(sender.getName(), "Caging " + player.getName(), true); + } + else + { + TFM_Util.adminAction(sender.getName(), "Caging " + player.getName() + " in PURE_DARTH", true); + } return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 3414c041..bb03ce3a 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.Skull; import org.bukkit.command.CommandSender; import org.bukkit.entity.*; @@ -142,14 +143,27 @@ public class TFM_Util public static void generateCube(Location location, int length, Material material) { - Block block = location.getBlock(); + 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++) { - block.getRelative(xOffset, yOffset, zOffset).setType(material); + if (material != Material.SKULL) + { + center.getRelative(xOffset, yOffset, zOffset).setType(material); + } + else + { + final Block block = center.getRelative(xOffset, yOffset, zOffset); + block.setType(Material.SKULL); + Skull skull = (Skull) block.getState(); + skull.setSkullType(SkullType.PLAYER); + skull.setOwner("DarthSalamon"); + skull.update(); + //skull.setRotation(block.getFace(center)); + } } } }