regioned uri files. restored functionality to SDK utils that were damaged

This commit is contained in:
Bitl 2020-07-10 17:30:41 -07:00
parent f95e1b1401
commit ec79c7a5ea
10 changed files with 435 additions and 429 deletions

View File

@ -3,7 +3,7 @@
* *
* change control names for all forms * change control names for all forms
* Rewrite client launching into one function. * Rewrite client launching into one function.
* add regions to rest of forms. URI, Launcher, and charcustom forms are left! * add regions to rest of forms. Launcher forms are left!
*/ */
#region Global Variables #region Global Variables

View File

@ -513,168 +513,6 @@ namespace NovetusLauncher
} }
#endregion #endregion
#region Client SDK
public static string SaveClientinfoAndGetPath(FileFormat.ClientInfo info, bool islocked, bool textonly = false)
{
string path = "";
using (var sfd = new SaveFileDialog())
{
sfd.Filter = textonly ? "Text file (*.txt)|*.txt" : "Novetus Clientinfo files (*.nov)|*.nov";
sfd.FilterIndex = 1;
string filename = textonly ? "clientinfo.txt" : "clientinfo.nov";
sfd.FileName = filename;
sfd.Title = "Save " + filename;
if (sfd.ShowDialog() == DialogResult.OK)
{
string[] lines = {
textonly ? info.UsesPlayerName.ToString() : SecurityFuncs.Base64Encode(info.UsesPlayerName.ToString()),
textonly ? info.UsesID.ToString() : SecurityFuncs.Base64Encode(info.UsesID.ToString()),
textonly ? info.Warning.ToString() : SecurityFuncs.Base64Encode(info.Warning.ToString()),
textonly ? info.LegacyMode.ToString() : SecurityFuncs.Base64Encode(info.LegacyMode.ToString()),
textonly ? info.ClientMD5.ToString() : SecurityFuncs.Base64Encode(info.ClientMD5.ToString()),
textonly ? info.ScriptMD5.ToString() : SecurityFuncs.Base64Encode(info.ScriptMD5.ToString()),
textonly ? info.Description.ToString() : SecurityFuncs.Base64Encode(info.Description.ToString()),
textonly ? islocked.ToString() : SecurityFuncs.Base64Encode(islocked.ToString()),
textonly ? info.Fix2007.ToString() : SecurityFuncs.Base64Encode(info.Fix2007.ToString()),
textonly ? info.AlreadyHasSecurity.ToString() : SecurityFuncs.Base64Encode(info.AlreadyHasSecurity.ToString()),
textonly ? info.NoGraphicsOptions.ToString() : SecurityFuncs.Base64Encode(info.NoGraphicsOptions.ToString()),
textonly ? info.CommandLineArgs.ToString() : SecurityFuncs.Base64Encode(info.CommandLineArgs.ToString())
};
File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|", lines)));
path = Path.GetDirectoryName(sfd.FileName);
}
}
return path;
}
public static string LoadClientinfoAndGetPath(FileFormat.ClientInfo info, bool islocked, string veroutput, bool islockedoutput)
{
string path = "";
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,
cmdargsornogfxoptions, commandargsver2;
using (StreamReader reader = new StreamReader(ofd.FileName))
{
file = reader.ReadLine();
}
string ConvertedLine = "";
try
{
IsVersion2 = true;
veroutput = "v2";
ConvertedLine = SecurityFuncs.Base64DecodeNew(file);
}
catch (Exception)
{
veroutput = "v1";
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]);
cmdargsornogfxoptions = SecurityFuncs.Base64Decode(result[10]);
commandargsver2 = "";
try
{
if (IsVersion2)
{
commandargsver2 = SecurityFuncs.Base64Decode(result[11]);
}
}
catch (Exception)
{
veroutput = "v2 (DEV)";
IsVersion2 = false;
}
if (!GlobalVars.AdminMode)
{
bool lockcheck = Convert.ToBoolean(locked);
if (lockcheck)
{
MessageBox.Show("This client is locked and therefore it cannot be loaded.", "Novetus Launcher - Error when loading client", MessageBoxButtons.OK, MessageBoxIcon.Error);
return "";
}
else
{
islocked = lockcheck;
islockedoutput = islocked;
}
}
else
{
islocked = Convert.ToBoolean(locked);
islockedoutput = islocked;
}
info.UsesPlayerName = Convert.ToBoolean(usesplayername);
info.UsesID = Convert.ToBoolean(usesid);
info.Warning = warning;
info.LegacyMode = Convert.ToBoolean(legacymode);
info.ClientMD5 = clientmd5;
info.ScriptMD5 = scriptmd5;
info.Description = desc;
info.Fix2007 = Convert.ToBoolean(fix2007);
info.AlreadyHasSecurity = Convert.ToBoolean(alreadyhassecurity);
if (IsVersion2)
{
info.NoGraphicsOptions = Convert.ToBoolean(cmdargsornogfxoptions);
info.CommandLineArgs = commandargsver2;
}
else
{
//Again, fake it.
info.NoGraphicsOptions = false;
info.CommandLineArgs = cmdargsornogfxoptions;
}
}
}
return path;
}
public static void NewClientinfo(FileFormat.ClientInfo info, bool islocked)
{
info.UsesPlayerName = false;
info.UsesID = false;
info.Warning = "";
info.LegacyMode = false;
info.Fix2007 = false;
info.AlreadyHasSecurity = false;
info.Description = "";
info.ClientMD5 = "";
info.ScriptMD5 = "";
info.CommandLineArgs = "";
islocked = false;
}
#endregion
#region Diogenes Editor #region Diogenes Editor
// credit to Carrot for this :D // credit to Carrot for this :D
@ -690,86 +528,6 @@ namespace NovetusLauncher
return result.ToString(); return result.ToString();
} }
public static void LoadDiogenes(string veroutput, string textoutput)
{
using (var ofd = new OpenFileDialog())
{
ofd.Filter = "ROBLOX Diogenes filter (diogenes.fnt)|diogenes.fnt";
ofd.FilterIndex = 1;
ofd.FileName = "diogenes.fnt";
ofd.Title = "Load diogenes.fnt";
if (ofd.ShowDialog() == DialogResult.OK)
{
StringBuilder builder = new StringBuilder();
using (StreamReader reader = new StreamReader(ofd.FileName))
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
try
{
line = DiogenesCrypt(line);
veroutput = "v2";
}
catch (Exception)
{
veroutput = "v1";
continue;
}
builder.Append(line + Environment.NewLine);
}
}
textoutput = builder.ToString();
}
}
}
public static void SaveDiogenes(string veroutput, string[] lineinput, bool textonly = false)
{
using (var sfd = new SaveFileDialog())
{
sfd.Filter = "ROBLOX Diogenes filter v2 (diogenes.fnt)|diogenes.fnt|ROBLOX Diogenes filter v1 (diogenes.fnt)|diogenes.fnt";
sfd.FilterIndex = 1;
sfd.FileName = "diogenes.fnt";
sfd.Title = "Save diogenes.fnt";
if (sfd.ShowDialog() == DialogResult.OK)
{
if (!textonly)
{
StringBuilder builder = new StringBuilder();
foreach (string s in lineinput)
{
if (sfd.FilterIndex == 1)
{
builder.Append(DiogenesCrypt(s) + Environment.NewLine);
veroutput = "v2";
}
else
{
builder.Append(s + Environment.NewLine);
veroutput = "v1";
}
}
using (StreamWriter sw = File.CreateText(sfd.FileName))
{
sw.Write(builder.ToString());
}
}
else
{
File.WriteAllLines(sfd.FileName, lineinput);
}
}
}
}
#endregion #endregion
#region Item SDK #region Item SDK
@ -822,29 +580,6 @@ namespace NovetusLauncher
MessageBox.Show("Error: Unable to download the file. Try using a different file name or ID.", "Novetus Item SDK | Error", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("Error: Unable to download the file. Try using a different file name or ID.", "Novetus Item SDK | Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }
public static void SelectItemDownloadURL(int index, string url, bool iswebsite)
{
switch (index)
{
case 1:
url = "http://assetgame.roblox.com/asset/?id=";
iswebsite = false;
break;
case 2:
url = "https://www.roblox.com/catalog/";
iswebsite = true;
break;
case 3:
url = "https://www.roblox.com/library/";
iswebsite = true;
break;
default:
url = "http://www.roblox.com/asset?id=";
iswebsite = false;
break;
}
}
#endregion #endregion
#region SDK Launcher #region SDK Launcher

View File

@ -114,7 +114,14 @@ namespace NovetusLauncher
void CheckBox4CheckedChanged(object sender, EventArgs e) void CheckBox4CheckedChanged(object sender, EventArgs e)
{ {
Locked = true; if (checkBox4.Checked == true)
{
Locked = true;
}
else if (checkBox4.Checked == false && Locked == true)
{
Locked = true;
}
} }
void CheckBox6CheckedChanged(object sender, EventArgs e) void CheckBox6CheckedChanged(object sender, EventArgs e)
@ -135,7 +142,18 @@ namespace NovetusLauncher
void NewToolStripMenuItemClick(object sender, EventArgs e) void NewToolStripMenuItemClick(object sender, EventArgs e)
{ {
label9.Text = "Not Loaded"; label9.Text = "Not Loaded";
SDKFuncs.NewClientinfo(SelectedClientInfo, Locked); SelectedClientInfo.UsesPlayerName = false;
SelectedClientInfo.UsesID = false;
SelectedClientInfo.Warning = "";
SelectedClientInfo.LegacyMode = false;
SelectedClientInfo.Fix2007 = false;
SelectedClientInfo.AlreadyHasSecurity = false;
SelectedClientInfo.NoGraphicsOptions = false;
SelectedClientInfo.Description = "";
SelectedClientInfo.ClientMD5 = "";
SelectedClientInfo.ScriptMD5 = "";
SelectedClientInfo.CommandLineArgs = "";
Locked = false;
SelectedClientInfoPath = ""; SelectedClientInfoPath = "";
checkBox1.Checked = SelectedClientInfo.UsesPlayerName; checkBox1.Checked = SelectedClientInfo.UsesPlayerName;
checkBox2.Checked = SelectedClientInfo.UsesID; checkBox2.Checked = SelectedClientInfo.UsesID;
@ -155,36 +173,156 @@ namespace NovetusLauncher
void LoadToolStripMenuItemClick(object sender, EventArgs e) void LoadToolStripMenuItemClick(object sender, EventArgs e)
{ {
string clientinfopath = SDKFuncs.LoadClientinfoAndGetPath(SelectedClientInfo, Locked, label9.Text, checkBox4.Checked); bool IsVersion2 = false;
if (!string.IsNullOrWhiteSpace(clientinfopath)) using (var ofd = new OpenFileDialog())
{ {
SelectedClientInfoPath = clientinfopath; 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,
cmdargsornogfxoptions, commandargsver2;
checkBox1.Checked = SelectedClientInfo.UsesPlayerName; using (StreamReader reader = new StreamReader(ofd.FileName))
checkBox2.Checked = SelectedClientInfo.UsesID; {
checkBox3.Checked = SelectedClientInfo.LegacyMode; file = reader.ReadLine();
checkBox6.Checked = SelectedClientInfo.Fix2007; }
checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity;
checkBox5.Checked = SelectedClientInfo.NoGraphicsOptions; string ConvertedLine = "";
textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture); try
textBox1.Text = SelectedClientInfo.Description; {
textBox4.Text = SelectedClientInfo.CommandLineArgs; IsVersion2 = true;
textBox5.Text = SelectedClientInfo.Warning; label9.Text = "v2";
ConvertedLine = SecurityFuncs.Base64DecodeNew(file);
}
catch (Exception)
{
label9.Text = "v1";
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]);
cmdargsornogfxoptions = SecurityFuncs.Base64Decode(result[10]);
commandargsver2 = "";
try
{
if (IsVersion2)
{
commandargsver2 = SecurityFuncs.Base64Decode(result[11]);
}
}
catch (Exception)
{
label9.Text = "v2 (DEV)";
IsVersion2 = false;
}
if (!GlobalVars.AdminMode)
{
bool lockcheck = Convert.ToBoolean(locked);
if (lockcheck)
{
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);
if (IsVersion2)
{
SelectedClientInfo.NoGraphicsOptions = Convert.ToBoolean(cmdargsornogfxoptions);
SelectedClientInfo.CommandLineArgs = commandargsver2;
}
else
{
//Again, fake it.
SelectedClientInfo.NoGraphicsOptions = false;
SelectedClientInfo.CommandLineArgs = cmdargsornogfxoptions;
}
}
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;
checkBox5.Checked = SelectedClientInfo.NoGraphicsOptions;
textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture);
textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture);
textBox1.Text = SelectedClientInfo.Description;
textBox4.Text = SelectedClientInfo.CommandLineArgs;
textBox5.Text = SelectedClientInfo.Warning;
textBox2.BackColor = System.Drawing.SystemColors.Control; textBox2.BackColor = System.Drawing.SystemColors.Control;
textBox3.BackColor = System.Drawing.SystemColors.Control; textBox3.BackColor = System.Drawing.SystemColors.Control;
} }
void SaveToolStripMenuItemClick(object sender, EventArgs e) void SaveToolStripMenuItemClick(object sender, EventArgs e)
{ {
string clientinfopath = SDKFuncs.SaveClientinfoAndGetPath(SelectedClientInfo, Locked); using (var sfd = new SaveFileDialog())
if (!string.IsNullOrWhiteSpace(clientinfopath))
{ {
SelectedClientInfoPath = clientinfopath; sfd.Filter = "Novetus Clientinfo files (*.nov)|*.nov";
sfd.FilterIndex = 1;
string filename = "clientinfo.nov";
sfd.FileName = filename;
sfd.Title = "Save " + filename;
if (sfd.ShowDialog() == DialogResult.OK)
{
string[] lines = {
SecurityFuncs.Base64Encode(SelectedClientInfo.UsesPlayerName.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.UsesID.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Warning.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.LegacyMode.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.ClientMD5.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.ScriptMD5.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Description.ToString()),
SecurityFuncs.Base64Encode(Locked.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.Fix2007.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.AlreadyHasSecurity.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.NoGraphicsOptions.ToString()),
SecurityFuncs.Base64Encode(SelectedClientInfo.CommandLineArgs.ToString())
};
File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|", lines)));
SelectedClientInfoPath = Path.GetDirectoryName(sfd.FileName);
}
} }
label9.Text = "v2"; label9.Text = "v2";
@ -194,7 +332,34 @@ namespace NovetusLauncher
private void saveAsTextFileToolStripMenuItem_Click(object sender, EventArgs e) private void saveAsTextFileToolStripMenuItem_Click(object sender, EventArgs e)
{ {
SDKFuncs.SaveClientinfoAndGetPath(SelectedClientInfo, Locked, true); using (var sfd = new SaveFileDialog())
{
sfd.Filter = "Text file (*.txt)|*.txt";
sfd.FilterIndex = 1;
string filename = "clientinfo.txt";
sfd.FileName = filename;
sfd.Title = "Save " + filename;
if (sfd.ShowDialog() == DialogResult.OK)
{
string[] lines = {
SelectedClientInfo.UsesPlayerName.ToString(),
SelectedClientInfo.UsesID.ToString(),
SelectedClientInfo.Warning.ToString(),
SelectedClientInfo.LegacyMode.ToString(),
SelectedClientInfo.ClientMD5.ToString(),
SelectedClientInfo.ScriptMD5.ToString(),
SelectedClientInfo.Description.ToString(),
Locked.ToString(),
SelectedClientInfo.Fix2007.ToString(),
SelectedClientInfo.AlreadyHasSecurity.ToString(),
SelectedClientInfo.NoGraphicsOptions.ToString(),
SelectedClientInfo.CommandLineArgs.ToString()
};
File.WriteAllLines(sfd.FileName, lines);
SelectedClientInfoPath = Path.GetDirectoryName(sfd.FileName);
}
}
} }
void TextBox4TextChanged(object sender, EventArgs e) void TextBox4TextChanged(object sender, EventArgs e)

View File

@ -26,17 +26,91 @@ namespace NovetusLauncher
void LoadToolStripMenuItemClick(object sender, EventArgs e) void LoadToolStripMenuItemClick(object sender, EventArgs e)
{ {
SDKFuncs.LoadDiogenes(label2.Text, richTextBox1.Text); using (var ofd = new OpenFileDialog())
{
ofd.Filter = "ROBLOX Diogenes filter (diogenes.fnt)|diogenes.fnt";
ofd.FilterIndex = 1;
ofd.FileName = "diogenes.fnt";
ofd.Title = "Load diogenes.fnt";
if (ofd.ShowDialog() == DialogResult.OK)
{
StringBuilder builder = new StringBuilder();
using (StreamReader reader = new StreamReader(ofd.FileName))
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
try
{
line = SDKFuncs.DiogenesCrypt(line);
label2.Text = "v2";
}
catch (Exception)
{
label2.Text = "v1";
continue;
}
builder.Append(line + Environment.NewLine);
}
}
richTextBox1.Text = builder.ToString();
}
}
} }
void SaveToolStripMenuItemClick(object sender, EventArgs e) void SaveToolStripMenuItemClick(object sender, EventArgs e)
{ {
SDKFuncs.SaveDiogenes(label2.Text, richTextBox1.Lines); using (var sfd = new SaveFileDialog())
{
sfd.Filter = "ROBLOX Diogenes filter v2 (diogenes.fnt)|diogenes.fnt|ROBLOX Diogenes filter v1 (diogenes.fnt)|diogenes.fnt";
sfd.FilterIndex = 1;
sfd.FileName = "diogenes.fnt";
sfd.Title = "Save diogenes.fnt";
if (sfd.ShowDialog() == DialogResult.OK)
{
StringBuilder builder = new StringBuilder();
foreach (string s in richTextBox1.Lines)
{
if (sfd.FilterIndex == 1)
{
builder.Append(SDKFuncs.DiogenesCrypt(s) + Environment.NewLine);
label2.Text = "v2";
}
else
{
builder.Append(s + Environment.NewLine);
label2.Text = "v1";
}
}
using (StreamWriter sw = File.CreateText(sfd.FileName))
{
sw.Write(builder.ToString());
}
}
}
} }
void saveAsTextFileToolStripMenuItem_Click(object sender, EventArgs e) void saveAsTextFileToolStripMenuItem_Click(object sender, EventArgs e)
{ {
SDKFuncs.SaveDiogenes(label2.Text, richTextBox1.Lines, true); using (var sfd = new SaveFileDialog())
{
sfd.Filter = "Text file (*.txt)|*.txt";
sfd.FilterIndex = 1;
sfd.FileName = "diogenes.txt";
sfd.Title = "Save diogenes.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
File.WriteAllLines(sfd.FileName, richTextBox1.Lines);
}
}
} }
#endregion #endregion
} }

View File

@ -28,7 +28,25 @@ namespace NovetusLauncher
void ComboBox1SelectedIndexChanged(object sender, EventArgs e) void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
{ {
SDKFuncs.SelectItemDownloadURL(comboBox1.SelectedIndex, url, isWebSite); switch (comboBox1.SelectedIndex)
{
case 1:
url = "http://assetgame.roblox.com/asset/?id=";
isWebSite = false;
break;
case 2:
url = "https://www.roblox.com/catalog/";
isWebSite = true;
break;
case 3:
url = "https://www.roblox.com/library/";
isWebSite = true;
break;
default:
url = "http://www.roblox.com/asset?id=";
isWebSite = false;
break;
}
} }
void ItemMakerLoad(object sender, EventArgs e) void ItemMakerLoad(object sender, EventArgs e)

View File

@ -0,0 +1,67 @@
#region Usings
using System;
using System.IO;
using System.Windows.Forms;
#endregion
namespace NovetusURI
{
#region LocalFuncs
class LocalFuncs
{
public static void RegisterURI(Form form)
{
if (SecurityFuncs.IsElevated)
{
try
{
URIReg novURI = new URIReg("novetus", "url.novetus");
novURI.Register();
MessageBox.Show("URI successfully installed and registered!", "Novetus - Install URI", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Failed to register. (Error: " + ex.Message + ")", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
form.Close();
}
}
else
{
MessageBox.Show("Failed to register. (Error: Did not run as Administrator)", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
form.Close();
}
}
public static void ReadClientValues(string ClientName)
{
string clientpath = GlobalPaths.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
if (!File.Exists(clientpath))
{
MessageBox.Show("No clientinfo.nov detected with the client you chose. The client either cannot be loaded, or it is not available.", "Novetus Launcher - Error while loading client", MessageBoxButtons.OK, MessageBoxIcon.Error);
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.ProgramInformation.DefaultClient;
ReadClientValues(ClientName);
}
else
{
GlobalFuncs.ReadClientValues(clientpath);
}
}
public static void SetupURIValues()
{
string ExtractedArg = GlobalVars.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.UserConfiguration.RobloxPort = Convert.ToInt32(port);
LocalFuncs.ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
}
}
#endregion
}

View File

@ -1,37 +1,26 @@
using System; #region Usings
using System;
using System.Windows.Forms; using System.Windows.Forms;
#endregion
namespace NovetusURI namespace NovetusURI
{ {
#region URI Installation Form
public partial class InstallForm : Form public partial class InstallForm : Form
{ {
#region Constructor
public InstallForm() public InstallForm()
{ {
InitializeComponent(); InitializeComponent();
} }
#endregion
#region Form Events
private void button1_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e)
{ {
if (SecurityFuncs.IsElevated) LocalFuncs.RegisterURI(this);
{
try
{
URIReg novURI = new URIReg("novetus","url.novetus");
novURI.Register();
MessageBox.Show("URI successfully installed and registered!", "Novetus - Install URI", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Failed to register. (Error: " + ex.Message + ")", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Close();
}
}
else
{
MessageBox.Show("Failed to register. (Error: Did not run as Administrator)", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Close();
}
} }
#endregion
} }
#endregion
} }

View File

@ -1,63 +1,71 @@
/* #region Usings
* Created by SharpDevelop.
* User: BITL
* Date: 6/13/2017
* Time: 11:45 AM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.IO; using System.IO;
using System.Diagnostics; using System.Diagnostics;
using System.Threading; using System.Threading;
using System.Windows.Forms; using System.Windows.Forms;
using System.Reflection; #endregion
namespace NovetusURI namespace NovetusURI
{ {
/// <summary> #region URI Loader
/// Description of LoaderForm. public partial class LoaderForm : Form
/// </summary>
public partial class LoaderForm : Form
{ {
DiscordRPC.EventHandlers handlers; #region Private Variables
private DiscordRPC.EventHandlers handlers;
#endregion
public LoaderForm() #region Discord
public void ReadyCallback()
{ {
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
} }
public void ReadyCallback() public void DisconnectedCallback(int errorCode, string message)
{ {
} }
public void DisconnectedCallback(int errorCode, string message) public void ErrorCallback(int errorCode, string message)
{ {
} }
public void ErrorCallback(int errorCode, string message) public void JoinCallback(string secret)
{ {
} }
public void JoinCallback(string secret) public void SpectateCallback(string secret)
{ {
} }
public void SpectateCallback(string secret) public void RequestCallback(DiscordRPC.JoinRequest request)
{ {
} }
public void RequestCallback(DiscordRPC.JoinRequest request) void StartDiscord()
{ {
} if (GlobalVars.UserConfiguration.DiscordPresence)
{
handlers = new DiscordRPC.EventHandlers();
handlers.readyCallback = ReadyCallback;
handlers.disconnectedCallback += DisconnectedCallback;
handlers.errorCallback += ErrorCallback;
handlers.joinCallback += JoinCallback;
handlers.spectateCallback += SpectateCallback;
handlers.requestCallback += RequestCallback;
DiscordRPC.Initialize(GlobalVars.appid, ref handlers, true, "");
GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.LoadingURI, "", true);
}
}
#endregion
#region Constructor
public LoaderForm()
{
InitializeComponent();
}
#endregion
#region Form Events
void LoaderFormLoad(object sender, EventArgs e) void LoaderFormLoad(object sender, EventArgs e)
{ {
QuickConfigure main = new QuickConfigure(); QuickConfigure main = new QuickConfigure();
@ -65,35 +73,8 @@ namespace NovetusURI
System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0); System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0);
} }
void StartDiscord()
{
if (GlobalVars.UserConfiguration.DiscordPresence)
{
handlers = new DiscordRPC.EventHandlers();
handlers.readyCallback = ReadyCallback;
handlers.disconnectedCallback += DisconnectedCallback;
handlers.errorCallback += ErrorCallback;
handlers.joinCallback += JoinCallback;
handlers.spectateCallback += SpectateCallback;
handlers.requestCallback += RequestCallback;
DiscordRPC.Initialize(GlobalVars.appid, ref handlers, true, "");
GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.LoadingURI, "", true);
}
}
void StartGame() void StartGame()
{ {
string ExtractedArg = GlobalVars.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.UserConfiguration.RobloxPort = Convert.ToInt32(port);
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
string luafile = ""; string luafile = "";
if (!GlobalVars.SelectedClientInfo.Fix2007) if (!GlobalVars.SelectedClientInfo.Fix2007)
{ {
@ -179,17 +160,17 @@ namespace NovetusURI
clientproc.PriorityClass = ProcessPriorityClass.RealTime; clientproc.PriorityClass = ProcessPriorityClass.RealTime;
SecurityFuncs.RenameWindow(clientproc, ScriptType.Client, ""); SecurityFuncs.RenameWindow(clientproc, ScriptType.Client, "");
GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.InMPGame, ""); GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.InMPGame, "");
this.Visible = false; Visible = false;
} }
void ClientExited(object sender, EventArgs e) void ClientExited(object sender, EventArgs e)
{ {
GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.InLauncher, ""); GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.InLauncher, "");
this.Close(); Close();
} }
private void CheckIfFinished(object state) private void CheckIfFinished(object state)
{ {
if (!LocalVars.ReadyToLaunch) if (!LocalVars.ReadyToLaunch)
{ {
System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0); System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0);
@ -197,30 +178,17 @@ namespace NovetusURI
else else
{ {
Visible = true; Visible = true;
if (GlobalVars.UserConfiguration.DiscordPresence) if (GlobalVars.UserConfiguration.DiscordPresence)
{ {
label1.Text = "Starting Discord Rich Presence..."; label1.Text = "Starting Discord Rich Presence...";
StartDiscord(); StartDiscord();
} }
label1.Text = "Launching Game..."; label1.Text = "Launching Game...";
LocalFuncs.SetupURIValues();
StartGame(); StartGame();
} }
}
void ReadClientValues(string ClientName)
{
string clientpath = GlobalPaths.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
if (!File.Exists(clientpath))
{
MessageBox.Show("No clientinfo.nov detected with the client you chose. The client either cannot be loaded, or it is not available.", "Novetus Launcher - Error while loading client", MessageBoxButtons.OK, MessageBoxIcon.Error);
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.ProgramInformation.DefaultClient;
ReadClientValues(ClientName);
}
else
{
GlobalFuncs.ReadClientValues(clientpath);
}
} }
#endregion
} }
#endregion
} }

View File

@ -1,37 +1,24 @@
/* #region Usings
* Created by SharpDevelop.
* User: BITL
* Date: 6/13/2017
* Time: 4:16 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Windows.Forms; using System.Windows.Forms;
using System.IO;
using System.ComponentModel; using System.ComponentModel;
using NovetusLauncher; using NovetusLauncher;
#endregion
namespace NovetusURI namespace NovetusURI
{ {
/// <summary> #region Quick Configuration
/// Description of QuickConfigure. public partial class QuickConfigure : Form
/// </summary>
public partial class QuickConfigure : Form
{ {
public QuickConfigure() #region Constructor
public QuickConfigure()
{ {
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent(); InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
} }
#endregion
void QuickConfigureLoad(object sender, EventArgs e)
#region Form Events
void QuickConfigureLoad(object sender, EventArgs e)
{ {
ReadConfigValues(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName); ReadConfigValues(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName);
} }
@ -107,5 +94,7 @@ namespace NovetusURI
GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, true); GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, true);
LocalVars.ReadyToLaunch = true; LocalVars.ReadyToLaunch = true;
} }
} #endregion
}
#endregion
} }

View File

@ -88,6 +88,7 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Classes\LocalFuncs.cs" />
<Compile Include="Classes\URIReg.cs" /> <Compile Include="Classes\URIReg.cs" />
<Compile Include="Forms\InstallForm.cs"> <Compile Include="Forms\InstallForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>