From 256a58fce84f9bf95c99660fa2849879b66c1a96 Mon Sep 17 00:00:00 2001 From: gomeow Date: Wed, 24 Apr 2013 18:46:02 -0700 Subject: [PATCH] Continue adding signs support --- .../com/drtshock/playervaults/Listeners.java | 32 +++++++++++++++++++ .../drtshock/playervaults/PlayerVaults.java | 4 ++- .../playervaults/commands/Commands.java | 2 +- .../commands/VaultOperations.java | 12 +++---- .../com/drtshock/playervaults/util/Lang.java | 3 +- 5 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/drtshock/playervaults/Listeners.java b/src/main/java/com/drtshock/playervaults/Listeners.java index 6d87de6..2d5217d 100644 --- a/src/main/java/com/drtshock/playervaults/Listeners.java +++ b/src/main/java/com/drtshock/playervaults/Listeners.java @@ -13,6 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; @@ -145,6 +146,37 @@ public class Listeners implements Listener { } else { player.sendMessage(Lang.TITLE.toString() + Lang.NOT_A_SIGN); } + return; + } + Block b = event.getClickedBlock(); + if(event.getAction() == Action.RIGHT_CLICK_BLOCK) { + if(b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST) { + Location l = b.getLocation(); + String world = l.getWorld().getName(); + int x = l.getBlockX(); + int y = l.getBlockY(); + int z = l.getBlockZ(); + if(PlayerVaults.SIGNS.getKeys(false).contains(world + ";;" + x + ";;" + y + ";;" + z)) { + String owner = PlayerVaults.SIGNS.getString(world + ";;" + x + ";;" + y + ";;" + z + ".owner"); + int num = PlayerVaults.SIGNS.getInt(world + ";;" + x + ";;" + y + ";;" + z + ".chest"); + PlayerVaults.VM.loadVault(player, owner, num); + event.setCancelled(true); + player.sendMessage(Lang.TITLE.toString() + Lang.OPEN_WITH_SIGN.toString().replace("%v", String.valueOf(num)).replace("%p", owner)); + } + } + } + } + + @EventHandler + public void onBlockBreak(BlockBreakEvent event) { + Location l = event.getBlock().getLocation(); + String world = l.getWorld().getName(); + int x = l.getBlockX(); + int y = l.getBlockY(); + int z = l.getBlockZ(); + if(PlayerVaults.SIGNS.getKeys(false).contains(world + ";;" + x + ";;" + y + ";;" + z)) { + PlayerVaults.SIGNS.set(world + ";;" + x + ";;" + y + ";;" + z, null); + plugin.saveSigns(); } } diff --git a/src/main/java/com/drtshock/playervaults/PlayerVaults.java b/src/main/java/com/drtshock/playervaults/PlayerVaults.java index 00f5cf9..d1c2cde 100644 --- a/src/main/java/com/drtshock/playervaults/PlayerVaults.java +++ b/src/main/java/com/drtshock/playervaults/PlayerVaults.java @@ -16,6 +16,7 @@ import com.drtshock.playervaults.commands.Commands; import com.drtshock.playervaults.util.Lang; import com.drtshock.playervaults.util.Metrics; import com.drtshock.playervaults.util.Updater; +import com.drtshock.playervaults.util.VaultManager; public class PlayerVaults extends JavaPlugin { @@ -33,6 +34,7 @@ public class PlayerVaults extends JavaPlugin { public static YamlConfiguration SIGNS; public static File SIGNS_FILE; public static String DIRECTORY = "plugins" + File.separator + "PlayerVaults" + File.separator + "vaults"; + public static VaultManager VM; @Override public void onEnable() { @@ -69,7 +71,7 @@ public class PlayerVaults extends JavaPlugin { } new File(DIRECTORY + File.separator + "backups").mkdirs(); - + VM = new VaultManager(this); } public void startMetrics() { diff --git a/src/main/java/com/drtshock/playervaults/commands/Commands.java b/src/main/java/com/drtshock/playervaults/commands/Commands.java index 0f5e164..bd31169 100644 --- a/src/main/java/com/drtshock/playervaults/commands/Commands.java +++ b/src/main/java/com/drtshock/playervaults/commands/Commands.java @@ -78,7 +78,7 @@ public class Commands implements CommandExecutor { sender.sendMessage(Lang.TITLE.toString() + "Usage: /" + label + " <#>"); return true; } - SET_SIGN.put(sender.getName(), new SignSetInfo(args[0], i)); + SET_SIGN.put(sender.getName(), new SignSetInfo(args[0].toLowerCase(), i)); sender.sendMessage(Lang.TITLE.toString() + Lang.CLICK_A_SIGN); } else { sender.sendMessage(Lang.TITLE.toString() + Lang.INVALID_ARGS); diff --git a/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java b/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java index 655a8c4..7f92652 100644 --- a/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java +++ b/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java @@ -9,13 +9,9 @@ import org.bukkit.entity.Player; import com.drtshock.playervaults.PlayerVaults; import com.drtshock.playervaults.util.EconomyOperations; import com.drtshock.playervaults.util.Lang; -import com.drtshock.playervaults.util.VaultManager; public class VaultOperations { - private static PlayerVaults PLUGIN; - private static VaultManager VAULT_MANAGER = new VaultManager(PLUGIN); - public static boolean checkPerms(CommandSender cs, int number) { if(cs.hasPermission("playervaults.amount." + String.valueOf(number))) return true; for(int x = number; x <= 99; x++) { @@ -44,7 +40,7 @@ public class VaultOperations { } if(checkPerms(sender, number)) { if(EconomyOperations.payToOpen(sender)) { - VAULT_MANAGER.loadVault(sender, sender.getName(), number); + PlayerVaults.VM.loadVault(sender, sender.getName(), number); sender.sendMessage(Lang.TITLE.toString() + Lang.OPEN_VAULT.toString().replace("%v", arg)); return true; } else { @@ -79,7 +75,7 @@ public class VaultOperations { } catch(NumberFormatException nfe) { sender.sendMessage(Lang.TITLE.toString() + ChatColor.RED + Lang.MUST_BE_NUMBER); } - VAULT_MANAGER.loadVault(sender, user, number); + PlayerVaults.VM.loadVault(sender, user, number); sender.sendMessage(Lang.TITLE.toString() + Lang.OPEN_OTHER_VAULT.toString().replace("%v", arg).replace("%p", user)); return true; } else { @@ -111,7 +107,7 @@ public class VaultOperations { } try { if(EconomyOperations.refundOnDelete(sender, number)) { - VAULT_MANAGER.deleteVault(sender, sender.getName(), number); + PlayerVaults.VM.deleteVault(sender, sender.getName(), number); return; } } catch(IOException e) { @@ -143,7 +139,7 @@ public class VaultOperations { sender.sendMessage(Lang.TITLE.toString() + ChatColor.RED + Lang.MUST_BE_NUMBER); } try { - VAULT_MANAGER.deleteVault(sender, user, number); + PlayerVaults.VM.deleteVault(sender, user, number); } catch(IOException e) { sender.sendMessage(Lang.TITLE.toString() + Lang.DELETE_VAULT_ERROR); } diff --git a/src/main/java/com/drtshock/playervaults/util/Lang.java b/src/main/java/com/drtshock/playervaults/util/Lang.java index fa1b9c1..8324367 100644 --- a/src/main/java/com/drtshock/playervaults/util/Lang.java +++ b/src/main/java/com/drtshock/playervaults/util/Lang.java @@ -22,7 +22,8 @@ public enum Lang { VAULT_DOES_NOT_EXIST("vault-does-not-exist", "&cThat vault does not exist!"), CLICK_A_SIGN("click-a-sign", "&fNow click a sign!"), NOT_A_SIGN("not-a-sign","&cYou must click a sign!"), - SET_SIGN("set-sign-success", "&fYou have successfully set a PlayerVault access sign!"); + SET_SIGN("set-sign-success", "&fYou have successfully set a PlayerVault access sign!"), + OPEN_WITH_SIGN("open-with-sign", "&fOpening vault &a%v &fof &a%p"); private String path; private String def; // Default string