summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/ProfileStrategy.h
blob: 26bdf6619e16f24ef49e8267aa6f5554dd9b3b1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once

#include "ProfileUtils.h"
#include "ProfilePatch.h"

class MinecraftProfile;

class ProfileStrategy
{
	friend class MinecraftProfile;
public:
	virtual ~ProfileStrategy(){};

	/// load the patch files into the profile
	virtual void load() = 0;

	/// reset the order of patches
	virtual bool resetOrder() = 0;

	/// save the order of patches, given the order
	virtual bool saveOrder(ProfileUtils::PatchOrder order) = 0;

	/// install a list of jar mods into the instance
	virtual bool installJarMods(QStringList filepaths) = 0;

	/// remove any files or records that constitute the version patch
	virtual bool removePatch(ProfilePatchPtr jarMod) = 0;

	/// make the patch custom, if possible
	virtual bool customizePatch(ProfilePatchPtr patch) = 0;

	/// revert the custom patch to 'vanilla', if possible
	virtual bool revertPatch(ProfilePatchPtr patch) = 0;
protected:
	MinecraftProfile *profile;
};