aboutsummaryrefslogtreecommitdiff
path: root/application/LaunchController.cpp
diff options
context:
space:
mode:
authorAdrian <zetabite.horzion@gmail.com>2021-06-19 03:15:21 +0200
committerAdrian <zetabite.horzion@gmail.com>2021-06-19 03:15:21 +0200
commit6db6ebe37f245bba3de285a4ad8a65b667e6ffb0 (patch)
tree78ae38b706b3b14bab640c8a2593c7af11c6d575 /application/LaunchController.cpp
parent60b686f01458fc1f31109a0be71d790b8f7ec22b (diff)
downloadPrismLauncher-6db6ebe37f245bba3de285a4ad8a65b667e6ffb0.tar.gz
PrismLauncher-6db6ebe37f245bba3de285a4ad8a65b667e6ffb0.tar.bz2
PrismLauncher-6db6ebe37f245bba3de285a4ad8a65b667e6ffb0.zip
NOISSUE Add info for instance launch mode and server status when online
Diffstat (limited to 'application/LaunchController.cpp')
-rw-r--r--application/LaunchController.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/application/LaunchController.cpp b/application/LaunchController.cpp
index 3c4491a3..ee764082 100644
--- a/application/LaunchController.cpp
+++ b/application/LaunchController.cpp
@@ -15,6 +15,9 @@
#include <minecraft/auth/YggdrasilTask.h>
#include <launch/steps/TextPrint.h>
#include <QStringList>
+#include <QHostInfo>
+#include <QList>
+#include <QHostAddress>
LaunchController::LaunchController(QObject *parent) : Task(parent)
{
@@ -215,7 +218,46 @@ void LaunchController::launchInstance()
connect(m_launcher.get(), &LaunchTask::failed, this, &LaunchController::onFailed);
connect(m_launcher.get(), &LaunchTask::requestProgress, this, &LaunchController::onProgressRequested);
+ // Prepend Online and Auth Status
+ QString online_mode;
+ if(m_session->wants_online) {
+ online_mode = "online";
+ // Prepend Server Status
+ QStringList servers = {"authserver.mojang.com", "session.minecraft.net", "textures.minecraft.net", "api.mojang.com"};
+ QString resolved_servers = "";
+ QHostInfo host_info;
+
+ for(QString server : servers) {
+ host_info = QHostInfo::fromName(server);
+ resolved_servers = resolved_servers + server + " resolves to:\n [";
+ if(!host_info.addresses().isEmpty()) {
+ for(QHostAddress address : host_info.addresses()) {
+ resolved_servers = resolved_servers + address.toString();
+ if(!host_info.addresses().endsWith(address)) {
+ resolved_servers = resolved_servers + ", ";
+ }
+ }
+ } else {
+ resolved_servers = resolved_servers + "N/A";
+ }
+ resolved_servers = resolved_servers + "]\n\n";
+ }
+ m_launcher->prependStep(new TextPrint(m_launcher.get(), resolved_servers, MessageLevel::MultiMC));
+ } else {
+ online_mode = "offline";
+ }
+
+ QString auth_server_status;
+ if(m_session->auth_server_online) {
+ auth_server_status = "online";
+ } else {
+ auth_server_status = "offline";
+ }
+
+ m_launcher->prependStep(new TextPrint(m_launcher.get(), "Launched instance in " + online_mode + " mode\nAuthentication server is " + auth_server_status + "\n", MessageLevel::MultiMC));
+
+ // Prepend Version
m_launcher->prependStep(new TextPrint(m_launcher.get(), "MultiMC version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::MultiMC));
m_launcher->start();
}