diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java index d6ed3e3f0..0189c72a7 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java @@ -35,8 +35,14 @@ public class EssentialsBlockListener extends BlockListener @Override public void onBlockBreak(BlockBreakEvent event) { - if (event.isCancelled()) return; - if (ess.getSettings().areSignsDisabled()) return; + if (event.isCancelled()) + { + return; + } + if (ess.getSettings().areSignsDisabled()) + { + return; + } User user = ess.getUser(event.getPlayer()); if (protectedBlocks.contains(event.getBlock().getType()) && !user.isAuthorized("essentials.signs.protection.override")) { @@ -48,8 +54,8 @@ public class EssentialsBlockListener extends BlockListener } } - if (checkProtectionSign(event.getBlock(), user) != NOSIGN && - checkProtectionSign(event.getBlock(), user) != OWNER) + if (checkProtectionSign(event.getBlock(), user) != NOSIGN + && checkProtectionSign(event.getBlock(), user) != OWNER) { event.setCancelled(true); user.sendMessage(Util.format("noDestroyPermission", event.getBlock().getType().toString().toLowerCase())); @@ -59,8 +65,14 @@ public class EssentialsBlockListener extends BlockListener @Override public void onSignChange(SignChangeEvent event) { - if (event.isCancelled()) return; - if (ess.getSettings().areSignsDisabled()) return; + if (event.isCancelled()) + { + return; + } + if (ess.getSettings().areSignsDisabled()) + { + return; + } User user = ess.getUser(event.getPlayer()); String username = user.getName().substring(0, user.getName().length() > 14 ? 14 : user.getName().length()); @@ -70,18 +82,26 @@ public class EssentialsBlockListener extends BlockListener { Block block = event.getBlock(); if (user.isAuthorized("essentials.signs.protection.create") && hasAdjacentChest(block) && !isBlockProtected(block, user)) + { event.setLine(0, "§1[Protection]"); + } else + { event.setLine(0, "§4[Protection]"); + } event.setLine(3, username); return; } if (event.getLine(0).equalsIgnoreCase("[Disposal]")) { if (user.isAuthorized("essentials.signs.disposal.create")) + { event.setLine(0, "§1[Disposal]"); + } else + { event.setLine(0, "§4[Disposal]"); + } return; } if (event.getLine(0).equalsIgnoreCase("[Heal]")) @@ -94,8 +114,14 @@ public class EssentialsBlockListener extends BlockListener String[] l1 = event.getLine(1).split("[ :-]+", 2); boolean m1 = l1[0].matches("^[^0-9][\\.0-9]+"); double q1 = Double.parseDouble(m1 ? l1[0].substring(1) : l1[0]); - if (q1 < 1 || (!m1 && (int)q1 < 1)) throw new Exception(Util.i18n("moreThanZero")); - if (!m1) ItemDb.get(l1[1]); + if (q1 < 1 || (!m1 && (int)q1 < 1)) + { + throw new Exception(Util.i18n("moreThanZero")); + } + if (!m1) + { + ItemDb.get(l1[1]); + } event.setLine(1, (m1 ? Util.formatCurrency(q1) : (int)q1 + " " + l1[1])); } event.setLine(0, "§1[Heal]"); @@ -107,29 +133,40 @@ public class EssentialsBlockListener extends BlockListener event.setLine(0, "§4[Free]"); ItemDb.get(event.getLine(1)); if (user.isAuthorized("essentials.signs.free.create")) + { event.setLine(0, "§1[Free]"); + } return; } if (event.getLine(0).equalsIgnoreCase("[Mail]")) { if (user.isAuthorized("essentials.signs.mail.create")) + { event.setLine(0, "§1[Mail]"); + } else + { event.setLine(0, "§4[Mail]"); + } return; } if (event.getLine(0).equalsIgnoreCase("[Balance]")) { if (user.isAuthorized("essentials.signs.balance.create")) + { event.setLine(0, "§1[Balance]"); + } else + { event.setLine(0, "§4[Balance]"); + } return; } - if (event.getLine(0).equalsIgnoreCase("[Warp]")) + if (event.getLine(0).equalsIgnoreCase("[Warp]")) { event.setLine(0, "§4[Warp]"); - if (user.isAuthorized("essentials.signs.warp.create")) { + if (user.isAuthorized("essentials.signs.warp.create")) + { if (!event.getLine(3).isEmpty()) { String[] l1 = event.getLine(3).split("[ :-]+", 2); @@ -139,29 +176,45 @@ public class EssentialsBlockListener extends BlockListener throw new Exception(Util.format("invalidSignLine", 4)); } double q1 = Double.parseDouble(m1 ? l1[0].substring(1) : l1[0]); - if ((int)q1 < 1) throw new Exception(Util.i18n("moreThanZero")); - if (!m1) ItemDb.get(l1[1]); + if ((int)q1 < 1) + { + throw new Exception(Util.i18n("moreThanZero")); + } + if (!m1) + { + ItemDb.get(l1[1]); + } event.setLine(3, (m1 ? Util.formatCurrency(q1) : (int)q1 + " " + l1[1])); } - if (event.getLine(1).isEmpty()) { + if (event.getLine(1).isEmpty()) + { event.setLine(1, "§dWarp name!"); return; - } else { + } + else + { ess.getWarps().getWarp(event.getLine(1)); - if (event.getLine(2).equalsIgnoreCase("Everyone")) { + if (event.getLine(2).equalsIgnoreCase("Everyone")) + { event.setLine(2, "§2Everyone"); } - event.setLine(0, "§1[Warp]"); + event.setLine(0, "§1[Warp]"); } } return; } if (event.getLine(0).equalsIgnoreCase("[Time]")) { - if (user.isAuthorized("essentials.signs.time.create")) + if (user.isAuthorized("essentials.signs.time.create") + && (event.getLine(1).equalsIgnoreCase("day") + || event.getLine(1).equalsIgnoreCase("night"))) + { event.setLine(0, "§1[Time]"); + } else + { event.setLine(0, "§4[Time]"); + } return; } } @@ -178,7 +231,10 @@ public class EssentialsBlockListener extends BlockListener @Override public void onBlockPlace(BlockPlaceEvent event) { - if (event.isCancelled()) return; + if (event.isCancelled()) + { + return; + } Block signBlock = event.getBlockAgainst(); if (signBlock.getType() == Material.WALL_SIGN || signBlock.getType() == Material.SIGN_POST) { @@ -193,75 +249,78 @@ public class EssentialsBlockListener extends BlockListener // Do not rely on getItemInHand(); // http://leaky.bukkit.org/issues/663 final ItemStack is = new ItemStack(event.getBlockPlaced().getType(), 1, (short)0, event.getBlockPlaced().getData()); - switch(is.getType()) { - case WOODEN_DOOR: - is.setType(Material.WOOD_DOOR); - is.setDurability((short)0); - break; - case IRON_DOOR_BLOCK: - is.setType(Material.IRON_DOOR); - is.setDurability((short)0); - break; - case SIGN_POST: - case WALL_SIGN: - is.setType(Material.SIGN); - is.setDurability((short)0); - break; - case CROPS: - is.setType(Material.SEEDS); - is.setDurability((short)0); - break; - case CAKE_BLOCK: - is.setType(Material.CAKE); - is.setDurability((short)0); - break; - case BED_BLOCK: - is.setType(Material.BED); - is.setDurability((short)0); - break; - case REDSTONE_WIRE: - is.setType(Material.REDSTONE); - is.setDurability((short)0); - break; - case REDSTONE_TORCH_OFF: - case REDSTONE_TORCH_ON: - is.setType(Material.REDSTONE_TORCH_ON); - is.setDurability((short)0); - break; - case DIODE_BLOCK_OFF: - case DIODE_BLOCK_ON: - is.setType(Material.DIODE); - is.setDurability((short)0); - break; - case DOUBLE_STEP: - is.setType(Material.STEP); - break; - case TORCH: - case RAILS: - case LADDER: - case WOOD_STAIRS: - case COBBLESTONE_STAIRS: - case LEVER: - case STONE_BUTTON: - case FURNACE: - case DISPENSER: - case PUMPKIN: - case JACK_O_LANTERN: - case WOOD_PLATE: - case STONE_PLATE: - is.setDurability((short)0); - break; + switch (is.getType()) + { + case WOODEN_DOOR: + is.setType(Material.WOOD_DOOR); + is.setDurability((short)0); + break; + case IRON_DOOR_BLOCK: + is.setType(Material.IRON_DOOR); + is.setDurability((short)0); + break; + case SIGN_POST: + case WALL_SIGN: + is.setType(Material.SIGN); + is.setDurability((short)0); + break; + case CROPS: + is.setType(Material.SEEDS); + is.setDurability((short)0); + break; + case CAKE_BLOCK: + is.setType(Material.CAKE); + is.setDurability((short)0); + break; + case BED_BLOCK: + is.setType(Material.BED); + is.setDurability((short)0); + break; + case REDSTONE_WIRE: + is.setType(Material.REDSTONE); + is.setDurability((short)0); + break; + case REDSTONE_TORCH_OFF: + case REDSTONE_TORCH_ON: + is.setType(Material.REDSTONE_TORCH_ON); + is.setDurability((short)0); + break; + case DIODE_BLOCK_OFF: + case DIODE_BLOCK_ON: + is.setType(Material.DIODE); + is.setDurability((short)0); + break; + case DOUBLE_STEP: + is.setType(Material.STEP); + break; + case TORCH: + case RAILS: + case LADDER: + case WOOD_STAIRS: + case COBBLESTONE_STAIRS: + case LEVER: + case STONE_BUTTON: + case FURNACE: + case DISPENSER: + case PUMPKIN: + case JACK_O_LANTERN: + case WOOD_PLATE: + case STONE_PLATE: + is.setDurability((short)0); + break; } boolean unlimitedForUser = user.hasUnlimited(is); - if (unlimitedForUser) { + if (unlimitedForUser) + { ess.scheduleSyncDelayedTask( - new Runnable() { - - public void run() { - user.getInventory().addItem(is); - user.updateInventory(); - } - }); + new Runnable() + { + public void run() + { + user.getInventory().addItem(is); + user.updateInventory(); + } + }); } } @@ -290,14 +349,19 @@ public class EssentialsBlockListener extends BlockListener Sign sign = new CraftSign(block); if (sign.getLine(0).equalsIgnoreCase("§1[Protection]") && !user.isAuthorized("essentials.signs.protection.override")) { - for (int i = 1; i <= 2; i++) { + for (int i = 1; i <= 2; i++) + { String line = sign.getLine(i); - if (line.startsWith("(") && line.endsWith(")")) { + if (line.startsWith("(") && line.endsWith(")")) + { line = line.substring(1, line.length() - 1); - if (user.inGroup(line)) { + if (user.inGroup(line)) + { return ALLOWED; } - } else if (line.equalsIgnoreCase(username)) { + } + else if (line.equalsIgnoreCase(username)) + { return ALLOWED; } } @@ -360,7 +424,7 @@ public class EssentialsBlockListener extends BlockListener } return protect; } - + public static boolean isBlockProtected(Block block) { Block[] faces = getAdjacentBlocks(block); diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 81e24311d..bc63eff52 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -52,7 +52,8 @@ public class EssentialsPlayerListener extends PlayerListener User user = ess.getUser(event.getPlayer()); user.setDisplayName(user.getNick()); updateCompass(user); - if (user.isJailed() && user.getJail() != null && !user.getJail().isEmpty()) { + if (user.isJailed() && user.getJail() != null && !user.getJail().isEmpty()) + { try { event.setRespawnLocation(ess.getJail().getJail(user.getJail())); @@ -109,15 +110,18 @@ public class EssentialsPlayerListener extends PlayerListener Location loc = event.getTo(); World nether = server.getWorld(ess.getSettings().getNetherName()); - if (nether == null) { + if (nether == null) + { for (World world : worlds) { - if (world.getEnvironment() == World.Environment.NETHER) { + if (world.getEnvironment() == World.Environment.NETHER) + { nether = world; break; } } - if (nether == null) { + if (nether == null) + { return; } } @@ -465,7 +469,7 @@ public class EssentialsPlayerListener extends PlayerListener } if (sign.getLine(0).equals("§1[Warp]")) { - + if (!sign.getLine(2).isEmpty()) { if (sign.getLine(2).equals("§2Everyone")) @@ -489,6 +493,22 @@ public class EssentialsPlayerListener extends PlayerListener } return; } + if (sign.getLine(0).equals("§1[Time]") && user.isAuthorized("essentials.signs.time.use")) + { + long time = user.getWorld().getTime(); + time -= time % 24000; + if ("day".equalsIgnoreCase(sign.getLine(1))) + { + user.getWorld().setTime(time + 24000); + return; + } + if ("night".equalsIgnoreCase(sign.getLine(1))) + { + user.getWorld().setTime(time + 37700); + return; + } + throw new Exception(Util.i18n("onlyDayNight")); + } } catch (Throwable ex) { @@ -499,7 +519,7 @@ public class EssentialsPlayerListener extends PlayerListener } } } - + private Charge chargeUserForWarp(Sign sign, User user) throws Exception { if (!sign.getLine(3).isEmpty())