diff --git a/src/me/shock/playervaults/Listeners.java b/src/me/shock/playervaults/Listeners.java index 99cd4f8..69bd03b 100644 --- a/src/me/shock/playervaults/Listeners.java +++ b/src/me/shock/playervaults/Listeners.java @@ -2,7 +2,7 @@ package me.shock.playervaults; import java.io.IOException; -import me.shock.playervaults.commands.Feedback; +import me.shock.playervaults.commands.Commands; import me.shock.playervaults.util.VaultManager; import org.bukkit.ChatColor; @@ -31,16 +31,15 @@ public class Listeners implements Listener { this.plugin = instance; } VaultManager vm = new VaultManager(plugin); - Feedback feedback = new Feedback(); - + Commands commands = new Commands(); @EventHandler public void onQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); - if(feedback.hasKey(player.getName())) { + if(commands.inVault.containsKey(player.getName())) { Inventory inv = player.getOpenInventory().getTopInventory(); - int number = feedback.getNumber(player.getName()); + int number = commands.inVault.get(player.getName()); try { vm.saveVault(inv, player, number); } catch (IOException e) { @@ -60,10 +59,10 @@ public class Listeners implements Listener { } @EventHandler public void onDeath(PlayerDeathEvent event) { - if(feedback.hasKey(event.getEntity().getName())) { - Player player = event.getEntity(); + Player player = event.getEntity(); + if(commands.inVault.containsKey(player.getName())) { Inventory inv = player.getOpenInventory().getTopInventory(); - int number = feedback.getNumber(player.getName()); + int number = commands.inVault.get(player.getName()); try { vm.saveVault(inv, player, number); } catch (IOException e) { @@ -74,10 +73,10 @@ public class Listeners implements Listener { @EventHandler public void onTP(PlayerTeleportEvent event) { - if(feedback.hasKey(event.getPlayer().getName())) { - Player player = event.getPlayer(); + Player player = event.getPlayer(); + if(commands.inVault.containsKey(player.getName())) { Inventory inv = player.getOpenInventory().getTopInventory(); - int number = feedback.getNumber(player.getName()); + int number = commands.inVault.get(player.getName()); try { vm.saveVault(inv, player, number); } catch (IOException e) { @@ -88,10 +87,10 @@ public class Listeners implements Listener { @EventHandler public void onWorldChange(PlayerChangedWorldEvent event) { - if(feedback.hasKey(event.getPlayer().getName())) { - Player player = event.getPlayer(); + Player player = event.getPlayer(); + if(commands.inVault.containsKey(player.getName())) { Inventory inv = player.getOpenInventory().getTopInventory(); - int number = feedback.getNumber(player.getName()); + int number = commands.inVault.get(player.getName()); try { vm.saveVault(inv, player, number); } catch (IOException e) { @@ -102,15 +101,15 @@ public class Listeners implements Listener { @EventHandler public void onClose(InventoryCloseEvent event) { - System.out.println(feedback.hashSize()); - if(feedback.hasKey(event.getPlayer().getName())) { - System.out.println("haskey :D"); - HumanEntity he = event.getPlayer(); - if(he instanceof Player) { + System.out.println(commands.inVault.size()); + HumanEntity he = event.getPlayer(); + if(he instanceof Player) { + if(commands.inVault.containsKey(he.getName())) { + System.out.println("haskey :D"); Player player = (Player) he; Inventory inv = player.getOpenInventory().getTopInventory(); System.out.println("listener inv: " + inv); - int number = feedback.getNumber(player.getName()); + int number = commands.inVault.get(player.getName()); try { vm.saveVault(inv, player, number); } catch (IOException e) { @@ -120,44 +119,44 @@ public class Listeners implements Listener { } } - /** - * Check if a player is trying to do something while - * in a vault. - * Don't let them open up another chest. - * @param event - */ - @EventHandler - public void onInteract(PlayerInteractEvent event) { - Player player = event.getPlayer(); - if(feedback.hasKey(player.getName()) && event.getAction() == Action.RIGHT_CLICK_BLOCK) { - Block block = event.getClickedBlock(); +/** + * Check if a player is trying to do something while + * in a vault. + * Don't let them open up another chest. + * @param event + */ +@EventHandler +public void onInteract(PlayerInteractEvent event) { + Player player = event.getPlayer(); + if(commands.inVault.containsKey(player.getName()) && event.getAction() == Action.RIGHT_CLICK_BLOCK) { + Block block = event.getClickedBlock(); - /** - * Different inventories that - * we don't want the player to open. - */ - if(block.getType() == Material.CHEST - || block.getType() == Material.ENDER_CHEST - || block.getType() == Material.FURNACE - || block.getType() == Material.BURNING_FURNACE - || block.getType() == Material.BREWING_STAND - || block.getType() == Material.BEACON) { - event.setCancelled(true); - } - } - } - - /** - * Don't let a player open a trading inventory OR a minecart - * while he has his vault open. - * @param event - */ - @EventHandler - public void onInteractEntity(PlayerInteractEntityEvent event) { - Player player = event.getPlayer(); - EntityType type = event.getRightClicked().getType(); - if((type == EntityType.VILLAGER||type==EntityType.MINECART) && feedback.hasKey(player.getName())) { + /** + * Different inventories that + * we don't want the player to open. + */ + if(block.getType() == Material.CHEST + || block.getType() == Material.ENDER_CHEST + || block.getType() == Material.FURNACE + || block.getType() == Material.BURNING_FURNACE + || block.getType() == Material.BREWING_STAND + || block.getType() == Material.BEACON) { event.setCancelled(true); } } } + +/** + * Don't let a player open a trading inventory OR a minecart + * while he has his vault open. + * @param event + */ +@EventHandler +public void onInteractEntity(PlayerInteractEntityEvent event) { + Player player = event.getPlayer(); + EntityType type = event.getRightClicked().getType(); + if((type == EntityType.VILLAGER||type==EntityType.MINECART) && commands.inVault.containsKey(player.getName())) { + event.setCancelled(true); + } +} +} diff --git a/src/me/shock/playervaults/commands/Commands.java b/src/me/shock/playervaults/commands/Commands.java index 59ff6dd..9a9f743 100644 --- a/src/me/shock/playervaults/commands/Commands.java +++ b/src/me/shock/playervaults/commands/Commands.java @@ -1,7 +1,6 @@ package me.shock.playervaults.commands; -import me.shock.playervaults.Main; -import me.shock.playervaults.util.VaultManager; +import java.util.HashMap; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -9,22 +8,20 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -public class Commands implements CommandExecutor -{ +public class Commands implements CommandExecutor { - private Main plugin; - VaultManager vm = new VaultManager(plugin); - OwnVault ownvault = new OwnVault(); - String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" + + public HashMap inVault = new HashMap(); + + private String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" + ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": "; - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) - { + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if(cmd.getName().equalsIgnoreCase("pv")) { int length = args.length; if(length == 1) { - if(checkConsole(sender)) { - ownvault.openOwnVault(sender, args[0]); + if(notConsole(sender)) { + if(OwnVault.openOwnVault(sender, args[0])) + inVault.put(sender.getName(), Integer.parseInt(args[0])); } } @@ -32,7 +29,7 @@ public class Commands implements CommandExecutor return true; } - public boolean checkConsole(CommandSender sender) { + public boolean notConsole(CommandSender sender) { if(!(sender instanceof Player)) { sender.sendMessage(pv + "Sorry but that can only be run by a player!"); return false; diff --git a/src/me/shock/playervaults/commands/Feedback.java b/src/me/shock/playervaults/commands/Feedback.java index 5296f52..6a1b2b9 100644 --- a/src/me/shock/playervaults/commands/Feedback.java +++ b/src/me/shock/playervaults/commands/Feedback.java @@ -1,14 +1,10 @@ package me.shock.playervaults.commands; -import java.util.HashMap; - import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; public class Feedback { - - public HashMap inVault = new HashMap(); - + String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" + ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": "; @@ -22,26 +18,4 @@ public class Feedback { sender.sendMessage(pv + "/vault "); sender.sendMessage(pv + "/vault delete "); } - - public void putInHash(String name, int number) { - inVault.put(name, number); - return; - } - - public int getNumber(String name) { - int number = inVault.get(name); - return number; - } - - public boolean hasKey(String name) { - if(inVault.containsKey(name)) - return true; - return false; - } - - public int hashSize() { - int size = inVault.size(); - return size; - } - } diff --git a/src/me/shock/playervaults/commands/OwnVault.java b/src/me/shock/playervaults/commands/OwnVault.java index 2dd800d..f6527cf 100644 --- a/src/me/shock/playervaults/commands/OwnVault.java +++ b/src/me/shock/playervaults/commands/OwnVault.java @@ -8,25 +8,24 @@ import org.bukkit.command.CommandSender; public class OwnVault { - private Main main; - VaultManager vm = new VaultManager(main); - Feedback feedback = new Feedback(); + private static Main main; + private static VaultManager vm = new VaultManager(main); + static Feedback feedback = new Feedback(); - String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" + + static String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" + ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": "; - public boolean openOwnVault(CommandSender sender, String arg0) { + public static boolean openOwnVault(CommandSender sender, String arg0) { if(arg0.matches("^[0-9]{1,2}$")) { System.out.println("yay regex!"); if(sender.hasPermission("playervaults.amount." + arg0)) { int number = Integer.parseInt(arg0); vm.loadVault(sender, sender.getName(), number); - feedback.putInHash(sender.getName(), number); sender.sendMessage(pv + "Opening vault " + ChatColor.GREEN + number); } else { feedback.noPerms(sender); } } - return true; + return false; } } diff --git a/src/me/shock/playervaults/util/Serialization.java b/src/me/shock/playervaults/util/Serialization.java index 4f99928..2d9ed02 100644 --- a/src/me/shock/playervaults/util/Serialization.java +++ b/src/me/shock/playervaults/util/Serialization.java @@ -11,6 +11,7 @@ import net.minecraft.server.v1_4_R1.NBTBase; import net.minecraft.server.v1_4_R1.NBTTagCompound; import net.minecraft.server.v1_4_R1.NBTTagList; +import org.bukkit.ChatColor; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventoryCustom; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftItemStack; import org.bukkit.inventory.Inventory; @@ -44,7 +45,7 @@ public class Serialization { public static Inventory fromBase64(String data) { ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data)); NBTTagList itemList = (NBTTagList) NBTBase.b(new DataInputStream(inputStream)); - Inventory inventory = new CraftInventoryCustom(null, itemList.size()); + Inventory inventory = new CraftInventoryCustom(null, itemList.size(), ChatColor.DARK_RED + "Vault"); for (int i = 0; i < itemList.size(); i++) { NBTTagCompound inputObject = (NBTTagCompound) itemList.get(i); diff --git a/src/me/shock/playervaults/util/VaultManager.java b/src/me/shock/playervaults/util/VaultManager.java index 2b6382d..f308e62 100644 --- a/src/me/shock/playervaults/util/VaultManager.java +++ b/src/me/shock/playervaults/util/VaultManager.java @@ -5,7 +5,7 @@ import java.io.IOException; import java.util.logging.Level; import me.shock.playervaults.Main; -import me.shock.playervaults.commands.Feedback; +import me.shock.playervaults.commands.Commands; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -22,9 +22,10 @@ public class VaultManager { public VaultManager(Main instance) { this.plugin = instance; } - Feedback feedback = new Feedback(); + + Commands commands = new Commands(); String title; - private static String directory = "plugins" + File.separator + "PlayerVaults" + File.separator + "vaults"; + private String directory = "plugins" + File.separator + "PlayerVaults" + File.separator + "vaults"; /** * Method to save player's vault. @@ -34,7 +35,7 @@ public class VaultManager { * @throws IOException */ public void saveVault(Inventory inv, Player player, int number) throws IOException { - if(feedback.hasKey(player.getName())) { + if(commands.inVault.containsKey(player.getName())) { System.out.println("savevault"); // Get the player's file and serialize the inventory. String ser = Serialization.toBase64(inv); @@ -59,13 +60,12 @@ public class VaultManager { String data = playerFile.getString("vault" + "" + number + ""); Player player = (Player) sender; if(data == null) { - Inventory inv = Bukkit.createInventory(player, 54); + Inventory inv = Bukkit.createInventory(player, 54, ChatColor.DARK_RED + "Vault"); player.openInventory(inv); } else { Inventory inv = Serialization.fromBase64(data); player.openInventory(inv); } - player.sendMessage(title + " Opening " + ChatColor.GREEN + " " + number); return; }