From 0f3517742dc4ac2ba67492ddd532d8f01d553385 Mon Sep 17 00:00:00 2001 From: Rainnny7 Date: Sat, 6 Apr 2024 21:18:57 -0400 Subject: [PATCH] Add server platform identification --- .../me/braydon/mc/model/MinecraftServer.java | 23 +++++++++++++++++++ .../mc/model/server/JavaMinecraftServer.java | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/braydon/mc/model/MinecraftServer.java b/src/main/java/me/braydon/mc/model/MinecraftServer.java index 74f879e..30e12cc 100644 --- a/src/main/java/me/braydon/mc/model/MinecraftServer.java +++ b/src/main/java/me/braydon/mc/model/MinecraftServer.java @@ -69,10 +69,33 @@ public class MinecraftServer { */ @NonNull private final String name; + /** + * The identified platform of the server, null if unknown. + */ + private String platform; + /** * The protocol version of the server. */ private final int protocol; + + /** + * Create a more detailed + * copy of this object. + * + * @return the detailed copy + */ + @NonNull + public Version detailedCopy() { + String platform = null; + if (name.contains(" ")) { // Parse the server platform + String[] split = name.split(" "); + if (split.length == 2) { + platform = split[0]; + } + } + return new Version(name, platform, protocol); + } } /** diff --git a/src/main/java/me/braydon/mc/model/server/JavaMinecraftServer.java b/src/main/java/me/braydon/mc/model/server/JavaMinecraftServer.java index 54833ef..67594e1 100644 --- a/src/main/java/me/braydon/mc/model/server/JavaMinecraftServer.java +++ b/src/main/java/me/braydon/mc/model/server/JavaMinecraftServer.java @@ -33,8 +33,8 @@ public final class JavaMinecraftServer extends MinecraftServer { if (motdString == null) { // Not a string motd, convert from Json motdString = new TextComponent(ComponentSerializer.parse(RESTfulMC.GSON.toJson(token.getDescription()))).toLegacyText(); } - return new JavaMinecraftServer(hostname, ip, port, token.getVersion(), token.getPlayers(), - MOTD.create(motdString), token.getFavicon(), false + return new JavaMinecraftServer(hostname, ip, port, token.getVersion().detailedCopy(), + token.getPlayers(), MOTD.create(motdString), token.getFavicon(), false ); } } \ No newline at end of file