3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-12-24 23:30:26 +01:00

Allow ping passthrough for descriptions too

Dieser Commit ist enthalten in:
Andrew Steinborn 2020-02-21 18:36:10 -05:00
Ursprung c63bd4cd02
Commit 3e053d63b4
3 geänderte Dateien mit 30 neuen und 8 gelöschten Zeilen

Datei anzeigen

@ -3,5 +3,6 @@ package com.velocitypowered.proxy.config;
public enum PingPassthroughMode { public enum PingPassthroughMode {
DISABLED, DISABLED,
MODS, MODS,
DESCRIPTION,
ALL ALL
} }

Datei anzeigen

@ -96,6 +96,9 @@ public class VelocityConfiguration extends AnnotatedConfig implements ProxyConfi
" The first server in your try list (or forced host) with a mod list will be", " The first server in your try list (or forced host) with a mod list will be",
" used. If no backend servers can be contacted, Velocity will not display any", " used. If no backend servers can be contacted, Velocity will not display any",
" mod information.", " mod information.",
"- \"description\": Uses the description and mod list from the backend server. The first",
" server in the try (or forced host) list that responds is used for the",
" description and mod list.",
"- \"all\": Passes everything from the backend server into the response. The Velocity", "- \"all\": Passes everything from the backend server into the response. The Velocity",
" configuration is used if no servers could be contacted." " configuration is used if no servers could be contacted."
}) })

Datei anzeigen

@ -97,6 +97,24 @@ public class StatusSessionHandler implements MinecraftSessionHandler {
} }
return fallback; return fallback;
}); });
case DESCRIPTION:
return pingResponses.thenApply(responses -> {
// Find the first non-fallback. If it includes a modlist, add it too.
for (ServerPing response : responses) {
if (response == fallback) {
continue;
}
return new ServerPing(
fallback.getVersion(),
fallback.getPlayers().orElse(null),
response.getDescription(),
fallback.getFavicon().orElse(null),
response.getModinfo().orElse(null)
);
}
return fallback;
});
default: default:
// Not possible, but covered for completeness. // Not possible, but covered for completeness.
return CompletableFuture.completedFuture(fallback); return CompletableFuture.completedFuture(fallback);