Merge pull request #2243 from Trial97/quick-play2

Allow joining servers to work on 1.20 take 2
This commit is contained in:
Tayou
2024-03-27 18:20:22 +01:00
committed by GitHub
2 changed files with 23 additions and 6 deletions

View File

@@ -665,8 +665,12 @@ QStringList MinecraftInstance::processMinecraftArgs(AuthSessionPtr session, Mine
}
if (serverToJoin && !serverToJoin->address.isEmpty()) {
args_pattern += " --server " + serverToJoin->address;
args_pattern += " --port " + QString::number(serverToJoin->port);
if (profile->hasTrait("feature:is_quick_play_multiplayer")) {
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;

View File

@@ -58,10 +58,17 @@ import org.prismlauncher.utils.Parameters;
import org.prismlauncher.utils.ReflectionUtils;
import java.lang.invoke.MethodHandle;
import java.util.Collections;
import java.util.List;
public final class StandardLauncher extends AbstractLauncher {
private final boolean quickPlaySupported;
public StandardLauncher(Parameters params) {
super(params);
List<String> traits = params.getList("traits", Collections.<String>emptyList());
quickPlaySupported = traits.contains("feature:is_quick_play_multiplayer");
}
@Override
@@ -76,10 +83,16 @@ public final class StandardLauncher extends AbstractLauncher {
}
if (serverAddress != null) {
gameArgs.add("--server");
gameArgs.add(serverAddress);
gameArgs.add("--port");
gameArgs.add(serverPort);
if (quickPlaySupported) {
// as of 23w14a
gameArgs.add("--quickPlayMultiplayer");
gameArgs.add(serverAddress + ':' + serverPort);
} else {
gameArgs.add("--server");
gameArgs.add(serverAddress);
gameArgs.add("--port");
gameArgs.add(serverPort);
}
}
// find and invoke the main method