From 75f2dab3c87d9d88979553792473a5aace4c96bf Mon Sep 17 00:00:00 2001 From: Ghosty Date: Fri, 3 Dec 2021 03:02:58 +0100 Subject: [PATCH 01/37] 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 --- .../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 + + From e9c52ec69663b2cb28a40428c96de749bdf49547 Mon Sep 17 00:00:00 2001 From: Ghosty Date: Fri, 3 Dec 2021 16:08:11 +0100 Subject: [PATCH 02/37] 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 --- .../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) From a97d0a36f4807e082273d0f137186a5cebf6cd5d Mon Sep 17 00:00:00 2001 From: Ghosty Date: Fri, 3 Dec 2021 16:29:28 +0100 Subject: [PATCH 03/37] 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; } From 03d730073281c44d3d7a3cdb3ecaa78c178d1fd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 8 Jan 2022 11:14:07 +0100 Subject: [PATCH 04/37] 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; } From addf5f4e52cf869375e2803afa0fa14dbaf71b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 8 Jan 2022 11:45:10 +0100 Subject: [PATCH 05/37] NOISSUE update README for clarity --- README.md | 55 ++++++++++++++----------------------------------------- 1 file changed, 14 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 7c278866..89b21f0b 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ MultiMC logo

-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: - +## 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. -### Linux (AMD64) - -Build: - - -Deploy: - +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. -### macOS (AMD64) - -Build: - - -Deploy: - +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. -### Windows (Intel32) - -Build: - - -Deploy: - +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. From 52420963cf1f258f14cedd7ff41412338d73b369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 8 Jan 2022 12:26:16 +0100 Subject: [PATCH 06/37] 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()) From 86d99f80c3b3c161688f6ce2fa222eb1a3ed5a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 11:43:19 +0100 Subject: [PATCH 07/37] 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.") From c1bf31cb27a2b0ac675d70b6204003c1d834bbf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 12:05:40 +0100 Subject: [PATCH 08/37] 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 { From aa770b63fba8ede60636c6c2473a20d4fe48d3a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 12:46:20 +0100 Subject: [PATCH 09/37] 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(); } From 917f8a31e33e021d1eed84f6d731d3c1dc15b3e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 16 Jan 2022 12:51:42 +0100 Subject: [PATCH 10/37] 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.") 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: [PATCH 11/37] 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). From 8b31c638f344322822b9e05daead542b4ad70638 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 22 Jan 2022 21:58:32 +0100 Subject: [PATCH 12/37] 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"); From c1aaf89baa6166707d7d489fe8ec1bcad1155df1 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Thu, 27 Jan 2022 19:06:07 -0500 Subject: [PATCH 13/37] 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) From 3aa9f5c376720f33c4ca77dc3c8803d6db5e7575 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Fri, 28 Jan 2022 19:42:30 +0100 Subject: [PATCH 14/37] 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 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: [PATCH 15/37] 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 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: [PATCH 16/37] 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 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: [PATCH 17/37] 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 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: [PATCH 18/37] 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 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: [PATCH 19/37] 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 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: [PATCH 20/37] 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 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: [PATCH 21/37] 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! 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: [PATCH 22/37] 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 From 7df5091fdcea086a05f8c76467707ca132a6c999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20=C3=87al=C4=B1=C5=9Fkan?= Date: Sat, 29 Jan 2022 17:35:50 +0300 Subject: [PATCH 23/37] 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": { From b710b719a830aff3bd31cd99af06096b8ce97c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20=C3=87al=C4=B1=C5=9Fkan?= Date: Sat, 29 Jan 2022 17:38:12 +0300 Subject: [PATCH 24/37] 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 ]} ''; } 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: [PATCH 25/37] 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 -`. From 0211ee3ef10ca169354ac939761f0128e16ff026 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Mon, 31 Jan 2022 09:09:58 -0500 Subject: [PATCH 26/37] 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"; From 7a7a937f1e15f36983bab6b676ce86f82df8c03e Mon Sep 17 00:00:00 2001 From: swirl Date: Mon, 31 Jan 2022 09:54:16 -0500 Subject: [PATCH 27/37] 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` file, MultiMC logs which strings are missing from the translation on the currently displayed UI screen(s), and which one are marked as fuzzy. This should make it easy to determine what's important. - -## MultiMC 0.6.3 - -This is a release mostly aimed at getting all the small changes and fixes out of the door. - -### Potentially breaking changes - -- Local libraries are only loaded from inside the instances now. - - Before, MultiMC allowed loading local libraries from the main `libraries` folder. - This in turn allowed existence of instances which could not be transported from one installation of MultiMC to another. - - GH-2475: A bug that allowed the launch to continue with missing local libraries has also been fixed. - - Effectively, you will get errors from launching such instances. You can fix the errors by copying the libraries to the locations indicated in the error log. - -### New or changed features - -- FTB import now has support for third party modpack codes. - - Better late than never? - -- Instance creation can now be interrupted / aborted. - -- GH-2053: You can now inspect and change the `servers.dat` file from MultiMC. - -- MultiMC now uses the https protocol for many more network requests. - -- GH-2352: There is now a button to open the `.minecraft` folder inside the selected instance. - -- GH-2232: MultiMC can now use `.gif` icons (not animated). - -- GH-2101: Instance renaming is now done inline, in the actual instance list. - -- GH-2452: When deleting a group, MultiMC asks for confirmation. - -- GH-1552: PermGen is no longer shown when it's not appropriate (java 8 and up). - -- GH-2144: When changing versions of a component like Forge, the current version is marked with `(installed)`. - -- GH-2374: World list has been improved: - - - Alternating line background colors have been added. - - The world game type is now shown in a column. - -- GH-2384: When installing a mod, existing mod with the same file name will be replaced. - -- The background cat sometimes wears a silly hat. - -### Bugfixes - -- GH-2252: Fixed odd drag and drop behaviour on Windows - - Drag and drop of URLs from a browser locked up the browser. This needs further fixes on macOS. - -- Instance naming fixes: - - - GH-2355: Whitespace prefix or suffix is no longer allowed. - - GH-2238: Newlines in instance names are no longer allowed either. - -- GH-2412: MultiMC no longer leaves behind zombie processes after launch on linux. - -- GH-2382: Version filter for the forge/liteloader version lists was not matching the whole version name. - -- GH-2488: More issues with broken relative URL redirection in Qt have been fixed. - -- Some memory leaks of downloaded data have been fixed. - -- MultiMC now handles instance groups and instance group saving better. - - Long deleted groups no longer persist in the group list. - -- GH-2467: Broken (and nonsensical) sorting indicators have been removed from the versions page header. - -## MultiMC 0.6.2 - -### New or changed features - -- MultiMC now has FTB integration: - - - Official and third-party modpacks work. - - Codes for private modpacks are not implemented yet. - -- Version lists now show release dates where available. - -- New instance dialog: - - - It has been completely overhauled and now uses the same kind of paged dialog design as the rest of MultiMC. - - Vanilla version list now has a filter for version types. - - FTB integration gets a page here, along with zip import and vanilla. - - Technic integration is a definite possibility in the future. - - If there is a decent way to list Twitch modpacks, proper Twitch modpack integration is a possibility too. - - There still is no modpack updating. Much more work is needed for that. - -- Other Logs page: - - - Now has a search bar, just like the main log page. - - GH-604: Uses the same font settings as the main log. - -- Icon selection dialog now has a button for opening the icons folder. -- MultiMC now has a shinier, updated logo. -- GH-2150: Custom commands have been split from the java settings into a new page. - - The use of variables in custom commands is now better documented. - The label shows that they need to be prefixed by `$`. - -- Player name is no longer censored in logs. -- MultiMC now probes the system for the name of the linux distribution as part of analytics. This will be used to focus future packaging efforts. -- Secret cheat code has been added... What does it do? - -### Bugfixes - -- VisualVM integration now works when VisualVM is bundled inside the MultiMC folder (uses a relative path). -- When reinstalling a component, or changing a component version, the custom version is now removed first. -- GH-2134: Fix multiple issues with the skin upload: - - - When uploading a skin, the model selection now works correctly again. - - When the new skin file is specified using the `file://` URL scheme, it will now work correctly. - -- GH-2143: Mojang services status display now reflects the current set of services. -- GH-2154: MultiMC now ignores the `hidden` flag of instance folders and they should show up correctly. -- When migrating Legacy instances, custom `minecraft.jar` will be preserved. - -## MultiMC 0.6.1 - -### New or changed features - -- GH-2087: The version page now has a button that will download all the necessary files without launching the game. - -### Bugfixes - -- Several issues related to bad URLs returned by the Curse servers have been fixed. - - The Curse platform does not use valid URLs according to [RFC 3986, section 2](https://tools.ietf.org/html/rfc3986#section-2) by including spaces and UTF-8 characters without percent encoding them. - MultiMC has been improved to handle these invalid URLs and report errors in case other invalid URLs are encountered. - This affected pretty much all modpack imports. You may want to reimport them if you were affected by this. - -- GH-1780, GH-2102, GH-2103: Multiple issues with the build system and packaging on linux have been fixed. - - - Installed libraries now no longer have `RPATH` set and have the correct file permissions when using the `lin-system` layout. - - Installation using the `lin-bundle` layout has been fixed on platforms that use position independent code. - - `CMAKE_INSTALL_PREFIX` and `DESTDIR` now behave as expected on linux platforms. - -- MultiMC no longer logs the process environment and launch scripts to its log files. - -- GH-2089: Mention of instance tracking has been removed from the deletion confirmation dialog. - -- GH-2087: The obsolete 'revert to vanilla' logic that was previously applied to versions has been removed. - - This should remove some confusing situations that could happen while changing and manipulation instance versions. - -- The temporary `Minecraft.jar` is now removed from the instance after it stops running. - -- GH-2119: The main instance view scrollbar now correctly updates when the window is resized without changing the number of icons that can fit into it horizontally. - -## MultiMC 0.6.0 - -### New or changed features - -- Contact with Mojang, Forge and LiteLoader servers is no longer handled by MultiMC, but a metadata server. Instead of generating and storing the files at the point of installation, they are updated hourly on the server and can be fixed when something goes wrong. - - This goes along with some changes to the instance format and to the metadata format. - - Instead of including the metadata JSON files directly in the instances, the instances now contain a new `mmc-pack.json` file that specifies versions to be used. - - The metadata can be found at [v1.meta.multimc.org](https://v1.meta.multimc.org), the [meta.multimc.org](https://meta.multimc.org) endpoint that was used during development will be replaced by documentation. - - This should be a much more reliable solution going forward, because it allows fixing issues without releasing new versions of MultiMC or reinstalling Forge/LiteLoader/others. - -- Tracking of FTB launcher instances has been replaced with direct import of Curse modpacks. - - You can import the modpack zip files from CurseForge and FTB: - - Get the zip, for example from [here](https://www.feed-the-beast.com/projects/ftb-retro-ssp/files/2219693). - - Drag & Drop it on top of the main window, or select it in the new instance dialog. - - Let the magic happen. - - If you need help moving over your old instances or worlds from the FTB launcher, stop by in the MultiMC discord server. - - The Curse import functionality is there thanks to the work [@Dries007](https://twitter.com/driesk007) and [@NikkiAI](https://twitter.com/NikkyAI) have done on [CurseMeta](https://cursemeta.dries007.net/). - -- GH-1314: MultiMC now allows replacing the main jar in an instance without having to mod the Mojang jars. - - This goes along with changing the wording of the jar mod button to make it clear that it adds files to the main Minecraft jar instead of installing mod files with the `.jar` extension. - -- Because the current instance format can now handle replacing the main jar, Legacy format instances are no longer directly supported. - - Instead of launching, you will be prompted to convert them to the current instance format. - If the automated process fails, stop by in the MultiMC discord server and ask for help. - -- Main window UI has been changed for increased clarity. - - Many people had issues finding the settings and instead ended up using the per-instance overrides. The main toolbar now has labels and the per-instance overrides have been deemphasized by removing the direct path to them from the main window. In general, it should be easier to find the right settings menu without getting things completely wrong on the first try. - -- GH-1997: MultiMC now supports Java 9. - - This does not mean that the current mod loaders and mods do, but you can run Vanilla Minecraft with Java 9 now. - - However, Java 9 will come up last in the lists when multiple versions are installed and its use is strongly discouraged. - -- GH-2026: You can launch Minecraft 1.13 snapshots - and hopefully also 1.13 once it is released. - - The bare minimum of changes needed for 1.13 to launch has been done. - - This does not mean support for modded 1.13! - - It is not yet clear what it will even look like and what exactly will be needed for Forge to be able to install properly. - -- Bundled Qt libraries have been updated to version 5.6.3 on macOS and Windows - - This means less issues with SSL encryption on macOS and better support for HiDPI/retina displays, along with many bug fixes. - The workarounds for SSL problems on macOS have been removed thanks to this. - -- Linux builds were moved to a newer version of Ubuntu (14.04) - - This means better support on newer distribution releases, and dropping support for older distributions. - -- Bundled OpenSSL library on Windows no longer requires Visual Studio runtime libraries. - - This should avoid issues with missing runtime libraries. - -- GH-1855: The instance window now has an offline launch button. - -- GH-1886: UI now clarifies that MultiMC proxy settings do not apply to the game. - -- It is now possible to package MultiMC on linux without hacks. - - The build system has a concept of 'install layouts'. Example Arch linux package that uses this (multimc-git) is [available in the AUR](https://aur.archlinux.org/packages/multimc-git). - -- Wrapper commands now support arguments. - - Previously, they would be treated as a single command -- spaces and all. - -- UI elements that set maximum JVM memory are now limited to the amount of system memory present. - - Before, they were hardcoded. - - - - This is to accommodate the needs of some new mods for ancient Minecraft versions that do not work well with the applet wrapper. - -- On instance launch, the used GPU and graphics driver are reported - but only on linux. - - Other platforms will hopefully get this in the future. - -- There are some under the hood improvements for ancient Minecraft versions and versions not provided by Mojang. - - - The `haspaid` parameter is set for the applet wrapper. - - MultiMC will prefer to use `.minecraft` instead of `minecraft` folder inside the instances now. - - There is some preliminary support for classic multiplayer - see [this workflowy list](https://workflowy.com/s/2EyDMcp7CU#/1cbfc198cf28) for details. - - A new `noapplet` trait has been added to allow running legacy Minecraft versions without the applet wrapper. - -- Mods without changed metadata (Example Mod) are now listed under their filename instead. - -- Tweaker list in metadata now overrides the order of already present tweakers. - - This allows running [Vivecraft](http://www.vivecraft.org/). Official support will hopefully follow. - -- Instance icons can now be in the SVG format. Also, aspect ratio of SVG icons is now preserved in the instance toolbar. - -- GH-1082: It is now possible to disable and enable version components (packages) similarly to mods. - -- A new material design / flat icon theme has been added. - -- When changing instance component versions, the present version is selected first. - -### Bugfixes - -- paste.ee upload now works again. - - MultiMC now uses its new API. If you used a custom API key before, you will need to generate a new one. - -- GH-1873, GH-1873, GH-1875 : The main window can now be closed regardless of running instances and running instances directly will not create a main window. - -- GH-1854: MultiMC should no longer crash when the instance is closed while the kill confirmation dialog is open. - -- GH-1956: Launch will abort sooner when important files are missing. - -- GH-1874: Instance launching and updating MultiMC are now mutually exclusive. - - It was possible to do both at the same time, with undefined results. - -- GH-1864: imgur album creation now works again. - -- GH-1876: Various included libraries have been changed to satisfy their license terms. - - Namely: - - pack200 (GPL with classpath exception, now a shared library) - - iconfix (LGPL, now a shared library) - - quazip (LGPL, now a shared library) - - ColumnResizer (replaced with a BSD-3 version). - -- GH-1882: Update dialog will now save its location and size. - -- GH-1885: MultiMC will now correctly download zero-byte files. - - No content does not equal no file and a presence of a file can mean the difference between something working or not. - -- When importing modpacks, file permissions from the pack archive will no longer be preserved. - - The archives are sometimes broken and have invalid permissions, especially when coming from sources other than MultiMC. - -- Instance export filter has been fixed. - - The filtering logic was picking and ignoring incorrect files under some conditions. Also, hidden files were ignored. - -- Download progress bars are now less jumpy. - - Instead of tracking the total size of all downloads, each download gets a fixed share of the progress bar. - In many cases, the size of files is unknown before a download starts. The change means that the total progress bar size cannot increase as new downloads start and file sizes are discovered. - -- GH-1927: fix crash bugs related to FML library downloads succeeding multiple times. - -- Rare problems with error 201 during Mojang authentication have been fixed. - -- GH-1971: MultiMC will now no longer check path prefixes when importing instances. - - This has caused more issues than it solved. Now it will simply try to move the files instead of giving up early. - -- Instance import and creation have been overhauled in general for increased reliability. - -- Hardcoded link colors in various dialogs and dialog pages have been fixed and now should follow theme palettes. - -- GH-1993: Minimum and maximum JVM memory settings will now get swapped if set the wrong way. - - The values self-correct on both settings save and load now. - -- GH-2050: Fixed behavior of cancel buttons when browsing for paths. - - This affected various settings dialogs and pages, setting the paths to an invalid value when the dialogs were closed with the `Cancel` button. - -- The checkboxes in the accounts settings page now have the correct appearance. - -- MultiMC responds to account manipulation better. - - - Setting and resetting default account will update the account list properly. - - Removing the active account will now also reset it (previously, it would 'stay around'). - - The accounts model is no longer reset by every action. - -- When closing and reopening the instance window, the log settings are preserved. - -- In the instance export dialog, the sorting order has been changed to go from `a` to `z`, not backwards. - -## MultiMC 0.5.1 - -### Improvements - -- Log uploads now use HTTPS because the [paste.ee](https://paste.ee) site is switching to HTTPS only. - -- Console now has the line limit and overflow settings properly set when hidden. - - Before, if you didn't have the console set to show up on launch, it would have some low default values set. - This meant that you wouldn't get enough of the log when the game crashed. - -- GH-1802: Log resize is now handled properly. - - The log could end up with many empty lines because the wrong maximum size was used during the resize, potentially losing some lines. - -- GH-1807: Fixed 'loggging' typo in console overflow notification. - -- GH-1801: Launch script is no longer dumped into MultiMC's log on instance launch. - -- GH-1065: Use of 'folder' and 'directory' in the UI has been unified to 'folder'. - -- GH-1788: A problem with missing translation templates in the setup wizard pages has been fixed. - - It should be possible to translate everything again. - -- GH-1789: Deletion of custom icon has been fixed. - - It wasn't possible to do it from the MultiMC icon selection dialog. - -- GH-1790: While using the system theme on macOS, dialogs had wrong colors. - - The wrong colors are now only visible immediately after changing the theme to 'System'. An application restart will fix the colors. - - The underlying issue cannot be easily fixed. - - Upstream bug: https://bugreports.qt.io/browse/QTBUG-58268 - -- GH-1793: The Java wizard page did not show up as expected when moving MultiMC between different computers. - - The page should now show up as expected. - -- GH-1794: Copied FTB instances did not work properly. - - The instance type of the copy was not set, causing it to not be usable. - -## MultiMC 0.5.0 - -### New or changed features - -- GH-338, GH-513, GH-700: Edit instance dialog and Console window have been unified - - The resulting instance window can be closed or reopened at any point, it does not matter if the instance is running or not. The list of available pages in the instance window changes with instance state. - - Multiple instances can now run from the same MultiMC - It's even more **multi** now. - - On launch, the main window is kept open and running instances are marked with a badge. Opening the instance window is no longer the default action. Second activation of a running instance opens the instance window. - - MultiMC can be entirely closed, keeping Minecraft instances running. However, if you close MultiMC, play time tracking, logging and crash reporting will not work. - - Accounts which are in use are marked as such. If you plan to run multiple instances with multiple accounts, it is advisable to not set a default account to make it ask which one to use on launch. - -- It is no longer possible to run multiple copies of MultiMC from a single folder - - This generally caused strange configuration and Mojang login issues because the running MultiMC copies did not know about each other. - - With the ability to launch multiple instances with different accounts, it is no longer needed. - - Trying to run a second copy will focus the existing window. If MultiMC was started without a main window, a new main window will be opened. If the second copy is launching an instance from the command line, it will launch in the first copy instead. - - This feature is also used for better checking of correct update completion (GH-1726). It should no longer be possible for MultiMC to end up in a state when it is unable to start - the old version checks that the new one can start and respond to liveness checks by writing a file. - -- GH-903: MultiMC now supports theming - - By default, it comes with a Dark, Bright, System (the old default) and Custom theme. - - The Custom theme can change all of the colors, change the Qt widget theme and style the whole UI with CSS rules. - Files you can customize are created in `themes/custom/`. The CSS theming is similar to what TeamSpeak uses. - - Ultimately, this is a start, not a final solution. If you are interested in making custom themes and would like to shape the direction this takes in the future, ask on Discord. :) - -- Translations have been overhauled - - You no longer need to restart MultiMC to change its active translation. MultiMC also asks which translation to use on the first start. - - There is a lot that has to be done with translations, but at least now it should be easier to work with them and use them. - -- MultiMC now includes Google Analytics - - The purpose of this is to determine where to focus future effort. Generally, only basic technical information is collected: - - - OS name, version, and architecture - - Java version, architecture and memory settings - - MultiMC version - - System RAM size - - It does not activate until you agree with it. It may be expanded upon later, in which case you will be asked to agree again. - -- Java selection on start has been replaced with a more robust solution - - You can select from the list as before, but also provide your own Java and set the basic memory sizes - Heap and PermGen (for java < 8). - - It is checking the configuration and selected Java on the fly and provides more or less instant feedback. - -- Java detection has been improved - - MultiMC will prefer looking for `javaw.exe` on Windows and now can scan most, if not all the usual Linux java paths. - -- Java memory settings now allow running with less memory - - The minimum has been changed to 128 MB. - -- There is now an initial setup wizard - - So far, it is used for selecting the translation to use, the analytics agreement and initial Java setup. - -- Existing MCEdit integration has been replaced by the Worlds page in the Instance/Console window - - It supports renaming, copying, and deleting worlds, opening them in MCEdit and copying the world seed without the need to launch Minecraft. - - The Linux version of MCEdit is now also started from the shell script, fixing some compatibility issues. - -- GH-767: Minecraft skin upload - - The `Upload Skin` button is located on the Accounts page. - -- It is now possible to turn off line wrapping in the Minecraft log -- Groups now have a proper context menu - - You can delete groups and create instances in them using the context menu. Just right click anywhere inside a group that's not an instance. - -- Exporting of tracked FTB instances has been disabled - - It did not produce viable instances. - -- Added support for Liteloader snapshots - - Requested many times, it's finally available. - -- GH-1635, GH-1273, GH-589, GH-842, GH-901, GH-1117: Mod lists have been improved heavily - - - There is filter bar to allow finding mods in large packs quickly. - - Extended selection is allowed (does not have to be continuous). - - You can enable and disable many mods at the same time. - - Sorting by clicking on the column headers is now possible. - - Mod lists have a column for when a mod was changed last time (or added using the mod list). - - You can open the `config` folder from the mods list now. - -- GH-352: It is now possible to cancel an instance update. - -- Instance launch button now has a drop-down arrow instead of click and hold. - - This should make launching with profilers more discoverable. - -- When instances do not exit properly (crash), they get a badge - - This should make it easier to spot what crashed if you have multiple running. - -- Instances can now contain libraries - - Any libraries stored in `$instanceroot/libraries/` will override the libraries from MultiMC's global folders, as long as they are marked `local` in the JSON patch. - - This should make installing library-based mods easier in the future, and allow to include them in modpacks. - -### Improvements - -- GH-1433: The account selection dialog no longer shows e-mail addresses when no default account is selected. - - Instead, it shows Minecraft profile names. - -- GH-1643: The preferred language property is no longer being censored in logs. - - Because the values are often very short (`en` for example), it was simply not usable. - -- GH-1521: JSON editor now works when customized. - -- GH-1560: Leading whitespace is now removed from instance names on creation and renaming - - Leading and trailing spaces in names can confuse Windows Explorer and Java. - -- GH-1586: MultiMC now prints to command line on Windows, so you can review the command line options. - -- GH-1699: Linux builds no longer contain the XCB library - - This caused many compatibility issues on with certain Linux graphics drivers and prevented MultiMC from starting. - -- GH-1731: it was possible for the Screenshots page to show a list of all system drives. - - Trying to delete said system drives obviously lead to data loss. Additional checks have been added to prevent this from happening. - -- GH-1670: "Instance update failed because: Too soon! Let the LWJGL list load :)." has been fixed. - - This fixes launching of legacy (and legacy FTB) instances. - -- GH-1778: Jar modded Minecraft.jar location breaks mod assumptions - - Some ancient mods require the modded `Minecraft.jar` to be in `.minecraft/bin`, inside the instance. Now it is placed there. - -### Internals - -- Full support for the current Mojang downloads JSON format. - - This includes checksum verification, when available. - -- Minecraft logging has been overhauled - - The log now persists after the instance/console window is closed. - -- GH-575: Mod lists got a refactor - - The original issue is about adding sub-folder listings to mod lists. However, this is simply a refactor that separates the old Jar mod list from the less complex Loader mods. It allowed all of the mod list improvements to happen. - -- The network code has been heavily reworked - - Most issues related to slow networks and failing downloads should be a thing of the past. - This also includes post-download validation of the download - like using SHA1 checksums. - -- Minecraft launching has been reworked - - It is now a lot of tiny reusable tasks that chain together. - - MultiMC now also has a separate launch method that works more like the Mojang launcher (not using a launcher part, but running Java directly). - -## MultiMC 0.4.11 - -This release contains mainly a workaround for Minecraft 1.9 support and returned support for OSX 10.7. - -### **IMPORTANT** - -- GH-1410: MultiMC crashes on launch on OSX 10.7 - - MultiMC didn't work on OSX 10.7 because of an oversight in the build server setup. This has been fixed. - -- GH-1453: Minecraft 1.9 snapshots didn't download and launch properly - - This has been caused by a change on Mojang servers - the data is now stored in a different location and the files describing the releases have a different format. The required changes on MultiMC side aren't complete yet, but it's enough to get snapshots working. - - Full support for the new version file format will come in the next release. - -- MultiMC version file format was simplified - - Some undocumented and unused features were removed from the format. Mostly version patches that removed libraries, advanced library application, and merging rules, and things of similar nature. If you used them, you used an undocumented feature that is impossible to reach from the UI. - -### Improvements - -- GH-1502: When the locally cached Minecraft version was deleted, the instance that needed it would have to be started twice - - This was caused by generating the list of launch instructions before the update. It is now fixed. - -- Version file issues are now reported in the instance's `Version` page. - - This doesn't apply to every possible issue yet and will be expanded upon in the next release. - -## MultiMC 0.4.10 - -Second hotfix for issues with wifi connections. - -### **IMPORTANT** - -- GH-1422: Huge ping spikes while using MultiMC - - Another day, another fix. The bearer plugins added in 0.4.9 didn't really help and we ran into more bugs. - - This time, the presence of the network bearer plugins caused a lot of network lag for people on wifi connections. - - Because this wasn't a problem on the previous version of Qt MultiMC used (5.4.2), I ended up reverting to that. This is a temporary solution until the Qt framework can be rebuilt and retested for every platform without this broken feature. - - The upstream bug is [QTBUG-40332](https://bugreports.qt.io/browse/QTBUG-40332) and despite being closed, it is far from fixed. - -Because of the reverted Qt version, OSX 10.7 *might* work again. If it does, please do tell, it would help with figuring out what went wrong there :) - - -## MultiMC 0.4.9 - -Hotfix for issues with wifi connections. - -### **IMPORTANT** - -- GH-1408: MultiMC 0.4.8 doesn't work on wireless connections. - - This is especially the case on Windows. If you already updated to 0.4.8, you will need to do a manual update, or use a wired connection to do the update. - - The issue was caused by a change in the underlying framework (Qt), and MultiMC not including the network bearer plugins. This made it think that the connection is always down and not try to contact any servers because of that. - - The upstream bug is [QTBUG-49267](https://bugreports.qt.io/browse/QTBUG-49267). - -- GH-1410: MultiMC crashes on launch on OS X 10.7.5 - - OSX 10.7.x is no longer supported by Apple and I do not have a system to test and fix this. - - So, this is likely **NOT** going to be fixed - please update your OS if you are still running 10.7. - -### Improvements - -- GH-1362: When uploading or copying the Minecraft log, the action is logged, including a full timestamp. - -## MultiMC 0.4.8 - -Fluffy and functional! - -### **IMPORTANT** - -- GH-1402: MultiMC will keep its binary filename after an update if you rename it. - - Note that this doesn't happen with this (0.4.8) update yet, because the old update method is still used. - - If you renamed `MultiMC.exe` for any reason, you will have to manually remove the renamed file after the update and rename the new `MultiMC.exe`. - - Future updates should no longer have this issue. - - -### New features - -- GH-1047, GH-1233: MultiMC now includes basic Minecraft world management. - - This is a new page in the console/edit instance window. - - You can: - - Copy worlds - - Delete worlds - - Copy the world seed value - - Run MCEdit - the MCEdit feature has been moved here. - -- GH-1217: MultiMC now tracks instance play time and displays it when the instance is selected. - -- New buttons on the top toolbar: - - GH-1238: button for the [MultiMC subreddit](https://www.reddit.com/r/MultiMC/). - - GH-1397: button for joining the [MultiMC discord voice/chat server](https://discord.gg/0k2zsXGNHs0fE4Wm). - - Both are there for you to interact with other MultiMC users and us. - -- GH-253, GH-1300: MultiMC can now be started with the `-l "Instance ID"` parameter, launching the specified instance directly. - -### Improvements - -- Instance list - - GH-1121: Instances are now selected after you create them. - - GH-93: When copying an instance, you can tell MultiMC to not copy the worlds. - -- Mod and resource pack lists - - GH-1237: Mod info is now clickable and selectable. - - GH-1322: Mod description `...` link will no longer pop up multiple dialogs. - - GH-1178: When dragged and dropped, folder based mods and resource packs will be copied properly on OSX. - -- MCEdit integration: - - GH-1009: MCEdit Unified on linux is now recognized properly. - -- Mojang login and accounts: - - GH-1158: A unique ID is generated on the MultiMC side before login, instead of letting the server decide. - - When a password is required, the user login is partially obscured. - - The dropdown menu on the main window now lists profiles, not accounts. - -- Modpacks: - - GH-1140: Modpack downloads now check for update on the server even if the file is already locally available. - - GH-1148: When creating an instance from modpack, the instance name will be guessed based on the modpack file or URL (unless you set it yourself). - - GH-1280: While importing modpacks, the progress dialog now says what is happening. - - When selecting the modpack field in the new instance dialog, the contents are selected for easy replacement. - -- Instance settings - - Wrapper commands now use the proper UI field and do not get replaced with pre-launch commands. - -- Minecraft launching: - - GH-1053, GH-1338: Minecraft launching has been completely redone. - - GH-1275: Server resource pack folder is created on launch. - - This is a workaround for Minecraft bug MCL-3732. - - GH-1320: Improve compatibility with non-Oracle Java. - - GH-1355: LAUNCHER environment will no longer leak into Minecraft after MultiMC updates itself. - -- Minecraft log: - - Java exception detection in Minecraft logs has been improved. - - GH-719: You can now use your own [paste.ee](https://paste.ee/) account for uploading logs. - - New [paste.ee](https://paste.ee/) settings page has been added to the global settings dialog. - - GH-1197: Text colors in log window now adapt to the background color. - - GH-1164: The censor filter could be initialized with empty values, leading to unreadable log. - - GH-1008, GH-1046, GH-1067: Log size limiting. - - The log window now has a configurable limit for the number of lines remembered. You can also specify whether it stops logging or forgets on the fly once the limit is breached. - - This prevents the MultiMC log window from using too much memory on logging. The default limit is 100000 lines and the logging stops. - - Minecraft logging this much is a sign of a problem that needs to be fixed. Any complaints should be addressed to the responsible mod authors. - -- Screenshot upload - - GH-1339: While uploading screenshots, the console window will not close (prevents a crash). - -- Other logs: - - GH-926: 'Other Logs' now has a button for removing all log files. - - Hidden log files are shown in 'Other logs'. - -- User skins: - - MultiMC now uses [crafatar.com](https://crafatar.com/) for skin downloads instead of the Mojang servers. - -- Java: - - GH-1365: MultiMC now supports Java 9 and its new version numbering. - - GH-1262: Java can now be placed in a folder relative to MultiMC's folder. This allows bundling of JREs with MultiMC. - -- Translations: - - GH-1313: Some parts of the MultiMC user interface have been marked as 'not for translation'. - -### Internals and internal bug fixes - -- GH-1052: All the dependencies were rebuilt and the build environment upgraded to the latest compiler versions. -- GH-1051: The CDPATH environment variable is now ignored. -- GH-77, GH-1059, GH-1060: The MultiMC updater is no longer used or necessary. - - It is only present to preserve compatibility with previous versions. - Updates now work properly on Windows systems when you have Unicode (like ❄, Ǣ or Ω) characters in the path. - -- GH-1069, GH-1100: `LD_LIBRARY_PATH` and `LD_PRELOAD` environment variables supplied to MultiMC now don't affect MultiMC but affect the launched game. - - This means you can use something like the Steam overlay in MultiMC instances on Linux. - If you need to use these variables for MultiMC itself, you can use `LAUNCHER_LIBRARY_PATH` and `LAUNCHER_PRELOAD` instead. - -- GH-1389: External processes (like folder views, editors, etc.) are now started in a way that prevents the MultiMC environment to be reused by them. -- GH-1355: If `LD_LIBRARY_PATH` contains any of MultiMC's internal folders, this will not propagate to started processes. -- GH-1231, GH-1378: libpng is now included with the Linux version of MultiMC -- GH-1202: SSL certificates are now rebuilt on start on OSX. - -- GH-1303: Translations and notification cache are stored in the normal data folder now, not alongside the binaries. This only affects third party Linux packaging. -- GH-1266, GH-1301: Linux runner scripts has been improved. -- GH-1360: Development and other unstable versions of MultiMC now uses GitHub commits instead of this manually maintained changelog. - -## MultiMC 0.4.7 - -This is what 0.4.6 should have been. Oh well, at least it's here now! - -### Functional changes -- GH-974: A copy of the libstdc++ library is now included in Linux releases, improving compatibility -- GH-985: Jar mods are now movable and removable after adding -- GH-983: Use `minecraft.jar` as the main jar when using jar mods - fixes NEI in Legacy Minecraft versions -- GH-977: Fix FTB paths on Windows - - This removes some very old compatibility code. If you get any issues, make sure you run the FTB Launcher and let it update its files. -- GH-992 and GH-1003: Improved performance when saving settings: - - Bad performance was caused by improved data consistency - - Each config file is now saved only once, not once for every setting - - When loading FTB instances, there are no writes to config files anymore -- GH-991: Implemented wrapper command functionality: - - There is an extra field in the MultiMC Java settings that allows running Java inside a wrapper program or script. This means you can run Minecraft with wrappers like `optirun` and get better performance with hybrid graphics on Linux without workarounds. -- GH-997: Fixed saving of multi-line settings. This fixes notes. -- GH-967: It is now possible to add patches (Forge and LiteLoader) to tracked FTB instances properly. - - Libraries added by the patches will be taken from MultiMC's `libraries` folder, while the tracked patches will use FTB's folders. - -- GH-1011 and GH-1015: Fixed various issues when the patch versions aren't complete - - This applies when Minecraft versions are missing or when patches are broken and the profile is manipulated by adding, moving, removing, customizing and reverting patches. - -- GH-1021: Built in legacy Minecraft versions aren't customizable anymore - - The internal format for Legacy Minecraft versions does not translate to the external patch format and would cause crashes -- GH-1016: MultiMC prints a list of mods, core mods (contents of the core mods folder) and jar mods to the log on instance start. This should help with troubleshooting. -- GH-1031: Icons are exported and imported along with instances - - This only applies if the icon was custom (not built-in) when exporting and the user doesn't choose an icon while importing the pack. - -### UI changes -- GH-970: Fixed help button for the External tools and Accounts dialog pages not linking to the proper wiki places - - Same for the Versions dialog page - -- GH-994: Rearranged the buttons on the Versions page to make jar mods less prominent - - Using the `Add jar mods` button will also show a nag dialog until it's been used successfully - -## MultiMC 0.4.6 - -Long time coming, this release brought a lot of incremental improvements and fixes. - -### Functional changes -- Old version.json and custom.json version files will be transformed into a Minecraft version patch: - - The process is automated - - LWJGL entries are stripped from the original file - you may have to re-do LWJGL version customizations - - Old files will be renamed - .old extension is added -- It's now possible to: - - Customize, edit and revert built in version patches (Minecraft, LWJGL) - - Edit custom version patches (Forge, LiteLoader, other) -- Blocked various environment variables from affecting Minecraft: - - `JAVA_ARGS` - - `CLASSPATH` - - `CONFIGPATH` - - `JAVA_HOME` - - `JRE_HOME` - - `_JAVA_OPTIONS` - - `JAVA_OPTIONS` - - `JAVA_TOOL_OPTIONS` - - If you rely on those in any way, now would be a time to fix that -- Improved handling of LWJGL on OSX (.dylib vs. .jnilib extensions) -- Jar mods are now always put into a generated temporary Minecraft jar instead of being put on the classpath -- PermGen settings: - - Changed default PermGen value to 128M because of many issues from new users - - MultiMC now recognizes the Java version used and will not add PermGen settings to Java >= 1.8 -- Implemented simple modpack import and export feature: - - Export allows selecting which files go into the resulting zip archive - - Only MultiMC instances for now, other pack formats are planned - - Import is either from local file or URL, URL can't have ad/click/pay gates -- Instance copy doesn't follow symlinks on Linux anymore - - Still does on Windows because copying symlinks requires Administrator level access -- Instance delete doesn't follow symlinks anymore - anywhere -- MCEdit tool now recognizes MCEdit2.exe as a valid file to runtime -- Log uploads now follow the maximum allowed paste sizes of paste.ee and are encoded properly -- MultiMC now doesn't use a proxy by default -- Running profilers now works on Windows -- MultiMC will warn you if you run it from WinRAR or temporary folders -- Minecraft process ID is printed in the log on start -- SSL certificates are fixed on OSX 10.10.3 and newer - see [explanation](http://www.infoworld.com/article/2911209/mac-os-x/yosemite-10103-breaks-some-applications-and-https-sites.html). - -### UI changes -- Version lists: - - All version lists now include latest and recommended versions - recommended are pre-selected - - Java version list now sorts versions based on suitability - best on top - - Forge version list includes the development branch the version came from - - Minecraft list marks the latest release as 'recommended' and latest snapshot as 'latest' if it is newer than the release -- Mod lists: - - Are updated and sorted after adding mods - - Browse buttons now properly open the central mods folder - - Are no longer watching for updates when the user doesn't look at them - - Loader mod list now recognizes .litemod files as valid mod files -- Improved wording of instance delete dialog -- Icon themes: - - Can be changed without restarting - - Added a workaround for icon themes broken in KDE Plasma 5 (only relevant for custom builds) -- Status icons: - - Included a 'yellow' one - - Are clickable and link to [help.mojang.com](https://help.mojang.com/) - - Refresh when the icon theme does -- Changed default console font to Courier 10pt on Windows -- Description text in the main window status bar now updates when Minecraft version is changed -- Inserted blatant self-promotion (Only Minecraft 1.8 and up) - - This adds a bit of unobtrusive flavor text to the Minecraft F3 screen -- Log page now has a button to scroll to bottom -- Errors are reported while updating the instance on the Version page -- Fixed typos (forge -> Forge) - -### Internals -- Massive internal restructuring (ongoing) -- Downloads now follow redirects -- Minecraft window size is now always at least 1x1 pixel (prevents crash from bad settings) -- Better handling of Forge downloads (obviously invalid/broken files are redownloaded) -- All download tasks now only start 6 downloads, using a queue (fixes issues with assets downloads) -- Fixed bugs related to corrupted settings files (settings and patch order file saves are now atomic) -- Updated zip manipulation library - files inside newly written zip/jar files should have proper access rights and timestamps -- Made Minecraft resource downloads more resilient (throwing away invalid/broken index files) -- Minecraft asset import from old format has been removed -- Generally improved MultiMC logging: - - More error logging for network tasks - - Added timestamps relative to application start -- Fixed issue with the application getting stuck in a modal dialog when screenshot uploads fail -- Instance profiles and patches are now loaded lazily (speeds up MultiMC start) -- Groups are saved after copying an instance -- MultiMC launcher part will now exit cleanly when MultiMC crashes or is closed during instance launch - - -## MultiMC 0.4.5 -- Copies of FTB instances should work again (GH-619) -- Fixed OSX version not including the hotfix number -- If the currently used java version goes missing, it now triggers auto-detect (GH-608) -- Improved 'refresh' and 'update check' icons of the dark and bright simple icon themes (GH-618) -- Fixed console window hiding - it no longer results in windowless/unusable MultiMC - -## MultiMC 0.4.4 -- Other logs larger than 10MB will not load to prevent logs eating the whole available memory -- Translations are now updated independently from MultiMC -- Added new and reworked the old simple icon themes -- LWJGL on OSX should no longer clash with Java 8 -- Update to newer Qt version - - Look and feel updated for latest OSX -- Fixed issues caused by Minecraft inheriting the environment variables from MultiMC -- Minecraft log improvements: - - Implemented search and pause - - Automated coloring is updated for log format used by Minecraft 1.7+ - - Added settings for the font used in the console, using sensible defaults for the OS -- Removed MultiMC crash handler, it will be replaced by a better one in the future - -## MultiMC 0.4.3 -- Fix for issues with Minecraft version file updates -- Fix for console window related memory leak -- Fix for travis.ci build - -## MultiMC 0.4.2 -- Show a warning in the log if a library is missing -- Fixes for relocating instances to other MultiMC installs: - - Libraries now use full Gradle dependency specifiers - - Rework of forge installer (forge can reinstall itself using only the information already in the instance) - - Fixed bugs in rarely used library insertion rules -- Make the global settings dialog into a page dialog -- Check if the Java binary can be found before launch -- Show a warning for paths containing a '!' (Java can't handle that properly) -- Many smaller fixes - -## MultiMC 0.4.1 -- Fix LWJGL version list (SourceForge has changed the download API) - -## MultiMC 0.4.0 -- Jar support in 1.6+ -- Deprecated legacy instances - - Legacy instances can still be used but not created - - All Minecraft versions are supported in the new instance format -- All instance editing and settings dialogs were turned into pages - - The edit instance dialog contains pages relevant to editing and settings - - The console window contains pages useful when playing the game -- Redone the screenshot management and upload (page) -- Added a way to display and manage log files and crash reports generated by Minecraft (page) -- Added measures to prevent corruption of version files - - Minecraft version files are no longer part of the instances by default -- Added help for the newly added dialog pages -- Made logs uploaded to paste.ee expire after a month -- Fixed a few bugs related to liteloader and forge (1.7.10 issues) -- Icon themes. Two new themes were added (work in progress) -- Changelog and update channel are now visible in the update dialog -- Several performance improvements to the group view -- Added keyboard navigation to the group view - -## MultiMC 0.3.9 -- Workaround for 1.7.10 Forge - -## MultiMC 0.3.8 -- Workaround for performance issues with Intel integrated graphics chips - -## MultiMC 0.3.7 -- Fixed forge for 1.7.10-pre4 (and any future prereleases) - -## MultiMC 0.3.6 -- New server status - now with more color -- Fix for FTB tracking issues -- Fix for translations on OSX not working -- Screenshot dialog should be harder to lose track of when used from the console window -- A crash handler implementation has been added. - -## MultiMC 0.3.5 -- More versions are now selectable when changing instance versions -- Fix for Forge/FML changing its mcmod.info metadata format - -## MultiMC 0.3.4 -- Show a list of Patreon patrons in credits section of the about dialog -- Make the console window raise itself after Minecraft closes -- Add Control/Command+q shortcut to quit from the main window -- Add french translation -- Download and cache FML libs for legacy versions -- Update the OS X icon -- Fix FTB libraries not being used properly - -## MultiMC 0.3.3 -- Tweak context menu to prevent accidental clicks -- Fix adding icons to custom icon directories -- Added a Patreon button to the toolbar -- Minecraft authentication tasks now provide better error reports - -## MultiMC 0.3.2 -- Fix issues with libraries not getting replaced properly (fixes instance startup for new instances) -- Fix April fools - -## MultiMC 0.3.1 -- Fix copying of FTB instances (instance type is changed properly now) -- Customizing FTB pack versions will remove the FTB pack patch file - -## MultiMC 0.3 -- Improved instance view -- Overhauled 1.6+ version loading -- Added a patch system for instance modification - - There is no longer a single `custom.json` file that overrides `version.json` - - Instead, there are now "patch" files in `/patches/`, one for each main tweaker (forge, liteloader etc.) - - These patches are applied after `version.json` in a customizable order, - - A list of these files is shown in the leftmost tab in the Edit Mods dialog, where a list of libraries was shown before. - - `custom.json` can still be used for overriding everything. -- Offline mode can be used even when online -- Show an "empty" message in version selector dialogs -- Fix FTB paths on windows -- Tooling support - - JProfiler - - JVisualVM - - MCEdit -- Don't assume forge in FTB instances and allow other libraries (liteloader, mc patcher, etc.) in FTB instances -- Screenshot uploading/managing -- Instance badges -- Some pre/post command stuff (remove the timeout, variable substitution) -- Fix logging when the system language is not en_US -- Setting PermGen to 64 will now omit the java parameter because it is the default -- Fix encoding of escape sequences (tabs and newlines) in config files - -## MultiMC 0.2.1 -- Hotfix - move the native library extraction into the onesix launcher part. - -## MultiMC 0.2 -- Java memory settings have MB added to the number to make the units obvious. -- Complete rework of the launcher part. No more sensitive information in the process arguments. -- Cached downloads now do not destroy files on failure. -- Mojang service status is now on the MultiMC status bar. -- Java checker is no longer needed/used on instance launch. -- Support for private FTB packs. -- Fixed instance ID issues related to copying FTB packs without changing the instance name. -- Forge versions are better sorted (build numbers above 999 were sorted wrong). -- Fixed crash related to the MultiMC update channel picker in offline mode. -- Started using icon themes for the application icons, fixing many OSX graphical glitches. -- Icon sources have been located, along with icon licenses. -- Update to the German translation. - -## MultiMC 0.1.1 -- Hotfix - Changed the issue tracker URL to [GitHub issues](https://github.com/MultiMC/Launcher/issues). - -## MultiMC 0.1 -- Reworked the version numbering system to support our [new Git workflow](http://nvie.com/posts/a-successful-git-branching-model/). -- Added a tray icon for the console window. -- Fixed instances getting deselected after FTB instances are loaded (or whenever the model is reset). -- Implemented proxy settings. -- Fixed sorting of Java installations in the Java list. -- Jar files are now distributed separately, rather than being extracted from the binary at runtime. -- Added additional information to the about dialog. - -## MultiMC 0.0 -- Initial release. From 02f24117f083f7ab003efa3186852dd677b7708b Mon Sep 17 00:00:00 2001 From: swirl Date: Mon, 31 Jan 2022 10:00:25 -0500 Subject: [PATCH 28/37] better package list --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 44b83420..fc45077f 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ This is a **fork** of the MultiMC Launcher and not endorsed by MultiMC. The Poly
# Installation +- All packages (archived by version) can be found [here](https://packages.polymc.org/) ([latest](https://packages.polymc.org/latest)). +- Last build status: https://jenkins.polymc.org/job/PolyMC/lastBuild/ ## 🐧 Linux @@ -20,14 +22,12 @@ This is a **fork** of the MultiMC Launcher and not endorsed by MultiMC. The Poly Download as AppImage - [AppImage SHA256](https://packages.polymc.org/latest/appimage/PolyMC-latest-x86_64.AppImage.sha256) -- All packages (archived by version) can be found [here](https://packages.polymc.org/) ([latest](https://packages.polymc.org/latest)). -- Last build status: https://jenkins.polymc.org/job/PolyMC/lastBuild/ -- + ### Arch Linux -There are several AUR packages available: -[![polymc](https://img.shields.io/badge/aur-polymc-blue)](https://aur.archlinux.org/packages/polymc/) -[![polymc-bin](https://img.shields.io/badge/aur-polymc--bin-blue)](https://aur.archlinux.org/packages/polymc-bin/) +There are several AUR packages available: +[![polymc](https://img.shields.io/badge/aur-polymc-blue)](https://aur.archlinux.org/packages/polymc/) +[![polymc-bin](https://img.shields.io/badge/aur-polymc--bin-blue)](https://aur.archlinux.org/packages/polymc-bin/) [![polymc-git](https://img.shields.io/badge/aur-polymc--git-blue)](https://aur.archlinux.org/packages/polymc-git/) ```sh @@ -41,11 +41,11 @@ yay -S polymc-git ### Debian -We use [makedeb](https://docs.makedeb.org/) for our Debian packages. +We use [makedeb](https://docs.makedeb.org/) for our Debian packages. Several MPR packages are available: -[![polymc](https://img.shields.io/badge/mpr-polymc-orange)](https://mpr.makedeb.org/packages/polymc) -[![polymc-bin](https://img.shields.io/badge/mpr-polymc--bin-orange)](https://mpr.makedeb.org/packages/polymc-bin) +[![polymc](https://img.shields.io/badge/mpr-polymc-orange)](https://mpr.makedeb.org/packages/polymc) +[![polymc-bin](https://img.shields.io/badge/mpr-polymc--bin-orange)](https://mpr.makedeb.org/packages/polymc-bin) [![polymc-git](https://img.shields.io/badge/mpr-polymc--git-orange)](https://mpr.makedeb.org/packages/polymc-git) ```sh From 813de1c70340bfd82d13380a8072ce76f9bff634 Mon Sep 17 00:00:00 2001 From: dada513 Date: Mon, 31 Jan 2022 16:03:34 +0100 Subject: [PATCH 29/37] pkgs: remove debian packaging from repo --- .gitignore | 8 -------- packages/debian/makedeb.sh | 10 ---------- packages/debian/polymc/DEBIAN/control.template | 9 --------- 3 files changed, 27 deletions(-) delete mode 100755 packages/debian/makedeb.sh delete mode 100644 packages/debian/polymc/DEBIAN/control.template diff --git a/.gitignore b/.gitignore index 3f76a608..ba90e8f8 100644 --- a/.gitignore +++ b/.gitignore @@ -40,13 +40,5 @@ run/ .cache/ -# Flatpak builds -.flatpak-builder -flatbuild -builddir -# Deb -packages/debian/polymc/usr/ -packages/debian/polymc.deb -packages/debian/polymc/DEBIAN/control # Nix/NixOS result/ diff --git a/packages/debian/makedeb.sh b/packages/debian/makedeb.sh deleted file mode 100755 index 5a8c71dd..00000000 --- a/packages/debian/makedeb.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -mkdir builddir -cd builddir -cmake -DLauncher_LAYOUT=lin-system -DCMAKE_INSTALL_PREFIX=../polymc/usr ../../../ -make -j$(nproc) install -cd .. -VERSION_PLACEHOLDER=$(git describe --tags | sed 's/-.*//') -cp polymc/DEBIAN/control.template polymc/DEBIAN/control -sed -i "2s/.*/Version: $VERSION_PLACEHOLDER/" polymc/DEBIAN/control -dpkg-deb --build polymc diff --git a/packages/debian/polymc/DEBIAN/control.template b/packages/debian/polymc/DEBIAN/control.template deleted file mode 100644 index f7c294bc..00000000 --- a/packages/debian/polymc/DEBIAN/control.template +++ /dev/null @@ -1,9 +0,0 @@ -Package: polymc -Version: -Section: games -Priority: optional -Architecture: amd64 -Depends: libqt5core5a, libqt5network5, libqt5gui5 -Maintainer: PolyMC Team -Description: PolyMC - A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once From d664361b153a588603f9bd70f0bd1404cd567691 Mon Sep 17 00:00:00 2001 From: swirl Date: Mon, 31 Jan 2022 10:36:57 -0500 Subject: [PATCH 30/37] remove deb packaging --- packages/debian/makedeb.sh | 10 ---------- packages/debian/polymc/DEBIAN/control.template | 9 --------- 2 files changed, 19 deletions(-) delete mode 100755 packages/debian/makedeb.sh delete mode 100644 packages/debian/polymc/DEBIAN/control.template diff --git a/packages/debian/makedeb.sh b/packages/debian/makedeb.sh deleted file mode 100755 index 5a8c71dd..00000000 --- a/packages/debian/makedeb.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -mkdir builddir -cd builddir -cmake -DLauncher_LAYOUT=lin-system -DCMAKE_INSTALL_PREFIX=../polymc/usr ../../../ -make -j$(nproc) install -cd .. -VERSION_PLACEHOLDER=$(git describe --tags | sed 's/-.*//') -cp polymc/DEBIAN/control.template polymc/DEBIAN/control -sed -i "2s/.*/Version: $VERSION_PLACEHOLDER/" polymc/DEBIAN/control -dpkg-deb --build polymc diff --git a/packages/debian/polymc/DEBIAN/control.template b/packages/debian/polymc/DEBIAN/control.template deleted file mode 100644 index f7c294bc..00000000 --- a/packages/debian/polymc/DEBIAN/control.template +++ /dev/null @@ -1,9 +0,0 @@ -Package: polymc -Version: -Section: games -Priority: optional -Architecture: amd64 -Depends: libqt5core5a, libqt5network5, libqt5gui5 -Maintainer: PolyMC Team -Description: PolyMC - A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once From 1f92125a7f736e336614da014987bbf843764817 Mon Sep 17 00:00:00 2001 From: swirl Date: Mon, 31 Jan 2022 10:40:48 -0500 Subject: [PATCH 31/37] Move RPM package to a separate repo. --- packages/rpm/polymc.spec | 142 --------------------------------------- 1 file changed, 142 deletions(-) delete mode 100644 packages/rpm/polymc.spec diff --git a/packages/rpm/polymc.spec b/packages/rpm/polymc.spec deleted file mode 100644 index 0b659ed5..00000000 --- a/packages/rpm/polymc.spec +++ /dev/null @@ -1,142 +0,0 @@ - -%global libnbtplusplus_commit dc72a20b7efd304d12af2025223fad07b4b78464 -%global libnbtplusplus_shortcommit %(c=%{libnbtplusplus_commit}; echo ${c:0:7}) -%global quazip_commit c9ef32de19bceb58d236f5c22382698deaec69fd -%global quazip_shortcommit %(c=%{quazip_commit}; echo ${c:0:7}) - -Name: polymc -Version: 1.0.5 -Release: 2%{?dist} -Summary: Minecraft launcher with ability to manage multiple instances - -# -# CC-BY-SA -# --------------------------------------- -# launcher/resources/multimc/ -# -# BSD 3-clause "New" or "Revised" License -# --------------------------------------- -# application/ -# libraries/LocalPeer/ -# libraries/ganalytics/ -# -# Boost Software License (v1.0) -# --------------------------------------- -# cmake/ -# -# Expat License -# --------------------------------------- -# libraries/systeminfo/ -# -# GNU Lesser General Public License (v2 or later) -# --------------------------------------- -# libraries/rainbow -# -# GNU Lesser General Public License (v2.1 or later) -# --------------------------------------- -# libraries/iconfix/ -# libraries/quazip/ -# -# GNU Lesser General Public License (v3 or later) -# --------------------------------------- -# libraries/libnbtplusplus/ -# -# GPL (v2) -# --------------------------------------- -# libraries/pack200/ -# -# ISC License -# --------------------------------------- -# libraries/hoedown/ -# -# zlib/libpng license -# --------------------------------------- -# libraries/quazip/quazip/unzip.h -# libraries/quazip/quazip/zip.h -# - -License: CC-BY-SA and ASL 2.0 and BSD and Boost and LGPLv2 and LGPLv2+ and LGPLv3+ and GPLv2 and GPLv2+ and GPLv3 and ISC and zlib -URL: https://polymc.org -Source0: https://github.com/PolyMC/PolyMC/archive/%{version}/%{name}-%{version}.tar.gz -Source1: https://github.com/MultiMC/libnbtplusplus/archive/%{libnbtplusplus_commit}/libnbtplusplus-%{libnbtplusplus_shortcommit}.tar.gz -Source2: https://github.com/PolyMC/quazip/archive/%{quazip_commit}/quazip-%{quazip_shortcommit}.tar.gz - -BuildRequires: cmake -BuildRequires: desktop-file-utils -BuildRequires: gcc-c++ - -BuildRequires: java-devel -BuildRequires: %{?suse_version:lib}qt5-qtbase-devel -BuildRequires: zlib-devel - -# Minecraft < 1.17 -Recommends: java-1.8.0-openjdk-headless -# Minecraft >= 1.17 -Recommends: java-17-openjdk-headless - -%description -PolyMC is a free, open source launcher for Minecraft. It allows you to have -multiple, separate instances of Minecraft (each with their own mods, texture -packs, saves, etc) and helps you manage them and their associated options with -a simple interface. - - -%prep -%autosetup -p1 -n PolyMC-%{version} - -tar -xvf %{SOURCE1} -C libraries -tar -xvf %{SOURCE2} -C libraries -rmdir libraries/libnbtplusplus libraries/quazip -mv -f libraries/quazip-%{quazip_commit} libraries/quazip -mv -f libraries/libnbtplusplus-%{libnbtplusplus_commit} libraries/libnbtplusplus - - -%build -%cmake \ - -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" \ - -DLauncher_LAYOUT:STRING="lin-system" \ - -DLauncher_LIBRARY_DEST_DIR:STRING="%{_libdir}/%{name}" \ - -DLauncher_UPDATER_BASE:STRING="" - -%cmake_build - -%install -%cmake_install - -# Proper library linking -mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ -echo "%{_libdir}/%{name}" > "%{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf" - - -%check -# skip tests on systems that aren't officially supported -%if ! 0%{?suse_version} -%ctest -desktop-file-validate %{buildroot}%{_datadir}/applications/org.polymc.polymc.desktop -%endif - - -%files -%license COPYING.md -%doc README.md changelog.md -%{_bindir}/%{name} -%{_libdir}/%{name}/* -%{_datadir}/%{name}/* -%{_datadir}/metainfo/org.polymc.PolyMC.metainfo.xml -%{_datadir}/icons/hicolor/scalable/apps/org.polymc.PolyMC.svg -%{_datadir}/applications/org.polymc.polymc.desktop -%config %{_sysconfdir}/ld.so.conf.d/* - - -%changelog -* Mon Jan 24 2022 Jan Drögehoff - 1.0.5-2 -- remove explicit dependencies, correct dependencies to work on OpenSuse - -* Sun Jan 09 2022 Jan Drögehoff - 1.0.5-1 -- Update to 1.0.5 - -* Sun Jan 09 2022 Jan Drögehoff - 1.0.4-2 -- rework spec - -* Fri Jan 7 2022 getchoo - 1.0.4-1 -- Initial polymc spec From c39da093bf5f4d73f2cfbc1b030d5c1e8297f5a2 Mon Sep 17 00:00:00 2001 From: swirl Date: Mon, 31 Jan 2022 12:35:30 -0500 Subject: [PATCH 32/37] change COPR to polymc/polymc --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fc45077f..56a579f9 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,14 @@ sudo tee -a /etc/portage/package.accept_keywords <<< "=games-action/polymc-9999 ### Fedora -An RPM package is available on [COPR](https://copr.fedorainfracloud.org/coprs/sentry/polymc/) +An RPM package is available on [COPR](https://copr.fedorainfracloud.org/coprs/polymc/polymc/). + +```sh +sudo dnf copr enable polymc/polymc +sudo dnf install polymc +``` + +Alternatively, a COPR maintained by a PolyMC user (instead of Jenkins' automated builds) is available [here](https://copr.fedorainfracloud.org/coprs/sentry/polymc). ```sh sudo dnf copr enable sentry/polymc From eda06df8781339736df25c34e77781e75fc9b915 Mon Sep 17 00:00:00 2001 From: Oreoezi <37777619+Oreoezi@users.noreply.github.com> Date: Tue, 1 Feb 2022 20:33:38 +0000 Subject: [PATCH 33/37] Update BUILD.md --- BUILD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD.md b/BUILD.md index ecc46260..585b088c 100644 --- a/BUILD.md +++ b/BUILD.md @@ -40,7 +40,7 @@ Getting the project to build and run on Linux is easy if you use any modern and ## Build dependencies * A C++ compiler capable of building C++11 code. -* Qt 5.6+ Development tools (http://qt-project.org/downloads) ("Qt Online Installer for Linux (64 bit)") or the equivalent from your package manager. It is always better to use the Qt from your distribution, as long as it has a new enough version. +* Qt 5.6+ Development tools (http://qt-project.org/downloads) ("Qt Online Installer for Linux (64 bit)") or the equivalent from your package manager. It is always better to use the Qt from your distribution, as long as it has a new enough version. (for example, `qttools5-dev`) * cmake 3.1 or newer * zlib (for example, `zlib1g-dev`) * Java JDK 8 (for example, `openjdk-8-jdk`) From 37e196284551d90589e1a0276e7dd028a0a88532 Mon Sep 17 00:00:00 2001 From: txtsd Date: Wed, 2 Feb 2022 06:28:00 +0000 Subject: [PATCH 34/37] Add build.yml --- .github/workflows/build.yml | 107 ++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..d7eeaf1d --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,107 @@ +name: build_portable + +on: + [push, pull_request, workflow_dispatch] + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + + - os: ubuntu-20.04 + qt_version: 5.12.8 + qt_host: linux + + - os: windows-2022 + qt_version: 5.15.2 + qt_host: windows + qt_arch: win64_mingw81 + + - os: macos-11 + qt_version: 5.12.12 + qt_host: mac + macosx_deployment_target: 10.12 + + runs-on: ${{ matrix.os }} + + env: + MACOSX_DEPLOYMENT_TARGET: ${{matrix.macosx_deployment_target}} + + steps: + + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: 'true' + + - name: Install OpenJDK + uses: AdoptOpenJDK/install-jdk@v1 + with: + version: '17' + + - name: Cache Qt + id: cache-qt + uses: actions/cache@v2 + with: + path: "${{ github.workspace }}/Qt/" + key: ${{ runner.os }}-${{ matrix.qt_version }}-qt_cache + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: ${{ matrix.qt_version }} + host: ${{ matrix.qt_host }} + arch: ${{ matrix.qt_arch }} + cached: ${{ steps.cache-qt.outputs.cache-hit }} + dir: "${{ github.workspace }}/Qt/" + + - name: Install Ninja + uses: urkle/action-get-ninja@v1 + + - name: Configure CMake + run: | + cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Debug -G Ninja + + - name: Build + run: | + cmake --build build + + - name: Install + run: | + cmake --install build + + - name: Install OpenSSL libs + if: runner.os == 'Windows' + run: | + python -m pip install --upgrade pip + python -m pip install aqtinstall==2.0.5 + python -m aqt install-tool -O "${{ github.workspace }}\Qt\" windows desktop tools_openssl_x64 + copy "${{ github.workspace }}\Qt\Tools\OpenSSL\Win_x64\bin\libssl-1_1-x64.dll" "${{ github.workspace }}\install\" + copy "${{ github.workspace }}\Qt\Tools\OpenSSL\Win_x64\bin\libcrypto-1_1-x64.dll" "${{ github.workspace }}\install\" + + - name: chmod binary on macOS + if: runner.os == 'macOS' + run: | + chmod +x "${{ github.workspace }}/install/PolyMC.app/Contents/MacOS/polymc" + + - name: tar bundle on macOS + if: runner.os == 'macOS' + run: | + cd install + tar -czf ../polymc.tar.gz * + + - name: Upload package for Linux and Windows + if: runner.os != 'macOS' + uses: actions/upload-artifact@v2 + with: + name: polymc-${{ matrix.os }}-portable + path: install/** + + - name: Upload package for macOS + if: runner.os == 'macOS' + uses: actions/upload-artifact@v2 + with: + name: polymc-${{ matrix.os }}-portable + path: polymc.tar.gz From 80cf716c982acaf522dd87c80df678f6958a4b48 Mon Sep 17 00:00:00 2001 From: Tomasz <73354158+Skyblueborb@users.noreply.github.com> Date: Wed, 2 Feb 2022 10:34:26 +0100 Subject: [PATCH 35/37] Fix Gentoo Command Syntax The proper syntax for adding repos is `eselect repository enable ` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 56a579f9..d6ee4e26 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ A Gentoo ebuild is available in the [swirl](https://git.swurl.xyz/swirl/ebuilds) ```sh # as root: emerge --oneshot eselect-repository -eselect-repository enable swirl +eselect repository enable swirl emaint sync -r swirl emerge polymc # to use latest git version: From cf3c2482c9e7f743088b590f8c90cc3be1308718 Mon Sep 17 00:00:00 2001 From: swirl Date: Wed, 2 Feb 2022 08:46:10 -0500 Subject: [PATCH 36/37] fix some windows branding Closes: #121 --- program_info/polymc.manifest | 2 +- program_info/polymc.rc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/program_info/polymc.manifest b/program_info/polymc.manifest index f1fe63ce..2d9eb165 100644 --- a/program_info/polymc.manifest +++ b/program_info/polymc.manifest @@ -1,6 +1,6 @@ - + diff --git a/program_info/polymc.rc b/program_info/polymc.rc index 08c21a41..011e944b 100644 --- a/program_info/polymc.rc +++ b/program_info/polymc.rc @@ -16,10 +16,10 @@ BEGIN BLOCK "000004b0" BEGIN VALUE "CompanyName", "MultiMC & PolyMC Contributors" - VALUE "FileDescription", "A Minecraft Launcher" + VALUE "FileDescription", "PolyMC" VALUE "FileVersion", "1.0.0.0" VALUE "ProductName", "PolyMC" - VALUE "ProductVersion", "5" + VALUE "ProductVersion", "1" END END BLOCK "VarFileInfo" From 1f176fcb7b2cf9281ac95880d85c1cf7597618e6 Mon Sep 17 00:00:00 2001 From: swirl Date: Thu, 3 Feb 2022 12:47:16 -0500 Subject: [PATCH 37/37] fix aur formatting in README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c422b3ae..5c23444b 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ This is a **fork** of the MultiMC Launcher and not endorsed by MultiMC. The Poly ### Arch Linux There are several AUR packages available: + [![polymc](https://img.shields.io/badge/aur-polymc-blue)](https://aur.archlinux.org/packages/polymc/) [![polymc-bin](https://img.shields.io/badge/aur-polymc--bin-blue)](https://aur.archlinux.org/packages/polymc-bin/) [![polymc-git](https://img.shields.io/badge/aur-polymc--git-blue)](https://aur.archlinux.org/packages/polymc-git/)