Working on 1.0!

This commit is contained in:
Bitl 2019-10-18 18:17:12 -07:00
parent adbf49c25f
commit 0a97916e20
19 changed files with 1727 additions and 1534 deletions

View File

@ -60,14 +60,4 @@ public class AddonLoader
}
}
}
void CopyStream(Stream source, Stream dest)
{
int n;
var buf = new byte[2048];
while ((n = source.Read(buf, 0, buf.Length)) > 0)
{
dest.Write(buf, 0, n);
}
}
}

View File

@ -0,0 +1,61 @@
using System;
using System.IO;
using System.Windows.Forms;
using System.IO.Compression;
using System.Linq;
public class IconLoader
{
private OpenFileDialog openFileDialog1;
public string installOutcome = "";
private string extradir = GlobalVars.CustomPlayerDir + "\\custom";
public IconLoader()
{
openFileDialog1 = new OpenFileDialog()
{
FileName = "Select an icon .png file",
Filter = "Portable Network Graphics image (*.png)|*.png",
Title = "Open icon .png"
};
}
public void LoadImage()
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
using (Stream str = openFileDialog1.OpenFile())
{
CopyStream(openFileDialog1.FileName, extradir + "\\icons\\" + GlobalVars.PlayerName + ".png");
}
installOutcome = "Icon " + openFileDialog1.SafeFileName + " installed!";
}
catch (Exception ex)
{
installOutcome = "Error when installing icon: " + ex.Message;
}
}
}
public static void CopyStream(string inputFilePath, string outputFilePath)
{
int bufferSize = 1024 * 1024;
using (FileStream fileStream = new FileStream(outputFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite))
//using (FileStream fs = File.Open(<file-path>, FileMode.Open, FileAccess.Read, FileShare.Read))
{
FileStream fs = new FileStream(inputFilePath, FileMode.Open, FileAccess.ReadWrite);
fileStream.SetLength(fs.Length);
int bytesRead = -1;
byte[] bytes = new byte[bufferSize];
while ((bytesRead = fs.Read(bytes, 0, bufferSize)) > 0)
{
fileStream.Write(bytes, 0, bytesRead);
}
}
}
}

View File

@ -15,6 +15,7 @@
<Compile Include="$(MSBuildThisFileDirectory)CryptoRandom.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DiscordRpc.cs" />
<Compile Include="$(MSBuildThisFileDirectory)GlobalVars.cs" />
<Compile Include="$(MSBuildThisFileDirectory)IconLoader.cs" />
<Compile Include="$(MSBuildThisFileDirectory)IniFile.cs" />
<Compile Include="$(MSBuildThisFileDirectory)LauncherFuncs.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ScriptGenerator.cs" />

View File

@ -6,7 +6,7 @@
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.IO;
using System.Diagnostics;
@ -18,6 +18,7 @@ using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Linq;
using System.ComponentModel;
using System.Net;
/// <summary>
/// Description of SecurityFuncs.
@ -186,4 +187,22 @@ public class SecurityFuncs
RenameWindow(exe, type);
}
}
public static string GetExternalIPAddress()
{
string ipAddress;
using (WebClient wc = new WebClient())
{
try
{
ipAddress = wc.DownloadString("http://ipv4.icanhazip.com/");
}
catch (Exception)
{
ipAddress = "localhost" + Environment.NewLine;
}
}
return ipAddress;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@ using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;
using System.Net;
namespace NovetusLauncher
{
@ -108,18 +108,41 @@ namespace NovetusLauncher
void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage1"] || tabControl1.SelectedTab == tabControl1.TabPages["tabPage7"])//your specific tabname
{
listBox1.Items.Clear();
listBox2.Items.Clear();
listBox3.Items.Clear();
listBox4.Items.Clear();
listBox5.Items.Clear();
listBox6.Items.Clear();
listBox7.Items.Clear();
listBox8.Items.Clear();
listBox9.Items.Clear();
}
if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage1"])//your specific tabname
{
listBox1.Items.Clear();
listBox2.Items.Clear();
listBox3.Items.Clear();
listBox4.Items.Clear();
listBox5.Items.Clear();
listBox6.Items.Clear();
listBox7.Items.Clear();
listBox8.Items.Clear();
listBox9.Items.Clear();
}
else if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage7"])
{
listBox1.Items.Clear();
listBox2.Items.Clear();
listBox3.Items.Clear();
listBox4.Items.Clear();
listBox5.Items.Clear();
listBox6.Items.Clear();
listBox7.Items.Clear();
listBox8.Items.Clear();
listBox9.Items.Clear();
try
{
Image icon1 = Image.FromFile(extradir + "\\icons\\" + GlobalVars.PlayerName + ".png");
pictureBox10.Image = icon1;
}
catch (Exception)
{
Image icon1 = Image.FromFile(extradir + "\\NoExtra.png");
pictureBox10.Image = icon1;
}
}
else if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage2"])//your specific tabname
{
//hats
@ -1227,5 +1250,69 @@ namespace NovetusLauncher
}
}
}
}
private void button60_Click(object sender, EventArgs e)
{
IconLoader icon = new IconLoader();
try
{
icon.LoadImage();
}
catch (Exception)
{
}
if (!string.IsNullOrWhiteSpace(icon.installOutcome))
{
MessageBox.Show(icon.installOutcome);
}
try
{
Image icon1 = Image.FromFile(extradir + "\\icons\\" + GlobalVars.PlayerName + ".png");
pictureBox10.Image = icon1;
}
catch (Exception)
{
Image icon1 = Image.FromFile(extradir + "\\NoExtra.png");
pictureBox10.Image = icon1;
}
}
private void button61_Click(object sender, EventArgs e)
{
try
{
if (GlobalVars.IsWebServerOn == true)
{
string IP = SecurityFuncs.GetExternalIPAddress();
string localWebServerURL = "http://" + IP + ":" + GlobalVars.WebServer.Port.ToString();
string localWebServer_BodyColors = localWebServerURL + "/charcustom/bodycolors.rbxm";
string charapp = localWebServer_BodyColors + ";" +
GlobalVars.WebServer_HatDir + GlobalVars.Custom_Hat1ID_Offline + ";" +
GlobalVars.WebServer_HatDir + GlobalVars.Custom_Hat2ID_Offline + ";" +
GlobalVars.WebServer_HatDir + GlobalVars.Custom_Hat3ID_Offline + ";" +
GlobalVars.WebServer_HeadDir + GlobalVars.Custom_Head_Offline + ";" +
GlobalVars.WebServer_FaceDir + GlobalVars.Custom_Face_Offline + ";" +
GlobalVars.WebServer_TShirtDir + GlobalVars.Custom_T_Shirt_Offline + ";" +
GlobalVars.WebServer_ShirtDir + GlobalVars.Custom_Shirt_Offline + ";" +
GlobalVars.WebServer_PantsDir + GlobalVars.WebServer_PantsDir;
textBox1.Text = charapp;
GlobalVars.CharacterID = charapp;
}
else
{
MessageBox.Show("Could not generate charapp. Is are you running Novetus as as administrator and is the webserver running?");
textBox1.Text = "";
GlobalVars.CharacterID = "";
}
}
catch(Exception ex)
{
MessageBox.Show("Could not generate charapp. Error: " + ex.Message);
textBox1.Text = "";
GlobalVars.CharacterID = "";
}
}
}
}

View File

@ -117,195 +117,157 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="label4.Text" xml:space="preserve">
<value>NOTE: The icon will only function in a client with a custom scoreboard (I.E Early 2011). You will have to have UPnP or ports forwarded for the Web Server if you want other players to see your body colors.</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="button54.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADImlUWHRYTUw6Y29tLmFkb2Jl
LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
cmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJE
RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
eGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxu
czpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1w
OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJ
RD0ieG1wLmlpZDoyODIxQjA2NDNFNjIxMUUwQjZCNUNENjRFRkI2MzU3QiIgeG1wTU06RG9jdW1lbnRJ
RD0ieG1wLmRpZDoyODIxQjA2NTNFNjIxMUUwQjZCNUNENjRFRkI2MzU3QiI+IDx4bXBNTTpEZXJpdmVk
RnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI4MjFCMDYyM0U2MjExRTBCNkI1Q0Q2NEVGQjYz
NTdCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI4MjFCMDYzM0U2MjExRTBCNkI1Q0Q2NEVGQjYz
NTdCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQg
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
YII=
</value>
</data>
<data name="button53.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADImlUWHRYTUw6Y29tLmFkb2Jl
LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
cmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJE
RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
eGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxu
czpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1w
OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJ
RD0ieG1wLmlpZDoyODIxQjA2ODNFNjIxMUUwQjZCNUNENjRFRkI2MzU3QiIgeG1wTU06RG9jdW1lbnRJ
RD0ieG1wLmRpZDoyODIxQjA2OTNFNjIxMUUwQjZCNUNENjRFRkI2MzU3QiI+IDx4bXBNTTpEZXJpdmVk
RnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI4MjFCMDY2M0U2MjExRTBCNkI1Q0Q2NEVGQjYz
NTdCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI4MjFCMDY3M0U2MjExRTBCNkI1Q0Q2NEVGQjYz
NTdCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQg
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
RK5CYII=
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
8VQhBns3AAAAAElFTkSuQmCC
</value>
</data>
<data name="button52.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADImlUWHRYTUw6Y29tLmFkb2Jl
LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
cmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJE
RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
eGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxu
czpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1w
OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJ
RD0ieG1wLmlpZDoyODIxQjA2MDNFNjIxMUUwQjZCNUNENjRFRkI2MzU3QiIgeG1wTU06RG9jdW1lbnRJ
RD0ieG1wLmRpZDoyODIxQjA2MTNFNjIxMUUwQjZCNUNENjRFRkI2MzU3QiI+IDx4bXBNTTpEZXJpdmVk
RnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY4OEYwQkI1M0U1RDExRTBCNkI1Q0Q2NEVGQjYz
NTdCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY4OEYwQkI2M0U1RDExRTBCNkI1Q0Q2NEVGQjYz
NTdCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQg
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
YII=
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
kl4EAAAAAElFTkSuQmCC
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@ -75,7 +75,17 @@ namespace NovetusLauncher
void ClientinfoCreatorLoad(object sender, EventArgs e)
{
if (GlobalVars.AdminMode == true)
string cfgpath = GlobalVars.ConfigDir + "\\config.ini";
if (!File.Exists(cfgpath))
{
LauncherFuncs.WriteConfigValues(cfgpath);
}
else
{
LauncherFuncs.ReadConfigValues(cfgpath);
}
if (GlobalVars.AdminMode == true)
{
checkBox4.Visible = true;
}

View File

@ -9,7 +9,7 @@
using System;
using System.Windows.Forms;
using System.ComponentModel;
using System.IO;
namespace NovetusLauncher
{
@ -78,7 +78,17 @@ namespace NovetusLauncher
void ItemMakerLoad(object sender, EventArgs e)
{
comboBox1.Text = "http://www.roblox.com/";
string cfgpath = GlobalVars.ConfigDir + "\\config.ini";
if (!File.Exists(cfgpath))
{
LauncherFuncs.WriteConfigValues(cfgpath);
}
else
{
LauncherFuncs.ReadConfigValues(cfgpath);
}
comboBox1.Text = "http://www.roblox.com/";
isWebSite = false;
if (GlobalVars.DisabledHelp == true)

View File

@ -350,8 +350,8 @@ namespace NovetusLauncher
InitUPnP();
StartDiscord();
StartWebServer();
string rbxexe = "";
string rbxexe = "";
if (GlobalVars.LegacyMode == true)
{
rbxexe = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\clients\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
@ -1481,14 +1481,23 @@ namespace NovetusLauncher
try
{
addon.LoadAddon();
ConsolePrint("AddonLoader - " + addon.installOutcome, 3);
if (!string.IsNullOrWhiteSpace(addon.installOutcome))
{
ConsolePrint("AddonLoader - " + addon.installOutcome, 3);
}
}
catch (Exception)
{
ConsolePrint("AddonLoader - " + addon.installOutcome, 2);
if (!string.IsNullOrWhiteSpace(addon.installOutcome))
{
ConsolePrint("AddonLoader - " + addon.installOutcome, 2);
}
}
MessageBox.Show(addon.installOutcome);
if (!string.IsNullOrWhiteSpace(addon.installOutcome))
{
MessageBox.Show(addon.installOutcome);
}
}
}
}

View File

@ -34,7 +34,7 @@ namespace NovetusLauncher
{
textBox1.AppendText("Client: " + GlobalVars.SelectedClient);
textBox1.AppendText(Environment.NewLine);
string IP = GetExternalIPAddress();
string IP = SecurityFuncs.GetExternalIPAddress();
textBox1.AppendText("IP: " + IP);
textBox1.AppendText(Environment.NewLine);
textBox1.AppendText("Port: " + GlobalVars.RobloxPort.ToString());
@ -77,23 +77,5 @@ namespace NovetusLauncher
textBox1.AppendText(GlobalVars.LocalWebServerURI);
}
}
string GetExternalIPAddress()
{
string ipAddress;
using (WebClient wc = new WebClient())
{
try
{
ipAddress = wc.DownloadString("http://ipv4.icanhazip.com/");
}
catch (Exception)
{
ipAddress = "localhost" + Environment.NewLine;
}
}
return ipAddress;
}
}
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>