summaryrefslogtreecommitdiffstats
path: root/libraries/logic/minecraft/VersionBuildError.h
blob: fda453e5f120f144833f8ace4d690fee7b81469f (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "Exception.h"

class VersionBuildError : public Exception
{
public:
	explicit VersionBuildError(QString cause) : Exception(cause) {}
	virtual ~VersionBuildError() noexcept
	{
	}
};

/**
 * the base version file was meant for a newer version of the vanilla launcher than we support
 */
class LauncherVersionError : public VersionBuildError
{
public:
	LauncherVersionError(int actual, int supported)
		: VersionBuildError(QObject::tr(
			  "The base version file of this instance was meant for a newer (%1) "
			  "version of the vanilla launcher than this version of MultiMC supports (%2).")
								.arg(actual)
								.arg(supported)) {};
	virtual ~LauncherVersionError() noexcept
	{
	}
};

/**
 * some patch was intended for a different version of minecraft
 */
class MinecraftVersionMismatch : public VersionBuildError
{
public:
	MinecraftVersionMismatch(QString fileId, QString mcVersion, QString parentMcVersion)
		: VersionBuildError(QObject::tr("The patch %1 is for a different version of Minecraft "
										"(%2) than that of the instance (%3).")
								.arg(fileId)
								.arg(mcVersion)
								.arg(parentMcVersion)) {};
	virtual ~MinecraftVersionMismatch() noexcept
	{
	}
};

/**
 * files required for the version are not (yet?) present
 */
class VersionIncomplete : public VersionBuildError
{
public:
	VersionIncomplete(QString missingPatch)
		: VersionBuildError(QObject::tr("Version is incomplete: missing %1.")
								.arg(missingPatch)) {};
	virtual ~VersionIncomplete() noexcept
	{
	}
};