Upstream changelog: https://github.com/PrismLauncher/PrismLauncher/releases/tag/8.0 (Imcomplete) list of changes in 8.0 relevant to PollyMC: - Prism has dropped support for Mojang accounts - https://github.com/PrismLauncher/PrismLauncher/pull/1656 - Added it back to PollyMC primarily since the Mojang authentication code is also used for authlib-injector accounts. Some users may also still want to be able to log in to Mojang accounts for some reason: https://github.com/fn2006/PollyMC/issues/115#issuecomment-1805384658, even if they do not provide authentication to multiplayer servers. - To my surprise, I could still log in to a Mojang account, get its skin, and launch the game. Authentication to servers, of course, did not work. - Tested: logging into authlib-injector, Mojang, and MSA accounts and launching the game. - Prism has added a built-in updater for Windows and Linux that I assume provides similar functionality to Sparkle on macOS: https://github.com/PrismLauncher/PrismLauncher/pull/1268. There is a Launcher_UPDATER_GITHUB_REPO variable in CMakeLists.txt that specifies the repo checked by the updater. I have changed this to the PollyMC repository, and since PollyMC follows almost the same CI/release patterns as Prism Launcher, it might work with PollyMC, too, but I have not tested it yet. - Add macOS support to Nix - https://github.com/PrismLauncher/PrismLauncher/pull/1485 - Untested - The "PollyMC-Linux-8.0.tar.gz" and similar build artifacts were renamed to "PollyMC-Linux-8.0-Qt5.tar.gz" to match their "PollyMC-Linux-8.0-Qt6.tar.gz" counterparts. - Removed Windows MSVC Legacy builds - Removed Quilt Beacon toggle, the beacon is now always disabled: https://github.com/PrismLauncher/PrismLauncher/pull/1547, https://github.com/PrismLauncher/meta/pull/23 - Prism removed FTB support in 7.0, but I tested creating an FTB instance to make sure it still works in 8.0 Signed-off-by: Evan Goode <mail@evangoo.de>
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <QMultiMap>
|
|
#include <QString>
|
|
#include <memory>
|
|
#include "QObjectPtr.h"
|
|
|
|
class MinecraftAccount;
|
|
class QNetworkAccessManager;
|
|
|
|
struct AuthSession {
|
|
bool MakeOffline(QString offline_playername);
|
|
void MakeDemo();
|
|
|
|
QString serializeUserProperties();
|
|
|
|
enum Status {
|
|
Undetermined,
|
|
RequiresOAuth,
|
|
RequiresPassword,
|
|
RequiresProfileSetup,
|
|
PlayableOffline,
|
|
PlayableOnline,
|
|
GoneOrMigrated
|
|
} status = Undetermined;
|
|
|
|
// API URLs
|
|
QString authlib_injector_url;
|
|
QString auth_server_url;
|
|
QString account_server_url;
|
|
QString session_server_url;
|
|
QString services_server_url;
|
|
bool uses_custom_api_servers = false;
|
|
QString authlib_injector_metadata;
|
|
|
|
// account ID
|
|
QString account_id;
|
|
// client token
|
|
QString client_token;
|
|
// account user name
|
|
QString username;
|
|
// combined session ID
|
|
QString session;
|
|
// volatile auth token
|
|
QString access_token;
|
|
// profile name
|
|
QString player_name;
|
|
// profile ID
|
|
QString uuid;
|
|
// 'legacy' or 'mojang', depending on account type
|
|
QString user_type;
|
|
// Did the auth server reply?
|
|
bool auth_server_online = false;
|
|
// Did the user request online mode?
|
|
bool wants_online = true;
|
|
|
|
// Is this a demo session?
|
|
bool demo = false;
|
|
};
|
|
|
|
using AuthSessionPtr = std::shared_ptr<AuthSession>;
|