@SuppressWarnings("unchecked") private HashMap<String, Integer> loadWinPoints() { String filename = "winpoints"; HashMap<String, Integer> out = null; if (!new File(pl.getDataFolder(), filename).exists()) { HashMap<String, Integer> newHM = new HashMap<String, Integer>(); saveWinPoints(newHM); } try { FileInputStream fin = new FileInputStream(new File(pl.getDataFolder(), filename)); GZIPInputStream gzin = new GZIPInputStream(fin); ObjectInputStream in = new ObjectInputStream(gzin); Object o = in.readObject(); if (!(o instanceof HashMap<?, ?>)) { pl.getLogger().severe("Fatal Error! Winpoints file was corrupted!"); out = new HashMap<String, Integer>(); } else { out = (HashMap<String, Integer>) o; } in.close(); gzin.close(); fin.close(); } catch (Exception e) { e.printStackTrace(); } return out; }
public void rewardPlayer(Player p, int winpoints) { if (!pl.getConfig().isBoolean("reward.money.enabled")) { pl.getConfig().set("reward.money.enabled", false); } if (!pl.getConfig().isInt("reward.money.amount")) { pl.getConfig().set("reward.money.amount", 5); } int money = pl.getConfig().getInt("reward.money.amount"); boolean vaultEnabled = pl.getConfig().getBoolean("reward.money.enabled"); if (pl.useVault && vaultEnabled && pl.econSetUp) { if (!pl.econ.hasAccount(p.getName())) { pl.econ.createPlayerAccount(p.getName()); } pl.econ.bankDeposit(p.getName(), money); p.sendMessage( ChatColor.RED + String.valueOf(money) + " " + pl.econ.currencyNameSingular() + ChatColor.GOLD + " were added to you bank account"); } if (!new File(pl.getDataFolder(), "winpoints").exists()) { HashMap<String, Integer> hashmap = new HashMap<String, Integer>(); hashmap.put(p.getName(), winpoints); saveWinPoints(hashmap); p.sendMessage( ChatColor.RED + String.valueOf(winpoints) + ChatColor.GOLD + " Win Points were added to your Perk Shop Account.\nYou now have " + ChatColor.RED + winpoints + ChatColor.GOLD + " Win Points\nVisit the Perk Shop using /zperks"); return; } else { HashMap<String, Integer> hashmap = loadWinPoints(); int amount = 0; if (hashmap.containsKey(p.getName())) { amount = hashmap.get(p.getName()); } int newamount = winpoints + amount; hashmap.put(p.getName(), newamount); saveWinPoints(hashmap); p.sendMessage( ChatColor.RED + String.valueOf(winpoints) + ChatColor.GOLD + " Win Points were added to your Perk Shop Account.\nYou now have " + ChatColor.RED + newamount + ChatColor.GOLD + " Win Points\nVisit the Perk Shop using /zperks"); return; } }
private void saveWinPoints(HashMap<String, Integer> hashmap) { String filename = "winpoints"; try { FileOutputStream fos = new FileOutputStream(new File(pl.getDataFolder(), filename)); GZIPOutputStream gzos = new GZIPOutputStream(fos); ObjectOutputStream out = new ObjectOutputStream(gzos); out.writeObject(hashmap); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } }