package noppes.npcs.controllers;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.CompoundNBT;
import noppes.npcs.CustomNpcs;

public class GlobalDataController {
	public static GlobalDataController instance;
	
	private int itemGiverId = 0;
	
	public GlobalDataController(){
		instance = this;
		load();
	}
	
	private void load(){
		File saveDir = CustomNpcs.getWorldSaveDirectory();
		try {
	        File file = new File(saveDir, "global.dat");
	        if(file.exists()){
	        	loadData(file);
	        }
		} catch (Exception e) {
			try {
		        File file = new File(saveDir, "global.dat_old");
		        if(file.exists()){
		        	loadData(file);
		        }
		        
			} catch (Exception ee) {
				ee.printStackTrace();
			}
		}
	}
	private void loadData(File file) throws Exception{		
        CompoundNBT nbttagcompound1 = CompressedStreamTools.readCompressed(new FileInputStream(file));
        itemGiverId = nbttagcompound1.getInt("itemGiverId");
	}
	public void saveData(){
		try {
			File saveDir = CustomNpcs.getWorldSaveDirectory();

	        CompoundNBT nbttagcompound = new CompoundNBT();
	        nbttagcompound.putInt("itemGiverId", itemGiverId);
	        
            File file = new File(saveDir, "global.dat_new");
            File file1 = new File(saveDir, "global.dat_old");
            File file2 = new File(saveDir, "global.dat");
            CompressedStreamTools.writeCompressed(nbttagcompound, new FileOutputStream(file));
            if(file1.exists())
            {
                file1.delete();
            }
            file2.renameTo(file1);
            if(file2.exists())
            {
                file2.delete();
            }
            file.renameTo(file2);
            if(file.exists())
            {
                file.delete();
            }
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public int incrementItemGiverId(){
		itemGiverId++;
		saveData();
		return itemGiverId;
	}
}
