private void save(CompoundTag tag)
	{
		File file = new File(path + player.getName() + ".dat");
		File temp;
		FileOutputStream output_stream;
		NBTOutputStream nbt_output;
		
		if (!file.exists())
		{
			if (file.getParent() != null)
				file.getParentFile().mkdirs();
			try
			{
				file.createNewFile();
			}
			catch (IOException e)
			{
				e.printStackTrace();
				return;
			}
		}
		
		try
		{
			temp = File.createTempFile(player.getName(), ".dat.temp");
		}
		catch (IOException e)
		{
			e.printStackTrace();
			return;
		}
		
		try
		{
			output_stream = new FileOutputStream(temp);
		}
		catch (FileNotFoundException e)
		{
			e.printStackTrace();
			return;
		}
		try
		{
			nbt_output = new NBTOutputStream(output_stream);
		}
		catch (IOException e)
		{
			e.printStackTrace();
			return;
		}
		try
		{
			nbt_output.writeTag("", tag);
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		try
		{
			nbt_output.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
			return;
		}
		
		FileUtil.copy(temp, file);
		temp.delete();
		
		
		changed = false;
	}