aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock30
-rw-r--r--flake.nix74
-rw-r--r--launcher/Application.cpp3
-rw-r--r--launcher/CMakeLists.txt5
-rw-r--r--launcher/InstanceImportTask.cpp8
-rw-r--r--launcher/InstanceImportTask.h3
-rw-r--r--launcher/JavaCommon.cpp11
-rw-r--r--launcher/LaunchController.cpp11
-rw-r--r--launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp2
-rw-r--r--launcher/resources/multimc/scalable/discord.svg117
-rw-r--r--launcher/tasks/Task.h2
-rw-r--r--launcher/tasks/Task_test.cpp68
-rw-r--r--launcher/ui/pages/instance/InstanceSettingsPage.cpp1
-rw-r--r--packages/nix/polymc/default.nix17
14 files changed, 163 insertions, 189 deletions
diff --git a/flake.lock b/flake.lock
index f2205416..e3c490fd 100644
--- a/flake.lock
+++ b/flake.lock
@@ -3,11 +3,11 @@
"flake-compat": {
"flake": false,
"locked": {
- "lastModified": 1641205782,
- "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=",
+ "lastModified": 1648199409,
+ "narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7",
+ "rev": "64a525ee38886ab9028e6f61790de0832aa3ef03",
"type": "github"
},
"original": {
@@ -16,21 +16,6 @@
"type": "github"
}
},
- "flake-utils": {
- "locked": {
- "lastModified": 1642700792,
- "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
"libnbtplusplus": {
"flake": false,
"locked": {
@@ -49,16 +34,16 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1643169865,
- "narHash": "sha256-+KIpNRazbc8Gac9jdWCKQkFv9bjceaLaLhlwqUEYu8c=",
+ "lastModified": 1648219316,
+ "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "945ec499041db73043f745fad3b2a3a01e826081",
+ "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634",
"type": "github"
},
"original": {
"owner": "nixos",
- "ref": "nixos-unstable",
+ "ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
@@ -82,7 +67,6 @@
"root": {
"inputs": {
"flake-compat": "flake-compat",
- "flake-utils": "flake-utils",
"libnbtplusplus": "libnbtplusplus",
"nixpkgs": "nixpkgs",
"quazip": "quazip"
diff --git a/flake.nix b/flake.nix
index 5f95b4e6..e59d6be8 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,50 +1,34 @@
{
- description = "PolyMC flake";
- inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
- inputs.flake-utils.url = "github:numtide/flake-utils";
- inputs.flake-compat = {
- url = "github:edolstra/flake-compat";
- flake = false;
- };
- inputs.libnbtplusplus = {
- url = "github:multimc/libnbtplusplus";
- flake = false;
- };
- inputs.quazip = {
- url = "github:stachenov/quazip";
- flake = false;
+ description = "A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC)";
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+ flake-compat = { url = "github:edolstra/flake-compat"; flake = false; };
+ libnbtplusplus = { url = "github:multimc/libnbtplusplus"; flake = false; };
+ quazip = { url = "github:stachenov/quazip"; flake = false; };
};
- outputs = args@{ self, nixpkgs, flake-utils, libnbtplusplus, quazip, ... }:
+ outputs = { self, nixpkgs, libnbtplusplus, quazip, ... }:
let
- systems = [
- "aarch64-linux"
- # "aarch64-darwin" # qtbase is currently broken
- "i686-linux"
- "x86_64-darwin"
- "x86_64-linux"
- ];
- in {
- overlay = final: prev: {
- inherit (self.packages.${final.system}) polymc;
- };
- } // flake-utils.lib.eachSystem systems (system:
- let pkgs = import nixpkgs { inherit system; };
- in {
- packages = {
- polymc = pkgs.libsForQt5.callPackage ./packages/nix/polymc {
- inherit self;
- submoduleQuazip = quazip;
- submoduleNbt = libnbtplusplus;
- };
- };
- apps = {
- polymc = flake-utils.lib.mkApp {
- name = "polymc";
- drv = self.packages.${system}.polymc;
- };
- };
- defaultPackage = self.packages.${system}.polymc;
- defaultApp = self.apps.${system}.polymc;
- });
+ # Generate a user-friendly version number.
+ version = builtins.substring 0 8 self.lastModifiedDate;
+
+ # System types to support (qtbase is currently broken for "aarch64-darwin")
+ supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+
+ # Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
+ forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
+
+ # Nixpkgs instantiated for supported system types.
+ pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system});
+ in
+ {
+ packages = forAllSystems (system: { polymc = pkgs.${system}.libsForQt5.callPackage ./packages/nix/polymc { inherit version self quazip libnbtplusplus; }; });
+ defaultPackage = forAllSystems (system: self.packages.${system}.polymc);
+
+ apps = forAllSystems (system: { polymc = { type = "app"; program = "${self.defaultPackage.${system}}/bin/polymc"; }; });
+ defaultApp = forAllSystems (system: self.apps.${system}.polymc);
+
+ overlay = final: prev: { polymc = self.defaultPackage.${final.system}; };
+ };
}
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 690a7ee4..9cca534c 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -696,6 +696,9 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
// Minecraft launch method
m_settings->registerSetting("MCLaunchMethod", "LauncherPart");
+ // Minecraft offline player name
+ m_settings->registerSetting("LastOfflinePlayerName", "");
+
// Wrapper command for launch
m_settings->registerSetting("WrapperCommand", "");
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index 05af3503..42348792 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -413,6 +413,11 @@ set(TASKS_SOURCES
tasks/SequentialTask.cpp
)
+add_unit_test(Task
+ SOURCES tasks/Task_test.cpp
+ LIBS Launcher_logic
+ )
+
set(SETTINGS_SOURCES
# Settings
settings/INIFile.cpp
diff --git a/launcher/InstanceImportTask.cpp b/launcher/InstanceImportTask.cpp
index eeca29c6..1a13c997 100644
--- a/launcher/InstanceImportTask.cpp
+++ b/launcher/InstanceImportTask.cpp
@@ -40,6 +40,14 @@ InstanceImportTask::InstanceImportTask(const QUrl sourceUrl)
m_sourceUrl = sourceUrl;
}
+bool InstanceImportTask::abort()
+{
+ m_filesNetJob->abort();
+ m_extractFuture.cancel();
+
+ return false;
+}
+
void InstanceImportTask::executeTask()
{
if (m_sourceUrl.isLocalFile())
diff --git a/launcher/InstanceImportTask.h b/launcher/InstanceImportTask.h
index a1990647..365c3dc4 100644
--- a/launcher/InstanceImportTask.h
+++ b/launcher/InstanceImportTask.h
@@ -37,6 +37,9 @@ class InstanceImportTask : public InstanceTask
public:
explicit InstanceImportTask(const QUrl sourceUrl);
+ bool canAbort() const override { return true; }
+ bool abort() override;
+
protected:
//! Entry point for tasks.
virtual void executeTask() override;
diff --git a/launcher/JavaCommon.cpp b/launcher/JavaCommon.cpp
index a6542fa7..17278d86 100644
--- a/launcher/JavaCommon.cpp
+++ b/launcher/JavaCommon.cpp
@@ -17,6 +17,17 @@ bool JavaCommon::checkJVMArgs(QString jvmargs, QWidget *parent)
QMessageBox::Warning)->exec();
return false;
}
+ // block lunacy with passing required version to the JVM
+ if (jvmargs.contains(QRegExp("-version:.*"))) {
+ auto warnStr = QObject::tr(
+ "You tried to pass required Java version argument to the JVM (using \"-version:xxx\"). This is not safe and will not be allowed.\n"
+ "This message will be displayed until you remove this from the JVM arguments.");
+ CustomMessageBox::selectable(
+ parent, QObject::tr("JVM arguments warning"),
+ warnStr,
+ QMessageBox::Warning)->exec();
+ return false;
+ }
return true;
}
diff --git a/launcher/LaunchController.cpp b/launcher/LaunchController.cpp
index 792d8381..4cb62e69 100644
--- a/launcher/LaunchController.cpp
+++ b/launcher/LaunchController.cpp
@@ -71,7 +71,10 @@ void LaunchController::executeTask()
return;
}
- JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget);
+ if(!JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget)) {
+ emitFailed(tr("Invalid Java arguments specified. Please fix this first."));
+ return;
+ }
login();
}
@@ -166,13 +169,14 @@ void LaunchController::login() {
if(!m_session->wants_online) {
// we ask the user for a player name
bool ok = false;
- QString usedname = m_session->player_name;
+ QString lastOfflinePlayerName = APPLICATION->settings()->get("LastOfflinePlayerName").toString();
+ QString usedname = lastOfflinePlayerName.isEmpty() ? m_session->player_name : lastOfflinePlayerName;
QString name = QInputDialog::getText(
m_parentWidget,
tr("Player name"),
tr("Choose your offline mode player name."),
QLineEdit::Normal,
- m_session->player_name,
+ usedname,
&ok
);
if (!ok)
@@ -183,6 +187,7 @@ void LaunchController::login() {
if (name.length())
{
usedname = name;
+ APPLICATION->settings()->set("LastOfflinePlayerName", usedname);
}
m_session->MakeOffline(usedname);
// offline flavored game from here :3
diff --git a/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp b/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
index 07eeb7dc..589768e3 100644
--- a/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
+++ b/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
@@ -65,7 +65,7 @@ void XboxAuthorizationStep::onRequestDone(
if(!processSTSError(error, data, headers)) {
emit finished(
AccountTaskState::STATE_FAILED_SOFT,
- tr("Failed to get authorization for %1 services. Error %1.").arg(m_authorizationKind, error)
+ tr("Failed to get authorization for %1 services. Error %2.").arg(m_authorizationKind, error)
);
}
return;
diff --git a/launcher/resources/multimc/scalable/discord.svg b/launcher/resources/multimc/scalable/discord.svg
index 067be1e8..e37c3b84 100644
--- a/launcher/resources/multimc/scalable/discord.svg
+++ b/launcher/resources/multimc/scalable/discord.svg
@@ -1,108 +1,11 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="128mm"
- height="128mm"
- viewBox="0 0 453.54331 453.54331"
- id="svg2"
- version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="discord.svg">
- <defs
- id="defs4">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4166">
- <stop
- style="stop-color:#7593d7;stop-opacity:1"
- offset="0"
- id="stop4168" />
- <stop
- style="stop-color:#4f6aa3;stop-opacity:1"
- offset="1"
- id="stop4170" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4166"
- id="linearGradient4174"
- x1="351.42856"
- y1="513.79077"
- x2="351.42856"
- y2="943.79077"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(24.999996,-5.8267714e-6)" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.98994949"
- inkscape:cx="249.4082"
- inkscape:cy="153.28604"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- inkscape:snap-nodes="true"
- inkscape:snap-bbox="true"
- inkscape:bbox-paths="false"
- inkscape:snap-bbox-edge-midpoints="false"
- inkscape:bbox-nodes="true"
- inkscape:snap-bbox-midpoints="false"
- inkscape:snap-page="true"
- inkscape:window-width="1911"
- inkscape:window-height="2120"
- inkscape:window-x="2970"
- inkscape:window-y="0"
- inkscape:window-maximized="0">
- <inkscape:grid
- type="xygrid"
- id="grid4155" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-1.4285583,-500.24745)">
- <path
- style="fill:url(#linearGradient4174);fill-opacity:1;fill-rule:evenodd"
- d="m 73.928594,513.79076 a 37.5,37.5 0 0 0 -37.36914,34.88476 l -0.13086,0.11524 0,2.5 0,302.5 0.11914,0.11914 a 37.5,37.5 0 0 0 -0.11914,2.38086 37.5,37.5 0 0 0 37.5,37.5 37.5,37.5 0 0 0 2.41406,-0.0859 l 0.0859,0.0859 250.000006,0 -10,-40 100,90 0,-392.5 0,-2.5 -0.0918,-0.0918 a 37.5,37.5 0 0 0 -34.77734,-34.77734 l -0.13086,-0.13086 -2.5,0 -302.500006,0 -0.13477,0.11914 a 37.5,37.5 0 0 0 -2.36523,-0.11914 z"
- id="path4157"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:1;fill:#ffffff;fill-rule:evenodd"
- d="m 262.51367,111.60742 -3.53515,4.79688 c 20.92905,7.8755 41.53825,15.82838 52.90625,26.01172 -54.51023,-27.29925 -111.94069,-29.57156 -173.11524,0.25195 13.83558,-12.04023 34.12183,-19.9521 56.31641,-26.64258 l -2.39844,-3.78711 c -19.87573,2.47189 -39.74673,4.97961 -57.48273,19.75608 -1.26426,1.0533 -2.43875,1.7112 -3.75946,3.35134 -1.04157,1.68882 -1.47654,2.94289 -2.20384,4.4259 -16.51968,33.6846 -29.13904,71.47893 -29.23561,122.47449 13.7929,19.97074 35.85963,31.20604 66.79492,33.08203 l 14.01563,-19.0664 c -16.32939,-4.839 -28.63498,-12.99042 -36.86914,-24.4961 68.24127,41.30702 122.04171,25.27927 169.32617,-0.50585 -10.12692,12.60017 -23.08016,21.50538 -39.39649,26.01171 l 14.52149,17.80469 c 31.64413,-2.6726 53.44205,-13.71547 66.03906,-32.57812 -1.25854,-42.6757 -9.40904,-79.47015 -23.71494,-111.01207 -2.51316,-5.54105 -4.27674,-11.49413 -8.10537,-16.14028 -3.45571,-4.1936 -7.96544,-7.13252 -12.90109,-9.9657 -12.42806,-7.13399 -28.6789,-11.32721 -47.20243,-13.77258 z m -76.00195,82.42383 c 12.33462,8e-5 22.33381,10.55717 22.33398,23.58008 -1.7e-4,13.02291 -9.99936,23.58 -22.33398,23.58008 -12.33462,-7e-5 -22.33382,-10.55716 -22.33399,-23.58008 1.7e-4,-13.02292 9.99937,-23.58001 22.33399,-23.58008 z m 79.54883,0 c 12.33462,8e-5 22.33381,10.55717 22.33398,23.58008 -1.7e-4,13.02291 -9.99936,23.58 -22.33398,23.58008 -12.33462,-7e-5 -22.33382,-10.55716 -22.33399,-23.58008 1.7e-4,-13.02292 9.99937,-23.58001 22.33399,-23.58008 z"
- transform="translate(1.4285583,500.24745)"
- id="path4176"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccscsccccccccsasccccccccccc" />
- </g>
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 71 71" xmlns="http://www.w3.org/2000/svg">
+ <g transform="translate(0 8.0294)" clip-path="url(#clip0)">
+ <path d="m60.104 4.8978c-4.5253-2.0764-9.378-3.6062-14.452-4.4824-0.0924-0.01691-0.1847 0.025349-0.2323 0.10987-0.6241 1.11-1.3154 2.5581-1.7995 3.6963-5.4572-0.817-10.886-0.817-16.232 0-0.4842-1.1635-1.2006-2.5863-1.8275-3.6963-0.0476-0.0817-0.1399-0.12396-0.2323-0.10987-5.071 0.87338-9.9237 2.4032-14.452 4.4824-0.0392 0.0169-0.0728 0.0451-0.0951 0.0817-9.2046 13.751-11.726 27.165-10.489 40.412 0.005597 0.0648 0.041978 0.1268 0.092353 0.1662 6.0729 4.4598 11.956 7.1673 17.729 8.9619 0.0924 0.0282 0.1903-0.0056 0.2491-0.0817 1.3657-1.865 2.5831-3.8315 3.6269-5.8995 0.0616-0.1211 0.0028-0.2648-0.1231-0.3127-1.931-0.7325-3.7697-1.6256-5.5384-2.6398-0.1399-0.0817-0.1511-0.2818-0.0224-0.3776 0.3722-0.2789 0.7445-0.5691 1.0999-0.8621 0.0643-0.0535 0.1539-0.0648 0.2295-0.031 11.62 5.3051 24.199 5.3051 35.682 0 0.0756-0.0366 0.1652-0.0253 0.2323 0.0282 0.3555 0.293 0.7277 0.586 1.1027 0.8649 0.1287 0.0958 0.1203 0.2959-0.0196 0.3776-1.7687 1.0339-3.6074 1.9073-5.5412 2.637-0.1259 0.0479-0.1819 0.1944-0.1203 0.3155 1.0662 2.0651 2.2836 4.0316 3.6241 5.8967 0.056 0.0789 0.1567 0.1127 0.2491 0.0845 5.8014-1.7946 11.684-4.5021 17.757-8.9619 0.0532-0.0394 0.0868-0.0986 0.0924-0.1634 1.4804-15.315-2.4796-28.618-10.498-40.412-0.0196-0.0394-0.0531-0.0676-0.0923-0.0845zm-36.379 32.428c-3.4983 0-6.3808-3.2117-6.3808-7.156s2.8266-7.156 6.3808-7.156c3.5821 0 6.4367 3.2399 6.3807 7.156 0 3.9443-2.8266 7.156-6.3807 7.156zm23.592 0c-3.4982 0-6.3807-3.2117-6.3807-7.156s2.8265-7.156 6.3807-7.156c3.5822 0 6.4367 3.2399 6.3808 7.156 0 3.9443-2.7986 7.156-6.3808 7.156z" fill="#5865f2"/>
+ </g>
+ <defs>
+ <clipPath id="clip0">
+ <rect width="71" height="55" fill="#fff"/>
+ </clipPath>
+ </defs>
</svg>
diff --git a/launcher/tasks/Task.h b/launcher/tasks/Task.h
index 47c249b3..344a024e 100644
--- a/launcher/tasks/Task.h
+++ b/launcher/tasks/Task.h
@@ -53,7 +53,7 @@ class Task : public QObject {
virtual bool canAbort() const { return false; }
QString getStatus() { return m_status; }
- virtual auto getStepStatus() const -> QString { return {}; }
+ virtual auto getStepStatus() const -> QString { return m_status; }
qint64 getProgress() { return m_progress; }
qint64 getTotalProgress() { return m_progressTotal; }
diff --git a/launcher/tasks/Task_test.cpp b/launcher/tasks/Task_test.cpp
new file mode 100644
index 00000000..9b6cc2e5
--- /dev/null
+++ b/launcher/tasks/Task_test.cpp
@@ -0,0 +1,68 @@
+#include <QTest>
+#include "TestUtil.h"
+
+#include "Task.h"
+
+/* Does nothing. Only used for testing. */
+class BasicTask : public Task {
+ Q_OBJECT
+
+ friend class TaskTest;
+
+ private:
+ void executeTask() override {};
+};
+
+/* Does nothing. Only used for testing. */
+class BasicTask_MultiStep : public Task {
+ Q_OBJECT
+
+ friend class TaskTest;
+
+ private:
+ auto isMultiStep() const -> bool override { return true; }
+
+ void executeTask() override {};
+};
+
+class TaskTest : public QObject {
+ Q_OBJECT
+
+ private slots:
+ void test_SetStatus_NoMultiStep(){
+ BasicTask t;
+ QString status {"test status"};
+
+ t.setStatus(status);
+
+ QCOMPARE(t.getStatus(), status);
+ QCOMPARE(t.getStepStatus(), status);
+ }
+
+ void test_SetStatus_MultiStep(){
+ BasicTask_MultiStep t;
+ QString status {"test status"};
+
+ t.setStatus(status);
+
+ QCOMPARE(t.getStatus(), status);
+ // Even though it is multi step, it does not override the getStepStatus method,
+ // so it should remain the same.
+ QCOMPARE(t.getStepStatus(), status);
+ }
+
+ void test_SetProgress(){
+ BasicTask t;
+ int current = 42;
+ int total = 207;
+
+ t.setProgress(current, total);
+
+ QCOMPARE(t.getProgress(), current);
+ QCOMPARE(t.getTotalProgress(), total);
+ }
+};
+
+QTEST_GUILESS_MAIN(TaskTest)
+
+#include "Task_test.moc"
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.cpp b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
index a5985741..a48c4d69 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.cpp
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
@@ -179,7 +179,6 @@ void InstanceSettingsPage::applySettings()
if(javaArgs)
{
m_settings->set("JvmArgs", ui->jvmArgsTextBox->toPlainText().replace("\n", " "));
- JavaCommon::checkJVMArgs(m_settings->get("JvmArgs").toString(), this->parentWidget());
}
else
{
diff --git a/packages/nix/polymc/default.nix b/packages/nix/polymc/default.nix
index 63fc6b7e..e352209a 100644
--- a/packages/nix/polymc/default.nix
+++ b/packages/nix/polymc/default.nix
@@ -14,10 +14,11 @@
, libGL
, msaClientID ? ""
-# flake
+ # flake
, self
-, submoduleNbt
-, submoduleQuazip
+, version
+, libnbtplusplus
+, quazip
}:
let
@@ -30,7 +31,7 @@ let
libXxf86vm
libpulseaudio
libGL
- ];
+ ];
# This variable will be passed to Minecraft by PolyMC
gameLibraryPath = libpath + ":/run/opengl-driver/lib";
@@ -38,12 +39,12 @@ in
mkDerivation rec {
pname = "polymc";
- version = "nightly";
+ inherit version;
src = lib.cleanSource self;
nativeBuildInputs = [ cmake ninja file makeWrapper ];
- buildInputs = [ qtbase jdk8 zlib ];
+ buildInputs = [ qtbase jdk zlib ];
dontWrapQtApps = true;
@@ -57,8 +58,8 @@ mkDerivation rec {
# Copy submodules inputs
rm -rf source/libraries/{libnbtplusplus,quazip}
mkdir source/libraries/{libnbtplusplus,quazip}
- cp -a ${submoduleNbt}/* source/libraries/libnbtplusplus
- cp -a ${submoduleQuazip}/* source/libraries/quazip
+ cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus
+ cp -a ${quazip}/* source/libraries/quazip
chmod a+r+w source/libraries/{libnbtplusplus,quazip}/*
'';