Hashmap still returns empty

This commit is contained in:
Trent Hensler
2013-02-13 01:14:08 -06:00
parent f8048ef9eb
commit b4790c8c18
6 changed files with 80 additions and 110 deletions
+16 -17
View File
@@ -2,7 +2,7 @@ package me.shock.playervaults;
import java.io.IOException; import java.io.IOException;
import me.shock.playervaults.commands.Feedback; import me.shock.playervaults.commands.Commands;
import me.shock.playervaults.util.VaultManager; import me.shock.playervaults.util.VaultManager;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@@ -31,16 +31,15 @@ public class Listeners implements Listener {
this.plugin = instance; this.plugin = instance;
} }
VaultManager vm = new VaultManager(plugin); VaultManager vm = new VaultManager(plugin);
Feedback feedback = new Feedback(); Commands commands = new Commands();
@EventHandler @EventHandler
public void onQuit(PlayerQuitEvent event) { public void onQuit(PlayerQuitEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if(feedback.hasKey(player.getName())) { if(commands.inVault.containsKey(player.getName())) {
Inventory inv = player.getOpenInventory().getTopInventory(); Inventory inv = player.getOpenInventory().getTopInventory();
int number = feedback.getNumber(player.getName()); int number = commands.inVault.get(player.getName());
try { try {
vm.saveVault(inv, player, number); vm.saveVault(inv, player, number);
} catch (IOException e) { } catch (IOException e) {
@@ -60,10 +59,10 @@ public class Listeners implements Listener {
} }
@EventHandler @EventHandler
public void onDeath(PlayerDeathEvent event) { 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(); Inventory inv = player.getOpenInventory().getTopInventory();
int number = feedback.getNumber(player.getName()); int number = commands.inVault.get(player.getName());
try { try {
vm.saveVault(inv, player, number); vm.saveVault(inv, player, number);
} catch (IOException e) { } catch (IOException e) {
@@ -74,10 +73,10 @@ public class Listeners implements Listener {
@EventHandler @EventHandler
public void onTP(PlayerTeleportEvent event) { 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(); Inventory inv = player.getOpenInventory().getTopInventory();
int number = feedback.getNumber(player.getName()); int number = commands.inVault.get(player.getName());
try { try {
vm.saveVault(inv, player, number); vm.saveVault(inv, player, number);
} catch (IOException e) { } catch (IOException e) {
@@ -88,10 +87,10 @@ public class Listeners implements Listener {
@EventHandler @EventHandler
public void onWorldChange(PlayerChangedWorldEvent event) { 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(); Inventory inv = player.getOpenInventory().getTopInventory();
int number = feedback.getNumber(player.getName()); int number = commands.inVault.get(player.getName());
try { try {
vm.saveVault(inv, player, number); vm.saveVault(inv, player, number);
} catch (IOException e) { } catch (IOException e) {
@@ -102,15 +101,15 @@ public class Listeners implements Listener {
@EventHandler @EventHandler
public void onClose(InventoryCloseEvent event) { public void onClose(InventoryCloseEvent event) {
System.out.println(feedback.hashSize()); System.out.println(commands.inVault.size());
if(feedback.hasKey(event.getPlayer().getName())) {
System.out.println("haskey :D");
HumanEntity he = event.getPlayer(); HumanEntity he = event.getPlayer();
if(he instanceof Player) { if(he instanceof Player) {
if(commands.inVault.containsKey(he.getName())) {
System.out.println("haskey :D");
Player player = (Player) he; Player player = (Player) he;
Inventory inv = player.getOpenInventory().getTopInventory(); Inventory inv = player.getOpenInventory().getTopInventory();
System.out.println("listener inv: " + inv); System.out.println("listener inv: " + inv);
int number = feedback.getNumber(player.getName()); int number = commands.inVault.get(player.getName());
try { try {
vm.saveVault(inv, player, number); vm.saveVault(inv, player, number);
} catch (IOException e) { } catch (IOException e) {
@@ -129,7 +128,7 @@ public class Listeners implements Listener {
@EventHandler @EventHandler
public void onInteract(PlayerInteractEvent event) { public void onInteract(PlayerInteractEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if(feedback.hasKey(player.getName()) && event.getAction() == Action.RIGHT_CLICK_BLOCK) { if(commands.inVault.containsKey(player.getName()) && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
Block block = event.getClickedBlock(); Block block = event.getClickedBlock();
/** /**
@@ -156,7 +155,7 @@ public class Listeners implements Listener {
public void onInteractEntity(PlayerInteractEntityEvent event) { public void onInteractEntity(PlayerInteractEntityEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
EntityType type = event.getRightClicked().getType(); EntityType type = event.getRightClicked().getType();
if((type == EntityType.VILLAGER||type==EntityType.MINECART) && feedback.hasKey(player.getName())) { if((type == EntityType.VILLAGER||type==EntityType.MINECART) && commands.inVault.containsKey(player.getName())) {
event.setCancelled(true); event.setCancelled(true);
} }
} }
@@ -1,7 +1,6 @@
package me.shock.playervaults.commands; package me.shock.playervaults.commands;
import me.shock.playervaults.Main; import java.util.HashMap;
import me.shock.playervaults.util.VaultManager;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -9,22 +8,20 @@ import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class Commands implements CommandExecutor public class Commands implements CommandExecutor {
{
private Main plugin; public HashMap<String, Integer> inVault = new HashMap<String, Integer>();
VaultManager vm = new VaultManager(plugin);
OwnVault ownvault = new OwnVault(); private String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" +
String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" +
ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": "; 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")) { if(cmd.getName().equalsIgnoreCase("pv")) {
int length = args.length; int length = args.length;
if(length == 1) { if(length == 1) {
if(checkConsole(sender)) { if(notConsole(sender)) {
ownvault.openOwnVault(sender, args[0]); 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; return true;
} }
public boolean checkConsole(CommandSender sender) { public boolean notConsole(CommandSender sender) {
if(!(sender instanceof Player)) { if(!(sender instanceof Player)) {
sender.sendMessage(pv + "Sorry but that can only be run by a player!"); sender.sendMessage(pv + "Sorry but that can only be run by a player!");
return false; return false;
@@ -1,14 +1,10 @@
package me.shock.playervaults.commands; package me.shock.playervaults.commands;
import java.util.HashMap;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
public class Feedback { public class Feedback {
public HashMap<String, Integer> inVault = new HashMap<String, Integer>();
String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" + String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" +
ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": "; ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": ";
@@ -22,26 +18,4 @@ public class Feedback {
sender.sendMessage(pv + "/vault <number>"); sender.sendMessage(pv + "/vault <number>");
sender.sendMessage(pv + "/vault delete <number>"); sender.sendMessage(pv + "/vault delete <number>");
} }
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;
}
} }
@@ -8,25 +8,24 @@ import org.bukkit.command.CommandSender;
public class OwnVault { public class OwnVault {
private Main main; private static Main main;
VaultManager vm = new VaultManager(main); private static VaultManager vm = new VaultManager(main);
Feedback feedback = new Feedback(); 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 + ": "; 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}$")) { if(arg0.matches("^[0-9]{1,2}$")) {
System.out.println("yay regex!"); System.out.println("yay regex!");
if(sender.hasPermission("playervaults.amount." + arg0)) { if(sender.hasPermission("playervaults.amount." + arg0)) {
int number = Integer.parseInt(arg0); int number = Integer.parseInt(arg0);
vm.loadVault(sender, sender.getName(), number); vm.loadVault(sender, sender.getName(), number);
feedback.putInHash(sender.getName(), number);
sender.sendMessage(pv + "Opening vault " + ChatColor.GREEN + number); sender.sendMessage(pv + "Opening vault " + ChatColor.GREEN + number);
} else { } else {
feedback.noPerms(sender); feedback.noPerms(sender);
} }
} }
return true; return false;
} }
} }
@@ -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.NBTTagCompound;
import net.minecraft.server.v1_4_R1.NBTTagList; 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.CraftInventoryCustom;
import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftItemStack;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
@@ -44,7 +45,7 @@ public class Serialization {
public static Inventory fromBase64(String data) { public static Inventory fromBase64(String data) {
ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data)); ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
NBTTagList itemList = (NBTTagList) NBTBase.b(new DataInputStream(inputStream)); 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++) { for (int i = 0; i < itemList.size(); i++) {
NBTTagCompound inputObject = (NBTTagCompound) itemList.get(i); NBTTagCompound inputObject = (NBTTagCompound) itemList.get(i);
@@ -5,7 +5,7 @@ import java.io.IOException;
import java.util.logging.Level; import java.util.logging.Level;
import me.shock.playervaults.Main; import me.shock.playervaults.Main;
import me.shock.playervaults.commands.Feedback; import me.shock.playervaults.commands.Commands;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@@ -22,9 +22,10 @@ public class VaultManager {
public VaultManager(Main instance) { public VaultManager(Main instance) {
this.plugin = instance; this.plugin = instance;
} }
Feedback feedback = new Feedback();
Commands commands = new Commands();
String title; 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. * Method to save player's vault.
@@ -34,7 +35,7 @@ public class VaultManager {
* @throws IOException * @throws IOException
*/ */
public void saveVault(Inventory inv, Player player, int number) 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"); System.out.println("savevault");
// Get the player's file and serialize the inventory. // Get the player's file and serialize the inventory.
String ser = Serialization.toBase64(inv); String ser = Serialization.toBase64(inv);
@@ -59,13 +60,12 @@ public class VaultManager {
String data = playerFile.getString("vault" + "" + number + ""); String data = playerFile.getString("vault" + "" + number + "");
Player player = (Player) sender; Player player = (Player) sender;
if(data == null) { if(data == null) {
Inventory inv = Bukkit.createInventory(player, 54); Inventory inv = Bukkit.createInventory(player, 54, ChatColor.DARK_RED + "Vault");
player.openInventory(inv); player.openInventory(inv);
} else { } else {
Inventory inv = Serialization.fromBase64(data); Inventory inv = Serialization.fromBase64(data);
player.openInventory(inv); player.openInventory(inv);
} }
player.sendMessage(title + " Opening " + ChatColor.GREEN + " " + number);
return; return;
} }