/// <summary> /// Start a new Client /// </summary> private static void InitializeClient() { MinecraftCom.LoginResult result; string logindata = ""; if (Settings.Password == "-") { Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("You chose to run in offline mode."); Console.ForegroundColor = ConsoleColor.Gray; result = MinecraftCom.LoginResult.Success; logindata = "0:deprecated:" + Settings.Login + ":0"; } else { Console.WriteLine("Connecting to Minecraft.net..."); result = MinecraftCom.GetLogin(Settings.Login, Settings.Password, ref logindata); } if (result == MinecraftCom.LoginResult.Success) { Settings.Username = logindata.Split(':')[2]; string sessionID = logindata.Split(':')[3]; Console.WriteLine("Success. (session ID: " + sessionID + ')'); if (Settings.ServerIP == "") { Console.Write("Server IP : "); Settings.ServerIP = Console.ReadLine(); } //Get server version Console.WriteLine("Retrieving Server Info..."); byte protocolversion = 0; string version = ""; if (MinecraftCom.GetServerInfo(Settings.ServerIP, ref protocolversion, ref version)) { //Supported protocol version ? int[] supportedVersions = { 51, 60, 61, 72, 73, 74 }; if (Array.IndexOf(supportedVersions, protocolversion) > -1) { //Minecraft 1.6+ ? Load translations if (protocolversion >= 72) { ChatParser.InitTranslations(); } //Will handle the connection for this client Console.WriteLine("Version is supported."); MinecraftCom handler = new MinecraftCom(); ConsoleIO.SetAutoCompleteEngine(handler); handler.setVersion(protocolversion); //Load & initialize bots if needed if (Settings.AntiAFK_Enabled) { handler.BotLoad(new Bots.AntiAFK(Settings.AntiAFK_Delay)); } if (Settings.Hangman_Enabled) { handler.BotLoad(new Bots.Pendu(Settings.Hangman_English)); } if (Settings.Alerts_Enabled) { handler.BotLoad(new Bots.Alerts()); } if (Settings.ChatLog_Enabled) { handler.BotLoad(new Bots.ChatLog(Settings.ChatLog_File, Settings.ChatLog_Filter, Settings.ChatLog_DateTime)); } if (Settings.PlayerLog_Enabled) { handler.BotLoad(new Bots.PlayerListLogger(Settings.PlayerLog_Delay, Settings.PlayerLog_File)); } if (Settings.AutoRelog_Enabled) { handler.BotLoad(new Bots.AutoRelog(Settings.AutoRelog_Delay, Settings.AutoRelog_Retries)); } if (Settings.xAuth_Enabled) { handler.BotLoad(new Bots.xAuth(Settings.xAuth_Password)); } if (Settings.Scripting_Enabled) { handler.BotLoad(new Bots.Scripting(Settings.Scripting_ScriptFile)); } //Start the main TCP client if (Settings.SingleCommand != "") { Client = new McTcpClient(Settings.Username, sessionID, Settings.ServerIP, handler, Settings.SingleCommand); } else Client = new McTcpClient(Settings.Username, sessionID, Settings.ServerIP, handler); } else { Console.WriteLine("Cannot connect to the server : This version is not supported !"); ReadLineReconnect(); } } else { Console.WriteLine("Failed to ping this IP."); ReadLineReconnect(); } } else { Console.ForegroundColor = ConsoleColor.Gray; Console.Write("Connection failed : "); switch (result) { case MinecraftCom.LoginResult.AccountMigrated: Console.WriteLine("Account migrated, use e-mail as username."); break; case MinecraftCom.LoginResult.Blocked: Console.WriteLine("Too many failed logins. Please try again later."); break; case MinecraftCom.LoginResult.BadRequest: Console.WriteLine("Login attempt rejected: Bad request."); break; case MinecraftCom.LoginResult.WrongPassword: Console.WriteLine("Incorrect password."); break; case MinecraftCom.LoginResult.NotPremium: Console.WriteLine("User not premium."); break; case MinecraftCom.LoginResult.Error: Console.WriteLine("Network error."); break; } while (Console.KeyAvailable) { Console.ReadKey(false); } if (Settings.SingleCommand == "") { ReadLineReconnect(); } } }
/// <summary> /// Start a new Client /// </summary> private static void InitializeClient() { MinecraftLoginResult result = MinecraftLoginResult.OtherError; Settings.Username = Settings.Login; string sessionID = ""; string UUID = ""; if (Settings.Password == "-") { Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("You chose to run in offline mode."); Console.ForegroundColor = ConsoleColor.Gray; result = MinecraftLoginResult.Success; sessionID = "0"; } else { Console.WriteLine("Connecting to Minecraft.net..."); try { result = MinecraftCom.GetLogin(ref Settings.Username, Settings.Password, ref sessionID, ref UUID); } catch(MinecraftAuthException ex) { DisplayError (ex); } } if (result == MinecraftLoginResult.Success) { if (Settings.ConsoleTitle != "") { Console.Title = Settings.ConsoleTitle.Replace("%username%", Settings.Username); } Console.WriteLine("Success. (session ID: " + sessionID + ')'); if (Settings.ServerIP == "") { Console.Write("Server IP : "); Settings.ServerIP = Console.ReadLine(); } //Get server version Console.WriteLine("Retrieving Server Info..."); int protocolversion = 0; string version = ""; if (MinecraftCom.GetServerInfo(Settings.ServerIP, ref protocolversion, ref version)) { //Supported protocol version ? int[] supportedVersions = { 4, 5 }; if (Array.IndexOf(supportedVersions, protocolversion) > -1) { //Load translations (Minecraft 1.6+) ChatParser.InitTranslations(); //Will handle the connection for this client Console.WriteLine("Version is supported."); MinecraftCom handler = new MinecraftCom(); ConsoleIO.SetAutoCompleteEngine(handler); handler.setVersion(protocolversion); //Load & initialize bots if needed if (Settings.AntiAFK_Enabled) { handler.BotLoad(new Bots.AntiAFK(Settings.AntiAFK_Delay)); } if (Settings.Hangman_Enabled) { handler.BotLoad(new Bots.Pendu(Settings.Hangman_English)); } if (Settings.Alerts_Enabled) { handler.BotLoad(new Bots.Alerts()); } if (Settings.ChatLog_Enabled) { handler.BotLoad(new Bots.ChatLog(Settings.ChatLog_File.Replace("%username%", Settings.Username), Settings.ChatLog_Filter, Settings.ChatLog_DateTime)); } if (Settings.PlayerLog_Enabled) { handler.BotLoad(new Bots.PlayerListLogger(Settings.PlayerLog_Delay, Settings.PlayerLog_File.Replace("%username%", Settings.Username))); } if (Settings.AutoRelog_Enabled) { handler.BotLoad(new Bots.AutoRelog(Settings.AutoRelog_Delay, Settings.AutoRelog_Retries)); } if (Settings.ScriptScheduler_Enabled) { handler.BotLoad(new Bots.ScriptScheduler(Settings.ScriptScheduler_TasksFile.Replace("%username%", Settings.Username))); } if (Settings.RemoteCtrl_Enabled) { handler.BotLoad(new Bots.RemoteControl()); } //Start the main TCP client if (Settings.SingleCommand != "") { Client = new McTcpClient(Settings.Username, UUID, sessionID, Settings.ServerIP, handler, Settings.SingleCommand); } else Client = new McTcpClient(Settings.Username, UUID, sessionID, Settings.ServerIP, handler); } else { Console.WriteLine("Cannot connect to the server : This version is not supported !"); ReadLineReconnect(); } } else { Console.WriteLine("Failed to ping this IP."); ReadLineReconnect(); } } else { Console.ForegroundColor = ConsoleColor.Gray; Console.Write("Connection failed : "); switch (result) { case MinecraftLoginResult.AccountMigrated: Console.WriteLine("Account migrated, use e-mail as username."); break; case MinecraftLoginResult.Blocked: Console.WriteLine("Too many failed logins. Please try again later."); break; case MinecraftLoginResult.ServiceUnavailable: Console.WriteLine("Login servers are unavailable. Please try again later."); break; case MinecraftLoginResult.WrongPassword: Console.WriteLine("Incorrect password."); break; case MinecraftLoginResult.NotPremium: Console.WriteLine("User not premium."); break; case MinecraftLoginResult.OtherError: Console.WriteLine("Network error."); break; case MinecraftLoginResult.SSLError: Console.WriteLine("SSL Error."); if (isUsingMono) { Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("It appears that you are using Mono to run this program." + '\n' + "The first time, you have to import HTTPS certificates using:" + '\n' + "mozroots --import --ask-remove"); Console.ForegroundColor = ConsoleColor.Gray; return; } break; } while (Console.KeyAvailable) { Console.ReadKey(false); } if (Settings.SingleCommand == "") { ReadLineReconnect(); } } }