public static void recoverLatest(Player p, String server) {
		try {
			reconnect();
			PreparedStatement stat = con.prepareStatement("SELECT * FROM `inv_slots` WHERE `server` = ? AND `player` = ?");
			stat.setString(1, server);
			stat.setString(2, p.getName());
			
			stat.execute();
			
			p.getInventory().clear();
			p.getInventory().setBoots(null);
			p.getInventory().setChestplate(null);
			p.getInventory().setHelmet(null);
			p.getInventory().setLeggings(null);
			
			ResultSet result = stat.getResultSet();
			
			while(result.next()) {
				int slot = result.getInt("slot");
				JSONParser parser = new JSONParser(JSONParser.USE_INTEGER_STORAGE);
				try {
					String decoded = Base64Coder.decodeString(result.getString("json"));
					
					if(plugin.isDebugMode)
						plugin.getLogger().info("Decoded B64: " + decoded);
					
					Map<String, Object> map = (Map<String, Object>) parser.parse(decoded);
					ItemStack stack = (ItemStack) SerializableInventory.deserialize(map);
					
					if(slot == Slots.HELMET.slotNum()) {
						p.getInventory().setHelmet(stack);
					} else if(slot == Slots.CHEST.slotNum()) {
						p.getInventory().setChestplate(stack);
					} else if(slot == Slots.LEGGINGS.slotNum()) {
						p.getInventory().setLeggings(stack);
					} else if(slot == Slots.BOOTS.slotNum()) {
						p.getInventory().setBoots(stack);
					} else {
						p.getInventory().setItem(slot, stack);
					}
				} catch (ParseException e) {
					e.printStackTrace();
				}
			}
		} catch(SQLException e) { e.printStackTrace(); }
	}