Implement user info stub for newest minecraft snapshot
This commit is contained in:
		@@ -589,7 +589,7 @@ void MainWindow::doAutoLogin()
 | 
			
		||||
 | 
			
		||||
void MainWindow::doLogin(QString username, QString password)
 | 
			
		||||
{
 | 
			
		||||
	UserInfo uInfo{username, password};
 | 
			
		||||
	PasswordLogin uInfo{username, password};
 | 
			
		||||
 | 
			
		||||
	ProgressDialog *tDialog = new ProgressDialog(this);
 | 
			
		||||
	LoginTask *loginTask = new LoginTask(uInfo, tDialog);
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@ void InstanceLauncher::doLogin(const QString &errorMsg)
 | 
			
		||||
	loginDlg->exec();
 | 
			
		||||
	if (loginDlg->result() == QDialog::Accepted)
 | 
			
		||||
	{
 | 
			
		||||
		UserInfo uInfo{loginDlg->getUsername(), loginDlg->getPassword()};
 | 
			
		||||
		PasswordLogin uInfo{loginDlg->getUsername(), loginDlg->getPassword()};
 | 
			
		||||
 | 
			
		||||
		ProgressDialog *tDialog = new ProgressDialog(nullptr);
 | 
			
		||||
		LoginTask *loginTask = new LoginTask(uInfo, tDialog);
 | 
			
		||||
 
 | 
			
		||||
@@ -93,6 +93,8 @@ QStringList OneSixInstance::processMinecraftArgs(LoginResponse response)
 | 
			
		||||
	token_mapping["game_directory"] = absRootDir;
 | 
			
		||||
	QString absAssetsDir = QDir("assets/").absolutePath();
 | 
			
		||||
	token_mapping["game_assets"] = absAssetsDir;
 | 
			
		||||
	//TODO: this is something new and not even fully implemented in the vanilla launcher.
 | 
			
		||||
	token_mapping["user_properties"] = "{ }";
 | 
			
		||||
 | 
			
		||||
	QStringList parts = args_pattern.split(' ', QString::SkipEmptyParts);
 | 
			
		||||
	for (int i = 0; i < parts.length(); i++)
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,6 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QString>
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
 | 
			
		||||
#include "logic/OneSixLibrary.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -151,7 +151,7 @@ std::shared_ptr<OneSixVersion> OneSixVersion::fromJson(QJsonObject root)
 | 
			
		||||
		root.value("minimumLauncherVersion").toDouble();
 | 
			
		||||
 | 
			
		||||
	// ADD MORE HERE :D
 | 
			
		||||
	if (launcher_ver > 0 && launcher_ver <= 9)
 | 
			
		||||
	if (launcher_ver > 0 && launcher_ver <= 10)
 | 
			
		||||
		return fromJsonV4(root, readVersion);
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,6 @@
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QVariant>
 | 
			
		||||
#include <QAbstractListModel>
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
 | 
			
		||||
#include "logic/BaseVersion.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,6 @@
 | 
			
		||||
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QAbstractListModel>
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
#include <QUrl>
 | 
			
		||||
 | 
			
		||||
#include <QNetworkReply>
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,6 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
#include <QAbstractListModel>
 | 
			
		||||
#include "categorizedsortfilterproxymodel.h"
 | 
			
		||||
#include <QIcon>
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,6 @@
 | 
			
		||||
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QAbstractListModel>
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
 | 
			
		||||
#include "BaseVersionList.h"
 | 
			
		||||
#include "logic/tasks/Task.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,6 @@
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QList>
 | 
			
		||||
#include <QSet>
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
 | 
			
		||||
#include "BaseVersionList.h"
 | 
			
		||||
#include "logic/tasks/Task.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,6 @@
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <QString>
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
#include <QMap>
 | 
			
		||||
#include <qtimer.h>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,8 @@
 | 
			
		||||
#include <QJsonParseError>
 | 
			
		||||
#include <QJsonObject>
 | 
			
		||||
 | 
			
		||||
LoginTask::LoginTask(const UserInfo &uInfo, QObject *parent) : Task(parent), uInfo(uInfo)
 | 
			
		||||
LoginTask::LoginTask(const PasswordLogin &loginInfo, QObject *parent)
 | 
			
		||||
	: Task(parent), loginInfo(loginInfo)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -49,8 +50,8 @@ void LoginTask::legacyLogin()
 | 
			
		||||
						 "application/x-www-form-urlencoded");
 | 
			
		||||
 | 
			
		||||
	QUrlQuery params;
 | 
			
		||||
	params.addQueryItem("user", uInfo.username);
 | 
			
		||||
	params.addQueryItem("password", uInfo.password);
 | 
			
		||||
	params.addQueryItem("user", loginInfo.username);
 | 
			
		||||
	params.addQueryItem("password", loginInfo.password);
 | 
			
		||||
	params.addQueryItem("version", "13");
 | 
			
		||||
 | 
			
		||||
	netReply = worker->post(netRequest, params.query(QUrl::EncodeSpaces).toUtf8());
 | 
			
		||||
@@ -221,8 +222,8 @@ void LoginTask::yggdrasilLogin()
 | 
			
		||||
	agent.insert("name", QString("Minecraft"));
 | 
			
		||||
	agent.insert("version", QJsonValue(1));
 | 
			
		||||
	root.insert("agent", agent);
 | 
			
		||||
	root.insert("username", uInfo.username);
 | 
			
		||||
	root.insert("password", uInfo.password);
 | 
			
		||||
	root.insert("username", loginInfo.username);
 | 
			
		||||
	root.insert("password", loginInfo.password);
 | 
			
		||||
	root.insert("clientToken", clientToken);
 | 
			
		||||
	QJsonDocument requestDoc(root);
 | 
			
		||||
	netReply = worker->post(netRequest, requestDoc.toJson());
 | 
			
		||||
@@ -247,6 +248,7 @@ void LoginTask::yggdrasilLogin()
 | 
			
		||||
void LoginTask::parseYggdrasilReply(QByteArray data)
 | 
			
		||||
{
 | 
			
		||||
	QJsonParseError jsonError;
 | 
			
		||||
	QLOG_DEBUG() << data;
 | 
			
		||||
	QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError);
 | 
			
		||||
	if (jsonError.error != QJsonParseError::NoError)
 | 
			
		||||
	{
 | 
			
		||||
@@ -273,6 +275,7 @@ void LoginTask::parseYggdrasilReply(QByteArray data)
 | 
			
		||||
		playerID = selectedProfileO.value("id").toString();
 | 
			
		||||
		playerName = selectedProfileO.value("name").toString();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	QString sessionID = "token:" + accessToken + ":" + playerID;
 | 
			
		||||
	/*
 | 
			
		||||
	struct LoginResponse
 | 
			
		||||
@@ -285,6 +288,6 @@ void LoginTask::parseYggdrasilReply(QByteArray data)
 | 
			
		||||
	};
 | 
			
		||||
	*/
 | 
			
		||||
 | 
			
		||||
	result = {uInfo.username, sessionID, playerName, playerID, accessToken};
 | 
			
		||||
	result = {loginInfo.username, sessionID, playerName, playerID, accessToken};
 | 
			
		||||
	emitSucceeded();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -16,14 +16,20 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "logic/tasks/Task.h"
 | 
			
		||||
#include <QSharedPointer>
 | 
			
		||||
#include <QMap>
 | 
			
		||||
 | 
			
		||||
struct UserInfo
 | 
			
		||||
struct PasswordLogin
 | 
			
		||||
{
 | 
			
		||||
	QString username;
 | 
			
		||||
	QString password;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct User
 | 
			
		||||
{
 | 
			
		||||
	QString id;
 | 
			
		||||
	QMap<QString, QString> properties;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct LoginResponse
 | 
			
		||||
{
 | 
			
		||||
	QString username;
 | 
			
		||||
@@ -31,6 +37,7 @@ struct LoginResponse
 | 
			
		||||
	QString player_name;
 | 
			
		||||
	QString player_id;
 | 
			
		||||
	QString access_token;
 | 
			
		||||
	User user; // FIXME: no idea what this really is yet. anything relevant?
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class QNetworkReply;
 | 
			
		||||
@@ -39,7 +46,7 @@ class LoginTask : public Task
 | 
			
		||||
{
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
	explicit LoginTask(const UserInfo &uInfo, QObject *parent = 0);
 | 
			
		||||
	explicit LoginTask(const PasswordLogin &loginInfo, QObject *parent = 0);
 | 
			
		||||
	LoginResponse getResult()
 | 
			
		||||
	{
 | 
			
		||||
		return result;
 | 
			
		||||
@@ -65,5 +72,5 @@ protected:
 | 
			
		||||
 | 
			
		||||
	LoginResponse result;
 | 
			
		||||
	QNetworkReply *netReply;
 | 
			
		||||
	UserInfo uInfo;
 | 
			
		||||
	PasswordLogin loginInfo;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user