public GameServer(string name, string ip, string port, string client) { ServerName = SecurityFuncs.Base64DecodeOld(name); ServerIP = SecurityFuncs.Base64DecodeOld(ip); ServerPort = Convert.ToInt32(SecurityFuncs.Base64DecodeOld(port)); ServerClient = SecurityFuncs.Base64DecodeOld(client); }
public static void SetupURIValues() { string ExtractedArg = LocalVars.SharedArgs.Replace("novetus://", "").Replace("novetus", "").Replace(":", "").Replace("/", "").Replace("?", ""); string ConvertedArg = SecurityFuncs.Base64DecodeOld(ExtractedArg); string[] SplitArg = ConvertedArg.Split('|'); string ip = SecurityFuncs.Base64Decode(SplitArg[0]); string port = SecurityFuncs.Base64Decode(SplitArg[1]); string client = SecurityFuncs.Base64Decode(SplitArg[2]); GlobalVars.UserConfiguration.SelectedClient = client; GlobalVars.IP = ip; GlobalVars.JoinPort = Convert.ToInt32(port); GlobalFuncs.ReadClientValues(); }
async Task LoadServerInfoFromFile(string url) { //https://stackoverflow.com/questions/2471209/how-to-read-a-file-from-internet#2471245 //https://stackoverflow.com/questions/10826260/is-there-a-way-to-read-from-a-website-one-line-at-a-time //https://stackoverflow.com/questions/856885/httpwebrequest-to-url-with-dot-at-the-end MethodInfo getSyntax = typeof(UriParser).GetMethod("GetSyntax", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic); FieldInfo flagsField = typeof(UriParser).GetField("m_Flags", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); if (getSyntax != null && flagsField != null) { foreach (string scheme in new[] { "http", "https" }) { UriParser parser = (UriParser)getSyntax.Invoke(null, new object[] { scheme }); if (parser != null) { int flagsValue = (int)flagsField.GetValue(parser); // Clear the CanonicalizeAsFilePath attribute if ((flagsValue & 0x1000000) != 0) { flagsField.SetValue(parser, flagsValue & ~0x1000000); } } } } WebClient client = new WebClient(); Uri uri = new Uri(url); using (Stream stream = await client.OpenReadTaskAsync(uri)) { using (StreamReader reader = new StreamReader(stream)) { string line; while ((line = await reader.ReadLineAsync()) != null) { string DecodedLine = SecurityFuncs.Base64DecodeOld(line); string[] serverInfo = DecodedLine.Split('|'); GameServer gameServer = new GameServer(serverInfo[0], serverInfo[1], serverInfo[2], serverInfo[3], serverInfo[4]); if (gameServer.IsValid()) { serverList.Add(gameServer); } } } } }
void LoadToolStripMenuItemClick(object sender, EventArgs e) { bool IsVersion2 = false; using (var ofd = new OpenFileDialog()) { ofd.Filter = "Novetus Clientinfo files (*.nov)|*.nov"; ofd.FilterIndex = 1; ofd.FileName = "clientinfo.nov"; ofd.Title = "Load clientinfo.nov"; if (ofd.ShowDialog() == DialogResult.OK) { string file, usesplayername, usesid, warning, legacymode, clientmd5, scriptmd5, desc, locked, fix2007, alreadyhassecurity, cmdargsorclientoptions, commandargsver2; using (StreamReader reader = new StreamReader(ofd.FileName)) { file = reader.ReadLine(); } string ConvertedLine = ""; try { IsVersion2 = true; label9.Text = "v2 (v" + GlobalVars.ProgramInformation.Version + ")"; ConvertedLine = SecurityFuncs.Base64DecodeNew(file); } catch (Exception) { label9.Text = "v1 (v1.1)"; ConvertedLine = SecurityFuncs.Base64DecodeOld(file); } string[] result = ConvertedLine.Split('|'); usesplayername = SecurityFuncs.Base64Decode(result[0]); usesid = SecurityFuncs.Base64Decode(result[1]); warning = SecurityFuncs.Base64Decode(result[2]); legacymode = SecurityFuncs.Base64Decode(result[3]); clientmd5 = SecurityFuncs.Base64Decode(result[4]); scriptmd5 = SecurityFuncs.Base64Decode(result[5]); desc = SecurityFuncs.Base64Decode(result[6]); locked = SecurityFuncs.Base64Decode(result[7]); fix2007 = SecurityFuncs.Base64Decode(result[8]); alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]); cmdargsorclientoptions = SecurityFuncs.Base64Decode(result[10]); commandargsver2 = ""; try { if (IsVersion2) { commandargsver2 = SecurityFuncs.Base64Decode(result[11]); } } catch (Exception) { if (!label9.Text.Equals("v1 (v1.1)")) { label9.Text = "v2 (v1.2 Snapshot 7440)"; IsVersion2 = false; } } if (!GlobalVars.AdminMode) { bool lockcheck = Convert.ToBoolean(locked); if (lockcheck) { NewClientInfo(); MessageBox.Show("This client is locked and therefore it cannot be loaded.", "Novetus Launcher - Error when loading client", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { Locked = lockcheck; checkBox4.Checked = Locked; } } else { Locked = Convert.ToBoolean(locked); checkBox4.Checked = Locked; } SelectedClientInfo.UsesPlayerName = Convert.ToBoolean(usesplayername); SelectedClientInfo.UsesID = Convert.ToBoolean(usesid); SelectedClientInfo.Warning = warning; SelectedClientInfo.LegacyMode = Convert.ToBoolean(legacymode); SelectedClientInfo.ClientMD5 = clientmd5; SelectedClientInfo.ScriptMD5 = scriptmd5; SelectedClientInfo.Description = desc; SelectedClientInfo.Fix2007 = Convert.ToBoolean(fix2007); SelectedClientInfo.AlreadyHasSecurity = Convert.ToBoolean(alreadyhassecurity); try { if (IsVersion2) { if (cmdargsorclientoptions.Equals("True") || cmdargsorclientoptions.Equals("False")) { label9.Text = "v2 (v1.2.3)"; SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForBool(Convert.ToBoolean(cmdargsorclientoptions)); } else { SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForInt(Convert.ToInt32(cmdargsorclientoptions)); } SelectedClientInfo.CommandLineArgs = commandargsver2; } } catch (Exception) { //Again, fake it. SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; SelectedClientInfo.CommandLineArgs = cmdargsorclientoptions; } SelectedClientInfoPath = Path.GetDirectoryName(ofd.FileName); } } checkBox1.Checked = SelectedClientInfo.UsesPlayerName; checkBox2.Checked = SelectedClientInfo.UsesID; checkBox3.Checked = SelectedClientInfo.LegacyMode; checkBox6.Checked = SelectedClientInfo.Fix2007; checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity; switch (SelectedClientInfo.ClientLoadOptions) { case Settings.GraphicsOptions.ClientLoadOptions.Client_2007: comboBox1.SelectedIndex = 1; break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp: comboBox1.SelectedIndex = 2; break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: comboBox1.SelectedIndex = 3; break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21: comboBox1.SelectedIndex = 4; break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions: comboBox1.SelectedIndex = 5; break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic: comboBox1.SelectedIndex = 6; break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21: comboBox1.SelectedIndex = 7; break; case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: comboBox1.SelectedIndex = 8; break; default: comboBox1.SelectedIndex = 0; break; } textBox1.Text = SelectedClientInfo.Description; textBox4.Text = SelectedClientInfo.CommandLineArgs; textBox5.Text = SelectedClientInfo.Warning; }
void LoadToolStripMenuItemClick(object sender, EventArgs e) { bool IsVersion2 = false; using (var ofd = new OpenFileDialog()) { ofd.Filter = "Novetus Clientinfo files (*.nov)|*.nov"; ofd.FilterIndex = 1; ofd.FileName = "clientinfo.nov"; ofd.Title = "Load clientinfo.nov"; if (ofd.ShowDialog() == DialogResult.OK) { string file, usesplayername, usesid, warning, legacymode, clientmd5, scriptmd5, desc, locked, fix2007, alreadyhassecurity, cmdargsorclientoptions, commandargsver2, folders, usescustomname, customname; using (StreamReader reader = new StreamReader(ofd.FileName)) { file = reader.ReadLine(); } string ConvertedLine = ""; try { IsVersion2 = true; label9.Text = curversion + " (v" + GlobalVars.ProgramInformation.Version + ")"; ConvertedLine = SecurityFuncs.Base64DecodeNew(file); } catch (Exception ex) { GlobalFuncs.LogExceptions(ex); label9.Text = "v1 (v1.1)"; ConvertedLine = SecurityFuncs.Base64DecodeOld(file); } string[] result = ConvertedLine.Split('|'); usesplayername = SecurityFuncs.Base64Decode(result[0]); usesid = SecurityFuncs.Base64Decode(result[1]); warning = SecurityFuncs.Base64Decode(result[2]); legacymode = SecurityFuncs.Base64Decode(result[3]); clientmd5 = SecurityFuncs.Base64Decode(result[4]); scriptmd5 = SecurityFuncs.Base64Decode(result[5]); desc = SecurityFuncs.Base64Decode(result[6]); locked = SecurityFuncs.Base64Decode(result[7]); fix2007 = SecurityFuncs.Base64Decode(result[8]); alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]); cmdargsorclientoptions = SecurityFuncs.Base64Decode(result[10]); folders = "False"; usescustomname = "False"; customname = ""; commandargsver2 = ""; try { if (IsVersion2) { commandargsver2 = SecurityFuncs.Base64Decode(result[11]); bool parsedValue; if (bool.TryParse(commandargsver2, out parsedValue)) { folders = SecurityFuncs.Base64Decode(result[11]); commandargsver2 = SecurityFuncs.Base64Decode(result[12]); bool parsedValue2; if (bool.TryParse(commandargsver2, out parsedValue2)) { usescustomname = SecurityFuncs.Base64Decode(result[12]); customname = SecurityFuncs.Base64Decode(result[13]); commandargsver2 = SecurityFuncs.Base64Decode(result[14]); } else { if (!label9.Text.Equals("v1 (v1.1)")) { label9.Text = "v2.2 (Last used in v1.3 v11.2021.1)"; } } } else { if (!label9.Text.Equals("v1 (v1.1)")) { label9.Text = "v2.1 (Last used in v1.3 Pre-Release 5)"; } } } } catch (Exception ex) { GlobalFuncs.LogExceptions(ex); if (!label9.Text.Equals("v1 (v1.1)")) { label9.Text = "v2 Alpha (Last used in v1.2 Snapshot 7440)"; IsVersion2 = false; } } if (!GlobalVars.AdminMode) { bool lockcheck = Convert.ToBoolean(locked); if (lockcheck) { NewClientInfo(); MessageBox.Show("This client is locked and therefore it cannot be loaded.", "Novetus Launcher - Error when loading client", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { Locked = lockcheck; checkBox4.Checked = Locked; } } else { Locked = Convert.ToBoolean(locked); checkBox4.Checked = Locked; } SelectedClientInfo.UsesPlayerName = Convert.ToBoolean(usesplayername); SelectedClientInfo.UsesID = Convert.ToBoolean(usesid); SelectedClientInfo.Warning = warning; SelectedClientInfo.LegacyMode = Convert.ToBoolean(legacymode); SelectedClientInfo.ClientMD5 = clientmd5; SelectedClientInfo.ScriptMD5 = scriptmd5; SelectedClientInfo.Description = desc; SelectedClientInfo.Fix2007 = Convert.ToBoolean(fix2007); SelectedClientInfo.AlreadyHasSecurity = Convert.ToBoolean(alreadyhassecurity); SelectedClientInfo.SeperateFolders = Convert.ToBoolean(folders); SelectedClientInfo.UsesCustomClientEXEName = Convert.ToBoolean(usescustomname); SelectedClientInfo.CustomClientEXEName = customname; try { if (IsVersion2) { if (cmdargsorclientoptions.Equals("True") || cmdargsorclientoptions.Equals("False")) { label9.Text = "v2 (Last used in v1.2.3)"; SelectedClientInfo.ClientLoadOptions = Settings.GetClientLoadOptionsForBool(Convert.ToBoolean(cmdargsorclientoptions)); } else { SelectedClientInfo.ClientLoadOptions = (Settings.ClientLoadOptions)Convert.ToInt32(cmdargsorclientoptions); } SelectedClientInfo.CommandLineArgs = commandargsver2; } } catch (Exception ex) { GlobalFuncs.LogExceptions(ex); //Again, fake it. SelectedClientInfo.ClientLoadOptions = Settings.ClientLoadOptions.Client_2008AndUp; SelectedClientInfo.CommandLineArgs = cmdargsorclientoptions; } SelectedClientInfoPath = Path.GetDirectoryName(ofd.FileName); } } LoadUIElements(); }