* 'Custom Yggdrasil' AccountType Signed-off-by: Evan Goode <mail@evangoo.de> * Allow multiple accounts with the same player UUID Signed-off-by: Evan Goode <mail@evangoo.de> * Use correct services server URL for SkinDelete Signed-off-by: Evan Goode <mail@evangoo.de> * Correctly use CustomYggdrasilRefresh, add warning message Signed-off-by: Evan Goode <mail@evangoo.de> * Custom Yggdrasil: Readability fixes Also made the MinecraftEntitlement for Custom Yggdrasil accounts work just like offline accounts---instead of checking the reply from the auth server, Custom Yggdrasil accounts are granted canPlayMinecraft and ownsMinecraft when they are created, in MinecraftAccount.cpp. Signed-off-by: Evan Goode <mail@evangoo.de> * Custom Yggdrasil: Add extra confirmation dialog Signed-off-by: Evan Goode <mail@evangoo.de> * Add install authlib-injector button Signed-off-by: Evan Goode <mail@evangoo.de> * authlib-injector accounts Signed-off-by: Evan Goode <mail@evangoo.de> * Suggest installing authlib-injector when needed Signed-off-by: Evan Goode <mail@evangoo.de> * Use Unmojang metadata Signed-off-by: Evan Goode <mail@evangoo.de> * Use std::string for MANAGED_AGENTS, not QString --------- Signed-off-by: Evan Goode <mail@evangoo.de> Resolve X-Authlib-Injector-API-Location Signed-off-by: Evan Goode <mail@evangoo.de> Prefetch authlib-injector metadata Resolves https://github.com/unmojang/PrismLauncher/issues/4 See https://github-com.translate.goog/yushijinhun/authlib-injector/wiki/%E5%90%AF%E5%8A%A8%E5%99%A8%E6%8A%80%E6%9C%AF%E8%A7%84%E8%8C%83?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-US#%E9%85%8D%E7%BD%AE%E9%A2%84%E8%8E%B7%E5%8F%96 Signed-off-by: Evan Goode <mail@evangoo.de> drag-and-drop authlib-injector URL, clang-format Resolves https://github.com/unmojang/PrismLauncher/issues/2 Signed-off-by: Evan Goode <mail@evangoo.de>
60 lines
1.3 KiB
C++
60 lines
1.3 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;
|
|
|
|
// 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;
|
|
};
|
|
|
|
typedef std::shared_ptr<AuthSession> AuthSessionPtr;
|