improve login account checking
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
parent
31d0cad377
commit
2b949a8059
@ -84,7 +84,7 @@ void LaunchController::decideAccount()
|
|||||||
|
|
||||||
// Find an account to use.
|
// Find an account to use.
|
||||||
auto accounts = APPLICATION->accounts();
|
auto accounts = APPLICATION->accounts();
|
||||||
if (accounts->count() <= 0) {
|
if (accounts->count() <= 0 || !accounts->anyAccountIsValid()) {
|
||||||
// Tell the user they need to log in at least one account in order to play.
|
// Tell the user they need to log in at least one account in order to play.
|
||||||
auto reply = CustomMessageBox::selectable(m_parentWidget, tr("No Accounts"),
|
auto reply = CustomMessageBox::selectable(m_parentWidget, tr("No Accounts"),
|
||||||
tr("In order to play Minecraft, you must have at least one Microsoft "
|
tr("In order to play Minecraft, you must have at least one Microsoft "
|
||||||
|
@ -83,8 +83,6 @@ MinecraftAccountPtr MinecraftAccount::createOffline(const QString& username)
|
|||||||
account->data.yggdrasilToken.issueInstant = QDateTime::currentDateTimeUtc();
|
account->data.yggdrasilToken.issueInstant = QDateTime::currentDateTimeUtc();
|
||||||
account->data.yggdrasilToken.extra["userName"] = username;
|
account->data.yggdrasilToken.extra["userName"] = username;
|
||||||
account->data.yggdrasilToken.extra["clientToken"] = QUuid::createUuid().toString().remove(QRegularExpression("[{}-]"));
|
account->data.yggdrasilToken.extra["clientToken"] = QUuid::createUuid().toString().remove(QRegularExpression("[{}-]"));
|
||||||
account->data.minecraftEntitlement.ownsMinecraft = true;
|
|
||||||
account->data.minecraftEntitlement.canPlayMinecraft = true;
|
|
||||||
account->data.minecraftProfile.id = uuidFromUsername(username).toString().remove(QRegularExpression("[{}-]"));
|
account->data.minecraftProfile.id = uuidFromUsername(username).toString().remove(QRegularExpression("[{}-]"));
|
||||||
account->data.minecraftProfile.name = username;
|
account->data.minecraftProfile.name = username;
|
||||||
account->data.minecraftProfile.validity = Validity::Certain;
|
account->data.minecraftProfile.validity = Validity::Certain;
|
||||||
|
@ -116,7 +116,7 @@ class MinecraftAccount : public QObject, public Usable {
|
|||||||
|
|
||||||
[[nodiscard]] AccountType accountType() const noexcept { return data.type; }
|
[[nodiscard]] AccountType accountType() const noexcept { return data.type; }
|
||||||
|
|
||||||
bool ownsMinecraft() const { return data.minecraftEntitlement.ownsMinecraft; }
|
bool ownsMinecraft() const { return data.type != AccountType::Offline && data.minecraftEntitlement.ownsMinecraft; }
|
||||||
|
|
||||||
bool hasProfile() const { return data.profileId().size() != 0; }
|
bool hasProfile() const { return data.profileId().size() != 0; }
|
||||||
|
|
||||||
|
@ -871,29 +871,6 @@ void MainWindow::on_actionCopyInstance_triggered()
|
|||||||
runModalTask(task.get());
|
runModalTask(task.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::finalizeInstance(InstancePtr inst)
|
|
||||||
{
|
|
||||||
view->updateGeometries();
|
|
||||||
setSelectedInstanceById(inst->id());
|
|
||||||
if (APPLICATION->accounts()->anyAccountIsValid()) {
|
|
||||||
ProgressDialog loadDialog(this);
|
|
||||||
auto update = inst->createUpdateTask(Net::Mode::Online);
|
|
||||||
connect(update.get(), &Task::failed, [this](QString reason) {
|
|
||||||
QString error = QString("Instance load failed: %1").arg(reason);
|
|
||||||
CustomMessageBox::selectable(this, tr("Error"), error, QMessageBox::Warning)->show();
|
|
||||||
});
|
|
||||||
if (update) {
|
|
||||||
loadDialog.setSkipButton(true, tr("Abort"));
|
|
||||||
loadDialog.execWithTask(update.get());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
CustomMessageBox::selectable(this, tr("Error"),
|
|
||||||
tr("The launcher cannot download Minecraft or update instances unless you have at least "
|
|
||||||
"one account added.\nPlease add a Microsoft account."),
|
|
||||||
QMessageBox::Warning)
|
|
||||||
->show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::addInstance(const QString& url, const QMap<QString, QString>& extra_info)
|
void MainWindow::addInstance(const QString& url, const QMap<QString, QString>& extra_info)
|
||||||
{
|
{
|
||||||
|
@ -228,7 +228,6 @@ class MainWindow : public QMainWindow {
|
|||||||
|
|
||||||
void runModalTask(Task* task);
|
void runModalTask(Task* task);
|
||||||
void instanceFromInstanceTask(InstanceTask* task);
|
void instanceFromInstanceTask(InstanceTask* task);
|
||||||
void finalizeInstance(InstancePtr inst);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow* ui;
|
Ui::MainWindow* ui;
|
||||||
|
Loading…
Reference in New Issue
Block a user