From 8f7789508407cff852180ae757fe3ebdb96d0c2b Mon Sep 17 00:00:00 2001 From: ORelio Date: Fri, 14 Feb 2014 14:59:27 +0100 Subject: [PATCH] Detect Forge (which still not supported) Code Optimisation, Detect Forge server Changes imported from pull request #35 --- MinecraftClient/MinecraftCom.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/MinecraftClient/MinecraftCom.cs b/MinecraftClient/MinecraftCom.cs index 12cbb708..8ec6d86a 100644 --- a/MinecraftClient/MinecraftCom.cs +++ b/MinecraftClient/MinecraftCom.cs @@ -396,12 +396,20 @@ namespace MinecraftClient string result = ComTmp.readNextString(); //Get the Json data if (result[0] == '{' && result.Contains("protocol\":") && result.Contains("name\":\"")) { - string[] tmp_ver = result.Split(new string[] { "protocol\":" }, StringSplitOptions.None); - string[] tmp_name = result.Split(new string[] { "name\":\"" }, StringSplitOptions.None); + string tmp_ver = result.Split(new string[] { "protocol\":" }, StringSplitOptions.None)[1]; + string tmp_name = result.Split(new string[] { "name\":\"" }, StringSplitOptions.None)[1]; + + //Detecting Forge (which is not supported) + if (result.Contains("modinfo\":")) + { + tmp_name += "Forge "; + tmp_ver = "0"; + } + if (tmp_ver.Length >= 2 && tmp_name.Length >= 2) { - protocolversion = atoi(tmp_ver[1]); - version = tmp_name[1].Split('"')[0]; + protocolversion = atoi(tmp_ver); + version = tmp_name.Split('"')[0]; Console.ForegroundColor = ConsoleColor.DarkGray; //Console.WriteLine(result); //Debug: show the full Json string Console.WriteLine("Server version : " + version + " (protocol v" + protocolversion + ").");