mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-23 21:07:45 +00:00
Report login gate errors as well
This commit is contained in:
parent
6ac00e6a2c
commit
9243a699a8
3 changed files with 7 additions and 15 deletions
|
@ -95,12 +95,13 @@ void AssetUpdater::update()
|
|||
connect(reply, &QNetworkReply::finished, [this, reply] {
|
||||
Q_EMIT launcher.stageChanged("Checking for Dalamud updates...");
|
||||
|
||||
QByteArray str = reply->readAll();
|
||||
if (str.isEmpty()) {
|
||||
Q_EMIT launcher.loginError("Could not check for Dalamud updates.");
|
||||
if (reply->error() != QNetworkReply::NetworkError::NoError) {
|
||||
Q_EMIT launcher.loginError(QStringLiteral("Could not check for Dalamud updates.\n\n%1").arg(reply->errorString()));
|
||||
return;
|
||||
}
|
||||
|
||||
QByteArray str = reply->readAll();
|
||||
|
||||
// for some god forsaken reason, the version string comes back as raw
|
||||
// bytes, ex: \xFF\xFE{\x00\"\x00""A\x00s\x00s\x00""e\x00m\x00 so we
|
||||
// start at the first character of the json '{' and work our way up.
|
||||
|
|
|
@ -30,7 +30,7 @@ void GameInstaller::installGame()
|
|||
auto reply = m_launcher.mgr->get(request);
|
||||
QObject::connect(reply, &QNetworkReply::finished, [this, reply, installDirectory] {
|
||||
if (reply->error() != QNetworkReply::NetworkError::NoError) {
|
||||
Q_EMIT error(QStringLiteral("An error has occurred when downloading the installer:\n%1").arg(reply->errorString()));
|
||||
Q_EMIT error(QStringLiteral("An error has occurred when downloading the installer.\n\n%1").arg(reply->errorString()));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -77,23 +77,14 @@ void SquareBoot::checkGateStatus(LoginInformation *info)
|
|||
|
||||
auto reply = window.mgr->get(request);
|
||||
connect(reply, &QNetworkReply::finished, [this, reply, info] {
|
||||
// I happen to run into this issue often, if I start the launcher really quickly after bootup
|
||||
// it's possible to actually check this quicker than the network is actually available,
|
||||
// causing the launcher to be stuck in "maintenace mode". so if that happens, we try to rerun this logic.
|
||||
// TODO: this selection of errors is currently guesswork, i'm assuming one of these will fit the bill of
|
||||
// "internet is unavailable" in some way.
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError || reply->error() == QNetworkReply::TimeoutError
|
||||
|| reply->error() == QNetworkReply::UnknownServerError)
|
||||
checkGateStatus(info);
|
||||
|
||||
QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
|
||||
const QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
|
||||
|
||||
const bool isGateOpen = !document.isEmpty() && document.object()["status"].toInt() != 0;
|
||||
|
||||
if (isGateOpen) {
|
||||
bootCheck(*info);
|
||||
} else {
|
||||
Q_EMIT window.loginError(i18n("The login gate is closed, the game may be under maintenance."));
|
||||
Q_EMIT window.loginError(i18n("The login gate is closed, the game may be under maintenance.\n\n%1", reply->errorString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue