aboutsummaryrefslogtreecommitdiff
path: root/api/logic
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2021-02-10 03:32:17 +0100
committerPetr Mrázek <peterix@gmail.com>2021-02-10 03:32:17 +0100
commit6b3b7ded2d9f30388219b97fb656313ef648e08e (patch)
tree9bfe20f21eb2e01bedfc9cc2a6d6516589ce978f /api/logic
parent485f123362b3e49cff3f162ace27f4c2fc0436fe (diff)
downloadPrismLauncher-6b3b7ded2d9f30388219b97fb656313ef648e08e.tar.gz
PrismLauncher-6b3b7ded2d9f30388219b97fb656313ef648e08e.tar.bz2
PrismLauncher-6b3b7ded2d9f30388219b97fb656313ef648e08e.zip
GH-3130 fix uploading skins by using the new skins endpoint
Diffstat (limited to 'api/logic')
-rw-r--r--api/logic/minecraft/SkinUpload.cpp31
1 files changed, 14 insertions, 17 deletions
diff --git a/api/logic/minecraft/SkinUpload.cpp b/api/logic/minecraft/SkinUpload.cpp
index 83bdf592..4e5a1698 100644
--- a/api/logic/minecraft/SkinUpload.cpp
+++ b/api/logic/minecraft/SkinUpload.cpp
@@ -3,15 +3,14 @@
#include <QHttpMultiPart>
#include <Env.h>
-QByteArray getModelString(SkinUpload::Model model) {
+QByteArray getVariant(SkinUpload::Model model) {
switch (model) {
- case SkinUpload::STEVE:
- return "";
- case SkinUpload::ALEX:
- return "slim";
default:
qDebug() << "Unknown skin type!";
- return "";
+ case SkinUpload::STEVE:
+ return "CLASSIC";
+ case SkinUpload::ALEX:
+ return "SLIM";
}
}
@@ -22,25 +21,23 @@ SkinUpload::SkinUpload(QObject *parent, AuthSessionPtr session, QByteArray skin,
void SkinUpload::executeTask()
{
- QNetworkRequest request(QUrl(QString("https://api.mojang.com/user/profile/%1/skin").arg(m_session->uuid)));
- request.setRawHeader("Authorization", QString("Bearer: %1").arg(m_session->access_token).toLocal8Bit());
-
+ QNetworkRequest request(QUrl("https://api.minecraftservices.com/minecraft/profile/skins"));
+ request.setRawHeader("Authorization", QString("Bearer %1").arg(m_session->access_token).toLocal8Bit());
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
- QHttpPart model;
- model.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"model\""));
- model.setBody(getModelString(m_model));
-
QHttpPart skin;
skin.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png"));
- skin.setHeader(QNetworkRequest::ContentDispositionHeader,
- QVariant("form-data; name=\"file\"; filename=\"skin.png\""));
+ skin.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"file\"; filename=\"skin.png\""));
skin.setBody(m_skin);
- multiPart->append(model);
+ QHttpPart model;
+ model.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"variant\""));
+ model.setBody(getVariant(m_model));
+
multiPart->append(skin);
+ multiPart->append(model);
- QNetworkReply *rep = ENV.qnam().put(request, multiPart);
+ QNetworkReply *rep = ENV.qnam().post(request, multiPart);
m_reply = std::shared_ptr<QNetworkReply>(rep);
setStatus(tr("Uploading skin"));