diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp index 73c5ad962..5033498d0 100644 --- a/launcher/ui/MainWindow.cpp +++ b/launcher/ui/MainWindow.cpp @@ -1007,10 +1007,11 @@ void MainWindow::processURLs(QList urls) receivedData.insert(it->first, it->second); emit APPLICATION->oauthReplyRecieved(receivedData); continue; - } else if (url.scheme() == "prismlauncher" && isExternalURLImport) { + } else if ((url.scheme() == "prismlauncher" || url.scheme() == BuildConfig.LAUNCHER_APP_BINARY_NAME) + && isExternalURLImport) { // PrismLauncher URL protocol modpack import // works for any prism fork - // preferred import format: ://import?url=ENCODED + // preferred import format: prismlauncher://import?url=ENCODED const auto host = url.host().toLower(); const auto path = url.path(); @@ -1025,7 +1026,7 @@ void MainWindow::processURLs(QList urls) } } - // alternative import format: ://import/ENCODED + // alternative import format: prismlauncher://import/ENCODED if (encodedTarget.isEmpty()) { QString p = path; @@ -1078,6 +1079,7 @@ void MainWindow::processURLs(QList urls) continue; } + dl_url = target; } else { dl_url = url; } diff --git a/program_info/win_install.nsi.in b/program_info/win_install.nsi.in index e957f4d36..ba6b7e061 100644 --- a/program_info/win_install.nsi.in +++ b/program_info/win_install.nsi.in @@ -397,6 +397,10 @@ Section "@Launcher_DisplayName@" WriteRegStr HKCU Software\Classes\@Launcher_APP_BINARY_NAME@ "URL Protocol" "" WriteRegStr HKCU Software\Classes\@Launcher_APP_BINARY_NAME@\shell\open\command "" '"$INSTDIR\@Launcher_APP_BINARY_NAME@.exe" "%1"' + ; Write the URL Handler into registry for prismlauncher import + WriteRegStr HKCU Software\Classes\prismlauncher "URL Protocol" "" + WriteRegStr HKCU Software\Classes\prismlauncher\shell\open\command "" '"$INSTDIR\@Launcher_APP_BINARY_NAME@.exe" "%1"' + ; Write the uninstall keys for Windows ; https://learn.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key ${GetParameters} $R0