public void matchDiskToLive(){
		synchronized(sync){	
			if(!canWrite){
				return;
			}
			try{
				bw = new BufferedWriter(new FileWriter(championData));
				bw.write(gson.toJson(Champion.champions));
				bw.flush();
				bw = new BufferedWriter(new FileWriter(itemData));
				bw.write(gson.toJson(Item.items));
				bw.flush();
				bw = new BufferedWriter(new FileWriter(configVars));
				bw.write(gson.toJson(ConfigVars.getVars()));
				bw.flush();
			}catch(IOException e){
				Logger.loudLog(e);
			}
			List<File> indvPlayerDirs = Arrays.asList(playerDir.listFiles());
			for(Player p: Player.getTracked()){
				savePlayer(p);
			}
			for(File f: indvPlayerDirs){
				if(Player.isTracked(Integer.parseInt(f.getName()))){ //if player is being tracked
					markSafe(f);
					for(File g: (new File(f, "games")).listFiles()){
						if(!GameStat.contains(g.getName().substring(11, g.getName().length()-4)))
							recursiveMarkDelete(g);
					}
				}
				else
					recursiveMarkDelete(f);
			}
		}
	}