Files
PrismLauncher/launcher/minecraft/auth/steps/GetSkinStep.cpp
TheKodeToad 316121ba8f Use an owning QByteArray in ByteArraySink
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2026-02-18 00:31:05 +00:00

38 lines
922 B
C++

#include "GetSkinStep.h"
#include <QNetworkRequest>
#include "Application.h"
GetSkinStep::GetSkinStep(AccountData* data) : AuthStep(data) {}
QString GetSkinStep::describe()
{
return tr("Getting skin.");
}
void GetSkinStep::perform()
{
QUrl url(m_data->minecraftProfile.skin.url);
auto [request, response] = Net::Download::makeByteArray(url);
m_request = request;
m_request->enableAutoRetry(true);
m_task.reset(new NetJob("GetSkinStep", APPLICATION->network()));
m_task->setAskRetry(false);
m_task->addNetAction(m_request);
connect(m_task.get(), &Task::finished, this, [this, response] { onRequestDone(response); });
m_task->start();
}
void GetSkinStep::onRequestDone(QByteArray* response)
{
if (m_request->error() == QNetworkReply::NoError)
m_data->minecraftProfile.skin.data = *response;
emit finished(AccountTaskState::STATE_WORKING, tr("Got skin"));
}