mirror of
https://github.com/MultiMC/MultiMC5.git
synced 2025-03-20 13:20:50 +00:00
NOISSUE Add support for joining servers via Quick Play
This commit is contained in:
parent
c1ed09e747
commit
22f82c34bf
@ -48,6 +48,7 @@
|
|||||||
#include "MinecraftLoadAndCheck.h"
|
#include "MinecraftLoadAndCheck.h"
|
||||||
#include "minecraft/gameoptions/GameOptions.h"
|
#include "minecraft/gameoptions/GameOptions.h"
|
||||||
#include "minecraft/update/FoldersTask.h"
|
#include "minecraft/update/FoldersTask.h"
|
||||||
|
#include "minecraft/VersionFilterData.h"
|
||||||
|
|
||||||
#define IBUS "@im=ibus"
|
#define IBUS "@im=ibus"
|
||||||
|
|
||||||
@ -425,8 +426,15 @@ QStringList MinecraftInstance::processMinecraftArgs(
|
|||||||
|
|
||||||
if (serverToJoin && !serverToJoin->address.isEmpty())
|
if (serverToJoin && !serverToJoin->address.isEmpty())
|
||||||
{
|
{
|
||||||
args_pattern += " --server " + serverToJoin->address;
|
if (m_components->getComponent("net.minecraft")->getReleaseDateTime() >= g_VersionFilterData.quickPlayBeginsDate)
|
||||||
args_pattern += " --port " + QString::number(serverToJoin->port);
|
{
|
||||||
|
args_pattern += " --quickPlayMultiplayer " + serverToJoin->address + ":" + QString::number(serverToJoin->port);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
args_pattern += " --server " + serverToJoin->address;
|
||||||
|
args_pattern += " --port " + QString::number(serverToJoin->port);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QMap<QString, QString> token_mapping;
|
QMap<QString, QString> token_mapping;
|
||||||
@ -489,6 +497,7 @@ QString MinecraftInstance::createLaunchScript(AuthSessionPtr session, MinecraftS
|
|||||||
|
|
||||||
if (serverToJoin && !serverToJoin->address.isEmpty())
|
if (serverToJoin && !serverToJoin->address.isEmpty())
|
||||||
{
|
{
|
||||||
|
launchScript += "useQuickPlay " + QString::number(m_components->getComponent("net.minecraft")->getReleaseDateTime() >= g_VersionFilterData.quickPlayBeginsDate) + "\n";
|
||||||
launchScript += "serverAddress " + serverToJoin->address + "\n";
|
launchScript += "serverAddress " + serverToJoin->address + "\n";
|
||||||
launchScript += "serverPort " + QString::number(serverToJoin->port) + "\n";
|
launchScript += "serverPort " + QString::number(serverToJoin->port) + "\n";
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,8 @@ VersionFilterData::VersionFilterData()
|
|||||||
"net.java.jutils:jutils", "org.lwjgl.lwjgl:lwjgl",
|
"net.java.jutils:jutils", "org.lwjgl.lwjgl:lwjgl",
|
||||||
"org.lwjgl.lwjgl:lwjgl_util", "org.lwjgl.lwjgl:lwjgl-platform"};
|
"org.lwjgl.lwjgl:lwjgl_util", "org.lwjgl.lwjgl:lwjgl-platform"};
|
||||||
|
|
||||||
java8BeginsDate = timeFromS3Time("2017-03-30T09:32:19+00:00");
|
java8BeginsDate = timeFromS3Time("2017-03-30T09:32:19+00:00");
|
||||||
java16BeginsDate = timeFromS3Time("2021-05-12T11:19:15+00:00");
|
java16BeginsDate = timeFromS3Time("2021-05-12T11:19:15+00:00");
|
||||||
java17BeginsDate = timeFromS3Time("2021-11-16T17:04:48+00:00");
|
java17BeginsDate = timeFromS3Time("2021-11-16T17:04:48+00:00");
|
||||||
|
quickPlayBeginsDate = timeFromS3Time("2023-04-05T12:05:17+00:00");
|
||||||
}
|
}
|
||||||
|
@ -27,5 +27,7 @@ struct VersionFilterData
|
|||||||
QDateTime java16BeginsDate;
|
QDateTime java16BeginsDate;
|
||||||
// release data of first version to require Java 17 (1.18 Pre Release 2)
|
// release data of first version to require Java 17 (1.18 Pre Release 2)
|
||||||
QDateTime java17BeginsDate;
|
QDateTime java17BeginsDate;
|
||||||
|
// release date of first version to use --quickPlayMultiplayer instead of --server/--port for directly joining servers
|
||||||
|
QDateTime quickPlayBeginsDate;
|
||||||
};
|
};
|
||||||
extern VersionFilterData g_VersionFilterData;
|
extern VersionFilterData g_VersionFilterData;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2012-2021 MultiMC Contributors
|
/* Copyright 2012-2023 MultiMC Contributors
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -53,6 +53,7 @@ public class OneSixLauncher implements Launcher
|
|||||||
|
|
||||||
private String serverAddress;
|
private String serverAddress;
|
||||||
private String serverPort;
|
private String serverPort;
|
||||||
|
private boolean useQuickPlay;
|
||||||
|
|
||||||
// the much abused system classloader, for convenience (for further abuse)
|
// the much abused system classloader, for convenience (for further abuse)
|
||||||
private ClassLoader cl;
|
private ClassLoader cl;
|
||||||
@ -80,6 +81,7 @@ public class OneSixLauncher implements Launcher
|
|||||||
|
|
||||||
serverAddress = params.firstSafe("serverAddress", null);
|
serverAddress = params.firstSafe("serverAddress", null);
|
||||||
serverPort = params.firstSafe("serverPort", null);
|
serverPort = params.firstSafe("serverPort", null);
|
||||||
|
useQuickPlay = params.firstSafe("useQuickPlay").startsWith("1");
|
||||||
|
|
||||||
cwd = System.getProperty("user.dir");
|
cwd = System.getProperty("user.dir");
|
||||||
|
|
||||||
@ -185,10 +187,18 @@ public class OneSixLauncher implements Launcher
|
|||||||
|
|
||||||
if (serverAddress != null)
|
if (serverAddress != null)
|
||||||
{
|
{
|
||||||
mcparams.add("--server");
|
if (useQuickPlay)
|
||||||
mcparams.add(serverAddress);
|
{
|
||||||
mcparams.add("--port");
|
mcparams.add("--quickPlayMultiplayer");
|
||||||
mcparams.add(serverPort);
|
mcparams.add(serverAddress + ":" + serverPort);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mcparams.add("--server");
|
||||||
|
mcparams.add(serverAddress);
|
||||||
|
mcparams.add("--port");
|
||||||
|
mcparams.add(serverPort);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the Minecraft Class.
|
// Get the Minecraft Class.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user