Make the passthrough motd display correctly on clients

Before: https://i.e3ndr.xyz/?i=W63C
After: https://i.e3ndr.xyz/?i=SGKS
This commit is contained in:
Ender 2020-03-17 17:55:11 -05:00
parent 51050e3868
commit 1f8a2c5765

View file

@ -66,8 +66,12 @@ public class ConnectorServerEventHandler implements BedrockServerEventHandler {
pong.setVersion(GeyserConnector.BEDROCK_PACKET_CODEC.getMinecraftVersion()); pong.setVersion(GeyserConnector.BEDROCK_PACKET_CODEC.getMinecraftVersion());
pong.setIpv4Port(config.getBedrock().getPort()); pong.setIpv4Port(config.getBedrock().getPort());
if (connector.getConfig().isPingPassthrough() && serverInfo != null) { if (connector.getConfig().isPingPassthrough() && serverInfo != null) {
pong.setMotd(MessageUtils.getBedrockMessage(serverInfo.getDescription())); String[] motd = MessageUtils.getBedrockMessage(serverInfo.getDescription()).split("\n");
pong.setSubMotd(config.getBedrock().getMotd2()); String mainMotd = motd[0]; // First line of the motd.
String subMotd = (motd.length != 1) ? motd[1] : ""; // Second line of the motd if present, otherwise blank.
pong.setMotd(mainMotd.trim());
pong.setSubMotd(subMotd.trim()); // Trimmed to shift it to the left, prevents the universe from collapsing on us just because we went 2 characters over the text box's limit.
pong.setPlayerCount(serverInfo.getPlayerInfo().getOnlinePlayers()); pong.setPlayerCount(serverInfo.getPlayerInfo().getOnlinePlayers());
pong.setMaximumPlayerCount(serverInfo.getPlayerInfo().getMaxPlayers()); pong.setMaximumPlayerCount(serverInfo.getPlayerInfo().getMaxPlayers());
} else { } else {