public static Grid FromOSD(OSD data) { if (data == null || data.Type != OSDType.Map) return null; Grid grid = new Grid(); OSDMap map = (OSDMap)data; grid.ID = map["gridnick"].AsString(); grid.Name = map["gridname"].AsString(); grid.Platform = map["platform"].AsString(); grid.LoginURI = map["loginuri"].AsString(); grid.LoginPage = map["loginpage"].AsString(); grid.HelperURI = map["helperuri"].AsString(); grid.Website = map["website"].AsString(); grid.Support = map["support"].AsString(); grid.Register = map["register"].AsString(); grid.PasswordURL = map["password"].AsString(); grid.Version = map["version"].AsString(); return grid; }
public void Login() { loggingIn = true; OverrideEventArgs ea = new OverrideEventArgs(); OnClientLoggingIn(ea); if (ea.Cancel) { loggingIn = false; return; } if (string.IsNullOrEmpty(loginOptions.FirstName) || string.IsNullOrEmpty(loginOptions.LastName) || string.IsNullOrEmpty(loginOptions.Password)) { OnClientLoginStatus( new LoginProgressEventArgs(LoginStatus.Failed, "One or more fields are blank.", string.Empty)); } string startLocation = string.Empty; switch (loginOptions.StartLocation) { case StartLocationType.Home: startLocation = "home"; break; case StartLocationType.Last: startLocation = "last"; break; case StartLocationType.Custom: startLocation = loginOptions.StartLocationCustom.Trim(); StartLocationParser parser = new StartLocationParser(startLocation); startLocation = NetworkManager.StartLocation(parser.Sim, parser.X, parser.Y, parser.Z); break; } string password; if (loginOptions.IsPasswordMD5) { password = loginOptions.Password; } else { if (loginOptions.Password.Length > 16) { password = Utils.MD5(loginOptions.Password.Substring(0, 16)); } else { password = Utils.MD5(loginOptions.Password); } } LoginParams loginParams = client.Network.DefaultLoginParams( loginOptions.FirstName, loginOptions.LastName, password, loginOptions.Channel, loginOptions.Version); grid = loginOptions.Grid; loginParams.Start = startLocation; loginParams.AgreeToTos = AgreeToTos; loginParams.URI = grid.LoginURI; client.Network.BeginLogin(loginParams); }
public void Login() { loggingIn = true; // Report crashes only once and not on relogs/reconnects LastExecStatus execStatus = instance.GetLastExecStatus(); if (!instance.AnotherInstanceRunning() && execStatus != LastExecStatus.Normal && (!instance.ReportedCrash)) { instance.ReportedCrash = true; loginOptions.LastExecEvent = execStatus; Logger.Log("Reporting crash of the last application run to the grid login service", Helpers.LogLevel.Warning); } else { loginOptions.LastExecEvent = LastExecStatus.Normal; Logger.Log("Reporting normal shutdown of the last application run to the grid login service", Helpers.LogLevel.Info); } instance.MarkStartExecution(); OverrideEventArgs ea = new OverrideEventArgs(); OnClientLoggingIn(ea); if (ea.Cancel) { loggingIn = false; return; } if (string.IsNullOrEmpty(loginOptions.FirstName) || string.IsNullOrEmpty(loginOptions.LastName) || string.IsNullOrEmpty(loginOptions.Password)) { OnClientLoginStatus( new LoginProgressEventArgs(LoginStatus.Failed, "One or more fields are blank.", string.Empty)); } string startLocation = string.Empty; switch (loginOptions.StartLocation) { case StartLocationType.Home: startLocation = "home"; break; case StartLocationType.Last: startLocation = "last"; break; case StartLocationType.Custom: startLocation = loginOptions.StartLocationCustom.Trim(); StartLocationParser parser = new StartLocationParser(startLocation); startLocation = NetworkManager.StartLocation(parser.Sim, parser.X, parser.Y, parser.Z); break; } string password; if (LoginOptions.IsPasswordMD5(loginOptions.Password)) { password = loginOptions.Password; } else { if (loginOptions.Password.Length > 16) { password = Utils.MD5(loginOptions.Password.Substring(0, 16)); } else { password = Utils.MD5(loginOptions.Password); } } LoginParams loginParams = client.Network.DefaultLoginParams( loginOptions.FirstName, loginOptions.LastName, password, loginOptions.Channel, loginOptions.Version); grid = loginOptions.Grid; loginParams.Start = startLocation; loginParams.AgreeToTos = AgreeToTos; loginParams.URI = grid.LoginURI; loginParams.LastExecEvent = loginOptions.LastExecEvent; client.Network.BeginLogin(loginParams); }
public void RegisterGrid(Grid grid) { int ix = Grids.FindIndex((Grid g) => { return g.ID == grid.ID; }); if (ix < 0) { Grids.Add(grid); } else { Grids[ix] = grid; } }
static public void SetRadegastLoginOptionsFromCogbot(RadegastInstance instance, BotClient TheBot) { if (instance == null) return; var BotLoginParams = TheBot.BotLoginParams; EnsureRadegastForm(TheBot, instance, "EnsureRadegastForm from SetRadegastLoginOptions " + TheBot.GetName()); var to = instance.Netcom.LoginOptions; to.FirstName = BotLoginParams.FirstName; to.LastName = BotLoginParams.LastName; to.Password = BotLoginParams.Password; string loginURI = BotLoginParams.URI; MainProgram.CommandLine.LoginUri = loginURI; MainProgram.CommandLine.Location = BotLoginParams.Start; int gidx; Grid G = GetGridIndex(instance, loginURI, out gidx); if (G == null) { G = new Grid(BotLoginParams.URI, BotLoginParams.URI, loginURI); to.GridCustomLoginUri = loginURI; } else { BotLoginParams.URI = G.LoginURI; } instance.Netcom.LoginOptions.Grid = G; to.Grid = G; string botStartAt = BotLoginParams.Start; if (botStartAt == "home") { to.StartLocation = StartLocationType.Home; } else if (botStartAt == "last") { to.StartLocation = StartLocationType.Last; } else { to.StartLocation = StartLocationType.Custom; to.StartLocationCustom = botStartAt; } to.Version = BotLoginParams.Version; to.Channel = BotLoginParams.Channel; RadegastTab tab; if (instance.TabConsole.Tabs.TryGetValue("login", out tab)) { tab.AllowDetach = true; tab.AllowClose = false; tab.AllowMerge = false; tab.AllowHide = false; LoginConsole form = (LoginConsole)tab.Control; try { if (form.IsDisposed) return; DLRConsole.InvokeControl((Control)instance.MainForm, (MethodInvoker)(() => SetRadegastLoginForm(instance, form, to))); } catch (Exception e) { TheBot.LogException("Set Radegast Login Form", e); } } }