@SuppressWarnings("unchecked")
  public void loadSave(int id) {
    ensureFile(id);
    try {
      ObjectInputStream in =
          new ObjectInputStream(new FileInputStream(new File(baseDir, "Arena" + id + ".dat")));

      ArrayList<BlockData> input = (ArrayList<BlockData>) in.readObject();

      ArrayList<BlockData> data = queue.get(id);
      if (data == null) {
        data = new ArrayList<BlockData>();
      }

      for (BlockData d : input) {
        if (!data.contains(d)) {
          data.add(d);
        }
      }

      queue.put(id, data);
      in.close();
    } catch (Exception e) {
    }
  }
 public void add(BlockData data) {
   ArrayList<BlockData> dat = queue.get(data.getGameId());
   if (dat == null) {
     dat = new ArrayList<BlockData>();
     ensureFile(data.getGameId());
   }
   dat.add(data);
   queue.put(data.getGameId(), dat);
 }
  public void setup() {
    baseDir = new File(SurvivalGames.getPluginDataFolder() + "/ArenaData/");
    try {
      if (!baseDir.exists()) {
        baseDir.mkdirs();
      }
      for (Game g : GameManager.getInstance().getGames()) {
        ensureFile(g.getID());
      }

    } catch (Exception e) {
    }

    Bukkit.getScheduler()
        .runTaskTimerAsynchronously(
            GameManager.getInstance().getPlugin(), new DataDumper(), 100, 100);
  }