Fix twitch
This commit is contained in:
		| @@ -152,8 +152,17 @@ QStringList OneSixInstance::processMinecraftArgs(MojangAccountPtr account) | ||||
| 	token_mapping["game_directory"] = absRootDir; | ||||
| 	QString absAssetsDir = QDir("assets/").absolutePath(); | ||||
| 	token_mapping["game_assets"] = reconstructAssets(d->version).absolutePath(); | ||||
| 	//TODO: this is something new and not even fully implemented in the vanilla launcher. | ||||
| 	token_mapping["user_properties"] = "{ }"; | ||||
|  | ||||
| 	auto user = account->user(); | ||||
| 	QJsonObject userAttrs; | ||||
| 	for(auto key: user.properties.keys()) | ||||
| 	{ | ||||
| 		auto array = QJsonArray::fromStringList(user.properties.values(key)); | ||||
| 		userAttrs.insert(key, array); | ||||
| 	} | ||||
| 	QJsonDocument value(userAttrs); | ||||
|  | ||||
| 	token_mapping["user_properties"] = value.toJson(QJsonDocument::Compact); | ||||
| 	token_mapping["user_type"] = account->currentProfile()->legacy ? "legacy" : "mojang"; | ||||
| 	// 1.7.3+ assets tokens | ||||
| 	token_mapping["assets_root"] = absAssetsDir; | ||||
|   | ||||
| @@ -68,6 +68,7 @@ MojangAccountPtr MojangAccount::loadFromJson(const QJsonObject &object) | ||||
| 		User u; | ||||
| 		QJsonObject userStructure = object.value("user").toObject(); | ||||
| 		u.id = userStructure.value("id").toString(); | ||||
| 		/* | ||||
| 		QJsonObject propMap = userStructure.value("properties").toObject(); | ||||
| 		for(auto key: propMap.keys()) | ||||
| 		{ | ||||
| @@ -75,6 +76,7 @@ MojangAccountPtr MojangAccount::loadFromJson(const QJsonObject &object) | ||||
| 			for(auto value: values) | ||||
| 				u.properties.insert(key, value.toString()); | ||||
| 		} | ||||
| 		*/ | ||||
| 		account->m_user = u; | ||||
| 	} | ||||
| 	account->m_username = username; | ||||
| @@ -119,6 +121,7 @@ QJsonObject MojangAccount::saveToJson() const | ||||
| 	QJsonObject userStructure; | ||||
| 	{ | ||||
| 		userStructure.insert("id", m_user.id); | ||||
| 		/* | ||||
| 		QJsonObject userAttrs; | ||||
| 		for(auto key: m_user.properties.keys()) | ||||
| 		{ | ||||
| @@ -126,6 +129,7 @@ QJsonObject MojangAccount::saveToJson() const | ||||
| 			userAttrs.insert(key, array); | ||||
| 		} | ||||
| 		userStructure.insert("properties", userAttrs); | ||||
| 		*/ | ||||
| 	} | ||||
| 	json.insert("user", userStructure); | ||||
|  | ||||
|   | ||||
| @@ -122,6 +122,11 @@ public: /* queries */ | ||||
| 		return m_profiles; | ||||
| 	} | ||||
|  | ||||
| 	const User & user() | ||||
| 	{ | ||||
| 		return m_user; | ||||
| 	} | ||||
|  | ||||
| 	//! Get the session ID required for legacy Minecraft versions | ||||
| 	QString sessionId() const | ||||
| 	{ | ||||
|   | ||||
| @@ -162,23 +162,17 @@ bool AuthenticateTask::processResponse(QJsonObject responseData) | ||||
| 	} | ||||
|  | ||||
| 	// this is what the vanilla launcher passes to the userProperties launch param | ||||
| 	// doesn't seem to be used for anything so far? I don't get any of this data on my account | ||||
| 	// (peterixxx) | ||||
| 	// is it a good idea to log this? | ||||
| 	if (responseData.contains("user")) | ||||
| 	{ | ||||
| 		User u; | ||||
| 		auto obj = responseData.value("user").toObject(); | ||||
| 		u.id = obj.value("id").toString(); | ||||
| 		QLOG_DEBUG() << "User ID: " << u.id ; | ||||
| 		auto propArray = obj.value("properties").toArray(); | ||||
| 		QLOG_DEBUG() << "User Properties: "; | ||||
| 		for (auto prop : propArray) | ||||
| 		{ | ||||
| 			auto propTuple = prop.toObject(); | ||||
| 			auto name = propTuple.value("name").toString(); | ||||
| 			auto value = propTuple.value("value").toString(); | ||||
| 			QLOG_DEBUG() << name << " : " << value; | ||||
| 			u.properties.insert(name, value); | ||||
| 		} | ||||
| 		m_account->m_user = u; | ||||
|   | ||||
| @@ -112,20 +112,21 @@ bool RefreshTask::processResponse(QJsonObject responseData) | ||||
| 	// this is what the vanilla launcher passes to the userProperties launch param | ||||
| 	if (responseData.contains("user")) | ||||
| 	{ | ||||
| 		User u; | ||||
| 		auto obj = responseData.value("user").toObject(); | ||||
| 		auto userId = obj.value("id").toString(); | ||||
| 		u.id = obj.value("id").toString(); | ||||
| 		auto propArray = obj.value("properties").toArray(); | ||||
| 		QLOG_DEBUG() << "User ID: " << userId; | ||||
| 		QLOG_DEBUG() << "User Properties: "; | ||||
| 		for (auto prop : propArray) | ||||
| 		{ | ||||
| 			auto propTuple = prop.toObject(); | ||||
| 			auto name = propTuple.value("name").toString(); | ||||
| 			auto value = propTuple.value("value").toString(); | ||||
| 			QLOG_DEBUG() << name << " : " << value; | ||||
| 			u.properties.insert(name, value); | ||||
| 		} | ||||
| 		m_account->m_user = u; | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	// We've made it through the minefield of possible errors. Return true to indicate that | ||||
| 	// we've succeeded. | ||||
| 	QLOG_DEBUG() << "Finished reading refresh response."; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user