From 75f2dab3c87d9d88979553792473a5aace4c96bf Mon Sep 17 00:00:00 2001
From: Ghosty
Date: Fri, 3 Dec 2021 03:02:58 +0100
Subject: NOISSUE Implemented copy screenshots to the clipboard
- Added context-menu entry
- Ctrl+C keybind works as well
- If multiple screenshots are selected, only the first one gets copied
---
launcher/ui/pages/instance/ScreenshotsPage.cpp | 22 ++++++++++++++++++++++
launcher/ui/pages/instance/ScreenshotsPage.h | 1 +
launcher/ui/pages/instance/ScreenshotsPage.ui | 9 +++++++++
3 files changed, 32 insertions(+)
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.cpp b/launcher/ui/pages/instance/ScreenshotsPage.cpp
index 06c4379f..e391b95d 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.cpp
+++ b/launcher/ui/pages/instance/ScreenshotsPage.cpp
@@ -250,6 +250,12 @@ bool ScreenshotsPage::eventFilter(QObject *obj, QEvent *evt)
return QWidget::eventFilter(obj, evt);
}
QKeyEvent *keyEvent = static_cast(evt);
+
+ if (keyEvent->matches(QKeySequence::Copy)) {
+ on_actionCopy_triggered();
+ return true;
+ }
+
switch (keyEvent->key())
{
case Qt::Key_Delete:
@@ -372,6 +378,22 @@ void ScreenshotsPage::on_actionUpload_triggered()
m_uploadActive = false;
}
+void ScreenshotsPage::on_actionCopy_triggered()
+{
+ auto selection = ui->listView->selectionModel()->selectedRows();
+ if(selection.size() < 1)
+ {
+ return;
+ }
+
+ // You can only copy one image to the clipboard. In the case of multiple selected files, only the first one gets copied.
+ auto item = selection[0];
+ auto info = m_model->fileInfo(item);
+ QImage image(info.absoluteFilePath());
+ Q_ASSERT(!image.isNull());
+ QApplication::clipboard()->setImage(image, QClipboard::Clipboard);
+}
+
void ScreenshotsPage::on_actionDelete_triggered()
{
auto mbox = CustomMessageBox::selectable(
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.h b/launcher/ui/pages/instance/ScreenshotsPage.h
index d2f44837..d32f08ff 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.h
+++ b/launcher/ui/pages/instance/ScreenshotsPage.h
@@ -73,6 +73,7 @@ protected:
private slots:
void on_actionUpload_triggered();
+ void on_actionCopy_triggered();
void on_actionDelete_triggered();
void on_actionRename_triggered();
void on_actionView_Folder_triggered();
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.ui b/launcher/ui/pages/instance/ScreenshotsPage.ui
index ec461087..bb4213de 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.ui
+++ b/launcher/ui/pages/instance/ScreenshotsPage.ui
@@ -50,6 +50,7 @@
false
+
@@ -74,6 +75,14 @@
View Folder
+
+
+ Copy
+
+
+ Copy
+
+
--
cgit
From e9c52ec69663b2cb28a40428c96de749bdf49547 Mon Sep 17 00:00:00 2001
From: Ghosty
Date: Fri, 3 Dec 2021 16:08:11 +0100
Subject: NOISSUE Added Copy File(s) feature for the screenshot page
- Ctrl+C now copies the file instead of the image data
- Renamed Copy to Copy Image
---
launcher/ui/pages/instance/ScreenshotsPage.cpp | 24 ++++++++++++++++++++++--
launcher/ui/pages/instance/ScreenshotsPage.h | 3 ++-
launcher/ui/pages/instance/ScreenshotsPage.ui | 17 +++++++++++++----
3 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.cpp b/launcher/ui/pages/instance/ScreenshotsPage.cpp
index e391b95d..7aead623 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.cpp
+++ b/launcher/ui/pages/instance/ScreenshotsPage.cpp
@@ -252,7 +252,7 @@ bool ScreenshotsPage::eventFilter(QObject *obj, QEvent *evt)
QKeyEvent *keyEvent = static_cast(evt);
if (keyEvent->matches(QKeySequence::Copy)) {
- on_actionCopy_triggered();
+ on_actionCopy_File_s_triggered();
return true;
}
@@ -378,7 +378,7 @@ void ScreenshotsPage::on_actionUpload_triggered()
m_uploadActive = false;
}
-void ScreenshotsPage::on_actionCopy_triggered()
+void ScreenshotsPage::on_actionCopy_Image_triggered()
{
auto selection = ui->listView->selectionModel()->selectedRows();
if(selection.size() < 1)
@@ -394,6 +394,26 @@ void ScreenshotsPage::on_actionCopy_triggered()
QApplication::clipboard()->setImage(image, QClipboard::Clipboard);
}
+void ScreenshotsPage::on_actionCopy_File_s_triggered()
+{
+ auto selection = ui->listView->selectionModel()->selectedRows();
+ if(selection.size() < 1)
+ {
+ // Don't do anything so we don't empty the users clipboard
+ return;
+ }
+
+ QString buf = "";
+ for (auto item : selection)
+ {
+ auto info = m_model->fileInfo(item);
+ buf += "file:///" + info.absoluteFilePath() + "\r\n";
+ }
+ QMimeData* mimeData = new QMimeData();
+ mimeData->setData("text/uri-list", buf.toLocal8Bit());
+ QApplication::clipboard()->setMimeData(mimeData);
+}
+
void ScreenshotsPage::on_actionDelete_triggered()
{
auto mbox = CustomMessageBox::selectable(
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.h b/launcher/ui/pages/instance/ScreenshotsPage.h
index d32f08ff..2a1fdeee 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.h
+++ b/launcher/ui/pages/instance/ScreenshotsPage.h
@@ -73,7 +73,8 @@ protected:
private slots:
void on_actionUpload_triggered();
- void on_actionCopy_triggered();
+ void on_actionCopy_Image_triggered();
+ void on_actionCopy_File_s_triggered();
void on_actionDelete_triggered();
void on_actionRename_triggered();
void on_actionView_Folder_triggered();
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.ui b/launcher/ui/pages/instance/ScreenshotsPage.ui
index bb4213de..2e2227a2 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.ui
+++ b/launcher/ui/pages/instance/ScreenshotsPage.ui
@@ -50,7 +50,8 @@
false
-
+
+
@@ -75,12 +76,20 @@
View Folder
-
+
- Copy
+ Copy Image
- Copy
+ Copy Image
+
+
+
+
+ Copy File(s)
+
+
+ Copy File(s)
--
cgit
From a97d0a36f4807e082273d0f137186a5cebf6cd5d Mon Sep 17 00:00:00 2001
From: Ghosty
Date: Fri, 3 Dec 2021 16:29:28 +0100
Subject: NOISSUE Copy Image is not shown if the selection is > 1
---
launcher/ui/pages/instance/ScreenshotsPage.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.cpp b/launcher/ui/pages/instance/ScreenshotsPage.cpp
index 7aead623..ccde78e7 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.cpp
+++ b/launcher/ui/pages/instance/ScreenshotsPage.cpp
@@ -278,6 +278,11 @@ ScreenshotsPage::~ScreenshotsPage()
void ScreenshotsPage::ShowContextMenu(const QPoint& pos)
{
auto menu = ui->toolBar->createContextMenu(this, tr("Context menu"));
+
+ if (ui->listView->selectionModel()->selectedRows().size() > 1) {
+ menu->removeAction( ui->actionCopy_Image );
+ }
+
menu->exec(ui->listView->mapToGlobal(pos));
delete menu;
}
--
cgit
From 03d730073281c44d3d7a3cdb3ecaa78c178d1fd5 Mon Sep 17 00:00:00 2001
From: Petr Mrázek
Date: Sat, 8 Jan 2022 11:14:07 +0100
Subject: GH-4125 workaround for java printing garbage to stdout on bedrock
linux
---
launcher/java/JavaChecker.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/launcher/java/JavaChecker.cpp b/launcher/java/JavaChecker.cpp
index 80c599cc..c3132af3 100644
--- a/launcher/java/JavaChecker.cpp
+++ b/launcher/java/JavaChecker.cpp
@@ -61,6 +61,10 @@ void JavaChecker::stdoutReady()
QByteArray data = process->readAllStandardOutput();
QString added = QString::fromLocal8Bit(data);
added.remove('\r');
+ // NOTE: workaround for GH-4125, where garbage is getting printed into stdout on bedrock linux
+ if (added.contains("/bedrock/strata")) {
+ return;
+ }
m_stdout += added;
}
--
cgit
From addf5f4e52cf869375e2803afa0fa14dbaf71b22 Mon Sep 17 00:00:00 2001
From: Petr Mrázek
Date: Sat, 8 Jan 2022 11:45:10 +0100
Subject: NOISSUE update README for clarity
---
README.md | 61 +++++++++++++++++--------------------------------------------
1 file changed, 17 insertions(+), 44 deletions(-)
diff --git a/README.md b/README.md
index 7c278866..89b21f0b 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,8 @@
-MultiMC 5
-=========
+MultiMC
+=======
MultiMC is a custom launcher for Minecraft that focuses on predictability, long term stability and simplicity.
@@ -15,7 +15,7 @@ While blindly submitting PRs is definitely possible, they're not necessarily goi
We aren't looking for flashy features, but expanding upon the existing feature set without distruption or endangering future viability of the project is OK.
### Building
-If you want to build MultiMC yourself, check [BUILD.md](BUILD.md) for build instructions.
+If you want to build the launcher yourself, check [BUILD.md](BUILD.md) for build instructions.
### Code formatting
Just follow the existing formatting.
@@ -27,18 +27,9 @@ In general, in order of importance:
* Indent with 4 space unless it's in a submodule.
* Keep lists (of arguments, parameters, initializers...) as lists, not paragraphs. It should either read from top to bottom, or left to right. Not both.
-
## Translations
Translations can be done [on crowdin](https://translate.multimc.org). Please avoid making direct pull requests to the translations repository.
-## Forking/Redistributing/Custom builds policy
-We keep Launcher open source because we think it's important to be able to see the source code for a project like this, and we do so using the Apache license.
-
-Part of the reason for using the Apache license is that we don't want people using the "MultiMC" name when redistributing the project. This means people must take the time to go through the source code and remove all references to "MultiMC", including but not limited to the project icon and the title of windows, (no *MultiMC-fork* in the title).
-
-Apache covers reasonable use for the name - a mention of the project's origins in the About dialog and the license is acceptable. However, it should be abundantly clear that the project is a fork *without* implying that you have our blessing.
-
-
## License
Copyright © 2013-2021 MultiMC Contributors
@@ -46,35 +37,17 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-## Build status
-### Linux (Intel32)
-
-Build:
-
-
-Deploy:
-
-
-### Linux (AMD64)
-
-Build:
-
-
-Deploy:
-
-
-### macOS (AMD64)
-
-Build:
-
-
-Deploy:
-
-
-### Windows (Intel32)
-
-Build:
-
-
-Deploy:
-
+## Forking/Redistributing/Custom builds policy
+We keep Launcher open source because we think it's important to be able to see the source code for a project like this, and we do so using the Apache license.
+
+The license gives you access to the source MultiMC is build from, but:
+- Not the name, logo and other branding.
+- Not the API tokens required to talk to services the launcher depends on.
+
+Because of the nature of the agreements required to interact with the Microsoft identity platform, it's impossible for us to continue allowing everyone to build the code as 'MultiMC'. The source code has been debranded and now builds as `DevLauncher` by default.
+
+You must provide your own branding if you want to distribute your own builds.
+
+You will also have to register your own app on Azure to be able to handle Microsoft account logins.
+
+If you decide to fork the project, a mention of its origins in the About dialog and the license is acceptable. However, it should be abundantly clear that the project is a fork *without* implying that you have our blessing.
--
cgit
From 52420963cf1f258f14cedd7ff41412338d73b369 Mon Sep 17 00:00:00 2001
From: Petr Mrázek
Date: Sat, 8 Jan 2022 12:26:16 +0100
Subject: GH-4125 fix it better
---
launcher/java/JavaChecker.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/launcher/java/JavaChecker.cpp b/launcher/java/JavaChecker.cpp
index c3132af3..4557784b 100644
--- a/launcher/java/JavaChecker.cpp
+++ b/launcher/java/JavaChecker.cpp
@@ -61,10 +61,6 @@ void JavaChecker::stdoutReady()
QByteArray data = process->readAllStandardOutput();
QString added = QString::fromLocal8Bit(data);
added.remove('\r');
- // NOTE: workaround for GH-4125, where garbage is getting printed into stdout on bedrock linux
- if (added.contains("/bedrock/strata")) {
- return;
- }
m_stdout += added;
}
@@ -107,6 +103,10 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
for(QString line : lines)
{
line = line.trimmed();
+ // NOTE: workaround for GH-4125, where garbage is getting printed into stdout on bedrock linux
+ if (line.contains("/bedrock/strata")) {
+ continue;
+ }
auto parts = line.split('=', QString::SkipEmptyParts);
if(parts.size() != 2 || parts[0].isEmpty() || parts[1].isEmpty())
--
cgit
From 86d99f80c3b3c161688f6ce2fa222eb1a3ed5a3c Mon Sep 17 00:00:00 2001
From: Petr Mrázek
Date: Sun, 16 Jan 2022 11:43:19 +0100
Subject: NOISSUE add some logging to profile fetching failures
---
launcher/minecraft/auth/steps/MinecraftProfileStep.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp
index 9fef99b0..dc3df44f 100644
--- a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp
+++ b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp
@@ -56,6 +56,11 @@ void MinecraftProfileStep::onRequestDone(
return;
}
if (error != QNetworkReply::NoError) {
+ qWarning() << "Error getting profile:";
+ qWarning() << " HTTP Status: " << requestor->httpStatus_;
+ qWarning() << " Internal error no.: " << error;
+ qWarning() << " Error string: " << requestor->errorString_;
+
emit finished(
AccountTaskState::STATE_FAILED_SOFT,
tr("Minecraft Java profile acquisition failed.")
--
cgit
From c1bf31cb27a2b0ac675d70b6204003c1d834bbf8 Mon Sep 17 00:00:00 2001
From: Petr Mrázek
Date: Sun, 16 Jan 2022 12:05:40 +0100
Subject: NOISSUE in java checker, ignore invalid lines altogether
Declaring them as errors is just causing problems because Java
randomly prints garbage to STDOUT now.
---
launcher/java/JavaChecker.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/launcher/java/JavaChecker.cpp b/launcher/java/JavaChecker.cpp
index 4557784b..35ddc35c 100644
--- a/launcher/java/JavaChecker.cpp
+++ b/launcher/java/JavaChecker.cpp
@@ -111,7 +111,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
auto parts = line.split('=', QString::SkipEmptyParts);
if(parts.size() != 2 || parts[0].isEmpty() || parts[1].isEmpty())
{
- success = false;
+ continue;
}
else
{
--
cgit
From aa770b63fba8ede60636c6c2473a20d4fe48d3a1 Mon Sep 17 00:00:00 2001
From: Petr Mrázek
Date: Sun, 16 Jan 2022 12:46:20 +0100
Subject: NOISSUE correctly set http status code in auth reply
---
launcher/minecraft/auth/AuthRequest.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/launcher/minecraft/auth/AuthRequest.cpp b/launcher/minecraft/auth/AuthRequest.cpp
index 459d2354..feface80 100644
--- a/launcher/minecraft/auth/AuthRequest.cpp
+++ b/launcher/minecraft/auth/AuthRequest.cpp
@@ -44,7 +44,7 @@ void AuthRequest::onRequestFinished() {
if (reply_ != qobject_cast(sender())) {
return;
}
- httpStatus_ = 200;
+ httpStatus_ = reply_->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
finish();
}
--
cgit
From 917f8a31e33e021d1eed84f6d731d3c1dc15b3e1 Mon Sep 17 00:00:00 2001
From: Petr Mrázek
Date: Sun, 16 Jan 2022 12:51:42 +0100
Subject: NOISSUE log server response when failing to fetch profile
---
launcher/minecraft/auth/steps/MinecraftProfileStep.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp
index dc3df44f..add91659 100644
--- a/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp
+++ b/launcher/minecraft/auth/steps/MinecraftProfileStep.cpp
@@ -61,6 +61,9 @@ void MinecraftProfileStep::onRequestDone(
qWarning() << " Internal error no.: " << error;
qWarning() << " Error string: " << requestor->errorString_;
+ qWarning() << " Response:";
+ qWarning() << QString::fromUtf8(data);
+
emit finished(
AccountTaskState::STATE_FAILED_SOFT,
tr("Minecraft Java profile acquisition failed.")
--
cgit
From 9a33fb1f49cd1ce3c69bb358ee79527838d72afa Mon Sep 17 00:00:00 2001
From: MandipJoshi <90699866+MandipJoshi@users.noreply.github.com>
Date: Mon, 17 Jan 2022 12:09:36 +0545
Subject: Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 89b21f0b..b158625c 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ In general, in order of importance:
Translations can be done [on crowdin](https://translate.multimc.org). Please avoid making direct pull requests to the translations repository.
## License
-Copyright © 2013-2021 MultiMC Contributors
+Copyright © 2013-2022 MultiMC Contributors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this program except in compliance with the License. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).
--
cgit
From 8b31c638f344322822b9e05daead542b4ad70638 Mon Sep 17 00:00:00 2001
From: Stypox
Date: Sat, 22 Jan 2022 21:58:32 +0100
Subject: Fix error message
The code is trying to get a string from a json object, and if that fails it should log "is not a string", not "is not a timestamp".
---
launcher/minecraft/auth/Parsers.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/launcher/minecraft/auth/Parsers.cpp b/launcher/minecraft/auth/Parsers.cpp
index ed31e934..2dd36562 100644
--- a/launcher/minecraft/auth/Parsers.cpp
+++ b/launcher/minecraft/auth/Parsers.cpp
@@ -94,7 +94,7 @@ bool parseXTokenResponse(QByteArray & data, Katabasis::Token &output, QString na
return false;
}
if(!getString(obj.value("Token"), output.token)) {
- qWarning() << "User Token is not a timestamp";
+ qWarning() << "User Token is not a string";
return false;
}
auto arrayVal = obj.value("DisplayClaims").toObject().value("xui");
--
cgit
From c1aaf89baa6166707d7d489fe8ec1bcad1155df1 Mon Sep 17 00:00:00 2001
From: Joshua Goins
Date: Thu, 27 Jan 2022 19:06:07 -0500
Subject: Improve the About page
Improves #106. This more clearly marks the original MultiMC contributors,
and now correctly hides the "Build Platform" if this is set as empty. The
version label is now moved under the "PolyMC" title so it looks just a
little bit better (and matches other applications). The copyright on the
"About" page now correctly attributes the MultiMC contributors just like on
the "License" page.
---
launcher/ui/dialogs/AboutDialog.cpp | 10 +++++++---
launcher/ui/dialogs/AboutDialog.ui | 17 +++++++----------
program_info/CMakeLists.txt | 2 +-
3 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/launcher/ui/dialogs/AboutDialog.cpp b/launcher/ui/dialogs/AboutDialog.cpp
index 46d2f429..bba3f78b 100644
--- a/launcher/ui/dialogs/AboutDialog.cpp
+++ b/launcher/ui/dialogs/AboutDialog.cpp
@@ -33,7 +33,7 @@ QString getCreditsHtml()
stream.setCodec(QTextCodec::codecForName("UTF-8"));
stream << "\n";
// TODO: possibly retrieve from git history at build time?
- stream << "" << QObject::tr("Developers", "About Credits") << "
\n";
+ stream << "" << QObject::tr("MultiMC Developers", "About Credits") << "
\n";
stream << "Andrew Okin <forkk@forkk.net>
\n";
stream << "Petr Mrázek <peterix@gmail.com>
\n";
stream << "Sky Welch <multimc@bunnies.io>
\n";
@@ -83,8 +83,12 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
ui->icon->setPixmap(APPLICATION->getThemedIcon("logo").pixmap(64));
ui->title->setText(launcherName);
- ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString());
- ui->platformLabel->setText(tr("Platform") +": " + BuildConfig.BUILD_PLATFORM);
+ ui->versionLabel->setText(BuildConfig.printableVersionString());
+
+ if (!BuildConfig.BUILD_PLATFORM.isEmpty())
+ ui->platformLabel->setText(tr("Platform") +": " + BuildConfig.BUILD_PLATFORM);
+ else
+ ui->platformLabel->setVisible(false);
if (BuildConfig.VERSION_BUILD >= 0)
ui->buildNumLabel->setText(tr("Build Number") +": " + QString::number(BuildConfig.VERSION_BUILD));
diff --git a/launcher/ui/dialogs/AboutDialog.ui b/launcher/ui/dialogs/AboutDialog.ui
index 822c6f58..58275c66 100644
--- a/launcher/ui/dialogs/AboutDialog.ui
+++ b/launcher/ui/dialogs/AboutDialog.ui
@@ -86,6 +86,13 @@
Qt::AlignCenter
+
+ -
+
+
+ Qt::AlignCenter
+
+
-
@@ -151,16 +158,6 @@
- -
-
-
- Version:
-
-
- Qt::AlignCenter
-
-
-
-
diff --git a/program_info/CMakeLists.txt b/program_info/CMakeLists.txt
index 26369fe5..0466b893 100644
--- a/program_info/CMakeLists.txt
+++ b/program_info/CMakeLists.txt
@@ -1,6 +1,6 @@
set(Launcher_CommonName "PolyMC")
-set(Launcher_Copyright "PolyMC Contributors" PARENT_SCOPE)
+set(Launcher_Copyright "PolyMC Contributors\\n© 2012-2021 MultiMC Contributors" PARENT_SCOPE)
set(Launcher_Domain "polymc.org" PARENT_SCOPE)
set(Launcher_Name "${Launcher_CommonName}" PARENT_SCOPE)
set(Launcher_DisplayName "${Launcher_CommonName}" PARENT_SCOPE)
--
cgit
From 3aa9f5c376720f33c4ca77dc3c8803d6db5e7575 Mon Sep 17 00:00:00 2001
From: Jan200101
Date: Fri, 28 Jan 2022 19:42:30 +0100
Subject: Update rpm spec to support OpenSuse and conform to Fedora guidelines
---
launcher/package/rpm/MultiMC5.spec | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/launcher/package/rpm/MultiMC5.spec b/launcher/package/rpm/MultiMC5.spec
index 20839f11..4b7e5002 100644
--- a/launcher/package/rpm/MultiMC5.spec
+++ b/launcher/package/rpm/MultiMC5.spec
@@ -1,14 +1,20 @@
Name: MultiMC5
Version: 1.4
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A local install wrapper for MultiMC
License: ASL 2.0
URL: https://multimc.org
-BuildArch: x86_64
+ExclusiveArch: %{ix86} x86_64
+
+BuildRequires: desktop-file-utils
+BuildRequires: libappstream-glib
+Requires: zenity %{?suse_version:lib}qt5-qtbase wget xrandr
+Provides: multimc = %{version}
+Provides: MultiMC = %{version}
+Provides: multimc5 = %{version}
+
-Requires: zenity qt5-qtbase wget xrandr
-Provides: multimc MultiMC multimc5
%description
A local install wrapper for MultiMC
@@ -23,22 +29,29 @@ mkdir -p %{buildroot}/opt/multimc
install -m 0644 ../ubuntu/multimc/opt/multimc/icon.svg %{buildroot}/opt/multimc/icon.svg
install -m 0755 ../ubuntu/multimc/opt/multimc/run.sh %{buildroot}/opt/multimc/run.sh
mkdir -p %{buildroot}/%{_datadir}/applications
-install -m 0644 ../ubuntu/multimc/usr/share/applications/multimc.desktop %{buildroot}/%{_datadir}/applications/multimc.desktop
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications ../ubuntu/multimc/usr/share/applications/multimc.desktop
+
mkdir -p %{buildroot}/%{_datadir}/metainfo
-install -m 0644 ../ubuntu/multimc/usr/share/metainfo/multimc.metainfo.xml %{buildroot}/%{_datadir}/metainfo/multimc.metainfo.xml
+install -m 0644 ../ubuntu/multimc/usr/share/metainfo/multimc.metainfo.xml %{buildroot}/%{_metainfodir}/multimc.metainfo.xml
mkdir -p %{buildroot}/%{_mandir}/man1
install -m 0644 ../ubuntu/multimc/usr/share/man/man1/multimc.1 %{buildroot}/%{_mandir}/man1/multimc.1
+%check
+appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/multimc.metainfo.xml
+
%files
%dir /opt/multimc
/opt/multimc/icon.svg
/opt/multimc/run.sh
%{_datadir}/applications/multimc.desktop
-%{_datadir}/metainfo/multimc.metainfo.xml
-%dir /usr/share/man/man1
-%{_mandir}/man1/multimc.1.gz
+%{_metainfodir}/multimc.metainfo.xml
+%dir %{_mandir}/man1
+%{_mandir}/man1/multimc.1*
%changelog
+* Fri Jan 28 2022 Jan Drögehoff - 1.4-4
+- Update spec to support OpenSuse and conform to Fedora guidelines
+
* Sun Oct 03 2021 imperatorstorm <30777770+ImperatorStorm@users.noreply.github.com>
- added manpage
--
cgit
From 177c10bb0fc2667b4103724c6cf8e7455a1b786b Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 10:12:04 +0100
Subject: fix MacOS build instructions
---
BUILD.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/BUILD.md b/BUILD.md
index d14f2941..03f18563 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -234,7 +234,7 @@ Pick an installation path - this is where the final `.app` will be constructed w
```
git clone --recursive https://github.com/PolyMC/PolyMC.git
-cd Launcher
+cd PolyMC
mkdir build
cd build
cmake \
@@ -248,6 +248,7 @@ cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
..
make install
+mv jars/ polymc.app/Contents/MacOS
```
**Note:** The final app bundle may not run due to code signing issues, which
--
cgit
From d81e2bb0b0f60450cecfc1390e3a960f3b6e7bbb Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 10:14:00 +0100
Subject: extra refinements
---
BUILD.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BUILD.md b/BUILD.md
index 03f18563..4e2a284b 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -230,7 +230,7 @@ xcode-select --install
### Build
-Pick an installation path - this is where the final `.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration.
+Pick an installation path - this is where the final `polymc.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration.
```
git clone --recursive https://github.com/PolyMC/PolyMC.git
--
cgit
From b2bcdb9d9b61ef3244738f85b882aa96c880e932 Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 10:18:12 +0100
Subject: fix a typo+explain better
---
BUILD.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/BUILD.md b/BUILD.md
index 4e2a284b..6062fed8 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -230,7 +230,7 @@ xcode-select --install
### Build
-Pick an installation path - this is where the final `polymc.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration.
+Pick an installation path - this is where the final `polymc.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration. By default, it's in the build/dist folder under PolyMC
```
git clone --recursive https://github.com/PolyMC/PolyMC.git
@@ -248,7 +248,7 @@ cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
..
make install
-mv jars/ polymc.app/Contents/MacOS
+mv jars/ dist/polymc.app/Contents/MacOS
```
**Note:** The final app bundle may not run due to code signing issues, which
--
cgit
From 7f4fd04cfe2f7c6c826ecbdf1a25734c9de03303 Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 10:24:06 +0100
Subject: not needed actually
---
BUILD.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/BUILD.md b/BUILD.md
index 6062fed8..5bf8050d 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -248,7 +248,6 @@ cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
..
make install
-mv jars/ dist/polymc.app/Contents/MacOS
```
**Note:** The final app bundle may not run due to code signing issues, which
--
cgit
From 04be2404ce71f31ac5bf89aa0b41c1f63ce19166 Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 10:24:49 +0100
Subject: fix typo
---
BUILD.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BUILD.md b/BUILD.md
index 5bf8050d..8f45a21c 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -230,7 +230,7 @@ xcode-select --install
### Build
-Pick an installation path - this is where the final `polymc.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration. By default, it's in the build/dist folder under PolyMC
+Pick an installation path - this is where the final `PolyMC.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration. By default, it's in the build/dist folder under PolyMC
```
git clone --recursive https://github.com/PolyMC/PolyMC.git
--
cgit
From 9d36cf4b5a3d4b5c3d5fd836ce92de33ddbd8a27 Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 10:26:13 +0100
Subject: fix another typo (omg I'm doing too commits)
---
BUILD.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BUILD.md b/BUILD.md
index 8f45a21c..0f407716 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -230,7 +230,7 @@ xcode-select --install
### Build
-Pick an installation path - this is where the final `PolyMC.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration. By default, it's in the build/dist folder under PolyMC
+Pick an installation path - this is where the final `PolyMC.app` will be constructed when you run `make install`. Supply it as the `CMAKE_INSTALL_PREFIX` argument during CMake configuration. By default, it's in the dist folder under PolyMC
```
git clone --recursive https://github.com/PolyMC/PolyMC.git
--
cgit
From 7ef6c586c5a1b1ee33f2beeb43d1aa84a61b219c Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 10:59:04 +0100
Subject: update readme
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 778a2d96..67c11ae8 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ Several source build packages are available, along with experimental pre-built g
- [Debian (AMD64)](https://packages.polymc.org/latest/deb/polymc-amd64.deb) ([SHA256](https://packages.polymc.org/latest/deb/polymc-amd64.deb.sha256)) - this is intended to be installed with `dpkg -i`. Alternatively, you may build the `.deb` yourself, by going to `packages/debian` and running `./makedeb.sh`.
- [AppImage (AMD64)](https://packages.polymc.org/latest/appimage/PolyMC-latest-x86_64.AppImage) ([SHA256](https://packages.polymc.org/latest/appimage/PolyMC-latest-x86_64.AppImage.sha256)) - `chmod +x` must be run on this file before usage. This should work on any distribution.
- [Arch Linux (AMD64)](https://packages.polymc.org/latest/arch/polymc-bin-latest-1-x86_64.pkg.tar.zst) ([SHA256](https://packages.polymc.org/latest/arch/polymc-bin-latest-1-x86_64.pkg.tar.zst.sha256)) - this is intended to be installed with `pacman -U`. This is an alternative if building the AUR package is not desired.
-- MacOS currently does not have any packages. We are still working on setting up MacOS packaging.
+- MacOS currently does not have any packages. We are still working on setting up MacOS packaging. Meanwhile, you can [build](https://github.com/PolyMC/PolyMC/blob/develop/BUILD.md#macos) it for yourself.
## Development
If you want to contribute to PolyMC you might find it useful to join [#development:polymc.org on Matrix](https://matrix.to/#/#development:polymc.org) or join [our Discord server](https://discord.gg/xq7fxrgtMP), which is bridged with the PolyMC Matrix rooms. Thank you!
--
cgit
From b34239ebc64c602ea5859996ef04fec505a6a104 Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 11:00:13 +0100
Subject: adoptium
---
BUILD.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BUILD.md b/BUILD.md
index 0f407716..bafd294c 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -217,7 +217,7 @@ zlib1.dll
### Install prerequisites:
- Install XCode Command Line tools
- Install the official build of CMake (https://cmake.org/download/)
-- Install JDK 8 (https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)
+- Install JDK 8 (https://adoptium.net/releases.html?variant=openjdk8&jvmVariant=hotspot)
- Get Qt 5.6 and install it (https://download.qt.io/new_archive/qt/5.6/5.6.3/)
### XCode Command Line tools
--
cgit
From 7df5091fdcea086a05f8c76467707ca132a6c999 Mon Sep 17 00:00:00 2001
From: Mustafa Çalışkan
Date: Sat, 29 Jan 2022 17:35:50 +0300
Subject: flake.lock: Update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Flake lock file changes:
• Updated input 'flake-utils':
'github:numtide/flake-utils/74f7e4319258e287b0f9cb95426c9853b282730b' (2021-11-28)
→ 'github:numtide/flake-utils/846b2ae0fc4cc943637d3d1def4454213e203cba' (2022-01-20)
• Updated input 'nixpkgs':
'github:nixos/nixpkgs/b2737d4980a17cc2b7d600d7d0b32fd7333aca88' (2022-01-11)
→ 'github:nixos/nixpkgs/945ec499041db73043f745fad3b2a3a01e826081' (2022-01-26)
---
flake.lock | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/flake.lock b/flake.lock
index e759b98d..95ed6563 100644
--- a/flake.lock
+++ b/flake.lock
@@ -18,11 +18,11 @@
},
"flake-utils": {
"locked": {
- "lastModified": 1638122382,
- "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
+ "lastModified": 1642700792,
+ "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
"owner": "numtide",
"repo": "flake-utils",
- "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
+ "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
"type": "github"
},
"original": {
@@ -49,11 +49,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1641887635,
- "narHash": "sha256-kDGpufwzVaiGe5e1sBUBPo9f1YN+nYHJlYqCaVpZTQQ=",
+ "lastModified": 1643169865,
+ "narHash": "sha256-+KIpNRazbc8Gac9jdWCKQkFv9bjceaLaLhlwqUEYu8c=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "b2737d4980a17cc2b7d600d7d0b32fd7333aca88",
+ "rev": "945ec499041db73043f745fad3b2a3a01e826081",
"type": "github"
},
"original": {
--
cgit
From b710b719a830aff3bd31cd99af06096b8ce97c0b Mon Sep 17 00:00:00 2001
From: Mustafa Çalışkan
Date: Sat, 29 Jan 2022 17:38:12 +0300
Subject: nix: use .desktop file provided by cmake
---
packages/nix/polymc/default.nix | 19 +------------------
1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/packages/nix/polymc/default.nix b/packages/nix/polymc/default.nix
index b6bf6c5e..e65a7e34 100644
--- a/packages/nix/polymc/default.nix
+++ b/packages/nix/polymc/default.nix
@@ -1,7 +1,6 @@
{ lib
, mkDerivation
, fetchFromGitHub
-, makeDesktopItem
, cmake
, ninja
, jdk8
@@ -73,27 +72,11 @@ mkDerivation rec {
"-DLauncher_LAYOUT=lin-system"
];
- desktopItem = makeDesktopItem {
- name = "polymc";
- exec = "polymc";
- icon = "polymc";
- desktopName = "PolyMC";
- genericName = "Minecraft Launcher";
- comment = "A custom launcher for Minecraft";
- categories = "Game;";
- extraEntries = ''
- Keywords=game;Minecraft;
- '';
- };
-
postInstall = ''
- install -Dm644 ../launcher/resources/multimc/scalable/launcher.svg $out/share/pixmaps/polymc.svg
- install -Dm644 ${desktopItem}/share/applications/polymc.desktop $out/share/applications/org.polymc.polymc.desktop
-
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
wrapProgram $out/bin/polymc \
"''${qtWrapperArgs[@]}" \
--set GAME_LIBRARY_PATH ${gameLibraryPath} \
- --prefix PATH : ${lib.makeBinPath [ xorg.xrandr jdk ]}
+ --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]}
'';
}
--
cgit
From 8ea1ebaf1b58c3b1f39b45f54fb8b2f87bf7b7b9 Mon Sep 17 00:00:00 2001
From: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Date: Sat, 29 Jan 2022 18:14:56 +0100
Subject: I haven't tested qt 5.6, i use 5.12
---
BUILD.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/BUILD.md b/BUILD.md
index 1adb835b..84e5b34f 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -257,7 +257,7 @@ zlib1.dll
- Install XCode Command Line tools
- Install the official build of CMake (https://cmake.org/download/)
- Install JDK 8 (https://adoptium.net/releases.html?variant=openjdk8&jvmVariant=hotspot)
-- Get Qt 5.6 and install it (https://download.qt.io/new_archive/qt/5.6/5.6.3/)
+- Get Qt 5.6 and install it (https://download.qt.io/new_archive/qt/5.6/5.6.3/) or higher (tested) (https://www.qt.io/download-qt-installer?utm_referrer=https%3A%2F%2Fwww.qt.io%2Fdownload-open-source)
You can use `homebrew` to simplify the installation of build dependencies
@@ -281,15 +281,15 @@ cmake \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX:PATH="$(dirname $PWD)/dist/" \
- -DCMAKE_PREFIX_PATH="/path/to/Qt5.6/" \
- -DQt5_DIR="/path/to/Qt5.6/" \
+ -DCMAKE_PREFIX_PATH="/path/to/Qt/" \
+ -DQt5_DIR="/path/to/Qt/" \
-DLauncher_LAYOUT=mac-bundle \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
..
make install
```
-Remember to replace `/path/to/Qt5.6/` with the actual path. For newer Qt installations, it is often in your home directory.
+Remember to replace `/path/to/Qt/` with the actual path. For newer Qt installations, it is often in your home directory.
**Note:** The final app bundle may not run due to code signing issues, which
need to be fixed with `codesign -fs -`.
--
cgit
From 0211ee3ef10ca169354ac939761f0128e16ff026 Mon Sep 17 00:00:00 2001
From: Joshua Goins
Date: Mon, 31 Jan 2022 09:09:58 -0500
Subject: Add "PolyMC Contributors" to Credits section
This also adds a link to the PolyMC Contributors page on Github.
---
launcher/ui/dialogs/AboutDialog.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/launcher/ui/dialogs/AboutDialog.cpp b/launcher/ui/dialogs/AboutDialog.cpp
index bba3f78b..ef96cc23 100644
--- a/launcher/ui/dialogs/AboutDialog.cpp
+++ b/launcher/ui/dialogs/AboutDialog.cpp
@@ -32,6 +32,12 @@ QString getCreditsHtml()
QTextStream stream(&output);
stream.setCodec(QTextCodec::codecForName("UTF-8"));
stream << "\n";
+
+ stream << "
" << QObject::tr("PolyMC Developers", "About Credits") << "
\n";
+ stream << "swirl <swurl@swurl.xyz >
\n";
+ stream << "LennyMcLennington <lenny@sneed.church>
\n";
+ stream << "
\n";
+
// TODO: possibly retrieve from git history at build time?
stream << "" << QObject::tr("MultiMC Developers", "About Credits") << "
\n";
stream << "Andrew Okin <forkk@forkk.net>
\n";
@@ -47,6 +53,7 @@ QString getCreditsHtml()
stream << "Kilobyte <stiepen22@gmx.de>
\n";
stream << "Rootbear75 <@rootbear75>
\n";
stream << "Zeker Zhayard <@Zeker_Zhayard>
\n";
+ stream << "Everyone else who contributed!
\n";
stream << "
\n";
stream << "\n";
--
cgit
From 7a7a937f1e15f36983bab6b676ce86f82df8c03e Mon Sep 17 00:00:00 2001
From: swirl
Date: Mon, 31 Jan 2022 09:54:16 -0500
Subject: remove changelog because it's annoying
---
changelog.md | 1532 ----------------------------------------------------------
1 file changed, 1532 deletions(-)
delete mode 100644 changelog.md
diff --git a/changelog.md b/changelog.md
deleted file mode 100644
index 7b1d4ae8..00000000
--- a/changelog.md
+++ /dev/null
@@ -1,1532 +0,0 @@
-# MultiMC 0.6.14
-
-This further refines Microsoft account support, along with small fixes related to modpack platforms and Java runtime detection.
-
-It's also been 10 years since the first release of MultiMC. All background cats are now ready to party!
-
-### Microsoft accounts
-
-The account system now refreshes accounts in the background while the application is running.
-
-- GH-4071: Errors encountered while refreshing account tokens no longer always result in the tokens expiring:
- - Network errors encountered when refreshing the main account tokens result in the account being **Offline**.
- - **Hard** errors are produced by the main tokens becoming provably invalid.
- - Errors encountered later are treated as **Soft** - they do make the account unusable, but still recoverable by trying again.
- - **Soft** errors are treated as **Hard** errors when adding the account initially.
-
-In general, this should make MultiMC much more forgiving towards various temporary and non-fatal errors.
-
-- GH-4217: Added support for GamePass accounts and Minecraft profile setup:
- - The new endpoint for logging in with Microsoft is now used (`/launcher/login`), enabling compatibility with GamePass.
- - Game ownership is checked instead of only relying on Minecraft profile presence.
- - Accounts can now be added even when they do not have a profile.
- - The launcher should guide you through selecting a Minecraft name if you don't have one yet.
-
-### Modpack platform changes
-
-- GH-4055: MultiMC now tries to avoid downloading multiple files to the same path for FTB modpacks.
-
-- Search as you type is now used for FTB.
-
-- GH-4185: Version of the modpack is now included in the name of the instance by default.
-
-- The modpack platform UIs now include text field clear buttons.
-
-### Other changes
-
-- Adjusted warnings about Java runtime required for Minecraft 1.18 (it's not Java 16, it's Java 17).
-
-- GH-3490: Instance sorting is now aware of numbers (and sorts 99 before 100).
-
-- GH-4164: Reimplemented assigning instances to groups using drag & drop.
-
-- GH-1795: Added terminal launch option to use a specific Minecraft profile (in-game player name).
-
- Used like this:
- ```
- ./MultiMC --launch 1.17.1 --profile MultiMCTest --server mc.hypixel.net
- ```
-
-- GH-4227: Fix crash related to invalid Forge mod metadata.
-
-- GH-4200: Search for the *Eclipse Foundation* and *Adoptium* Java runtimes in the Windows Registry.
-
-- Added shader packs page to instances.
-
-- Removed Mojang services status information from the main window - the status is no longer provided by Mojang.
-
-- It is now possible to turn of global tracking of play time.
-
-### Technical changes
-
-- Debranding is mostly finished. You may see some changes in the logo being used in less places.
-
-# Previous releases
-
-## MultiMC 0.6.13
-
-This release brings initial support for Microsoft accounts, along with a nice pile of modpack platform support changes and improved Java runtime detection.
-
-Java runtimes still need an overhaul, so we're staying on the 0.6 version for a little longer.
-
-Next release should also tackle the current Forge 1.17.x issues in a systematic way.
-
-#### Microsoft accounts
-
-This is the first release with Microsoft accounts in.
-
-Implementation is loosely based on documentation available from [wiki.vg](https://wiki.vg/Microsoft_Authentication_Scheme) with some notable changes:
-
-- More complete implementation including getting and displaying GamerTags [(see XR-046)](https://docs.microsoft.com/en-us/gaming/gdk/_content/gc/policies/pc/live-policies-pc#xr-046-display-name-and-gamerpic-).
-
-- Using the OAuth Device Flow instead of closely integrating with a browser engine.
-
- MultiMC asks you to open a Microsoft login web page and put in a code that lets MultiMC authenticate.
-
- This lets you authenticate on a completely separate device like your phone, leaving code we ship and the computer you may not even trust out of the picture.
-
-As part of this, the skin fetching no longer uses a third party service and instead gets skins directly from Mojang.
-
-Capes can also be selected in MultiMC now. With how many people will now get one for migrating their accounts, it only makes sense.
-
-#### macOS update
-
-Because of issues with the Microsoft accounts, we now have two builds on macOS:
-
-- The old build with Qt 5.6 that does not work with Microsoft accounts, but can run on macOS older than 10.13.
-
-- A new build with Qt 5.15.2 that does work with Microsoft accounts, can use the new macOS dark theme and highlight colors, but requires at least macOS 10.13.
-
-MultiMC will update to the 5.15.2 builds when it detects that this is possible. **It may look like it is updating twice, just let it do its thing.**
-
-Similar approach got attempted on Windows, aiming to fix various display scaling and theming issues, but it ran into too many problems and will be attempted later, with more caution.
-
-#### Modpack platforms
-
-In general, the modpack platform pages have been made more consistent with each other (GH-3118, GH-3720, GH-3731).
-
-- FTB improvements:
-
- - Modpack file downloads are now checked with checksums and cached.
-
- - GH-1949: Allow Legacy FTB and FTB pack downloads to be aborted.
-
-- CurseForge improvements:
-
- - CurseForge modpack platform is now presented as CurseForge, not Twitch.
-
- - UI has been updated to match other platforms
-
- - Added sorting
-
- - GH-3667: Added version selection
-
- - GH-3611: Added ability to install beta versions
-
- - GH-3633: When a CurseForge pack is available for multiple Minecraft versions, we assume the latest one.
-
-- ATLauncher improvements:
-
- - Handling latest/custom/recommended mod loader versions.
-
- - Fabric loader packs should now work.
-
- - GH-3764: Only client mods are installed now for ATL packs.
-
- - Improved error handling
-
- - Optional mods are supported.
-
- - GH-1949: Allow ATLauncher pack downloads to be aborted
-
-
-- Fixed bugs in FTB platform search.
-
-#### Other changes
-
-- Forge installation is disabled on Minecraft 1.17+ because of incompatible/unresolved changes on the Forge side.
-
- We're going to aim for fixing it in time for 1.18. Thankfully, 1.17 is more of a in-between release, so go play some 1.16.x packs!
-
-- GH-2529: On macOS, MultiMC will ask to move all the instance data to a new `Data` folder in order to fix long load times caused by macOS checking all files.
-
-- Detection of a large amount of various Java runtime flavors have been added.
-
-- It is now possible to join servers when starting an instance:
-
- - From command line via the `--launch` and `--server` arguments.
-
- - Or by setting this up in the instance settings page.
-
- This may not work correctly in some cases, because it is a rarely used feature and modders do not test with it.
-
-- MultiMC now prints resolved IP addresses of Minecraft services into the game log for diagnostic purposes.
-
-- Updated instance icons based on Minecraft textures.
-
-- Forge `mods.toml` files are now used for displaying mods in the UI.
-
-- Datapack button is now disabled when no world is selected.
-
-- MultiMC warns about GLFW and OpenAL workarounds being enabled in the game log.
-
-- Languages in the translations list are now sorted by their two/three letter key
-
-- GH-3450: Displaying and recording gameplay time is now optional and can be turned off.
-
-- GH-3930: MultiMC can now track the gameplay time of the last session.
-
-- GH-3033: The version pages of instances now have a filter bar.
-
-- GH-2971: UI descriptions of texture and resource packs no longer mention mods.
-
-- Quick and dirty minimum Java runtime versions checks have been added. This needs to be expanded in the future.
-
-#### Technical changes
-
-- The codebase continues to move towards being debranded and harder to build as 'MultiMC' for third parties.
-
-
-## MultiMC 0.6.12
-
-After roughly one year of maintenance and development work by various contributors, we're just calling it a good time to release.
-
-What got added since the last time? Quite a bit! But in general, this is more of a spring cleaning before the major changes that we need to make come in.
-
-#### Modpack platforms
-
-We've added a whole bunch of new modpack platforms to pick from right into the new instance dialog. If you run into any unusual issues with the imported packs, report them on the bug tracker.
-
-- Added a CurseForge pack browser
-
-- GH-3095: Added an FTB pack browser
-
- Temporarily, MultiMC ignores download failures for FTB packs (GH-3304). This is because the platform has consistency issues.
-
-- GH-469: Added a Technic/Solder pack browser
-
-- GH-405: Added a ATLauncher pack browser
-
-#### Other changes
-
-- Added the option to not use OpenAL and/or GLFW libraries bundled with the game.
-
- This is interesting if you have ones that come with your system and work better.
-
-- Skins (the part used for account icons) are now rendered with the overlay on.
-
-- GH-3130: Skin upload has been switched over to the new Mojang API and should have less issues.
-
-- MultiMC now shows world icons and allows resetting world icons in `View Worlds`.
-
-- GH-3229: Copy seed button has been updated to be compatible with newer versions of the game.
-
-- GH-3427: `View Worlds` now has a very simple `Datapacks` button - it just opens the system file browser.
-
-- GH-3189: Updated nbt library - this makes `View Worlds` work properly again for newer versions of the game.
-
-- Fixed online saving in Classic versions.
-
-- GH-3131: Fixed not working with proxy ports greater than 32767.
-
-- Proxy login details are no longer logged in files.
-
-- GH-3467: The launch could stall in the ScanModFolders task if the mod folders didn't exist yet.
-
-- GH-3602: Pre-launch commands could fail on first launch of the instance because the .minecraft folder has not been created yet.
-
-#### Technical changes
-
-- GH-3234: At build time, the meta URL can be changed.
-
-- Removed some hacks previously required to get Forge working
-
- MultiMC no longer contains pack200 and the custom lzma format support used by Forge only.
-
-- Some preparations have been done to allow downloading Java runtimes from Mojang - support for the Piston repository.
-
-- Compatibility with unusual build environments has been increased
-
-## MultiMC 0.6.11
-
-This adds Forge 1.13+ support using [ForgeWrapper](https://github.com/ZekerZhayard/ForgeWrapper) by ZekerZhayard.
-
-#### New or changed features
-
-- GH-2988: You can now import instances and curse modpacks from the command line with the `--import` option followed by either an URL or a local file path.
-
-- GH-2544: MultiMC now supports downloading library files without including them on the Java classpath.
-
- This is done by adding them to the `mavenFiles` list instead of the `libraries` list.
-
- Such downloads are not deduplicated or version upgraded like libraries are.
-
- This enables ForgeWrapper to work - MultiMC downloads all the files, and ForgeWrapper runs the Forge installer during instance start when needed.
-
-## MultiMC 0.6.8
-
-This is mostly about removal of the 'curse URL' related features, because they were of low quality and generally unreliable.
-
-There are some bug fixes included.
-
-MultiMC also migrated to a new continuous deployment system, which makes everything that much smoother.
-
-### New or changed features
-
-- GH-852: Instance group expansion status now saves/loads as expected.
-
-- The bees have invaded the launcher. We now have a bee icon.
-
-- Translations have been overhauled, yet again...
-
- - We now have a [crowdin site](https://translate.multimc.org/) for all the translation work.
-
- - Translations are made based on the development version, and for the development version.
-
- - Many strings have been tweaked to make translating the application easier.
-
- - When selecting languages, European Portuguese is now displaying properly.
-
-- Accessibility has been further improved - the main window reads as `MultiMC`, not a long string of nonsensical version numbers, when announced by a screen reader.
-
-- Removed the unimplemented Technic page from instance creation dialog.
-
-- GH-2859: Broken twitch URL import method was removed.
-
-- GH-2819: Filter bar in mod lists now also works with descriptions and author lists.
-
-- GH-2832: Version page now has buttons for opening the Minecraft and internal libraries folders of the instance.
-
-- GH-2769: When copying an instance, there's now an option to keep or remove the total play time from the copy.
-
-### Bugfixes
-
-- GH-2880: Clicking the service status indicators now opens a valid site again, instead of going nowhere.
-
-- GH-2853: When collapsing groups in instance view, the action no longer becomes 'sticky' and doesn't apply to items clicked afterwards.
-
-- GH-2787: "Download All" button works again.
-
-- When a component is customized, the launcher will not try to update it in an infinite loop when something else requires a different version.
-
-
-## MultiMC 0.6.7
-
-The previous release introduced some extra buttons that made the instance window way too big for some displays. This release is aimed at fixing that, along with other UI and performance improvements.
-
-There are some accessibility fixes thrown in too.
-
-### New or changed features
-
-- Mod lists are now asynchronous and heavily threaded.
-
- Basically, both faster and more responsive.
-
- The changes necessary for this also pave the way for having other sources of mod metadata, and for adding more mod-related features support in general.
-
-- Mod list printed in log has been improved.
-
- It now also shows disabled mods, and has prefix and suffix that shows if the mod is enabled, and if it is a folder.
-
-- You can now enable and disable mods with the keyboard.
-
- Toggle with enter.
-
-- Enabling and disabling mods no longer makes the list forget what was selected.
-
-- GH-358: Switched all the dialog pages from using buttons in layouts to toolbars.
-
- Toolbar buttons are smaller, and the toolbars can overflow buttons into an overflow space. This allows requiring a lot less space for the windows.
-
- All of the relevant pages now also have context menus to offset the issues toolbars create when using screen readers.
-
-- Main window instance list is now compatible with screen readers.
-
- If you have poor or no eyesight, this makes MultiMC usable.
-
-- More instance pages are now visible when the instance is running.
-
- Mods, version and the like should now be visible, but most of the controls are disabled until the game closes.
-
-- GH-2550, GH-2722, GH-2762: Mod list sorting is much improved.
-
- You can now sort mods by enabled status.
-
- Sorting by version actually looks at the versions as versions, not words.
-
- Sorting by name ignores 'The' prefixes in mod names. For example, 'The Betweenlands' will be sorted as 'Betweenlands'.
-
- Sorting cascades from 'Enabled' to 'Name' and then 'Version'. This means that if you sort 'Enabled', the enabled and disabled mods are still sorted
- by name and mods with the same name will be also sorted by version.
-
-## MultiMC 0.6.6
-
-This release is mostly the smaller things that have accumulated over time, along with a big change in linux packaging.
-
-No 1.13+ Forge news yet. That's going to be a major overhaul of many of the internals of MultiMC.
-
-### **IMPORTANT**
-
-On linux, MultiMC no longer bundles the Qt libraries. This fixes many issues, but it might not run after the update unless you have the required libraries installed.
-
-Make sure you have the following packages before you update:
-
-- Arch: `qt5-base`
-- Debian/Ubuntu: `qt5-default`
-- CentOS/RHEL/Fedora: `qt5-qtbase-gui`
-- Suse: `libqt5-qtbase`
-
-MultiMC on linux is built with Qt 5.4 and older versions of Qt will not work.
-
-This should be a massive improvement to system integration on linux and resolves GH-1784, GH-2605, GH-1979, GH-2271, GH-1992, GH-1816 and their many duplicates.
-
-### New or changed features
-
-- GH-2487: No is now the default button when deleting instances.
-
-- It is now possible to launch with profilers in offline mode.
-
-- Massively improved support for icon formats when importing and exporting instances.
-
- All of the formats MultiMC supports are now supported in exported instances too, instead of just PNG.
-
-- Added the pocket fox icon.
-
- We still have the big one under the staircase. It's cute. Just hide your chickens.
-
-- Global settings can be opened from instance settings where appropriate.
-
- Many people use the instance overrides where using the global settings would be more appropriate. Hopefully this makes it clearer that the instance settings are overrides for the global settings.
-
-- Added direct Fabric loader support.
-
- Much overdue. It's good. Fabric mod metadata is also supported in the mod pages.
-
-- MultiMC now recognizes the new `experimental` Minecraft versions.
-
- Go mess with the combat experiment. It's interesting.
-
-- Added Twitch URL as an option to the Add Instance dialog.
-
- You can now drag the purple download buttons from CurseForge into MultiMC and get a modpack out of it. Much easier!
-
-### Bugfixes
-
-- Translation folder is now created sooner, making first launch translation fetch work again.
-
-- GH-2716: MultiMC will no longer try to censor values shorter than 4 characters in logs.
-
- It was actually leaking information and destroying the logs instead of helping.
-
-- GH-2551: Trim server name and IP before saving them.
-
-- GH-2591: Fix multiple potential memory leaks and crashes related to destroying objects with Qt memory lifecycle model.
-
-- `run.sh` on linux now passes all arguments to MultiMC.
-
-- Adding a disabled mod duplicate now replaces the existing mod.
-
-- GH-2592: Newly created instances are now selected again. This was a very old regression.
-
-- GH-689: MultiMC no longer creates an imgur album for single screenshot uploads.
-
-- GH-1813: `#` is now saved properly when used in instance notes.
-
-- GH-2515: Deleting an instance externally while the delete dialog is open no longer leads to some other instance being deleted when you click OK.
-
-- GH-2499: Proxy settings are applied immediately and no longer need an application restart.
-
-- GH-1701: When downloading updates, the text now reflects the number of downloaded files better.
-
-- Icon scaling issues on macOS should now be fixed.
-
-## MultiMC 0.6.5
-
-Finalizing the translation workflow improvements and adding fixes for sounds missing in old game versions.
-
-### New or changed features
-
-- UI for the language settings has been unified across the application
-
-- GH-2209: Sounds in old (pre-1.6) versions should now work again
-
- The launcher now downloads the correct assets and reconstructs the `resources` folder inside instances. This mirrors the same fix implemented in vanilla.
-
- Also, a minor issue with the reconstruction being done twice per launch has been fixed.
-
-
-## MultiMC 0.6.4
-
-Update for a better translation workflow, and new FTB API location.
-
-### New or changed features
-
-- FTB API location has changed
-
- MultiMC now uses the new location and should keep working.
-
-- Translations have been overhauled, again
-
- It is now possible to put the translation source `.po` files into the `translations` folder and see changes in MultiMC immediately.
-
- The new translation workflow is like this:
- * Get a `.po` file from here the [translations repository](https://github.com/MultiMC/MultiMC5-translate).
- * Alternatively, get the `template.pot` and start a new translation based on it.
- * Put it in the `translations` folder.
- * Edit it with [POEdit](https://poedit.net/).
- * See the changes in real time.
- * When done, post the changed files on discord, or github.
-
- When using a `.po`