rewrite part 5: almost everything else
This commit is contained in:
parent
41854a75bc
commit
d42724a715
|
|
@ -18,14 +18,14 @@ namespace NovetusCMD
|
|||
{
|
||||
public static void InitUPnP()
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.InitUPnP(DeviceFound,DeviceLost);
|
||||
ConsolePrint("UPnP: Service initialized", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to initialize UPnP. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -34,14 +34,14 @@ namespace NovetusCMD
|
|||
|
||||
public static void StartUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.StartUPnP(device,protocol,port);
|
||||
ConsolePrint("UPnP: Port " + port + " opened on '" + device.GetExternalIP() + "' (" + protocol.ToString() + ")", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to open port mapping. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -50,14 +50,14 @@ namespace NovetusCMD
|
|||
|
||||
public static void StopUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.StopUPnP(device,protocol,port);
|
||||
ConsolePrint("UPnP: Port " + port + " closed on '" + device.GetExternalIP() + "' (" + protocol.ToString() + ")", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to close port mapping. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -70,12 +70,12 @@ namespace NovetusCMD
|
|||
{
|
||||
INatDevice device = args.Device;
|
||||
ConsolePrint("UPnP: Device '" + device.GetExternalIP() + "' registered.", 3);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.RobloxPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.RobloxPort);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.WebServer_Port);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.WebServer_Port);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.WebServerPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.WebServerPort);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to register device. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -87,12 +87,12 @@ namespace NovetusCMD
|
|||
{
|
||||
INatDevice device = args.Device;
|
||||
ConsolePrint("UPnP: Device '" + device.GetExternalIP() + "' disconnected.", 3);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.RobloxPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.RobloxPort);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.WebServer_Port);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.WebServer_Port);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.WebServerPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.WebServerPort);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to disconnect device. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -104,10 +104,10 @@ namespace NovetusCMD
|
|||
{
|
||||
try
|
||||
{
|
||||
GlobalVars.WebServer = new SimpleHTTPServer(GlobalVars.ServerDir, GlobalVars.WebServer_Port);
|
||||
GlobalVars.WebServer = new SimpleHTTPServer(Directories.ServerDir, GlobalVars.WebServerPort);
|
||||
ConsolePrint("WebServer: Server is running on port: " + GlobalVars.WebServer.Port.ToString(), 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Failed to launch WebServer. Some features may not function. (" + ex.Message + ")", 2);
|
||||
}
|
||||
|
|
@ -127,7 +127,7 @@ namespace NovetusCMD
|
|||
ConsolePrint("WebServer: Server has stopped on port: " + GlobalVars.WebServer.Port.ToString(), 2);
|
||||
GlobalVars.WebServer.Stop();
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Failed to stop WebServer. Some features may not function. (" + ex.Message + ")", 2);
|
||||
}
|
||||
|
|
@ -140,7 +140,7 @@ namespace NovetusCMD
|
|||
|
||||
static void WriteConfigValues()
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
ConsolePrint("Config Saved.", 3);
|
||||
}
|
||||
|
||||
|
|
@ -163,25 +163,25 @@ namespace NovetusCMD
|
|||
|
||||
static void ReadConfigValues()
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
ConsolePrint("Config loaded.", 3);
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
}
|
||||
|
||||
static void ReadClientValues(string ClientName)
|
||||
{
|
||||
string clientpath = GlobalVars.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
|
||||
string clientpath = Directories.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
|
||||
|
||||
if (!File.Exists(clientpath))
|
||||
{
|
||||
ConsolePrint("ERROR - No clientinfo.nov detected with the client you chose. The client either cannot be loaded, or it is not available.", 2);
|
||||
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.DefaultClient;
|
||||
ReadClientValues(ClientName);
|
||||
}
|
||||
else
|
||||
{
|
||||
LauncherFuncs.ReadClientValues(clientpath);
|
||||
ConsolePrint("Client '" + GlobalVars.SelectedClient + "' successfully loaded.", 3);
|
||||
ConsolePrint("Client '" + GlobalVars.UserConfiguration.SelectedClient + "' successfully loaded.", 3);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -192,11 +192,11 @@ namespace NovetusCMD
|
|||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
LauncherFuncs.ReadInfoFile(GlobalVars.ConfigDir + "\\" + GlobalVars.InfoName, true);
|
||||
LauncherFuncs.ReadInfoFile(Directories.ConfigDir + "\\" + GlobalVars.InfoName, true);
|
||||
Console.Title = "Novetus " + GlobalVars.Version + " CMD";
|
||||
|
||||
ConsolePrint("NovetusCMD version " + GlobalVars.Version + " loaded.", 1);
|
||||
ConsolePrint("Novetus path: " + GlobalVars.BasePath, 1);
|
||||
ConsolePrint("Novetus path: " + Directories.BasePath, 1);
|
||||
|
||||
if (args.Length == 0)
|
||||
{
|
||||
|
|
@ -236,13 +236,13 @@ namespace NovetusCMD
|
|||
|
||||
if (CommandLine["upnp"] != null)
|
||||
{
|
||||
GlobalVars.UPnP = true;
|
||||
GlobalVars.UserConfiguration.UPnP = true;
|
||||
ConsolePrint("NovetusCMD will now use UPnP for port forwarding.", 4);
|
||||
}
|
||||
|
||||
if (CommandLine["map"] != null)
|
||||
{
|
||||
GlobalVars.MapPath = CommandLine["map"];
|
||||
GlobalVars.UserConfiguration.MapPath = CommandLine["map"];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -251,7 +251,7 @@ namespace NovetusCMD
|
|||
|
||||
if (CommandLine["client"] != null)
|
||||
{
|
||||
GlobalVars.SelectedClient = CommandLine["client"];
|
||||
GlobalVars.UserConfiguration.SelectedClient = CommandLine["client"];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -260,12 +260,12 @@ namespace NovetusCMD
|
|||
|
||||
if (CommandLine["port"] != null)
|
||||
{
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(CommandLine["port"]);
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(CommandLine["port"]);
|
||||
}
|
||||
|
||||
if (CommandLine["maxplayers"] != null)
|
||||
{
|
||||
GlobalVars.PlayerLimit = Convert.ToInt32(CommandLine["maxplayers"]);
|
||||
GlobalVars.UserConfiguration.PlayerLimit = Convert.ToInt32(CommandLine["maxplayers"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -302,7 +302,7 @@ namespace NovetusCMD
|
|||
{
|
||||
ConsolePrint("NovetusCMD is now loading all server configurations from the INI file.", 5);
|
||||
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\" + GlobalVars.ConfigName))
|
||||
{
|
||||
ConsolePrint("WARNING 2 - " + GlobalVars.ConfigName + " not found. Creating one with default values.", 5);
|
||||
WriteConfigValues();
|
||||
|
|
@ -312,7 +312,7 @@ namespace NovetusCMD
|
|||
}
|
||||
else
|
||||
{
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
}
|
||||
|
||||
InitUPnP();
|
||||
|
|
@ -324,7 +324,7 @@ namespace NovetusCMD
|
|||
|
||||
AppDomain.CurrentDomain.ProcessExit += new EventHandler(ProgramClose);
|
||||
|
||||
ConsolePrint("Launching a " + GlobalVars.SelectedClient + " server on " + GlobalVars.Map + " with " + GlobalVars.PlayerLimit + " players.", 1);
|
||||
ConsolePrint("Launching a " + GlobalVars.UserConfiguration.SelectedClient + " server on " + GlobalVars.UserConfiguration.Map + " with " + GlobalVars.UserConfiguration.PlayerLimit + " players.", 1);
|
||||
|
||||
if (!LocalVars.DebugMode)
|
||||
{
|
||||
|
|
@ -346,17 +346,17 @@ namespace NovetusCMD
|
|||
}
|
||||
else
|
||||
{
|
||||
luafile = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua";
|
||||
luafile = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua";
|
||||
}
|
||||
string mapfile = GlobalVars.MapPath;
|
||||
string mapfile = GlobalVars.UserConfiguration.MapPath;
|
||||
string rbxexe = "";
|
||||
if (GlobalVars.SelectedClientInfo.LegacyMode == true)
|
||||
{
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp.exe";
|
||||
}
|
||||
else
|
||||
{
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_server.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp_server.exe";
|
||||
}
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
|
|
@ -390,15 +390,15 @@ namespace NovetusCMD
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ServerExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Server, GlobalVars.Map);
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Server, GlobalVars.UserConfiguration.Map);
|
||||
LocalVars.ProcessID = client.Id;
|
||||
CreateTXT();
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
}
|
||||
|
|
@ -416,14 +416,14 @@ namespace NovetusCMD
|
|||
string IP = await SecurityFuncs.GetExternalIPAddressAsync();
|
||||
string[] lines1 = {
|
||||
SecurityFuncs.Base64Encode(IP),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.SelectedClient)
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient)
|
||||
};
|
||||
string URI = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines1, true));
|
||||
string[] lines2 = {
|
||||
SecurityFuncs.Base64Encode("localhost"),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.SelectedClient)
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient)
|
||||
};
|
||||
string URI2 = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines2, true));
|
||||
|
||||
|
|
@ -432,11 +432,11 @@ namespace NovetusCMD
|
|||
"Don't copy the Process ID when sharing the server.",
|
||||
"--------------------",
|
||||
"Server Info:",
|
||||
"Client: " + GlobalVars.SelectedClient,
|
||||
"Client: " + GlobalVars.UserConfiguration.SelectedClient,
|
||||
"IP: " + IP,
|
||||
"Port: " + GlobalVars.RobloxPort.ToString(),
|
||||
"Map: " + GlobalVars.Map,
|
||||
"Players: " + GlobalVars.PlayerLimit,
|
||||
"Port: " + GlobalVars.UserConfiguration.RobloxPort.ToString(),
|
||||
"Map: " + GlobalVars.UserConfiguration.Map,
|
||||
"Players: " + GlobalVars.UserConfiguration.PlayerLimit,
|
||||
"Version: Novetus " + GlobalVars.Version,
|
||||
"Online URI Link:",
|
||||
URI,
|
||||
|
|
@ -448,8 +448,8 @@ namespace NovetusCMD
|
|||
GlobalVars.IsWebServerOn == true ? GlobalVars.LocalWebServerURI : ""
|
||||
);
|
||||
|
||||
File.WriteAllText(GlobalVars.BasePath + "\\" + LocalVars.ServerInfoFileName, GlobalVars.RemoveEmptyLines(text));
|
||||
ConsolePrint("Server Information sent to file " + GlobalVars.BasePath + "\\" + LocalVars.ServerInfoFileName, 4);
|
||||
File.WriteAllText(Directories.BasePath + "\\" + LocalVars.ServerInfoFileName, GlobalVars.RemoveEmptyLines(text));
|
||||
ConsolePrint("Server Information sent to file " + Directories.BasePath + "\\" + LocalVars.ServerInfoFileName, 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,81 +0,0 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Ionic.Zip;
|
||||
|
||||
public class AddonLoader
|
||||
{
|
||||
private readonly OpenFileDialog openFileDialog1;
|
||||
private string installOutcome = "";
|
||||
private int fileListDisplay = 0;
|
||||
|
||||
public AddonLoader()
|
||||
{
|
||||
openFileDialog1 = new OpenFileDialog()
|
||||
{
|
||||
FileName = "Select an addon .zip file",
|
||||
Filter = "Compressed zip files (*.zip)|*.zip",
|
||||
Title = "Open addon .zip"
|
||||
};
|
||||
}
|
||||
|
||||
public void setInstallOutcome(string text)
|
||||
{
|
||||
installOutcome = text;
|
||||
}
|
||||
|
||||
public string getInstallOutcome()
|
||||
{
|
||||
return installOutcome;
|
||||
}
|
||||
|
||||
public void setFileListDisplay(int number)
|
||||
{
|
||||
fileListDisplay = number;
|
||||
}
|
||||
|
||||
public void LoadAddon()
|
||||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
int filecount = 0;
|
||||
StringBuilder filelistbuilder = new StringBuilder();
|
||||
|
||||
using (Stream str = openFileDialog1.OpenFile())
|
||||
{
|
||||
using (var zipFile = ZipFile.Read(str))
|
||||
{
|
||||
ZipEntry[] entries = zipFile.Entries.ToArray();
|
||||
|
||||
foreach (ZipEntry entry in entries)
|
||||
{
|
||||
filelistbuilder.Append(entry.FileName + " ("+ entry.UncompressedSize +")");
|
||||
filelistbuilder.Append(Environment.NewLine);
|
||||
}
|
||||
|
||||
zipFile.ExtractAll(GlobalVars.BasePath, ExtractExistingFileAction.OverwriteSilently);
|
||||
}
|
||||
}
|
||||
|
||||
string filelist = filelistbuilder.ToString();
|
||||
|
||||
if (filecount > fileListDisplay)
|
||||
{
|
||||
installOutcome = "Addon " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelist + Environment.NewLine + "and " + (filecount - fileListDisplay) + " more files!";
|
||||
}
|
||||
else
|
||||
{
|
||||
installOutcome = "Addon " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelist;
|
||||
}
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
{
|
||||
installOutcome = "Error when installing addon: " + ex.Message;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:06 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
public class CryptoRandom : RandomNumberGenerator
|
||||
{
|
||||
private static RandomNumberGenerator r;
|
||||
|
||||
public CryptoRandom()
|
||||
{
|
||||
r = RandomNumberGenerator.Create();
|
||||
}
|
||||
|
||||
///<param name=”buffer”>An array of bytes to contain random numbers.</param>
|
||||
public override void GetBytes(byte[] buffer)
|
||||
{
|
||||
r.GetBytes(buffer);
|
||||
}
|
||||
|
||||
public override void GetNonZeroBytes(byte[] data)
|
||||
{
|
||||
r.GetNonZeroBytes(data);
|
||||
}
|
||||
public double NextDouble()
|
||||
{
|
||||
byte[] b = new byte[4];
|
||||
r.GetBytes(b);
|
||||
return (double)BitConverter.ToUInt32(b, 0) / UInt32.MaxValue;
|
||||
}
|
||||
|
||||
///<param name=”minValue”>The inclusive lower bound of the random number returned.</param>
|
||||
///<param name=”maxValue”>The exclusive upper bound of the random number returned. maxValue must be greater than or equal to minValue.</param>
|
||||
public int Next(int minValue, int maxValue)
|
||||
{
|
||||
return (int)Math.Round(NextDouble() * (maxValue - minValue - 1)) + minValue;
|
||||
}
|
||||
public int Next()
|
||||
{
|
||||
return Next(0, Int32.MaxValue);
|
||||
}
|
||||
|
||||
///<param name=”maxValue”>The inclusive upper bound of the random number returned. maxValue must be greater than or equal 0</param>
|
||||
public int Next(int maxValue)
|
||||
{
|
||||
return Next(0, maxValue);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 6:57 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
//Discord Rich Presence Integration :D
|
||||
public class DiscordRpc
|
||||
{
|
||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||
public delegate void ReadyCallback();
|
||||
|
||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||
public delegate void DisconnectedCallback(int errorCode, string message);
|
||||
|
||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||
public delegate void ErrorCallback(int errorCode, string message);
|
||||
|
||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||
public delegate void JoinCallback(string secret);
|
||||
|
||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||
public delegate void SpectateCallback(string secret);
|
||||
|
||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||
public delegate void RequestCallback(JoinRequest request);
|
||||
|
||||
public struct EventHandlers
|
||||
{
|
||||
public ReadyCallback readyCallback;
|
||||
public DisconnectedCallback disconnectedCallback;
|
||||
public ErrorCallback errorCallback;
|
||||
public JoinCallback joinCallback;
|
||||
public SpectateCallback spectateCallback;
|
||||
public RequestCallback requestCallback;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct RichPresence
|
||||
{
|
||||
public string state;
|
||||
/* max 128 bytes */
|
||||
public string details;
|
||||
/* max 128 bytes */
|
||||
public long startTimestamp;
|
||||
public long endTimestamp;
|
||||
public string largeImageKey;
|
||||
/* max 32 bytes */
|
||||
public string largeImageText;
|
||||
/* max 128 bytes */
|
||||
public string smallImageKey;
|
||||
/* max 32 bytes */
|
||||
public string smallImageText;
|
||||
/* max 128 bytes */
|
||||
public string partyId;
|
||||
/* max 128 bytes */
|
||||
public int partySize;
|
||||
public int partyMax;
|
||||
public string matchSecret;
|
||||
/* max 128 bytes */
|
||||
public string joinSecret;
|
||||
/* max 128 bytes */
|
||||
public string spectateSecret;
|
||||
/* max 128 bytes */
|
||||
public bool instance;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct JoinRequest
|
||||
{
|
||||
public string userId;
|
||||
public string username;
|
||||
public string avatar;
|
||||
}
|
||||
|
||||
public enum Reply
|
||||
{
|
||||
No = 0,
|
||||
Yes = 1,
|
||||
Ignore = 2
|
||||
}
|
||||
[DllImport("discord-rpc", EntryPoint = "Discord_Initialize", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Initialize(string applicationId, ref EventHandlers handlers, bool autoRegister, string optionalSteamId);
|
||||
|
||||
[DllImport("discord-rpc", EntryPoint = "Discord_Shutdown", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Shutdown();
|
||||
|
||||
[DllImport("discord-rpc", EntryPoint = "Discord_RunCallbacks", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void RunCallbacks();
|
||||
|
||||
[DllImport("discord-rpc", EntryPoint = "Discord_UpdatePresence", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void UpdatePresence(ref RichPresence presence);
|
||||
|
||||
[DllImport("discord-rpc", EntryPoint = "Discord_Respond", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Respond(string userId, Reply reply);
|
||||
}
|
||||
|
|
@ -1,238 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:05 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
//using LiteNetLib;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
public static class Env
|
||||
{
|
||||
#if DEBUG
|
||||
public static readonly bool Debugging = true;
|
||||
#else
|
||||
public static readonly bool Debugging = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
public static class GlobalVars
|
||||
{
|
||||
public static readonly string RootPathLauncher = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||
public static readonly string BasePathLauncher = RootPathLauncher.Replace(@"\", @"\\");
|
||||
public static readonly string RootPath = Directory.GetParent(RootPathLauncher).ToString();
|
||||
public static readonly string BasePath = RootPath.Replace(@"\", @"\\");
|
||||
public static readonly string DataPath = BasePath + @"\\shareddata";
|
||||
public static readonly string ServerDir = DataPath + "\\server";
|
||||
public static readonly string ConfigDir = BasePath + @"\\config";
|
||||
public static readonly string ConfigDirData = BasePathLauncher + @"\\data";
|
||||
public static readonly string ClientDir = BasePath + @"\\clients";
|
||||
public static readonly string MapsDir = BasePath + @"\\maps";
|
||||
public static readonly string MapsDirBase = "maps";
|
||||
public static string MapPath = "";
|
||||
public static string MapPathSnip = "";
|
||||
public static readonly string BaseGameDir = "rbxasset://../../../";
|
||||
public static readonly string SharedDataGameDir = BaseGameDir + "shareddata/";
|
||||
public static readonly string DirFonts = "\\fonts";
|
||||
public static readonly string DirSounds = "\\sounds";
|
||||
public static readonly string DirTextures = "\\textures";
|
||||
public static readonly string DirScripts = "\\scripts";
|
||||
|
||||
public static readonly string FontsGameDir = "fonts/";
|
||||
public static readonly string SoundsGameDir = "sounds/";
|
||||
public static readonly string TexturesGameDir = "textures/";
|
||||
public static readonly string ScriptsGameDir = "scripts/";
|
||||
//customization
|
||||
public static readonly string CustomPlayerDir = DataPath + "\\charcustom";
|
||||
public static readonly string hatdir = CustomPlayerDir + "\\hats";
|
||||
public static readonly string facedir = CustomPlayerDir + "\\faces";
|
||||
public static readonly string headdir = CustomPlayerDir + "\\heads";
|
||||
public static readonly string tshirtdir = CustomPlayerDir + "\\tshirts";
|
||||
public static readonly string shirtdir = CustomPlayerDir + "\\shirts";
|
||||
public static readonly string pantsdir = CustomPlayerDir + "\\pants";
|
||||
public static readonly string extradir = CustomPlayerDir + "\\custom";
|
||||
|
||||
public static readonly string CharCustomGameDir = SharedDataGameDir + "charcustom/";
|
||||
public static readonly string hatGameDir = CharCustomGameDir + "hats/";
|
||||
public static readonly string faceGameDir = CharCustomGameDir + "faces/";
|
||||
public static readonly string headGameDir = CharCustomGameDir + "heads/";
|
||||
public static readonly string tshirtGameDir = CharCustomGameDir + "tshirts/";
|
||||
public static readonly string shirtGameDir = CharCustomGameDir + "shirts/";
|
||||
public static readonly string pantsGameDir = CharCustomGameDir + "pants/";
|
||||
public static readonly string extraGameDir = CharCustomGameDir + "custom/";
|
||||
|
||||
//item asset dirs
|
||||
public static readonly string hatdirFonts = hatdir + DirFonts;
|
||||
public static readonly string hatdirTextures = hatdir + DirTextures;
|
||||
public static readonly string hatdirSounds = hatdir + DirSounds;
|
||||
public static readonly string hatdirScripts = hatdir + DirScripts;
|
||||
public static readonly string facedirTextures = facedir + DirTextures;
|
||||
public static readonly string headdirFonts = headdir + DirFonts;
|
||||
public static readonly string headdirTextures = headdir + DirTextures;
|
||||
public static readonly string tshirtdirTextures = tshirtdir + DirTextures;
|
||||
public static readonly string shirtdirTextures = shirtdir + DirTextures;
|
||||
public static readonly string pantsdirTextures = pantsdir + DirTextures;
|
||||
public static readonly string extradirIcons = extradir + "\\icons";
|
||||
|
||||
public static readonly string hatGameDirFonts = hatGameDir + FontsGameDir;
|
||||
public static readonly string hatGameDirTextures = hatGameDir + TexturesGameDir;
|
||||
public static readonly string hatGameDirSounds = hatGameDir + SoundsGameDir;
|
||||
public static readonly string hatGameDirScripts = hatGameDir + ScriptsGameDir;
|
||||
public static readonly string faceGameDirTextures = faceGameDir + TexturesGameDir;
|
||||
public static readonly string headGameDirFonts = headGameDir + FontsGameDir;
|
||||
public static readonly string headGameDirTextures = headGameDir + TexturesGameDir;
|
||||
public static readonly string tshirtGameDirTextures = tshirtGameDir + TexturesGameDir;
|
||||
public static readonly string shirtGameDirTextures = shirtGameDir + TexturesGameDir;
|
||||
public static readonly string pantsGameDirTextures = pantsGameDir + TexturesGameDir;
|
||||
//asset cache
|
||||
public static readonly string AssetCacheDir = DataPath + "\\assetcache";
|
||||
|
||||
public static readonly string AssetCacheDirSky = AssetCacheDir + "\\sky";
|
||||
public static readonly string AssetCacheDirFonts = AssetCacheDir + DirFonts;
|
||||
public static readonly string AssetCacheDirSounds = AssetCacheDir + DirSounds;
|
||||
public static readonly string AssetCacheDirTextures = AssetCacheDir + DirTextures;
|
||||
public static readonly string AssetCacheDirTexturesGUI = AssetCacheDirTextures + "\\gui";
|
||||
public static readonly string AssetCacheDirScripts = AssetCacheDir + DirScripts;
|
||||
|
||||
public static readonly string AssetCacheGameDir = SharedDataGameDir + "assetcache/";
|
||||
public static readonly string AssetCacheFontsGameDir = AssetCacheGameDir + FontsGameDir;
|
||||
public static readonly string AssetCacheSkyGameDir = AssetCacheGameDir + "sky/";
|
||||
public static readonly string AssetCacheSoundsGameDir = AssetCacheGameDir + SoundsGameDir;
|
||||
public static readonly string AssetCacheTexturesGameDir = AssetCacheGameDir + TexturesGameDir;
|
||||
public static readonly string AssetCacheTexturesGUIGameDir = AssetCacheTexturesGameDir + "gui/";
|
||||
public static readonly string AssetCacheScriptsGameDir = AssetCacheGameDir + ScriptsGameDir;
|
||||
|
||||
//defs
|
||||
public static AssetCacheDef Fonts { get { return new AssetCacheDef("SpecialMesh", new string[] { "MeshId", "TextureId" }, new string[] { ".mesh", ".png" }, new string[] { AssetCacheDirFonts, AssetCacheDirTextures }, new string[] { AssetCacheFontsGameDir, AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Sky { get { return new AssetCacheDef("Sky", new string[] { "SkyboxBk", "SkyboxDn", "SkyboxFt", "SkyboxLf", "SkyboxRt", "SkyboxUp" }, new string[] { ".png" }, new string[] { AssetCacheDirSky }, new string[] { AssetCacheSkyGameDir }); } }
|
||||
public static AssetCacheDef Decal { get { return new AssetCacheDef("Decal", new string[] { "Texture" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Texture { get { return new AssetCacheDef("Texture", new string[] { "Texture" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef HopperBin { get { return new AssetCacheDef("HopperBin", new string[] { "TextureId" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Tool { get { return new AssetCacheDef("Tool", new string[] { "TextureId" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Sound { get { return new AssetCacheDef("Sound", new string[] { "SoundId" }, new string[] { ".wav" }, new string[] { AssetCacheDirSounds }, new string[] { AssetCacheSoundsGameDir }); } }
|
||||
public static AssetCacheDef ImageLabel { get { return new AssetCacheDef("ImageLabel", new string[] { "Image" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Shirt { get { return new AssetCacheDef("Shirt", new string[] { "ShirtTemplate" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef ShirtGraphic { get { return new AssetCacheDef("ShirtGraphic", new string[] { "Graphic" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Pants { get { return new AssetCacheDef("Pants", new string[] { "PantsTemplate" }, new string[] { ".png" }, new string[] { AssetCacheDirTextures }, new string[] { AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Script { get { return new AssetCacheDef("Script", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { AssetCacheDirScripts }, new string[] { AssetCacheScriptsGameDir }); } }
|
||||
public static AssetCacheDef LocalScript { get { return new AssetCacheDef("LocalScript", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { AssetCacheDirScripts }, new string[] { AssetCacheScriptsGameDir }); } }
|
||||
//item defs below
|
||||
public static AssetCacheDef ItemHatFonts { get { return new AssetCacheDef("SpecialMesh", new string[] { "MeshId", "TextureId" }, new string[] { ".mesh", ".png" }, new string[] { hatdirFonts, hatdirTextures }, new string[] { hatGameDirFonts, hatGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemHatSound { get { return new AssetCacheDef("Sound", new string[] { "SoundId" }, new string[] { ".wav" }, new string[] { hatdirSounds }, new string[] { hatGameDirSounds }); } }
|
||||
public static AssetCacheDef ItemHatScript { get { return new AssetCacheDef("Script", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { hatdirScripts }, new string[] { hatGameDirScripts }); } }
|
||||
public static AssetCacheDef ItemHatLocalScript { get { return new AssetCacheDef("LocalScript", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { hatdirScripts }, new string[] { hatGameDirScripts }); } }
|
||||
public static AssetCacheDef ItemHeadFonts { get { return new AssetCacheDef("SpecialMesh", new string[] { "MeshId", "TextureId" }, new string[] { ".mesh", ".png" }, new string[] { headdirFonts, headdirTextures }, new string[] { headGameDirFonts, headGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemFaceTexture { get { return new AssetCacheDef("Decal", new string[] { "Texture" }, new string[] { ".png" }, new string[] { facedirTextures }, new string[] { faceGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemShirtTexture { get { return new AssetCacheDef("Shirt", new string[] { "ShirtTemplate" }, new string[] { ".png" }, new string[] { shirtdirTextures }, new string[] { shirtGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemTShirtTexture { get { return new AssetCacheDef("ShirtGraphic", new string[] { "Graphic" }, new string[] { ".png" }, new string[] { tshirtdirTextures }, new string[] { tshirtGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemPantsTexture { get { return new AssetCacheDef("Pants", new string[] { "PantsTemplate" }, new string[] { ".png" }, new string[] { pantsdirTextures }, new string[] { pantsGameDirTextures }); } }
|
||||
|
||||
public static string IP = "localhost";
|
||||
public static string Version = "";
|
||||
public static string Branch = "";
|
||||
public static string SharedArgs = "";
|
||||
public static readonly string ScriptName = "CSMPFunctions";
|
||||
public static readonly string ScriptGenName = "CSMPBoot";
|
||||
public static SimpleHTTPServer WebServer = null;
|
||||
//public static NetManager WebServerUDPInstance = null;
|
||||
public static bool IsWebServerOn = false;
|
||||
public static bool IsSnapshot = false;
|
||||
//vars for loader
|
||||
public static bool ReadyToLaunch = false;
|
||||
//server settings.
|
||||
public static bool UPnP = false;
|
||||
//public static bool UDP = true;
|
||||
public static string Map = "";
|
||||
public static string FullMapPath = "";
|
||||
public static int RobloxPort = 53640;
|
||||
public static int DefaultRobloxPort = 53640;
|
||||
public static int WebServer_Port = 40735;
|
||||
public static int PlayerLimit = 12;
|
||||
//player settings
|
||||
public static int UserID = 0;
|
||||
public static string PlayerName = "Player";
|
||||
public static string PlayerTripcode = "";
|
||||
//config name
|
||||
public static readonly string ConfigName = "config.ini";
|
||||
public static string ConfigNameCustomization = "config_customization.ini";
|
||||
public static readonly string InfoName = "info.txt";
|
||||
//launcher settings.
|
||||
public static bool CloseOnLaunch = false;
|
||||
public static bool LocalPlayMode = false;
|
||||
public static bool OldLayout = false;
|
||||
//client shit
|
||||
public static string SelectedClient = "";
|
||||
public static ClientInfo SelectedClientInfo = new ClientInfo();
|
||||
public static string AddonScriptPath = "";
|
||||
//info shit
|
||||
public static string DefaultClient = "";
|
||||
public static string RegisterClient1 = "";
|
||||
public static string RegisterClient2 = "";
|
||||
public static string DefaultMap = "";
|
||||
//charcustom
|
||||
public static CustomizationConfig UserCustomization = new CustomizationConfig();
|
||||
public static string loadtext = "";
|
||||
public static string sololoadtext = "";
|
||||
//color menu.
|
||||
public static bool AdminMode = false;
|
||||
public static string important = "";
|
||||
//discord
|
||||
public static bool DiscordPresence = true;
|
||||
public static DiscordRpc.RichPresence presence;
|
||||
public static string appid = "505955125727330324";
|
||||
public static string imagekey_large = "novetus_large";
|
||||
public static string image_ingame = "ingame_small";
|
||||
public static string image_inlauncher = "inlauncher_small";
|
||||
public static string image_instudio = "instudio_small";
|
||||
public static string image_incustomization = "incustomization_small";
|
||||
//webserver
|
||||
public static string WebServerURI = "http://" + IP + ":" + (WebServer_Port).ToString();
|
||||
public static string LocalWebServerURI = "http://localhost:" + (WebServer_Port).ToString();
|
||||
public static string WebServer_CustomPlayerDir = WebServerURI + "/charcustom/";
|
||||
public static string WebServer_HatDir = WebServer_CustomPlayerDir + "hats/";
|
||||
public static string WebServer_FaceDir = WebServer_CustomPlayerDir + "faces/";
|
||||
public static string WebServer_HeadDir = WebServer_CustomPlayerDir + "heads/";
|
||||
public static string WebServer_TShirtDir = WebServer_CustomPlayerDir + "tshirts/";
|
||||
public static string WebServer_ShirtDir = WebServer_CustomPlayerDir + "shirts/";
|
||||
public static string WebServer_PantsDir = WebServer_CustomPlayerDir + "pants/";
|
||||
public static string WebServer_ExtraDir = WebServer_CustomPlayerDir + "custom/";
|
||||
//itemmaker
|
||||
public static bool DisabledHelp = false;
|
||||
//reshade
|
||||
public static bool ReShade = false;
|
||||
public static bool ReShadeFPSDisplay = false;
|
||||
public static bool ReShadePerformanceMode = false;
|
||||
//video
|
||||
public static GraphicsMode GraphicsMode = GraphicsMode.OpenGL;
|
||||
public static QualityLevel QualityLevel = QualityLevel.Ultra;
|
||||
|
||||
public static string MultiLine(params string[] args)
|
||||
{
|
||||
return string.Join(Environment.NewLine, args);
|
||||
}
|
||||
|
||||
public static string RemoveEmptyLines(string lines)
|
||||
{
|
||||
return Regex.Replace(lines, @"^\s*$\n|\r", string.Empty, RegexOptions.Multiline).TrimEnd();
|
||||
}
|
||||
|
||||
public static bool ProcessExists(int id)
|
||||
{
|
||||
return Process.GetProcesses().Any(x => x.Id == id);
|
||||
}
|
||||
|
||||
//task.delay is only available on net 4.5.......
|
||||
public static async void Delay(int miliseconds)
|
||||
{
|
||||
await TaskEx.Delay(miliseconds);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public class IconLoader
|
||||
{
|
||||
private OpenFileDialog openFileDialog1;
|
||||
private string installOutcome = "";
|
||||
|
||||
public IconLoader()
|
||||
{
|
||||
openFileDialog1 = new OpenFileDialog()
|
||||
{
|
||||
FileName = "Select an icon .png file",
|
||||
Filter = "Portable Network Graphics image (*.png)|*.png",
|
||||
Title = "Open icon .png"
|
||||
};
|
||||
}
|
||||
|
||||
public void setInstallOutcome(string text)
|
||||
{
|
||||
installOutcome = text;
|
||||
}
|
||||
|
||||
public string getInstallOutcome()
|
||||
{
|
||||
return installOutcome;
|
||||
}
|
||||
|
||||
public void LoadImage()
|
||||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (Stream str = openFileDialog1.OpenFile())
|
||||
{
|
||||
using (Stream output = new FileStream(GlobalVars.extradir + "\\icons\\" + GlobalVars.PlayerName + ".png", FileMode.Create))
|
||||
{
|
||||
byte[] buffer = new byte[32 * 1024];
|
||||
int read;
|
||||
|
||||
while ((read = str.Read(buffer, 0, buffer.Length)) > 0)
|
||||
{
|
||||
output.Write(buffer, 0, read);
|
||||
}
|
||||
}
|
||||
|
||||
str.Close();
|
||||
}
|
||||
|
||||
installOutcome = "Icon " + openFileDialog1.SafeFileName + " installed!";
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
{
|
||||
installOutcome = "Error when installing icon: " + ex.Message;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:04 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
using System;
|
||||
|
||||
//credit to BLaZiNiX
|
||||
public class IniFile
|
||||
{
|
||||
public string path;
|
||||
|
||||
[DllImport("kernel32")]
|
||||
private static extern long WritePrivateProfileString(string section,
|
||||
string key, string val, string filePath);
|
||||
[DllImport("kernel32")]
|
||||
private static extern int GetPrivateProfileString(string section,
|
||||
string key, string def, StringBuilder retVal,
|
||||
int size, string filePath);
|
||||
|
||||
/// <summary>
|
||||
/// INIFile Constructor.
|
||||
/// </summary>
|
||||
/// <PARAM name="INIPath"></PARAM>
|
||||
public IniFile(string INIPath)
|
||||
{
|
||||
path = INIPath;
|
||||
}
|
||||
/// <summary>
|
||||
/// Write Data to the INI File
|
||||
/// </summary>
|
||||
/// <PARAM name="Section"></PARAM>
|
||||
/// Section name
|
||||
/// <PARAM name="Key"></PARAM>
|
||||
/// Key Name
|
||||
/// <PARAM name="Value"></PARAM>
|
||||
/// Value Name
|
||||
public void IniWriteValue(string Section, string Key, string Value)
|
||||
{
|
||||
WritePrivateProfileString(Section, Key, Value, this.path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read Data Value From the Ini File
|
||||
/// </summary>
|
||||
/// <PARAM name="Section"></PARAM>
|
||||
/// <PARAM name="Key"></PARAM>
|
||||
/// <PARAM name="Default Value. Optional for creating values in case they are invalid."></PARAM>
|
||||
/// <returns></returns>
|
||||
public string IniReadValue(string Section, string Key, string DefaultValue = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
StringBuilder temp = new StringBuilder(255);
|
||||
int i = GetPrivateProfileString(Section, Key, "", temp,
|
||||
255, this.path);
|
||||
return temp.ToString();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
IniWriteValue(Section, Key, DefaultValue);
|
||||
return IniReadValue(Section, Key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,114 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:03 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System;
|
||||
//using LiteNetLib;
|
||||
using Mono.Nat;
|
||||
|
||||
public static class UPnP
|
||||
{
|
||||
public static void InitUPnP(EventHandler<DeviceEventArgs> DeviceFound, EventHandler<DeviceEventArgs> DeviceLost)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
{
|
||||
NatUtility.DeviceFound += DeviceFound;
|
||||
NatUtility.DeviceLost += DeviceLost;
|
||||
NatUtility.StartDiscovery();
|
||||
}
|
||||
}
|
||||
|
||||
public static void StartUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
{
|
||||
Mapping checker = device.GetSpecificMapping(protocol, port);
|
||||
int mapPublic = checker.PublicPort;
|
||||
int mapPrivate = checker.PrivatePort;
|
||||
|
||||
if (mapPublic == -1 && mapPrivate == -1)
|
||||
{
|
||||
Mapping portmap = new Mapping(protocol, port, port);
|
||||
portmap.Description = "Novetus";
|
||||
device.CreatePortMap(portmap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void StopUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
{
|
||||
Mapping checker = device.GetSpecificMapping(protocol, port);
|
||||
int mapPublic = checker.PublicPort;
|
||||
int mapPrivate = checker.PrivatePort;
|
||||
|
||||
if (mapPublic != -1 && mapPrivate != -1)
|
||||
{
|
||||
Mapping portmap = new Mapping(protocol, port, port);
|
||||
portmap.Description = "Novetus";
|
||||
device.DeletePortMap(portmap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public static class UDP
|
||||
{
|
||||
private static NetManager StartUDPListener(int port = -1)
|
||||
{
|
||||
if (GlobalVars.UDP == true)
|
||||
{
|
||||
EventBasedNetListener listener = new EventBasedNetListener();
|
||||
NetManager list = new NetManager(listener);
|
||||
if (port > -1)
|
||||
{
|
||||
list.Start(port);
|
||||
}
|
||||
else
|
||||
{
|
||||
list.Start();
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static NetManager StartClient(string ip, int port)
|
||||
{
|
||||
if (GlobalVars.UDP == true)
|
||||
{
|
||||
//we don't need a port here, we are a client.
|
||||
NetManager client = StartUDPListener();
|
||||
EventBasedNatPunchListener natPunchListener = new EventBasedNatPunchListener();
|
||||
client.Connect(ip, port, "");
|
||||
client.NatPunchEnabled = true;
|
||||
client.NatPunchModule.Init(natPunchListener);
|
||||
return client;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static NetManager StartServer(int port)
|
||||
{
|
||||
if (GlobalVars.UDP == true)
|
||||
{
|
||||
NetManager server = StartUDPListener(port);
|
||||
EventBasedNatPunchListener natPunchListener = new EventBasedNatPunchListener();
|
||||
server.NatPunchEnabled = true;
|
||||
server.NatPunchModule.Init(natPunchListener);
|
||||
return server;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}*/
|
||||
|
|
@ -1,12 +1,4 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:00 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
#region Usings
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
|
@ -16,7 +8,9 @@ using System.IO;
|
|||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
#endregion
|
||||
|
||||
#region Rich Text Box Extensions
|
||||
public static class RichTextBoxExtensions
|
||||
{
|
||||
public static void AppendText(this RichTextBox box, string text, Color color)
|
||||
|
|
@ -29,22 +23,26 @@ public static class RichTextBoxExtensions
|
|||
box.SelectionColor = box.ForeColor;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Process Extensions
|
||||
public static class ProcessExtensions
|
||||
{
|
||||
public static bool IsRunning(this Process process)
|
||||
{
|
||||
try {
|
||||
Process.GetProcessById(process.Id);
|
||||
} catch (InvalidOperationException) when (!Env.Debugging) {
|
||||
} catch (InvalidOperationException) {
|
||||
return false;
|
||||
} catch (ArgumentException) when (!Env.Debugging) {
|
||||
} catch (ArgumentException) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region #String Extensions
|
||||
public static class StringExtensions
|
||||
{
|
||||
public static bool Contains(this string source, string toCheck, StringComparison comp)
|
||||
|
|
@ -54,7 +52,9 @@ public static class StringExtensions
|
|||
return source.IndexOf(toCheck, comp) >= 0;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Array Helper
|
||||
//credit to code4life
|
||||
public static class ArrayHelper
|
||||
{
|
||||
|
|
@ -79,7 +79,9 @@ public static class ArrayHelper
|
|||
return result;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Substring Extensions
|
||||
//dotnetperls
|
||||
static class SubstringExtensions
|
||||
{
|
||||
|
|
@ -137,7 +139,9 @@ static class SubstringExtensions
|
|||
return value.Substring(adjustedPosA);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Tab Control without Header
|
||||
//credit to https://stackoverflow.com/questions/23247941/c-sharp-how-to-remove-tabcontrol-border
|
||||
public partial class TabControlWithoutHeader : TabControl
|
||||
{
|
||||
|
|
@ -175,7 +179,9 @@ public partial class TabControlWithoutHeader : TabControl
|
|||
base.WndProc(ref m);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Form Extensions
|
||||
//https://stackoverflow.com/questions/12422619/can-i-disable-the-close-button-of-a-form-using-c
|
||||
public static class FormExt
|
||||
{
|
||||
|
|
@ -197,7 +203,9 @@ public static class FormExt
|
|||
EnableMenuItem(GetSystemMenu(form.Handle, false), 0xF060, 0);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region String Utilities
|
||||
//https://stackoverflow.com/questions/9031537/really-simple-encryption-with-c-sharp-and-symmetricalgorithm
|
||||
public static class StringUtil
|
||||
{
|
||||
|
|
@ -221,4 +229,5 @@ public static class StringUtil
|
|||
byte[] outputBuffer = transform.TransformFinalBlock(inputbuffer, 0, inputbuffer.Length);
|
||||
return Encoding.Unicode.GetString(outputBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
|
@ -9,26 +9,11 @@
|
|||
<Import_RootNamespace>NovetusFuncs</Import_RootNamespace>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)AddonLoader.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)NovetusSpecialClasses.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ClientScript.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)LoaderFuncs.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)GlobalFuncs.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ScriptFuncs.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)CodeExtensions.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)CryptoRandom.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)DiscordRpc.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Downloader.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)GlobalVars.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)IconLoader.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)IniFile.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)LauncherFuncs.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)PartColors.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)RobloxXMLLocalizer.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ScriptGenerator.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)SecurityFuncs.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)SplashReader.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)TextLineRemover.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)TreeNodeHelper.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)NetFuncs.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)URI.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)WebServer.cs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,18 +1,13 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: BITL
|
||||
* Date: 6/13/2017
|
||||
* Time: 10:24 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
#region Usings
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
#endregion
|
||||
|
||||
#region Launcher State
|
||||
public enum LauncherState
|
||||
{
|
||||
InLauncher = 0,
|
||||
|
|
@ -23,23 +18,9 @@ public enum LauncherState
|
|||
InEasterEggGame = 5,
|
||||
LoadingURI = 6
|
||||
}
|
||||
#endregion
|
||||
|
||||
public enum QualityLevel
|
||||
{
|
||||
VeryLow = 1,
|
||||
Low = 2,
|
||||
Medium = 3,
|
||||
High = 4,
|
||||
Ultra = 5
|
||||
}
|
||||
|
||||
public enum GraphicsMode
|
||||
{
|
||||
None = 0,
|
||||
OpenGL = 1,
|
||||
DirectX = 2
|
||||
}
|
||||
|
||||
#region Launcher Functions
|
||||
public class LauncherFuncs
|
||||
{
|
||||
public LauncherFuncs()
|
||||
|
|
@ -54,7 +35,7 @@ public class LauncherFuncs
|
|||
{
|
||||
if (cmd)
|
||||
{
|
||||
var versionInfo = FileVersionInfo.GetVersionInfo(GlobalVars.RootPathLauncher + "\\Novetus.exe");
|
||||
var versionInfo = FileVersionInfo.GetVersionInfo(Directories.RootPathLauncher + "\\Novetus.exe");
|
||||
GlobalVars.Version = lines[6].Replace("%version%", lines[0])
|
||||
.Replace("%build%", versionInfo.ProductBuildPart.ToString())
|
||||
.Replace("%revision%", versionInfo.FilePrivatePart.ToString())
|
||||
|
|
@ -68,7 +49,7 @@ public class LauncherFuncs
|
|||
.Replace("%snapshot-revision%", lines[7]);
|
||||
}
|
||||
|
||||
string changelog = GlobalVars.BasePath + "\\changelog.txt";
|
||||
string changelog = Directories.BasePath + "\\changelog.txt";
|
||||
if (File.Exists(changelog))
|
||||
{
|
||||
string[] changelogedit = File.ReadAllLines(changelog);
|
||||
|
|
@ -91,10 +72,10 @@ public class LauncherFuncs
|
|||
GlobalVars.DefaultMap = lines[2];
|
||||
GlobalVars.RegisterClient1 = lines[3];
|
||||
GlobalVars.RegisterClient2 = lines[4];
|
||||
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.Map = GlobalVars.DefaultMap;
|
||||
GlobalVars.MapPath = GlobalVars.MapsDir + @"\\" + GlobalVars.DefaultMap;
|
||||
GlobalVars.MapPathSnip = GlobalVars.MapsDirBase + @"\\" + GlobalVars.DefaultMap;
|
||||
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.UserConfiguration.Map = GlobalVars.DefaultMap;
|
||||
GlobalVars.UserConfiguration.MapPath = Directories.MapsDir + @"\\" + GlobalVars.DefaultMap;
|
||||
GlobalVars.UserConfiguration.MapPathSnip = Directories.MapsDirBase + @"\\" + GlobalVars.DefaultMap;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -169,23 +150,23 @@ public class LauncherFuncs
|
|||
|
||||
string section = "Config";
|
||||
|
||||
ini.IniWriteValue(section, "CloseOnLaunch", GlobalVars.CloseOnLaunch.ToString());
|
||||
ini.IniWriteValue(section, "UserID", GlobalVars.UserID.ToString());
|
||||
ini.IniWriteValue(section, "PlayerName", GlobalVars.PlayerName.ToString());
|
||||
ini.IniWriteValue(section, "SelectedClient", GlobalVars.SelectedClient.ToString());
|
||||
ini.IniWriteValue(section, "Map", GlobalVars.Map.ToString());
|
||||
ini.IniWriteValue(section, "RobloxPort", GlobalVars.RobloxPort.ToString());
|
||||
ini.IniWriteValue(section, "PlayerLimit", GlobalVars.PlayerLimit.ToString());
|
||||
ini.IniWriteValue(section, "UPnP", GlobalVars.UPnP.ToString());
|
||||
ini.IniWriteValue(section, "ItemMakerDisableHelpMessage", GlobalVars.DisabledHelp.ToString());
|
||||
ini.IniWriteValue(section, "PlayerTripcode", SecurityFuncs.Base64Encode(GlobalVars.PlayerTripcode.ToString()));
|
||||
ini.IniWriteValue(section, "DiscordRichPresence", GlobalVars.DiscordPresence.ToString());
|
||||
ini.IniWriteValue(section, "MapPath", GlobalVars.MapPath.ToString());
|
||||
ini.IniWriteValue(section, "MapPathSnip", GlobalVars.MapPathSnip.ToString());
|
||||
ini.IniWriteValue(section, "GraphicsMode", GetIntForGraphicsMode(GlobalVars.GraphicsMode).ToString());
|
||||
ini.IniWriteValue(section, "ReShade", GlobalVars.ReShade.ToString());
|
||||
ini.IniWriteValue(section, "QualityLevel", GetIntForQualityLevel(GlobalVars.QualityLevel).ToString());
|
||||
ini.IniWriteValue(section, "OldLayout", GlobalVars.OldLayout.ToString());
|
||||
ini.IniWriteValue(section, "CloseOnLaunch", GlobalVars.UserConfiguration.CloseOnLaunch.ToString());
|
||||
ini.IniWriteValue(section, "UserID", GlobalVars.UserConfiguration.UserID.ToString());
|
||||
ini.IniWriteValue(section, "PlayerName", GlobalVars.UserConfiguration.PlayerName.ToString());
|
||||
ini.IniWriteValue(section, "SelectedClient", GlobalVars.UserConfiguration.SelectedClient.ToString());
|
||||
ini.IniWriteValue(section, "Map", GlobalVars.UserConfiguration.Map.ToString());
|
||||
ini.IniWriteValue(section, "RobloxPort", GlobalVars.UserConfiguration.RobloxPort.ToString());
|
||||
ini.IniWriteValue(section, "PlayerLimit", GlobalVars.UserConfiguration.PlayerLimit.ToString());
|
||||
ini.IniWriteValue(section, "UPnP", GlobalVars.UserConfiguration.UPnP.ToString());
|
||||
ini.IniWriteValue(section, "ItemMakerDisableHelpMessage", GlobalVars.UserConfiguration.DisabledItemMakerHelp.ToString());
|
||||
ini.IniWriteValue(section, "PlayerTripcode", SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.PlayerTripcode.ToString()));
|
||||
ini.IniWriteValue(section, "DiscordRichPresence", GlobalVars.UserConfiguration.DiscordPresence.ToString());
|
||||
ini.IniWriteValue(section, "MapPath", GlobalVars.UserConfiguration.MapPath.ToString());
|
||||
ini.IniWriteValue(section, "MapPathSnip", GlobalVars.UserConfiguration.MapPathSnip.ToString());
|
||||
ini.IniWriteValue(section, "GraphicsMode", GetIntForGraphicsMode(GlobalVars.UserConfiguration.GraphicsMode).ToString());
|
||||
ini.IniWriteValue(section, "ReShade", GlobalVars.UserConfiguration.ReShade.ToString());
|
||||
ini.IniWriteValue(section, "QualityLevel", GetIntForQualityLevel(GlobalVars.UserConfiguration.QualityLevel).ToString());
|
||||
ini.IniWriteValue(section, "OldLayout", GlobalVars.UserConfiguration.OldLayout.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -199,82 +180,82 @@ public class LauncherFuncs
|
|||
|
||||
string section = "Config";
|
||||
|
||||
closeonlaunch = ini.IniReadValue(section, "CloseOnLaunch", GlobalVars.CloseOnLaunch.ToString());
|
||||
userid = ini.IniReadValue(section, "UserID", GlobalVars.UserID.ToString());
|
||||
name = ini.IniReadValue(section, "PlayerName", GlobalVars.PlayerName.ToString());
|
||||
selectedclient = ini.IniReadValue(section, "SelectedClient", GlobalVars.SelectedClient.ToString());
|
||||
map = ini.IniReadValue(section, "Map", GlobalVars.Map.ToString());
|
||||
port = ini.IniReadValue(section, "RobloxPort", GlobalVars.RobloxPort.ToString());
|
||||
limit = ini.IniReadValue(section, "PlayerLimit", GlobalVars.PlayerLimit.ToString());
|
||||
upnp = ini.IniReadValue(section, "UPnP", GlobalVars.UPnP.ToString());
|
||||
disablehelpmessage = ini.IniReadValue(section, "ItemMakerDisableHelpMessage", GlobalVars.DisabledHelp.ToString());
|
||||
closeonlaunch = ini.IniReadValue(section, "CloseOnLaunch", GlobalVars.UserConfiguration.CloseOnLaunch.ToString());
|
||||
userid = ini.IniReadValue(section, "UserID", GlobalVars.UserConfiguration.UserID.ToString());
|
||||
name = ini.IniReadValue(section, "PlayerName", GlobalVars.UserConfiguration.PlayerName.ToString());
|
||||
selectedclient = ini.IniReadValue(section, "SelectedClient", GlobalVars.UserConfiguration.SelectedClient.ToString());
|
||||
map = ini.IniReadValue(section, "Map", GlobalVars.UserConfiguration.Map.ToString());
|
||||
port = ini.IniReadValue(section, "RobloxPort", GlobalVars.UserConfiguration.RobloxPort.ToString());
|
||||
limit = ini.IniReadValue(section, "PlayerLimit", GlobalVars.UserConfiguration.PlayerLimit.ToString());
|
||||
upnp = ini.IniReadValue(section, "UPnP", GlobalVars.UserConfiguration.UPnP.ToString());
|
||||
disablehelpmessage = ini.IniReadValue(section, "ItemMakerDisableHelpMessage", GlobalVars.UserConfiguration.DisabledItemMakerHelp.ToString());
|
||||
tripcode = ini.IniReadValue(section, "PlayerTripcode", GenerateAndReturnTripcode());
|
||||
discord = ini.IniReadValue(section, "DiscordRichPresence", GlobalVars.DiscordPresence.ToString());
|
||||
mappath = ini.IniReadValue(section, "MapPath", GlobalVars.MapPath.ToString());
|
||||
mapsnip = ini.IniReadValue(section, "MapPathSnip", GlobalVars.MapPathSnip.ToString());
|
||||
graphics = ini.IniReadValue(section, "GraphicsMode", GetIntForGraphicsMode(GlobalVars.GraphicsMode).ToString());
|
||||
reshade = ini.IniReadValue(section, "ReShade", GlobalVars.ReShade.ToString());
|
||||
qualitylevel = ini.IniReadValue(section, "QualityLevel", GetIntForQualityLevel(GlobalVars.QualityLevel).ToString());
|
||||
oldlayout = ini.IniReadValue(section, "OldLayout", GlobalVars.OldLayout.ToString());
|
||||
discord = ini.IniReadValue(section, "DiscordRichPresence", GlobalVars.UserConfiguration.DiscordPresence.ToString());
|
||||
mappath = ini.IniReadValue(section, "MapPath", GlobalVars.UserConfiguration.MapPath.ToString());
|
||||
mapsnip = ini.IniReadValue(section, "MapPathSnip", GlobalVars.UserConfiguration.MapPathSnip.ToString());
|
||||
graphics = ini.IniReadValue(section, "GraphicsMode", GetIntForGraphicsMode(GlobalVars.UserConfiguration.GraphicsMode).ToString());
|
||||
reshade = ini.IniReadValue(section, "ReShade", GlobalVars.UserConfiguration.ReShade.ToString());
|
||||
qualitylevel = ini.IniReadValue(section, "QualityLevel", GetIntForQualityLevel(GlobalVars.UserConfiguration.QualityLevel).ToString());
|
||||
oldlayout = ini.IniReadValue(section, "OldLayout", GlobalVars.UserConfiguration.OldLayout.ToString());
|
||||
|
||||
try
|
||||
{
|
||||
bool bline1 = Convert.ToBoolean(closeonlaunch);
|
||||
GlobalVars.CloseOnLaunch = bline1;
|
||||
GlobalVars.UserConfiguration.CloseOnLaunch = bline1;
|
||||
|
||||
if (userid.Equals("0"))
|
||||
{
|
||||
GeneratePlayerID();
|
||||
Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
int iline2 = Convert.ToInt32(userid);
|
||||
GlobalVars.UserID = iline2;
|
||||
GlobalVars.UserConfiguration.UserID = iline2;
|
||||
}
|
||||
|
||||
GlobalVars.PlayerName = name;
|
||||
GlobalVars.UserConfiguration.PlayerName = name;
|
||||
|
||||
GlobalVars.SelectedClient = selectedclient;
|
||||
GlobalVars.UserConfiguration.SelectedClient = selectedclient;
|
||||
|
||||
GlobalVars.Map = map;
|
||||
GlobalVars.UserConfiguration.Map = map;
|
||||
|
||||
int iline6 = Convert.ToInt32(port);
|
||||
GlobalVars.RobloxPort = iline6;
|
||||
GlobalVars.UserConfiguration.RobloxPort = iline6;
|
||||
|
||||
int iline7 = Convert.ToInt32(limit);
|
||||
GlobalVars.PlayerLimit = iline7;
|
||||
GlobalVars.UserConfiguration.PlayerLimit = iline7;
|
||||
|
||||
bool bline10 = Convert.ToBoolean(upnp);
|
||||
GlobalVars.UPnP = bline10;
|
||||
GlobalVars.UserConfiguration.UPnP = bline10;
|
||||
|
||||
bool bline11 = Convert.ToBoolean(disablehelpmessage);
|
||||
GlobalVars.DisabledHelp = bline11;
|
||||
GlobalVars.UserConfiguration.DisabledItemMakerHelp = bline11;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(SecurityFuncs.Base64Decode(tripcode)))
|
||||
{
|
||||
GenerateTripcode();
|
||||
Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sdecrypt12 = SecurityFuncs.Base64Decode(tripcode);
|
||||
GlobalVars.PlayerTripcode = sdecrypt12;
|
||||
GlobalVars.UserConfiguration.PlayerTripcode = sdecrypt12;
|
||||
}
|
||||
|
||||
bool bline13 = Convert.ToBoolean(discord);
|
||||
GlobalVars.DiscordPresence = bline13;
|
||||
GlobalVars.UserConfiguration.DiscordPresence = bline13;
|
||||
|
||||
GlobalVars.MapPath = mappath;
|
||||
GlobalVars.MapPathSnip = mapsnip;
|
||||
GlobalVars.UserConfiguration.MapPath = mappath;
|
||||
GlobalVars.UserConfiguration.MapPathSnip = mapsnip;
|
||||
int iline16 = Convert.ToInt32(graphics);
|
||||
GlobalVars.GraphicsMode = GetGraphicsModeForInt(iline16);
|
||||
GlobalVars.UserConfiguration.GraphicsMode = GetGraphicsModeForInt(iline16);
|
||||
bool bline17 = Convert.ToBoolean(reshade);
|
||||
GlobalVars.ReShade = bline17;
|
||||
GlobalVars.UserConfiguration.ReShade = bline17;
|
||||
int iline20 = Convert.ToInt32(qualitylevel);
|
||||
GlobalVars.QualityLevel = GetQualityLevelForInt(iline20);
|
||||
GlobalVars.UserConfiguration.QualityLevel = GetQualityLevelForInt(iline20);
|
||||
bool bline21 = Convert.ToBoolean(oldlayout);
|
||||
GlobalVars.OldLayout = bline21;
|
||||
GlobalVars.UserConfiguration.OldLayout = bline21;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
|
@ -282,16 +263,16 @@ public class LauncherFuncs
|
|||
}
|
||||
}
|
||||
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization))
|
||||
{
|
||||
Customization(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, true);
|
||||
Customization(Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Customization(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, write);
|
||||
Customization(Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, write);
|
||||
}
|
||||
|
||||
ReShade(GlobalVars.ConfigDir, "ReShade.ini", write);
|
||||
ReShade(Directories.ConfigDir, "ReShade.ini", write);
|
||||
}
|
||||
|
||||
public static void Customization(string cfgpath, bool write)
|
||||
|
|
@ -568,7 +549,7 @@ public class LauncherFuncs
|
|||
|
||||
if (!File.Exists(fullpath))
|
||||
{
|
||||
File.Copy(GlobalVars.ConfigDir + "\\ReShade_default.ini", fullpath, true);
|
||||
File.Copy(Directories.ConfigDir + "\\ReShade_default.ini", fullpath, true);
|
||||
ReShadeValues(fullpath, write, true);
|
||||
}
|
||||
else
|
||||
|
|
@ -576,7 +557,7 @@ public class LauncherFuncs
|
|||
ReShadeValues(fullpath, write, true);
|
||||
}
|
||||
|
||||
string clientdir = GlobalVars.ClientDir;
|
||||
string clientdir = Directories.ClientDir;
|
||||
DirectoryInfo dinfo = new DirectoryInfo(clientdir);
|
||||
DirectoryInfo[] Dirs = dinfo.GetDirectories();
|
||||
foreach (DirectoryInfo dir in Dirs)
|
||||
|
|
@ -595,11 +576,11 @@ public class LauncherFuncs
|
|||
|
||||
string fulldllpath = dir.FullName + @"\opengl32.dll";
|
||||
|
||||
if (GlobalVars.ReShade)
|
||||
if (GlobalVars.UserConfiguration.ReShade)
|
||||
{
|
||||
if (!File.Exists(fulldllpath))
|
||||
{
|
||||
File.Copy(GlobalVars.ConfigDirData + "\\opengl32.dll", fulldllpath, true);
|
||||
File.Copy(Directories.ConfigDirData + "\\opengl32.dll", fulldllpath, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -614,24 +595,22 @@ public class LauncherFuncs
|
|||
|
||||
public static void ResetConfigValues()
|
||||
{
|
||||
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.Map = GlobalVars.DefaultMap;
|
||||
GlobalVars.CloseOnLaunch = false;
|
||||
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.UserConfiguration.Map = GlobalVars.DefaultMap;
|
||||
GlobalVars.UserConfiguration.CloseOnLaunch = false;
|
||||
GeneratePlayerID();
|
||||
GlobalVars.PlayerName = "Player";
|
||||
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.RobloxPort = 53640;
|
||||
GlobalVars.PlayerLimit = 12;
|
||||
GlobalVars.UPnP = false;
|
||||
//GlobalVars.UDP = true;
|
||||
GlobalVars.DisabledHelp = false;
|
||||
GlobalVars.DiscordPresence = true;
|
||||
GlobalVars.MapPath = GlobalVars.MapsDir + @"\\" + GlobalVars.DefaultMap;
|
||||
GlobalVars.MapPathSnip = GlobalVars.MapsDirBase + @"\\" + GlobalVars.DefaultMap;
|
||||
GlobalVars.GraphicsMode = GraphicsMode.OpenGL;
|
||||
GlobalVars.ReShade = false;
|
||||
GlobalVars.QualityLevel = QualityLevel.Ultra;
|
||||
GlobalVars.OldLayout = false;
|
||||
GlobalVars.UserConfiguration.PlayerName = "Player";
|
||||
GlobalVars.UserConfiguration.RobloxPort = 53640;
|
||||
GlobalVars.UserConfiguration.PlayerLimit = 12;
|
||||
GlobalVars.UserConfiguration.UPnP = false;
|
||||
GlobalVars.UserConfiguration.DisabledItemMakerHelp = false;
|
||||
GlobalVars.UserConfiguration.DiscordPresence = true;
|
||||
GlobalVars.UserConfiguration.MapPath = Directories.MapsDir + @"\\" + GlobalVars.DefaultMap;
|
||||
GlobalVars.UserConfiguration.MapPathSnip = Directories.MapsDirBase + @"\\" + GlobalVars.DefaultMap;
|
||||
GlobalVars.UserConfiguration.GraphicsMode = GraphicsMode.OpenGL;
|
||||
GlobalVars.UserConfiguration.ReShade = false;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.Ultra;
|
||||
GlobalVars.UserConfiguration.OldLayout = false;
|
||||
ResetCustomizationValues();
|
||||
}
|
||||
|
||||
|
|
@ -755,18 +734,18 @@ public class LauncherFuncs
|
|||
}
|
||||
|
||||
//2147483647 is max id.
|
||||
GlobalVars.UserID = randomID;
|
||||
GlobalVars.UserConfiguration.UserID = randomID;
|
||||
}
|
||||
|
||||
public static void GenerateTripcode()
|
||||
{
|
||||
GlobalVars.PlayerTripcode = SecurityFuncs.RandomString();
|
||||
GlobalVars.UserConfiguration.PlayerTripcode = SecurityFuncs.RandomString();
|
||||
}
|
||||
|
||||
public static string GenerateAndReturnTripcode()
|
||||
{
|
||||
GenerateTripcode();
|
||||
return GlobalVars.PlayerTripcode;
|
||||
return GlobalVars.UserConfiguration.PlayerTripcode;
|
||||
}
|
||||
|
||||
public static Image LoadImage(string fileFullName)
|
||||
|
|
@ -790,7 +769,7 @@ public class LauncherFuncs
|
|||
|
||||
public static void UpdateRichPresence(LauncherState state, string mapname, bool initial = false)
|
||||
{
|
||||
if (GlobalVars.DiscordPresence)
|
||||
if (GlobalVars.UserConfiguration.DiscordPresence)
|
||||
{
|
||||
if (initial)
|
||||
{
|
||||
|
|
@ -805,51 +784,51 @@ public class LauncherFuncs
|
|||
case LauncherState.InLauncher:
|
||||
GlobalVars.presence.smallImageKey = GlobalVars.image_inlauncher;
|
||||
GlobalVars.presence.state = "In Launcher";
|
||||
GlobalVars.presence.details = "Selected " + GlobalVars.SelectedClient;
|
||||
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.details = "Selected " + GlobalVars.UserConfiguration.SelectedClient;
|
||||
GlobalVars.presence.largeImageText = GlobalVars.UserConfiguration.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In Launcher";
|
||||
break;
|
||||
case LauncherState.InMPGame:
|
||||
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
||||
GlobalVars.presence.details = ValidMapname;
|
||||
GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Multiplayer Game";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In " + GlobalVars.SelectedClient + " Multiplayer Game";
|
||||
GlobalVars.presence.state = "In " + GlobalVars.UserConfiguration.SelectedClient + " Multiplayer Game";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.UserConfiguration.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In " + GlobalVars.UserConfiguration.SelectedClient + " Multiplayer Game";
|
||||
break;
|
||||
case LauncherState.InSoloGame:
|
||||
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
||||
GlobalVars.presence.details = ValidMapname;
|
||||
GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Solo Game";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In " + GlobalVars.SelectedClient + " Solo Game";
|
||||
GlobalVars.presence.state = "In " + GlobalVars.UserConfiguration.SelectedClient + " Solo Game";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.UserConfiguration.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In " + GlobalVars.UserConfiguration.SelectedClient + " Solo Game";
|
||||
break;
|
||||
case LauncherState.InStudio:
|
||||
GlobalVars.presence.smallImageKey = GlobalVars.image_instudio;
|
||||
GlobalVars.presence.details = ValidMapname;
|
||||
GlobalVars.presence.state = "In " + GlobalVars.SelectedClient + " Studio";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In " + GlobalVars.SelectedClient + " Studio";
|
||||
GlobalVars.presence.state = "In " + GlobalVars.UserConfiguration.SelectedClient + " Studio";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.UserConfiguration.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In " + GlobalVars.UserConfiguration.SelectedClient + " Studio";
|
||||
break;
|
||||
case LauncherState.InCustomization:
|
||||
GlobalVars.presence.smallImageKey = GlobalVars.image_incustomization;
|
||||
GlobalVars.presence.details = "Customizing " + GlobalVars.PlayerName;
|
||||
GlobalVars.presence.details = "Customizing " + GlobalVars.UserConfiguration.PlayerName;
|
||||
GlobalVars.presence.state = "In Character Customization";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.largeImageText = GlobalVars.UserConfiguration.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "In Character Customization";
|
||||
break;
|
||||
case LauncherState.InEasterEggGame:
|
||||
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
||||
GlobalVars.presence.details = ValidMapname;
|
||||
GlobalVars.presence.state = "Reading a message.";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.largeImageText = GlobalVars.UserConfiguration.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "Reading a message.";
|
||||
break;
|
||||
case LauncherState.LoadingURI:
|
||||
GlobalVars.presence.smallImageKey = GlobalVars.image_ingame;
|
||||
GlobalVars.presence.details = ValidMapname;
|
||||
GlobalVars.presence.state = "Joining a " + GlobalVars.SelectedClient + " Multiplayer Game";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "Joining a " + GlobalVars.SelectedClient + " Multiplayer Game";
|
||||
GlobalVars.presence.state = "Joining a " + GlobalVars.UserConfiguration.SelectedClient + " Multiplayer Game";
|
||||
GlobalVars.presence.largeImageText = GlobalVars.UserConfiguration.PlayerName + " | Novetus " + GlobalVars.Version;
|
||||
GlobalVars.presence.smallImageText = "Joining a " + GlobalVars.UserConfiguration.SelectedClient + " Multiplayer Game";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -865,7 +844,7 @@ public class LauncherFuncs
|
|||
|
||||
if (!GlobalVars.SelectedClientInfo.NoGraphicsOptions)
|
||||
{
|
||||
switch (GlobalVars.GraphicsMode)
|
||||
switch (GlobalVars.UserConfiguration.GraphicsMode)
|
||||
{
|
||||
case GraphicsMode.OpenGL:
|
||||
result += "xpcall( function() settings().Rendering.graphicsMode = 2 end, function( err ) settings().Rendering.graphicsMode = 4 end );";
|
||||
|
|
@ -888,7 +867,7 @@ public class LauncherFuncs
|
|||
int Shadows_2008 = 1;
|
||||
bool Shadows_2007 = true;
|
||||
|
||||
switch (GlobalVars.QualityLevel)
|
||||
switch (GlobalVars.UserConfiguration.QualityLevel)
|
||||
{
|
||||
case QualityLevel.VeryLow:
|
||||
MeshDetail = 50;
|
||||
|
|
@ -964,7 +943,7 @@ public class LauncherFuncs
|
|||
}
|
||||
else
|
||||
{
|
||||
luafile = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua";
|
||||
luafile = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua";
|
||||
}
|
||||
|
||||
return luafile;
|
||||
|
|
@ -975,28 +954,28 @@ public class LauncherFuncs
|
|||
string rbxexe = "";
|
||||
if (GlobalVars.SelectedClientInfo.LegacyMode)
|
||||
{
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp.exe";
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case ScriptType.Client:
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_client.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp_client.exe";
|
||||
break;
|
||||
case ScriptType.Server:
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_server.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp_server.exe";
|
||||
break;
|
||||
case ScriptType.Studio:
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_studio.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp_studio.exe";
|
||||
break;
|
||||
case ScriptType.Solo:
|
||||
case ScriptType.EasterEgg:
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_solo.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp_solo.exe";
|
||||
break;
|
||||
case ScriptType.None:
|
||||
default:
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp.exe";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1004,3 +983,93 @@ public class LauncherFuncs
|
|||
return rbxexe;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Splash Reader
|
||||
public static class SplashReader
|
||||
{
|
||||
private static string RandomSplash()
|
||||
{
|
||||
string[] splashes = File.ReadAllLines(Directories.ConfigDir + "\\splashes.txt");
|
||||
string splash = "";
|
||||
|
||||
try
|
||||
{
|
||||
splash = splashes[new CryptoRandom().Next(0, splashes.Length - 1)];
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
try
|
||||
{
|
||||
splash = splashes[0];
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
splash = "missingno";
|
||||
return splash;
|
||||
}
|
||||
}
|
||||
|
||||
CryptoRandom random = new CryptoRandom();
|
||||
|
||||
string formattedsplash = splash
|
||||
.Replace("%name%", GlobalVars.UserConfiguration.PlayerName)
|
||||
.Replace("%nextversion%", (Convert.ToDouble(GlobalVars.Branch) + 0.1).ToString())
|
||||
.Replace("%randomtext%", SecurityFuncs.RandomString(random.Next(2, 32)));
|
||||
|
||||
return formattedsplash;
|
||||
}
|
||||
|
||||
public static string GetSplash()
|
||||
{
|
||||
DateTime today = DateTime.Now;
|
||||
string splash = "";
|
||||
|
||||
switch (today)
|
||||
{
|
||||
case DateTime christmaseve when christmaseve.Month.Equals(12) && christmaseve.Day.Equals(24):
|
||||
case DateTime christmasday when christmasday.Month.Equals(12) && christmasday.Day.Equals(25):
|
||||
splash = "Merry Christmas!";
|
||||
break;
|
||||
case DateTime newyearseve when newyearseve.Month.Equals(12) && newyearseve.Day.Equals(31):
|
||||
case DateTime newyearsday when newyearsday.Month.Equals(1) && newyearsday.Day.Equals(1):
|
||||
splash = "Happy New Year!";
|
||||
break;
|
||||
case DateTime halloween when halloween.Month.Equals(10) && halloween.Day.Equals(31):
|
||||
splash = "Happy Halloween!";
|
||||
break;
|
||||
case DateTime bitlbirthday when bitlbirthday.Month.Equals(6) && bitlbirthday.Day.Equals(10):
|
||||
splash = "Happy Birthday, Bitl!";
|
||||
break;
|
||||
case DateTime robloxbirthday when robloxbirthday.Month.Equals(8) && robloxbirthday.Day.Equals(27):
|
||||
splash = "Happy Birthday, ROBLOX!";
|
||||
break;
|
||||
case DateTime novetusbirthday when novetusbirthday.Month.Equals(10) && novetusbirthday.Day.Equals(27):
|
||||
splash = "Happy Birthday, Novetus!";
|
||||
break;
|
||||
case DateTime leiferikson when leiferikson.Month.Equals(10) && leiferikson.Day.Equals(9):
|
||||
splash = "Happy Leif Erikson Day! HINGA DINGA DURGEN!";
|
||||
break;
|
||||
case DateTime smokeweedeveryday when smokeweedeveryday.Month.Equals(4) && smokeweedeveryday.Day.Equals(20):
|
||||
CryptoRandom random = new CryptoRandom();
|
||||
if (random.Next(0, 1) == 1)
|
||||
{
|
||||
splash = "smoke weed every day";
|
||||
}
|
||||
else
|
||||
{
|
||||
splash = "4/20 lol";
|
||||
}
|
||||
break;
|
||||
case DateTime erikismyhero when erikismyhero.Month.Equals(2) && erikismyhero.Day.Equals(11):
|
||||
splash = "RIP Erik Cassel";
|
||||
break;
|
||||
default:
|
||||
splash = RandomSplash();
|
||||
break;
|
||||
}
|
||||
|
||||
return splash;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
|
@ -1,8 +1,14 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using System.Windows.Forms;
|
||||
#region Usings
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Ionic.Zip;
|
||||
using System.Net;
|
||||
#endregion
|
||||
|
||||
#region Downloader
|
||||
class Downloader
|
||||
{
|
||||
private readonly string fileURL;
|
||||
|
|
@ -47,7 +53,7 @@ class Downloader
|
|||
int read = DownloadFile(fileURL, fullpath);
|
||||
downloadOutcome = "File " + outputfilename + " downloaded! " + read + " bytes written! " + downloadOutcomeAddText + downloadOutcomeException;
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
downloadOutcome = "Error when downloading file: " + ex.Message;
|
||||
}
|
||||
|
|
@ -72,7 +78,7 @@ class Downloader
|
|||
int read = DownloadFile(fileURL, saveFileDialog1.FileName);
|
||||
downloadOutcome = "File " + Path.GetFileName(saveFileDialog1.FileName) + " downloaded! " + read + " bytes written! " + downloadOutcomeAddText + downloadOutcomeException;
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
downloadOutcome = "Error when downloading file: " + ex.Message;
|
||||
}
|
||||
|
|
@ -81,9 +87,9 @@ class Downloader
|
|||
|
||||
private static int DownloadFile(string remoteFilename, string localFilename)
|
||||
{
|
||||
//credit to Tom Archer (https://www.codeguru.com/columns/dotnettips/article.php/c7005/Downloading-Files-with-the-WebRequest-and-WebResponse-Classes.htm)
|
||||
//and Brokenglass (https://stackoverflow.com/questions/4567313/uncompressing-gzip-response-from-webclient/4567408#4567408)
|
||||
|
||||
//credit to Tom Archer (https://www.codeguru.com/columns/dotnettips/article.php/c7005/Downloading-Files-with-the-WebRequest-and-WebResponse-Classes.htm)
|
||||
//and Brokenglass (https://stackoverflow.com/questions/4567313/uncompressing-gzip-response-from-webclient/4567408#4567408)
|
||||
|
||||
// Function will return the number of bytes processed
|
||||
// to the caller. Initialize to 0 here.
|
||||
int bytesProcessed = 0;
|
||||
|
|
@ -142,7 +148,7 @@ class Downloader
|
|||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) when (!Env.Debugging)
|
||||
catch (Exception e)
|
||||
{
|
||||
downloadOutcomeException = " Exception detected: " + e.Message;
|
||||
}
|
||||
|
|
@ -160,3 +166,140 @@ class Downloader
|
|||
return bytesProcessed;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Addon Loader
|
||||
public class AddonLoader
|
||||
{
|
||||
private readonly OpenFileDialog openFileDialog1;
|
||||
private string installOutcome = "";
|
||||
private int fileListDisplay = 0;
|
||||
|
||||
public AddonLoader()
|
||||
{
|
||||
openFileDialog1 = new OpenFileDialog()
|
||||
{
|
||||
FileName = "Select an addon .zip file",
|
||||
Filter = "Compressed zip files (*.zip)|*.zip",
|
||||
Title = "Open addon .zip"
|
||||
};
|
||||
}
|
||||
|
||||
public void setInstallOutcome(string text)
|
||||
{
|
||||
installOutcome = text;
|
||||
}
|
||||
|
||||
public string getInstallOutcome()
|
||||
{
|
||||
return installOutcome;
|
||||
}
|
||||
|
||||
public void setFileListDisplay(int number)
|
||||
{
|
||||
fileListDisplay = number;
|
||||
}
|
||||
|
||||
public void LoadAddon()
|
||||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
int filecount = 0;
|
||||
StringBuilder filelistbuilder = new StringBuilder();
|
||||
|
||||
using (Stream str = openFileDialog1.OpenFile())
|
||||
{
|
||||
using (var zipFile = ZipFile.Read(str))
|
||||
{
|
||||
ZipEntry[] entries = zipFile.Entries.ToArray();
|
||||
|
||||
foreach (ZipEntry entry in entries)
|
||||
{
|
||||
filelistbuilder.Append(entry.FileName + " ("+ entry.UncompressedSize +")");
|
||||
filelistbuilder.Append(Environment.NewLine);
|
||||
}
|
||||
|
||||
zipFile.ExtractAll(Directories.BasePath, ExtractExistingFileAction.OverwriteSilently);
|
||||
}
|
||||
}
|
||||
|
||||
string filelist = filelistbuilder.ToString();
|
||||
|
||||
if (filecount > fileListDisplay)
|
||||
{
|
||||
installOutcome = "Addon " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelist + Environment.NewLine + "and " + (filecount - fileListDisplay) + " more files!";
|
||||
}
|
||||
else
|
||||
{
|
||||
installOutcome = "Addon " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelist;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
installOutcome = "Error when installing addon: " + ex.Message;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Icon Loader
|
||||
public class IconLoader
|
||||
{
|
||||
private OpenFileDialog openFileDialog1;
|
||||
private string installOutcome = "";
|
||||
|
||||
public IconLoader()
|
||||
{
|
||||
openFileDialog1 = new OpenFileDialog()
|
||||
{
|
||||
FileName = "Select an icon .png file",
|
||||
Filter = "Portable Network Graphics image (*.png)|*.png",
|
||||
Title = "Open icon .png"
|
||||
};
|
||||
}
|
||||
|
||||
public void setInstallOutcome(string text)
|
||||
{
|
||||
installOutcome = text;
|
||||
}
|
||||
|
||||
public string getInstallOutcome()
|
||||
{
|
||||
return installOutcome;
|
||||
}
|
||||
|
||||
public void LoadImage()
|
||||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (Stream str = openFileDialog1.OpenFile())
|
||||
{
|
||||
using (Stream output = new FileStream(Directories.extradir + "\\icons\\" + GlobalVars.UserConfiguration.PlayerName + ".png", FileMode.Create))
|
||||
{
|
||||
byte[] buffer = new byte[32 * 1024];
|
||||
int read;
|
||||
|
||||
while ((read = str.Read(buffer, 0, buffer.Length)) > 0)
|
||||
{
|
||||
output.Write(buffer, 0, read);
|
||||
}
|
||||
}
|
||||
|
||||
str.Close();
|
||||
}
|
||||
|
||||
installOutcome = "Icon " + openFileDialog1.SafeFileName + " installed!";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
installOutcome = "Error when installing icon: " + ex.Message;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
|
@ -1,16 +1,109 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:02 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
#region Usings
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
#endregion
|
||||
|
||||
#region Script Type
|
||||
public enum ScriptType
|
||||
{
|
||||
Client = 0,
|
||||
Server = 1,
|
||||
Solo = 2,
|
||||
Studio = 3,
|
||||
EasterEgg = 4,
|
||||
None = 5
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Script Generator
|
||||
public class ScriptGenerator
|
||||
{
|
||||
public static string GetScriptFuncForType(ScriptType type)
|
||||
{
|
||||
string rbxexe = "";
|
||||
if (GlobalVars.SelectedClientInfo.LegacyMode == true)
|
||||
{
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp.exe";
|
||||
}
|
||||
else
|
||||
{
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp_client.exe";
|
||||
}
|
||||
|
||||
string md5dir = SecurityFuncs.CalculateMD5(Assembly.GetExecutingAssembly().Location);
|
||||
string md5script = SecurityFuncs.CalculateMD5(Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptName + ".lua");
|
||||
string md5exe = SecurityFuncs.CalculateMD5(rbxexe);
|
||||
string md5s = "'" + md5exe + "','" + md5dir + "','" + md5script + "'";
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case ScriptType.Client:
|
||||
return "_G.CSConnect("
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserConfiguration.UserID : 0) + ",'"
|
||||
+ GlobalVars.IP + "',"
|
||||
+ GlobalVars.UserConfiguration.RobloxPort + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.UserConfiguration.PlayerName : "Player") + "',"
|
||||
+ GlobalVars.loadtext + ","
|
||||
+ md5s + ",'"
|
||||
+ GlobalVars.UserConfiguration.PlayerTripcode + "')";
|
||||
case ScriptType.Server:
|
||||
return "_G.CSServer("
|
||||
+ GlobalVars.UserConfiguration.RobloxPort + ","
|
||||
+ GlobalVars.UserConfiguration.PlayerLimit + ","
|
||||
+ md5s + ")";
|
||||
case ScriptType.Solo:
|
||||
case ScriptType.EasterEgg:
|
||||
return "_G.CSSolo("
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserConfiguration.UserID : 0) + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.UserConfiguration.PlayerName : "Player") + "',"
|
||||
+ GlobalVars.sololoadtext + ")";
|
||||
case ScriptType.Studio:
|
||||
return "_G.CSStudio()";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetNameForType(ScriptType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case ScriptType.Client:
|
||||
return "Client";
|
||||
case ScriptType.Server:
|
||||
return "Server";
|
||||
case ScriptType.Solo:
|
||||
return "Play Solo";
|
||||
case ScriptType.Studio:
|
||||
return "Studio";
|
||||
case ScriptType.EasterEgg:
|
||||
return "A message from Bitl";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
public static void GenerateScriptForClient(ScriptType type)
|
||||
{
|
||||
string code = GlobalVars.MultiLine(
|
||||
"--Load Script",
|
||||
//scriptcontents,
|
||||
LauncherFuncs.ChangeGameSettings(),
|
||||
"dofile('rbxasset://scripts/" + GlobalVars.ScriptName + ".lua')",
|
||||
GetScriptFuncForType(type),
|
||||
!string.IsNullOrWhiteSpace(GlobalVars.AddonScriptPath) ? "dofile('" + GlobalVars.AddonScriptPath + "')" : ""
|
||||
);
|
||||
|
||||
List<string> list = new List<string>(Regex.Split(code, Environment.NewLine));
|
||||
string[] convertedList = list.ToArray();
|
||||
File.WriteAllLines(Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua", convertedList);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ClientScript Parser
|
||||
public class ClientScript
|
||||
{
|
||||
public static string GetArgsFromTag(string code, string tag, string endtag)
|
||||
|
|
@ -53,18 +146,18 @@ public class ClientScript
|
|||
case ScriptType.Client:
|
||||
return LauncherFuncs.ChangeGameSettings() +
|
||||
" dofile('" + luafile + "'); _G.CSConnect("
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserID : 0) + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserConfiguration.UserID : 0) + ",'"
|
||||
+ GlobalVars.IP + "',"
|
||||
+ GlobalVars.RobloxPort + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.PlayerName : "Player") + "',"
|
||||
+ GlobalVars.UserConfiguration.RobloxPort + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.UserConfiguration.PlayerName : "Player") + "',"
|
||||
+ GlobalVars.loadtext + ","
|
||||
+ md5s + ",'"
|
||||
+ GlobalVars.PlayerTripcode + "')";
|
||||
+ GlobalVars.UserConfiguration.PlayerTripcode + "')";
|
||||
case ScriptType.Server:
|
||||
return LauncherFuncs.ChangeGameSettings() +
|
||||
" dofile('" + luafile + "'); _G.CSServer("
|
||||
+ GlobalVars.RobloxPort + ","
|
||||
+ GlobalVars.PlayerLimit + ","
|
||||
+ GlobalVars.UserConfiguration.RobloxPort + ","
|
||||
+ GlobalVars.UserConfiguration.PlayerLimit + ","
|
||||
+ md5s + "); "
|
||||
+ (!string.IsNullOrWhiteSpace(GlobalVars.AddonScriptPath) ? LauncherFuncs.ChangeGameSettings() +
|
||||
" dofile('" + GlobalVars.AddonScriptPath + "');" : "");
|
||||
|
|
@ -72,8 +165,8 @@ public class ClientScript
|
|||
case ScriptType.EasterEgg:
|
||||
return LauncherFuncs.ChangeGameSettings()
|
||||
+ " dofile('" + luafile + "'); _G.CSSolo("
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserID : 0) + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.PlayerName : "Player") + "',"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserConfiguration.UserID : 0) + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.UserConfiguration.PlayerName : "Player") + "',"
|
||||
+ GlobalVars.sololoadtext + ")";
|
||||
case ScriptType.Studio:
|
||||
return LauncherFuncs.ChangeGameSettings()
|
||||
|
|
@ -109,7 +202,7 @@ public class ClientScript
|
|||
try {
|
||||
string result = source.Substring(0, source.IndexOf(seperator));
|
||||
|
||||
if (File.Exists(GlobalVars.MapsDir + @"\\" + result + @"\\" + source)) {
|
||||
if (File.Exists(Directories.MapsDir + @"\\" + result + @"\\" + source)) {
|
||||
return result + @"\\" + source;
|
||||
} else {
|
||||
return source;
|
||||
|
|
@ -138,18 +231,18 @@ public class ClientScript
|
|||
}
|
||||
|
||||
string md5dir = GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true ? SecurityFuncs.CalculateMD5(Assembly.GetExecutingAssembly().Location) : "";
|
||||
string md5script = GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true ? SecurityFuncs.CalculateMD5(GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptName + ".lua") : "";
|
||||
string md5script = GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true ? SecurityFuncs.CalculateMD5(Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptName + ".lua") : "";
|
||||
string md5exe = GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true ? SecurityFuncs.CalculateMD5(rbxexe) : "";
|
||||
string md5s = "'" + md5exe + "','" + md5dir + "','" + md5script + "'";
|
||||
string compiled = extractedCode.Replace("%mapfile%", mapfile)
|
||||
.Replace("%luafile%", luafile)
|
||||
.Replace("%charapp%", GlobalVars.UserCustomization.CharacterID)
|
||||
.Replace("%ip%", GlobalVars.IP)
|
||||
.Replace("%port%", GlobalVars.RobloxPort.ToString())
|
||||
.Replace("%name%", GlobalVars.PlayerName)
|
||||
.Replace("%port%", GlobalVars.UserConfiguration.RobloxPort.ToString())
|
||||
.Replace("%name%", GlobalVars.UserConfiguration.PlayerName)
|
||||
.Replace("%icone%", ConvertIconStringToInt().ToString())
|
||||
.Replace("%icon%", GlobalVars.UserCustomization.Icon)
|
||||
.Replace("%id%", GlobalVars.UserID.ToString())
|
||||
.Replace("%id%", GlobalVars.UserConfiguration.UserID.ToString())
|
||||
.Replace("%face%", GlobalVars.UserCustomization.Face)
|
||||
.Replace("%head%", GlobalVars.UserCustomization.Head)
|
||||
.Replace("%tshirt%", GlobalVars.UserCustomization.TShirt)
|
||||
|
|
@ -158,14 +251,14 @@ public class ClientScript
|
|||
.Replace("%hat1%", GlobalVars.UserCustomization.Hat1)
|
||||
.Replace("%hat2%", GlobalVars.UserCustomization.Hat2)
|
||||
.Replace("%hat3%", GlobalVars.UserCustomization.Hat3)
|
||||
.Replace("%faced%", GlobalVars.faceGameDir + GlobalVars.UserCustomization.Face)
|
||||
.Replace("%headd%", GlobalVars.headGameDir + GlobalVars.UserCustomization.Head)
|
||||
.Replace("%tshirtd%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : GlobalVars.tshirtGameDir + GlobalVars.UserCustomization.TShirt)
|
||||
.Replace("%shirtd%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : GlobalVars.shirtGameDir + GlobalVars.UserCustomization.Shirt)
|
||||
.Replace("%pantsd%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : GlobalVars.pantsGameDir + GlobalVars.UserCustomization.Pants)
|
||||
.Replace("%hat1d%", GlobalVars.hatGameDir + GlobalVars.UserCustomization.Hat1)
|
||||
.Replace("%hat2d%", GlobalVars.hatGameDir + GlobalVars.UserCustomization.Hat2)
|
||||
.Replace("%hat3d%", GlobalVars.hatGameDir + GlobalVars.UserCustomization.Hat3)
|
||||
.Replace("%faced%", Directories.faceGameDir + GlobalVars.UserCustomization.Face)
|
||||
.Replace("%headd%", Directories.headGameDir + GlobalVars.UserCustomization.Head)
|
||||
.Replace("%tshirtd%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : Directories.tshirtGameDir + GlobalVars.UserCustomization.TShirt)
|
||||
.Replace("%shirtd%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : Directories.shirtGameDir + GlobalVars.UserCustomization.Shirt)
|
||||
.Replace("%pantsd%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : Directories.pantsGameDir + GlobalVars.UserCustomization.Pants)
|
||||
.Replace("%hat1d%", Directories.hatGameDir + GlobalVars.UserCustomization.Hat1)
|
||||
.Replace("%hat2d%", Directories.hatGameDir + GlobalVars.UserCustomization.Hat2)
|
||||
.Replace("%hat3d%", Directories.hatGameDir + GlobalVars.UserCustomization.Hat3)
|
||||
.Replace("%headcolor%", GlobalVars.UserCustomization.HeadColorID.ToString())
|
||||
.Replace("%torsocolor%", GlobalVars.UserCustomization.TorsoColorID.ToString())
|
||||
.Replace("%larmcolor%", GlobalVars.UserCustomization.LeftArmColorID.ToString())
|
||||
|
|
@ -177,25 +270,26 @@ public class ClientScript
|
|||
.Replace("%md5exe%", GlobalVars.SelectedClientInfo.ScriptMD5)
|
||||
.Replace("%md5scriptd%", md5script)
|
||||
.Replace("%md5exed%", md5exe)
|
||||
.Replace("%limit%", GlobalVars.PlayerLimit.ToString())
|
||||
.Replace("%limit%", GlobalVars.UserConfiguration.PlayerLimit.ToString())
|
||||
.Replace("%extra%", GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%hat4%", GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%extrad%", GlobalVars.extraGameDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%hat4d%", GlobalVars.hatGameDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%extrad%", Directories.extraGameDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%hat4d%", Directories.hatGameDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%args%", GetRawArgsFromTag(tag, md5s, luafile))
|
||||
.Replace("%facews%", GlobalVars.WebServer_FaceDir + GlobalVars.UserCustomization.Face)
|
||||
.Replace("%headws%", GlobalVars.WebServer_HeadDir + GlobalVars.UserCustomization.Head)
|
||||
.Replace("%tshirtws%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : GlobalVars.WebServer_TShirtDir + GlobalVars.UserCustomization.TShirt)
|
||||
.Replace("%shirtws%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : GlobalVars.WebServer_ShirtDir + GlobalVars.UserCustomization.Shirt)
|
||||
.Replace("%pantsws%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : GlobalVars.WebServer_PantsDir + GlobalVars.UserCustomization.Pants)
|
||||
.Replace("%hat1ws%", GlobalVars.WebServer_HatDir + GlobalVars.UserCustomization.Hat1)
|
||||
.Replace("%hat2ws%", GlobalVars.WebServer_HatDir + GlobalVars.UserCustomization.Hat2)
|
||||
.Replace("%hat3ws%", GlobalVars.WebServer_HatDir + GlobalVars.UserCustomization.Hat3)
|
||||
.Replace("%extraws%", GlobalVars.WebServer_ExtraDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%hat4ws%", GlobalVars.WebServer_HatDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%mapfiled%", GlobalVars.BaseGameDir + GlobalVars.MapPathSnip.Replace(@"\\", @"\"))
|
||||
.Replace("%tripcode%", GlobalVars.PlayerTripcode)
|
||||
.Replace("%facews%", Directories.WebServer_FaceDir + GlobalVars.UserCustomization.Face)
|
||||
.Replace("%headws%", Directories.WebServer_HeadDir + GlobalVars.UserCustomization.Head)
|
||||
.Replace("%tshirtws%", GlobalVars.UserCustomization.TShirt.Contains("http://") ? GlobalVars.UserCustomization.TShirt : Directories.WebServer_TShirtDir + GlobalVars.UserCustomization.TShirt)
|
||||
.Replace("%shirtws%", GlobalVars.UserCustomization.Shirt.Contains("http://") ? GlobalVars.UserCustomization.Shirt : Directories.WebServer_ShirtDir + GlobalVars.UserCustomization.Shirt)
|
||||
.Replace("%pantsws%", GlobalVars.UserCustomization.Pants.Contains("http://") ? GlobalVars.UserCustomization.Pants : Directories.WebServer_PantsDir + GlobalVars.UserCustomization.Pants)
|
||||
.Replace("%hat1ws%", Directories.WebServer_HatDir + GlobalVars.UserCustomization.Hat1)
|
||||
.Replace("%hat2ws%", Directories.WebServer_HatDir + GlobalVars.UserCustomization.Hat2)
|
||||
.Replace("%hat3ws%", Directories.WebServer_HatDir + GlobalVars.UserCustomization.Hat3)
|
||||
.Replace("%extraws%", Directories.WebServer_ExtraDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%hat4ws%", Directories.WebServer_HatDir + GlobalVars.UserCustomization.Extra)
|
||||
.Replace("%mapfiled%", Directories.BaseGameDir + GlobalVars.UserConfiguration.MapPathSnip.Replace(@"\\", @"\"))
|
||||
.Replace("%tripcode%", GlobalVars.UserConfiguration.PlayerTripcode)
|
||||
.Replace("%addonscriptpath%", GlobalVars.AddonScriptPath);
|
||||
return compiled;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
|
@ -1,12 +1,4 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 6:59 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
#region Usings
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
|
@ -20,10 +12,9 @@ using System.Linq;
|
|||
using System.ComponentModel;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Description of SecurityFuncs.
|
||||
/// </summary>
|
||||
#region Security Functions
|
||||
public class SecurityFuncs
|
||||
{
|
||||
[DllImport("user32.dll")]
|
||||
|
|
@ -100,9 +91,9 @@ public class SecurityFuncs
|
|||
if (GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true) {
|
||||
string rbxexe = "";
|
||||
if (GlobalVars.SelectedClientInfo.LegacyMode == true) {
|
||||
rbxexe = GlobalVars.BasePath + "\\clients\\" + client + "\\RobloxApp.exe";
|
||||
rbxexe = Directories.BasePath + "\\clients\\" + client + "\\RobloxApp.exe";
|
||||
} else {
|
||||
rbxexe = GlobalVars.BasePath + "\\clients\\" + client + "\\RobloxApp_client.exe";
|
||||
rbxexe = Directories.BasePath + "\\clients\\" + client + "\\RobloxApp_client.exe";
|
||||
}
|
||||
using (var md5 = MD5.Create()) {
|
||||
using (var stream = File.OpenRead(rbxexe)) {
|
||||
|
|
@ -127,7 +118,7 @@ public class SecurityFuncs
|
|||
{
|
||||
if (GlobalVars.AdminMode != true) {
|
||||
if (GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true) {
|
||||
string rbxscript = GlobalVars.BasePath + "\\clients\\" + client + "\\content\\scripts\\" + GlobalVars.ScriptName + ".lua";
|
||||
string rbxscript = Directories.BasePath + "\\clients\\" + client + "\\content\\scripts\\" + GlobalVars.ScriptName + ".lua";
|
||||
using (var md5 = MD5.Create()) {
|
||||
using (var stream = File.OpenRead(rbxscript)) {
|
||||
byte[] hash = md5.ComputeHash(stream);
|
||||
|
|
@ -173,7 +164,7 @@ public class SecurityFuncs
|
|||
if (GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true) {
|
||||
int time = 500;
|
||||
BackgroundWorker worker = new BackgroundWorker();
|
||||
worker.DoWork += (obj, e) => WorkerDoWork(exe, type, time, worker, GlobalVars.SelectedClient, mapname);
|
||||
worker.DoWork += (obj, e) => WorkerDoWork(exe, type, time, worker, GlobalVars.UserConfiguration.SelectedClient, mapname);
|
||||
worker.RunWorkerAsync();
|
||||
}
|
||||
}
|
||||
|
|
@ -196,7 +187,7 @@ public class SecurityFuncs
|
|||
+ GlobalVars.Version + " - "
|
||||
+ clientname + " "
|
||||
+ ScriptGenerator.GetNameForType(type)
|
||||
+ " [" + GlobalVars.IP + ":" + GlobalVars.RobloxPort + "]"
|
||||
+ " [" + GlobalVars.IP + ":" + GlobalVars.UserConfiguration.RobloxPort + "]"
|
||||
+ RandomStringTitle());
|
||||
break;
|
||||
case ScriptType.Server:
|
||||
|
|
@ -260,4 +251,5 @@ public class SecurityFuncs
|
|||
var task = Task.Factory.StartNew(() => GetExternalIPAddress());
|
||||
return await task;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
|
@ -1,142 +0,0 @@
|
|||
public class AssetCacheDef
|
||||
{
|
||||
public AssetCacheDef(string clas, string[] id, string[] ext,
|
||||
string[] dir, string[] gamedir)
|
||||
{
|
||||
Class = clas;
|
||||
Id = id;
|
||||
Ext = ext;
|
||||
Dir = dir;
|
||||
GameDir = gamedir;
|
||||
}
|
||||
|
||||
public string Class { get; set; }
|
||||
public string[] Id { get; set; }
|
||||
public string[] Ext { get; set; }
|
||||
public string[] Dir { get; set; }
|
||||
public string[] GameDir { get; set; }
|
||||
}
|
||||
|
||||
public class ClientInfo
|
||||
{
|
||||
public ClientInfo()
|
||||
{
|
||||
UsesPlayerName = false;
|
||||
UsesID = true;
|
||||
Description = "";
|
||||
Warning = "";
|
||||
LegacyMode = false;
|
||||
ClientMD5 = "";
|
||||
ScriptMD5 = "";
|
||||
Fix2007 = false;
|
||||
AlreadyHasSecurity = false;
|
||||
NoGraphicsOptions = false;
|
||||
CommandLineArgs = "";
|
||||
}
|
||||
|
||||
public bool UsesPlayerName { get; set; }
|
||||
public bool UsesID { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string Warning { get; set; }
|
||||
public bool LegacyMode { get; set; }
|
||||
public string ClientMD5 { get; set; }
|
||||
public string ScriptMD5 { get; set; }
|
||||
public bool Fix2007 { get; set; }
|
||||
public bool AlreadyHasSecurity { get; set; }
|
||||
public bool NoGraphicsOptions { get; set; }
|
||||
public string CommandLineArgs { get; set; }
|
||||
}
|
||||
|
||||
/*
|
||||
* Finish classes for:
|
||||
*
|
||||
* config
|
||||
* info
|
||||
* reshade
|
||||
*
|
||||
* change field names for all forms
|
||||
* Rewrite client launching into one function.
|
||||
*/
|
||||
public class Config
|
||||
{
|
||||
public Config()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class CustomizationConfig
|
||||
{
|
||||
public CustomizationConfig()
|
||||
{
|
||||
Hat1 = "NoHat.rbxm";
|
||||
Hat2 = "NoHat.rbxm";
|
||||
Hat3 = "NoHat.rbxm";
|
||||
Face = "DefaultFace.rbxm";
|
||||
Head = "DefaultHead.rbxm";
|
||||
TShirt = "NoTShirt.rbxm";
|
||||
Shirt = "NoShirt.rbxm";
|
||||
Pants = "NoPants.rbxm";
|
||||
Icon = "NBC";
|
||||
Extra = "NoExtra.rbxm";
|
||||
HeadColorID = 24;
|
||||
TorsoColorID = 23;
|
||||
LeftArmColorID = 24;
|
||||
RightArmColorID = 24;
|
||||
LeftLegColorID = 119;
|
||||
RightLegColorID = 119;
|
||||
HeadColorString = "Color [A=255, R=245, G=205, B=47]";
|
||||
TorsoColorString = "Color [A=255, R=13, G=105, B=172]";
|
||||
LeftArmColorString = "Color [A=255, R=245, G=205, B=47]";
|
||||
RightArmColorString = "Color [A=255, R=245, G=205, B=47]";
|
||||
LeftLegColorString = "Color [A=255, R=164, G=189, B=71]";
|
||||
RightLegColorString = "Color [A=255, R=164, G=189, B=71]";
|
||||
ExtraSelectionIsHat = false;
|
||||
ShowHatsInExtra = false;
|
||||
CharacterID = "";
|
||||
}
|
||||
|
||||
public string Hat1 { get; set; }
|
||||
public string Hat2 { get; set; }
|
||||
public string Hat3 { get; set; }
|
||||
public string Face { get; set; }
|
||||
public string Head { get; set; }
|
||||
public string TShirt { get; set; }
|
||||
public string Shirt { get; set; }
|
||||
public string Pants { get; set; }
|
||||
public string Icon { get; set; }
|
||||
public string Extra { get; set; }
|
||||
public int HeadColorID { get; set; }
|
||||
public int TorsoColorID { get; set; }
|
||||
public int LeftArmColorID { get; set; }
|
||||
public int RightArmColorID { get; set; }
|
||||
public int LeftLegColorID { get; set; }
|
||||
public int RightLegColorID { get; set; }
|
||||
public string HeadColorString { get; set; }
|
||||
public string TorsoColorString { get; set; }
|
||||
public string LeftArmColorString { get; set; }
|
||||
public string RightArmColorString { get; set; }
|
||||
public string LeftLegColorString { get; set; }
|
||||
public string RightLegColorString { get; set; }
|
||||
public bool ExtraSelectionIsHat { get; set; }
|
||||
public bool ShowHatsInExtra { get; set; }
|
||||
public string CharacterID { get; set; }
|
||||
}
|
||||
|
||||
public class ProgramInfo
|
||||
{
|
||||
public ProgramInfo()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public class ReShadeConfig
|
||||
{
|
||||
public ReShadeConfig()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
|
||||
namespace NovetusFuncs
|
||||
{
|
||||
public class PartColors
|
||||
{
|
||||
public int ColorID { get; set; }
|
||||
public Color ButtonColor { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,170 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
|
||||
public enum DLType
|
||||
{
|
||||
//RBXL and RBXM
|
||||
RBXL,
|
||||
RBXM,
|
||||
//Items
|
||||
Hat,
|
||||
Head,
|
||||
Face,
|
||||
TShirt,
|
||||
Shirt,
|
||||
Pants
|
||||
}
|
||||
|
||||
public static class RobloxXMLLocalizer
|
||||
{
|
||||
public static void DownloadFromNodes(string filepath, AssetCacheDef assetdef, string name = "", string meshname = "")
|
||||
{
|
||||
DownloadFromNodes(filepath, assetdef.Class, assetdef.Id[0], assetdef.Ext[0], assetdef.Dir[0], assetdef.GameDir[0], name, meshname);
|
||||
}
|
||||
|
||||
public static void DownloadFromNodes(string filepath, AssetCacheDef assetdef, int idIndex, int extIndex, int outputPathIndex, int inGameDirIndex, string name = "", string meshname = "")
|
||||
{
|
||||
DownloadFromNodes(filepath, assetdef.Class, assetdef.Id[idIndex], assetdef.Ext[extIndex], assetdef.Dir[outputPathIndex], assetdef.GameDir[inGameDirIndex], name, meshname);
|
||||
}
|
||||
|
||||
public static void DownloadFromNodes(string filepath, string itemClassValue, string itemIdValue, string fileext, string outputPath, string inGameDir, string name = "", string meshname = "")
|
||||
{
|
||||
string oldfile = File.ReadAllText(filepath);
|
||||
string fixedfile = RemoveInvalidXmlChars(ReplaceHexadecimalSymbols(oldfile));
|
||||
XDocument doc = XDocument.Parse(fixedfile);
|
||||
|
||||
if (Env.Debugging)
|
||||
{
|
||||
MessageBox.Show(itemClassValue + ", " + itemIdValue);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var v = from nodes in doc.Descendants("Item")
|
||||
where nodes.Attribute("class").Value == itemClassValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item in v)
|
||||
{
|
||||
var v2 = from nodes in item.Descendants("Content")
|
||||
where nodes.Attribute("name").Value == itemIdValue
|
||||
select nodes;
|
||||
|
||||
foreach (var item2 in v2)
|
||||
{
|
||||
var v3 = from nodes in item2.Descendants("url")
|
||||
select nodes;
|
||||
|
||||
foreach (var item3 in v3)
|
||||
{
|
||||
if (!item3.Value.Contains("rbxassetid"))
|
||||
{
|
||||
if (!item3.Value.Contains("rbxasset"))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(meshname))
|
||||
{
|
||||
string url = item3.Value;
|
||||
string urlFixed = url.Replace("&", "&").Replace("amp;", "&");
|
||||
string peram = "id=";
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
{
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
string IDVal = urlFixed.After(peram);
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, IDVal);
|
||||
item3.Value = inGameDir + IDVal + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, name);
|
||||
item3.Value = inGameDir + name + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
item3.Value = inGameDir + meshname;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(meshname))
|
||||
{
|
||||
string url = item3.Value;
|
||||
string rbxassetid = "rbxassetid://";
|
||||
string urlFixed = "https://www.roblox.com/asset/?id=" + url.After(rbxassetid);
|
||||
string peram = "id=";
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
{
|
||||
if (urlFixed.Contains(peram))
|
||||
{
|
||||
string IDVal = urlFixed.After(peram);
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, IDVal);
|
||||
item3.Value = inGameDir + IDVal + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DownloadFilesFromNode(urlFixed, outputPath, fileext, name);
|
||||
item3.Value = inGameDir + name + fileext;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
item3.Value = inGameDir + meshname;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
{
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset Localizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
finally
|
||||
{
|
||||
doc.Save(filepath);
|
||||
}
|
||||
}
|
||||
|
||||
private static void DownloadFilesFromNode(string url, string path, string fileext, string id)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
Downloader download = new Downloader(url, id);
|
||||
|
||||
try
|
||||
{
|
||||
download.InitDownload(path, fileext);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
{
|
||||
MessageBox.Show("The download has experienced an error: " + ex.Message, "Novetus Asset Localizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static string RemoveInvalidXmlChars(string content)
|
||||
{
|
||||
return new string(content.Where(ch => XmlConvert.IsXmlChar(ch)).ToArray());
|
||||
}
|
||||
|
||||
private static string ReplaceHexadecimalSymbols(string txt)
|
||||
{
|
||||
string r = "[\x00-\x08\x0B\x0C\x0E-\x1F\x26]";
|
||||
return Regex.Replace(txt, r, "", RegexOptions.Compiled);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:02 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
public enum ScriptType
|
||||
{
|
||||
Client = 0,
|
||||
Server = 1,
|
||||
Solo = 2,
|
||||
Studio = 3,
|
||||
EasterEgg = 4,
|
||||
None = 5
|
||||
}
|
||||
|
||||
public class ScriptGenerator
|
||||
{
|
||||
public static string GetScriptFuncForType(ScriptType type)
|
||||
{
|
||||
string rbxexe = "";
|
||||
if (GlobalVars.SelectedClientInfo.LegacyMode == true)
|
||||
{
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
|
||||
}
|
||||
else
|
||||
{
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_client.exe";
|
||||
}
|
||||
|
||||
string md5dir = SecurityFuncs.CalculateMD5(Assembly.GetExecutingAssembly().Location);
|
||||
string md5script = SecurityFuncs.CalculateMD5(GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptName + ".lua");
|
||||
string md5exe = SecurityFuncs.CalculateMD5(rbxexe);
|
||||
string md5s = "'" + md5exe + "','" + md5dir + "','" + md5script + "'";
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case ScriptType.Client:
|
||||
return "_G.CSConnect("
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserID : 0) + ",'"
|
||||
+ GlobalVars.IP + "',"
|
||||
+ GlobalVars.RobloxPort + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.PlayerName : "Player") + "',"
|
||||
+ GlobalVars.loadtext + ","
|
||||
+ md5s + ",'"
|
||||
+ GlobalVars.PlayerTripcode + "')";
|
||||
case ScriptType.Server:
|
||||
return "_G.CSServer("
|
||||
+ GlobalVars.RobloxPort + ","
|
||||
+ GlobalVars.PlayerLimit + ","
|
||||
+ md5s + ")";
|
||||
case ScriptType.Solo:
|
||||
case ScriptType.EasterEgg:
|
||||
return "_G.CSSolo("
|
||||
+ (GlobalVars.SelectedClientInfo.UsesID == true ? GlobalVars.UserID : 0) + ",'"
|
||||
+ (GlobalVars.SelectedClientInfo.UsesPlayerName == true ? GlobalVars.PlayerName : "Player") + "',"
|
||||
+ GlobalVars.sololoadtext + ")";
|
||||
case ScriptType.Studio:
|
||||
return "_G.CSStudio()";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetNameForType(ScriptType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case ScriptType.Client:
|
||||
return "Client";
|
||||
case ScriptType.Server:
|
||||
return "Server";
|
||||
case ScriptType.Solo:
|
||||
return "Play Solo";
|
||||
case ScriptType.Studio:
|
||||
return "Studio";
|
||||
case ScriptType.EasterEgg:
|
||||
return "A message from Bitl";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
public static void GenerateScriptForClient(ScriptType type)
|
||||
{
|
||||
string code = GlobalVars.MultiLine(
|
||||
"--Load Script",
|
||||
//scriptcontents,
|
||||
LauncherFuncs.ChangeGameSettings(),
|
||||
"dofile('rbxasset://scripts/" + GlobalVars.ScriptName + ".lua')",
|
||||
GetScriptFuncForType(type),
|
||||
!string.IsNullOrWhiteSpace(GlobalVars.AddonScriptPath) ? "dofile('" + GlobalVars.AddonScriptPath + "')" : ""
|
||||
);
|
||||
|
||||
List<string> list = new List<string>(Regex.Split(code, Environment.NewLine));
|
||||
string[] convertedList = list.ToArray();
|
||||
File.WriteAllLines(GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua", convertedList);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:04 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
public static class SplashReader
|
||||
{
|
||||
private static string RandomSplash()
|
||||
{
|
||||
string[] splashes = File.ReadAllLines(GlobalVars.ConfigDir + "\\splashes.txt");
|
||||
string splash = "";
|
||||
|
||||
try {
|
||||
splash = splashes[new CryptoRandom().Next(0, splashes.Length - 1)];
|
||||
} catch (Exception) {
|
||||
try {
|
||||
splash = splashes[0];
|
||||
} catch (Exception) {
|
||||
splash = "missingno";
|
||||
return splash;
|
||||
}
|
||||
}
|
||||
|
||||
CryptoRandom random = new CryptoRandom();
|
||||
|
||||
string formattedsplash = splash
|
||||
.Replace("%name%", GlobalVars.PlayerName)
|
||||
.Replace("%nextversion%", (Convert.ToDouble(GlobalVars.Branch) + 0.1).ToString())
|
||||
.Replace("%randomtext%", SecurityFuncs.RandomString(random.Next(2,32)));
|
||||
|
||||
return formattedsplash;
|
||||
}
|
||||
|
||||
public static string GetSplash()
|
||||
{
|
||||
DateTime today = DateTime.Now;
|
||||
string splash = "";
|
||||
|
||||
switch (today)
|
||||
{
|
||||
case DateTime christmaseve when christmaseve.Month.Equals(12) && christmaseve.Day.Equals(24):
|
||||
case DateTime christmasday when christmasday.Month.Equals(12) && christmasday.Day.Equals(25):
|
||||
splash = "Merry Christmas!";
|
||||
break;
|
||||
case DateTime newyearseve when newyearseve.Month.Equals(12) && newyearseve.Day.Equals(31):
|
||||
case DateTime newyearsday when newyearsday.Month.Equals(1) && newyearsday.Day.Equals(1):
|
||||
splash = "Happy New Year!";
|
||||
break;
|
||||
case DateTime halloween when halloween.Month.Equals(10) && halloween.Day.Equals(31):
|
||||
splash = "Happy Halloween!";
|
||||
break;
|
||||
case DateTime bitlbirthday when bitlbirthday.Month.Equals(6) && bitlbirthday.Day.Equals(10):
|
||||
splash = "Happy Birthday, Bitl!";
|
||||
break;
|
||||
case DateTime robloxbirthday when robloxbirthday.Month.Equals(8) && robloxbirthday.Day.Equals(27):
|
||||
splash = "Happy Birthday, ROBLOX!";
|
||||
break;
|
||||
case DateTime novetusbirthday when novetusbirthday.Month.Equals(10) && novetusbirthday.Day.Equals(27):
|
||||
splash = "Happy Birthday, Novetus!";
|
||||
break;
|
||||
case DateTime leiferikson when leiferikson.Month.Equals(10) && leiferikson.Day.Equals(9):
|
||||
splash = "Happy Leif Erikson Day! HINGA DINGA DURGEN!";
|
||||
break;
|
||||
case DateTime smokeweedeveryday when smokeweedeveryday.Month.Equals(4) && smokeweedeveryday.Day.Equals(20):
|
||||
CryptoRandom random = new CryptoRandom();
|
||||
if (random.Next(0, 1) == 1)
|
||||
{
|
||||
splash = "smoke weed every day";
|
||||
}
|
||||
else
|
||||
{
|
||||
splash = "4/20 lol";
|
||||
}
|
||||
break;
|
||||
case DateTime erikismyhero when erikismyhero.Month.Equals(2) && erikismyhero.Day.Equals(11):
|
||||
splash = "RIP Erik Cassel";
|
||||
break;
|
||||
default:
|
||||
splash = RandomSplash();
|
||||
break;
|
||||
}
|
||||
|
||||
return splash;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,103 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 6:59 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
public static class TextLineRemover
|
||||
{
|
||||
public static void RemoveTextLines(IList<string> linesToRemove, string filename, string tempFilename)
|
||||
{
|
||||
// Initial values
|
||||
int lineNumber = 0;
|
||||
int linesRemoved = 0;
|
||||
DateTime startTime = DateTime.Now;
|
||||
|
||||
// Read file
|
||||
using (var sr = new StreamReader(filename)) {
|
||||
// Write new file
|
||||
using (var sw = new StreamWriter(tempFilename)) {
|
||||
// Read lines
|
||||
string line;
|
||||
while ((line = sr.ReadLine()) != null) {
|
||||
lineNumber++;
|
||||
// Look for text to remove
|
||||
if (!ContainsString(line, linesToRemove)) {
|
||||
// Keep lines that does not match
|
||||
sw.WriteLine(line);
|
||||
} else {
|
||||
// Ignore lines that DO match
|
||||
linesRemoved++;
|
||||
InvokeOnRemovedLine(new RemovedLineArgs {
|
||||
RemovedLine = line,
|
||||
RemovedLineNumber = lineNumber
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Delete original file
|
||||
File.Delete(filename);
|
||||
|
||||
// ... and put the temp file in its place.
|
||||
File.Move(tempFilename, filename);
|
||||
|
||||
// Final calculations
|
||||
DateTime endTime = DateTime.Now;
|
||||
InvokeOnFinished(new FinishedArgs {
|
||||
LinesRemoved = linesRemoved,
|
||||
TotalLines = lineNumber,
|
||||
TotalTime = endTime.Subtract(startTime)
|
||||
});
|
||||
}
|
||||
|
||||
private static bool ContainsString(string line, IEnumerable<string> linesToRemove)
|
||||
{
|
||||
foreach (var lineToRemove in linesToRemove) {
|
||||
if (line.Contains(lineToRemove))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static event RemovedLine OnRemovedLine;
|
||||
public static event Finished OnFinished;
|
||||
|
||||
public static void InvokeOnFinished(FinishedArgs args)
|
||||
{
|
||||
Finished handler = OnFinished;
|
||||
if (handler != null)
|
||||
handler(null, args);
|
||||
}
|
||||
|
||||
public static void InvokeOnRemovedLine(RemovedLineArgs args)
|
||||
{
|
||||
RemovedLine handler = OnRemovedLine;
|
||||
if (handler != null)
|
||||
handler(null, args);
|
||||
}
|
||||
}
|
||||
|
||||
public delegate void Finished(object sender, FinishedArgs args);
|
||||
|
||||
public class FinishedArgs
|
||||
{
|
||||
public int TotalLines { get; set; }
|
||||
public int LinesRemoved { get; set; }
|
||||
public TimeSpan TotalTime { get; set; }
|
||||
}
|
||||
|
||||
public delegate void RemovedLine(object sender, RemovedLineArgs args);
|
||||
|
||||
public class RemovedLineArgs
|
||||
{
|
||||
public string RemovedLine { get; set; }
|
||||
public int RemovedLineNumber { get; set; }
|
||||
}
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:03 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
public static class TreeNodeHelper
|
||||
{
|
||||
public static void ListDirectory(TreeView treeView, string path, string filter = ".*")
|
||||
{
|
||||
treeView.Nodes.Clear();
|
||||
var rootDirectoryInfo = new DirectoryInfo(path);
|
||||
treeView.Nodes.Add(CreateDirectoryNode(rootDirectoryInfo, filter));
|
||||
}
|
||||
|
||||
public static TreeNode CreateDirectoryNode(DirectoryInfo directoryInfo, string filter = ".*")
|
||||
{
|
||||
var directoryNode = new TreeNode(directoryInfo.Name);
|
||||
foreach (var directory in directoryInfo.GetDirectories())
|
||||
directoryNode.Nodes.Add(CreateDirectoryNode(directory, filter));
|
||||
foreach (var file in directoryInfo.GetFiles("*"+filter))
|
||||
directoryNode.Nodes.Add(new TreeNode(file.Name));
|
||||
return directoryNode;
|
||||
}
|
||||
|
||||
//https://stackoverflow.com/questions/42295131/searching-a-treeview-for-a-specific-string
|
||||
public static TreeNode SearchTreeView(string p_sSearchTerm, TreeNodeCollection p_Nodes)
|
||||
{
|
||||
foreach (TreeNode node in p_Nodes) {
|
||||
if (node.Text == p_sSearchTerm)
|
||||
return node;
|
||||
|
||||
if (node.Nodes.Count > 0) {
|
||||
TreeNode child = SearchTreeView(p_sSearchTerm, node.Nodes);
|
||||
if (child != null)
|
||||
{
|
||||
return child;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string GetFolderNameFromPrefix(string source, string seperator = " -")
|
||||
{
|
||||
try {
|
||||
string result = source.Substring(0, source.IndexOf(seperator));
|
||||
|
||||
if (Directory.Exists(GlobalVars.MapsDir + @"\\" + result)) {
|
||||
return result + @"\\";
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
} catch (Exception) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static void CopyNodes(TreeNodeCollection oldcollection, TreeNodeCollection newcollection)
|
||||
{
|
||||
foreach (TreeNode node in oldcollection) {
|
||||
newcollection.Add((TreeNode)node.Clone());
|
||||
}
|
||||
}
|
||||
|
||||
public static List<TreeNode> GetAllNodes(this TreeView _self)
|
||||
{
|
||||
List<TreeNode> result = new List<TreeNode>();
|
||||
foreach (TreeNode child in _self.Nodes) {
|
||||
result.AddRange(child.GetAllNodes());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<TreeNode> GetAllNodes(this TreeNode _self)
|
||||
{
|
||||
List<TreeNode> result = new List<TreeNode>();
|
||||
result.Add(_self);
|
||||
foreach (TreeNode child in _self.Nodes) {
|
||||
result.AddRange(child.GetAllNodes());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<TreeNode> Ancestors(this TreeNode node)
|
||||
{
|
||||
return AncestorsInternal(node).Reverse().ToList();
|
||||
}
|
||||
public static List<TreeNode> AncestorsAndSelf(this TreeNode node)
|
||||
{
|
||||
return AncestorsInternal(node, true).Reverse().ToList();
|
||||
}
|
||||
private static IEnumerable<TreeNode> AncestorsInternal(TreeNode node, bool self = false)
|
||||
{
|
||||
if (self)
|
||||
yield return node;
|
||||
while (node.Parent != null)
|
||||
{
|
||||
node = node.Parent;
|
||||
yield return node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
//code based off https://stackoverflow.com/questions/35626050/registering-custom-url-handler-in-c-sharp-on-windows-8
|
||||
|
||||
namespace NovetusFuncs
|
||||
{
|
||||
public class URIReg
|
||||
{
|
||||
private static string _Protocol = "";
|
||||
private static string _ProtocolHandler = "";
|
||||
|
||||
private static readonly string _launch = string.Format(
|
||||
"{0}{1}{0} {0}%1{0}", (char)34, Application.ExecutablePath);
|
||||
|
||||
private static readonly Version _win8Version = new Version(6, 2, 9200, 0);
|
||||
|
||||
private static readonly bool _isWin8 =
|
||||
Environment.OSVersion.Platform == PlatformID.Win32NT &&
|
||||
Environment.OSVersion.Version >= _win8Version;
|
||||
|
||||
public URIReg(string protocol, string protocolhandle)
|
||||
{
|
||||
_Protocol = protocol;
|
||||
_ProtocolHandler = protocolhandle;
|
||||
}
|
||||
|
||||
public void Register()
|
||||
{
|
||||
if (_isWin8) RegisterWin8();
|
||||
else RegisterWin7();
|
||||
}
|
||||
|
||||
private static void RegisterWin7()
|
||||
{
|
||||
var regKey = Registry.ClassesRoot.CreateSubKey(_Protocol);
|
||||
|
||||
regKey.CreateSubKey("DefaultIcon")
|
||||
.SetValue(null, string.Format("{0}{1},1{0}", (char)34,
|
||||
Application.ExecutablePath));
|
||||
|
||||
regKey.SetValue(null, "URL:" + _Protocol + " Protocol");
|
||||
regKey.SetValue("URL Protocol", "");
|
||||
|
||||
regKey = regKey.CreateSubKey(@"shell\open\command");
|
||||
regKey.SetValue(null, _launch);
|
||||
}
|
||||
|
||||
private static void RegisterWin8()
|
||||
{
|
||||
RegisterWin7();
|
||||
|
||||
var regKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Classes")
|
||||
.CreateSubKey(_ProtocolHandler);
|
||||
|
||||
regKey.SetValue(null, _Protocol);
|
||||
|
||||
regKey.CreateSubKey("DefaultIcon")
|
||||
.SetValue(null, string.Format("{0}{1},1{0}", (char)34,
|
||||
Application.ExecutablePath));
|
||||
|
||||
regKey.CreateSubKey(@"shell\open\command").SetValue(null, _launch);
|
||||
|
||||
Registry.LocalMachine.CreateSubKey(string.Format(
|
||||
@"SOFTWARE\{0}\{1}\Capabilities\ApplicationDescription\URLAssociations",
|
||||
Application.CompanyName, Application.ProductName))
|
||||
.SetValue(_Protocol, _ProtocolHandler);
|
||||
|
||||
Registry.LocalMachine.CreateSubKey(@"SOFTWARE\RegisteredApplications")
|
||||
.SetValue(Application.ProductName, string.Format(
|
||||
@"SOFTWARE\{0}\Capabilities", Application.ProductName));
|
||||
}
|
||||
|
||||
public void Unregister()
|
||||
{
|
||||
if (!_isWin8)
|
||||
{
|
||||
Registry.ClassesRoot.DeleteSubKeyTree(_Protocol, false);
|
||||
return;
|
||||
}
|
||||
|
||||
// extra work required.
|
||||
Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Classes")
|
||||
.DeleteSubKeyTree(_ProtocolHandler, false);
|
||||
|
||||
Registry.LocalMachine.DeleteSubKeyTree(string.Format(@"SOFTWARE\{0}\{1}",
|
||||
Application.CompanyName, Application.ProductName));
|
||||
|
||||
Registry.LocalMachine.CreateSubKey(@"SOFTWARE\RegisteredApplications")
|
||||
.DeleteValue(Application.ProductName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,241 +0,0 @@
|
|||
/*
|
||||
* Created by SharpDevelop.
|
||||
* User: Bitl
|
||||
* Date: 10/10/2019
|
||||
* Time: 7:05 AM
|
||||
*
|
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Net.Sockets;
|
||||
using System.Net;
|
||||
|
||||
//made by aksakalli
|
||||
public class SimpleHTTPServer
|
||||
{
|
||||
|
||||
private readonly string[] _indexFiles = {
|
||||
"index.html",
|
||||
"index.htm",
|
||||
"index.php",
|
||||
"default.html",
|
||||
"default.htm",
|
||||
"default.php"
|
||||
};
|
||||
|
||||
private static IDictionary<string, string> _mimeTypeMappings = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) {
|
||||
{ ".asf", "video/x-ms-asf" },
|
||||
{ ".asx", "video/x-ms-asf" },
|
||||
{ ".avi", "video/x-msvideo" },
|
||||
{ ".bin", "application/octet-stream" },
|
||||
{ ".cco", "application/x-cocoa" },
|
||||
{ ".crt", "application/x-x509-ca-cert" },
|
||||
{ ".css", "text/css" },
|
||||
{ ".deb", "application/octet-stream" },
|
||||
{ ".der", "application/x-x509-ca-cert" },
|
||||
{ ".dll", "application/octet-stream" },
|
||||
{ ".dmg", "application/octet-stream" },
|
||||
{ ".ear", "application/java-archive" },
|
||||
{ ".eot", "application/octet-stream" },
|
||||
{ ".exe", "application/octet-stream" },
|
||||
{ ".flv", "video/x-flv" },
|
||||
{ ".gif", "image/gif" },
|
||||
{ ".hqx", "application/mac-binhex40" },
|
||||
{ ".htc", "text/x-component" },
|
||||
{ ".htm", "text/html" },
|
||||
{ ".html", "text/html" },
|
||||
{ ".ico", "image/x-icon" },
|
||||
{ ".img", "application/octet-stream" },
|
||||
{ ".iso", "application/octet-stream" },
|
||||
{ ".jar", "application/java-archive" },
|
||||
{ ".jardiff", "application/x-java-archive-diff" },
|
||||
{ ".jng", "image/x-jng" },
|
||||
{ ".jnlp", "application/x-java-jnlp-file" },
|
||||
{ ".jpeg", "image/jpeg" },
|
||||
{ ".jpg", "image/jpeg" },
|
||||
{ ".js", "application/x-javascript" },
|
||||
{ ".mml", "text/mathml" },
|
||||
{ ".mng", "video/x-mng" },
|
||||
{ ".mov", "video/quicktime" },
|
||||
{ ".mp3", "audio/mpeg" },
|
||||
{ ".mpeg", "video/mpeg" },
|
||||
{ ".mpg", "video/mpeg" },
|
||||
{ ".msi", "application/octet-stream" },
|
||||
{ ".msm", "application/octet-stream" },
|
||||
{ ".msp", "application/octet-stream" },
|
||||
{ ".pdb", "application/x-pilot" },
|
||||
{ ".pdf", "application/pdf" },
|
||||
{ ".pem", "application/x-x509-ca-cert" },
|
||||
{ ".php", "text/html" },
|
||||
{ ".pl", "application/x-perl" },
|
||||
{ ".pm", "application/x-perl" },
|
||||
{ ".png", "image/png" },
|
||||
{ ".prc", "application/x-pilot" },
|
||||
{ ".ra", "audio/x-realaudio" },
|
||||
{ ".rar", "application/x-rar-compressed" },
|
||||
{ ".rpm", "application/x-redhat-package-manager" },
|
||||
{ ".rss", "text/xml" },
|
||||
{ ".run", "application/x-makeself" },
|
||||
{ ".sea", "application/x-sea" },
|
||||
{ ".shtml", "text/html" },
|
||||
{ ".sit", "application/x-stuffit" },
|
||||
{ ".swf", "application/x-shockwave-flash" },
|
||||
{ ".tcl", "application/x-tcl" },
|
||||
{ ".tk", "application/x-tcl" },
|
||||
{ ".txt", "text/plain" },
|
||||
{ ".war", "application/java-archive" },
|
||||
{ ".wbmp", "image/vnd.wap.wbmp" },
|
||||
{ ".wmv", "video/x-ms-wmv" },
|
||||
{ ".xml", "text/xml" },
|
||||
{ ".xpi", "application/x-xpinstall" },
|
||||
{ ".zip", "application/zip" },
|
||||
};
|
||||
private Thread _serverThread;
|
||||
private string _rootDirectory;
|
||||
private HttpListener _listener;
|
||||
private int _port;
|
||||
|
||||
public int Port {
|
||||
get { return _port; }
|
||||
private set { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Construct server with given port.
|
||||
/// </summary>
|
||||
/// <param name="path">Directory path to serve.</param>
|
||||
/// <param name="port">Port of the server.</param>
|
||||
public SimpleHTTPServer(string path, int port)
|
||||
{
|
||||
this.Initialize(path, port);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Construct server with suitable port.
|
||||
/// </summary>
|
||||
/// <param name="path">Directory path to serve.</param>
|
||||
public SimpleHTTPServer(string path)
|
||||
{
|
||||
//get an empty port
|
||||
TcpListener l = new TcpListener(IPAddress.Loopback, 0);
|
||||
l.Start();
|
||||
int port = ((IPEndPoint)l.LocalEndpoint).Port;
|
||||
l.Stop();
|
||||
this.Initialize(path, port);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stop server and dispose all functions.
|
||||
/// </summary>
|
||||
public void Stop()
|
||||
{
|
||||
_serverThread.Abort();
|
||||
_listener.Stop();
|
||||
GlobalVars.IsWebServerOn = false;
|
||||
}
|
||||
|
||||
private void Listen()
|
||||
{
|
||||
_listener = new HttpListener();
|
||||
_listener.Prefixes.Add("http://*:" + _port.ToString() + "/");
|
||||
_listener.Start();
|
||||
while (true) {
|
||||
try {
|
||||
HttpListenerContext context = _listener.GetContext();
|
||||
Process(context);
|
||||
} catch (Exception) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private string ProcessPhpPage(string phpCompilerPath, string pageFileName)
|
||||
{
|
||||
Process proc = new Process();
|
||||
proc.StartInfo.FileName = phpCompilerPath;
|
||||
proc.StartInfo.Arguments = "-d \"display_errors=1\" -d \"error_reporting=E_PARSE\" \"" + pageFileName + "\"";
|
||||
proc.StartInfo.CreateNoWindow = true;
|
||||
proc.StartInfo.UseShellExecute = false;
|
||||
proc.StartInfo.RedirectStandardOutput = true;
|
||||
proc.StartInfo.RedirectStandardError = true;
|
||||
proc.Start();
|
||||
string res = proc.StandardOutput.ReadToEnd();
|
||||
proc.StandardOutput.Close();
|
||||
proc.Close();
|
||||
return res;
|
||||
}
|
||||
|
||||
private void Process(HttpListenerContext context)
|
||||
{
|
||||
string filename = context.Request.Url.AbsolutePath;
|
||||
filename = filename.Substring(1);
|
||||
|
||||
if (string.IsNullOrEmpty(filename)) {
|
||||
foreach (string indexFile in _indexFiles) {
|
||||
if (File.Exists(Path.Combine(_rootDirectory, indexFile))) {
|
||||
filename = indexFile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
filename = Path.Combine(_rootDirectory, filename);
|
||||
|
||||
if (File.Exists(filename)) {
|
||||
try {
|
||||
var ext = new FileInfo(filename);
|
||||
|
||||
if (ext.Extension == ".php") {
|
||||
string output = ProcessPhpPage(GlobalVars.ConfigDirData + "\\php\\php.exe", filename);
|
||||
byte[] input = ASCIIEncoding.UTF8.GetBytes(output);
|
||||
//Adding permanent http response headers
|
||||
string mime;
|
||||
context.Response.ContentType = _mimeTypeMappings.TryGetValue(Path.GetExtension(filename), out mime) ? mime : "application/octet-stream";
|
||||
context.Response.ContentLength64 = input.Length;
|
||||
context.Response.AddHeader("Date", DateTime.Now.ToString("r"));
|
||||
context.Response.AddHeader("Last-Modified", System.IO.File.GetLastWriteTime(filename).ToString("r"));
|
||||
context.Response.OutputStream.Write(input, 0, input.Length);
|
||||
context.Response.StatusCode = (int)HttpStatusCode.OK;
|
||||
context.Response.OutputStream.Flush();
|
||||
} else {
|
||||
Stream input = new FileStream(filename, FileMode.Open);
|
||||
//Adding permanent http response headers
|
||||
string mime;
|
||||
context.Response.ContentType = _mimeTypeMappings.TryGetValue(Path.GetExtension(filename), out mime) ? mime : "application/octet-stream";
|
||||
context.Response.ContentLength64 = input.Length;
|
||||
context.Response.AddHeader("Date", DateTime.Now.ToString("r"));
|
||||
context.Response.AddHeader("Last-Modified", System.IO.File.GetLastWriteTime(filename).ToString("r"));
|
||||
|
||||
byte[] buffer = new byte[1024 * 16];
|
||||
int nbytes;
|
||||
while ((nbytes = input.Read(buffer, 0, buffer.Length)) > 0)
|
||||
context.Response.OutputStream.Write(buffer, 0, nbytes);
|
||||
input.Close();
|
||||
|
||||
context.Response.StatusCode = (int)HttpStatusCode.OK;
|
||||
context.Response.OutputStream.Flush();
|
||||
}
|
||||
} catch (Exception) {
|
||||
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
context.Response.OutputStream.Close();
|
||||
}
|
||||
|
||||
private void Initialize(string path, int port)
|
||||
{
|
||||
this._rootDirectory = path;
|
||||
this._port = port;
|
||||
_serverThread = new Thread(this.Listen);
|
||||
_serverThread.Start();
|
||||
GlobalVars.IsWebServerOn = true;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -2,9 +2,46 @@
|
|||
|
||||
namespace NovetusLauncher
|
||||
{
|
||||
#region Classes
|
||||
|
||||
#region LocalVars
|
||||
class LocalVars
|
||||
{
|
||||
public static int Clicks = 0;
|
||||
public static string prevsplash = "";
|
||||
public static int DefaultRobloxPort = 53640;
|
||||
public static bool LocalPlayMode = false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Roblox Type Definitions
|
||||
public class RobloxTypeDefs
|
||||
{
|
||||
public static AssetCacheDef Fonts { get { return new AssetCacheDef("SpecialMesh", new string[] { "MeshId", "TextureId" }, new string[] { ".mesh", ".png" }, new string[] { Directories.AssetCacheDirFonts, Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheFontsGameDir, Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Sky { get { return new AssetCacheDef("Sky", new string[] { "SkyboxBk", "SkyboxDn", "SkyboxFt", "SkyboxLf", "SkyboxRt", "SkyboxUp" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirSky }, new string[] { Directories.AssetCacheSkyGameDir }); } }
|
||||
public static AssetCacheDef Decal { get { return new AssetCacheDef("Decal", new string[] { "Texture" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Texture { get { return new AssetCacheDef("Texture", new string[] { "Texture" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef HopperBin { get { return new AssetCacheDef("HopperBin", new string[] { "TextureId" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Tool { get { return new AssetCacheDef("Tool", new string[] { "TextureId" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Sound { get { return new AssetCacheDef("Sound", new string[] { "SoundId" }, new string[] { ".wav" }, new string[] { Directories.AssetCacheDirSounds }, new string[] { Directories.AssetCacheSoundsGameDir }); } }
|
||||
public static AssetCacheDef ImageLabel { get { return new AssetCacheDef("ImageLabel", new string[] { "Image" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Shirt { get { return new AssetCacheDef("Shirt", new string[] { "ShirtTemplate" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef ShirtGraphic { get { return new AssetCacheDef("ShirtGraphic", new string[] { "Graphic" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Pants { get { return new AssetCacheDef("Pants", new string[] { "PantsTemplate" }, new string[] { ".png" }, new string[] { Directories.AssetCacheDirTextures }, new string[] { Directories.AssetCacheTexturesGameDir }); } }
|
||||
public static AssetCacheDef Script { get { return new AssetCacheDef("Script", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { Directories.AssetCacheDirScripts }, new string[] { Directories.AssetCacheScriptsGameDir }); } }
|
||||
public static AssetCacheDef LocalScript { get { return new AssetCacheDef("LocalScript", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { Directories.AssetCacheDirScripts }, new string[] { Directories.AssetCacheScriptsGameDir }); } }
|
||||
//item defs below
|
||||
public static AssetCacheDef ItemHatFonts { get { return new AssetCacheDef("SpecialMesh", new string[] { "MeshId", "TextureId" }, new string[] { ".mesh", ".png" }, new string[] { Directories.hatdirFonts, Directories.hatdirTextures }, new string[] { Directories.hatGameDirFonts, Directories.hatGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemHatSound { get { return new AssetCacheDef("Sound", new string[] { "SoundId" }, new string[] { ".wav" }, new string[] { Directories.hatdirSounds }, new string[] { Directories.hatGameDirSounds }); } }
|
||||
public static AssetCacheDef ItemHatScript { get { return new AssetCacheDef("Script", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { Directories.hatdirScripts }, new string[] { Directories.hatGameDirScripts }); } }
|
||||
public static AssetCacheDef ItemHatLocalScript { get { return new AssetCacheDef("LocalScript", new string[] { "LinkedSource" }, new string[] { ".lua" }, new string[] { Directories.hatdirScripts }, new string[] { Directories.hatGameDirScripts }); } }
|
||||
public static AssetCacheDef ItemHeadFonts { get { return new AssetCacheDef("SpecialMesh", new string[] { "MeshId", "TextureId" }, new string[] { ".mesh", ".png" }, new string[] { Directories.headdirFonts, Directories.headdirTextures }, new string[] { Directories.headGameDirFonts, Directories.headGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemFaceTexture { get { return new AssetCacheDef("Decal", new string[] { "Texture" }, new string[] { ".png" }, new string[] { Directories.facedirTextures }, new string[] { Directories.faceGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemShirtTexture { get { return new AssetCacheDef("Shirt", new string[] { "ShirtTemplate" }, new string[] { ".png" }, new string[] { Directories.shirtdirTextures }, new string[] { Directories.shirtGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemTShirtTexture { get { return new AssetCacheDef("ShirtGraphic", new string[] { "Graphic" }, new string[] { ".png" }, new string[] { Directories.tshirtdirTextures }, new string[] { Directories.tshirtGameDirTextures }); } }
|
||||
public static AssetCacheDef ItemPantsTexture { get { return new AssetCacheDef("Pants", new string[] { "PantsTemplate" }, new string[] { ".png" }, new string[] { Directories.pantsdirTextures }, new string[] { Directories.pantsGameDirTextures }); } }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,14 +45,14 @@ namespace NovetusLauncher
|
|||
#region UPnP
|
||||
public void InitUPnP()
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.InitUPnP(DeviceFound,DeviceLost);
|
||||
ConsolePrint("UPnP: Service initialized", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to initialize UPnP. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -61,14 +61,14 @@ namespace NovetusLauncher
|
|||
|
||||
public void StartUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.StartUPnP(device,protocol,port);
|
||||
ConsolePrint("UPnP: Port " + port + " opened on '" + device.GetExternalIP() + "' (" + protocol.ToString() + ")", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to open port mapping. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -77,14 +77,14 @@ namespace NovetusLauncher
|
|||
|
||||
public void StopUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.StopUPnP(device,protocol,port);
|
||||
ConsolePrint("UPnP: Port " + port + " closed on '" + device.GetExternalIP() + "' (" + protocol.ToString() + ")", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to close port mapping. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -97,12 +97,12 @@ namespace NovetusLauncher
|
|||
{
|
||||
INatDevice device = args.Device;
|
||||
ConsolePrint("UPnP: Device '" + device.GetExternalIP() + "' registered.", 3);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.RobloxPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.RobloxPort);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.WebServer_Port);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.WebServer_Port);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.WebServerPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.WebServerPort);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to register device. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -114,12 +114,12 @@ namespace NovetusLauncher
|
|||
{
|
||||
INatDevice device = args.Device;
|
||||
ConsolePrint("UPnP: Device '" + device.GetExternalIP() + "' disconnected.", 3);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.RobloxPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.RobloxPort);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.WebServer_Port);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.WebServer_Port);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.WebServerPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.WebServerPort);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to disconnect device. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ namespace NovetusLauncher
|
|||
|
||||
void StartDiscord()
|
||||
{
|
||||
if (GlobalVars.DiscordPresence)
|
||||
if (GlobalVars.UserConfiguration.DiscordPresence)
|
||||
{
|
||||
handlers = new DiscordRpc.EventHandlers();
|
||||
handlers.readyCallback = ReadyCallback;
|
||||
|
|
@ -180,10 +180,10 @@ namespace NovetusLauncher
|
|||
{
|
||||
try
|
||||
{
|
||||
GlobalVars.WebServer = new SimpleHTTPServer(GlobalVars.ServerDir, GlobalVars.WebServer_Port);
|
||||
GlobalVars.WebServer = new SimpleHTTPServer(Directories.ServerDir, GlobalVars.WebServerPort);
|
||||
ConsolePrint("WebServer: Server is running on port: " + GlobalVars.WebServer.Port.ToString(), 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Failed to launch WebServer. Some features may not function. (" + ex.Message + ")", 2);
|
||||
label17.Visible = false;
|
||||
|
|
@ -205,7 +205,7 @@ namespace NovetusLauncher
|
|||
ConsolePrint("WebServer: Server has stopped on port: " + GlobalVars.WebServer.Port.ToString(), 2);
|
||||
GlobalVars.WebServer.Stop();
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Failed to stop WebServer. Some features may not function. (" + ex.Message + ")", 2);
|
||||
}
|
||||
|
|
@ -234,22 +234,22 @@ namespace NovetusLauncher
|
|||
textBox3.Text = "";
|
||||
string[] lines1 = {
|
||||
SecurityFuncs.Base64Encode(IP),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.SelectedClient)
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient)
|
||||
};
|
||||
string URI = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines1), true);
|
||||
string[] lines2 = {
|
||||
SecurityFuncs.Base64Encode("localhost"),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.SelectedClient)
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient)
|
||||
};
|
||||
string URI2 = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines2), true);
|
||||
string[] text = {
|
||||
"Client: " + GlobalVars.SelectedClient,
|
||||
"Client: " + GlobalVars.UserConfiguration.SelectedClient,
|
||||
"IP: " + IP,
|
||||
"Port: " + GlobalVars.RobloxPort.ToString(),
|
||||
"Map: " + GlobalVars.Map,
|
||||
"Players: " + GlobalVars.PlayerLimit,
|
||||
"Port: " + GlobalVars.UserConfiguration.RobloxPort.ToString(),
|
||||
"Map: " + GlobalVars.UserConfiguration.Map,
|
||||
"Players: " + GlobalVars.UserConfiguration.PlayerLimit,
|
||||
"Version: Novetus " + GlobalVars.Version,
|
||||
"Online URI Link:",
|
||||
URI,
|
||||
|
|
@ -273,10 +273,10 @@ namespace NovetusLauncher
|
|||
textBox3.ScrollToCaret();
|
||||
break;
|
||||
case TabPage pg4 when pg4 == tabControl1.TabPages["tabPage4"]:
|
||||
string mapdir = GlobalVars.MapsDir;
|
||||
string mapdir = Directories.MapsDir;
|
||||
TreeNodeHelper.ListDirectory(treeView1, mapdir, ".rbxl");
|
||||
TreeNodeHelper.CopyNodes(treeView1.Nodes, _fieldsTreeCache.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.Map, treeView1.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.UserConfiguration.Map, treeView1.Nodes);
|
||||
treeView1.Focus();
|
||||
textBox3.Text = "";
|
||||
listBox2.Items.Clear();
|
||||
|
|
@ -284,14 +284,14 @@ namespace NovetusLauncher
|
|||
listBox4.Items.Clear();
|
||||
break;
|
||||
case TabPage pg3 when pg3 == tabControl1.TabPages["tabPage3"]:
|
||||
string clientdir = GlobalVars.ClientDir;
|
||||
string clientdir = Directories.ClientDir;
|
||||
DirectoryInfo dinfo = new DirectoryInfo(clientdir);
|
||||
DirectoryInfo[] Dirs = dinfo.GetDirectories();
|
||||
foreach (DirectoryInfo dir in Dirs)
|
||||
{
|
||||
listBox2.Items.Add(dir.Name);
|
||||
}
|
||||
listBox2.SelectedItem = GlobalVars.SelectedClient;
|
||||
listBox2.SelectedItem = GlobalVars.UserConfiguration.SelectedClient;
|
||||
treeView1.Nodes.Clear();
|
||||
_fieldsTreeCache.Nodes.Clear();
|
||||
textBox4.Text = "";
|
||||
|
|
@ -300,8 +300,8 @@ namespace NovetusLauncher
|
|||
listBox4.Items.Clear();
|
||||
break;
|
||||
case TabPage pg6 when pg6 == tabControl1.TabPages["tabPage6"]:
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
treeView1.Nodes.Clear();
|
||||
|
|
@ -324,7 +324,7 @@ namespace NovetusLauncher
|
|||
|
||||
void Button1Click(object sender, EventArgs e)
|
||||
{
|
||||
if (GlobalVars.LocalPlayMode == true)
|
||||
if (LocalVars.LocalPlayMode == true)
|
||||
{
|
||||
GeneratePlayerID();
|
||||
GenerateTripcode();
|
||||
|
|
@ -336,7 +336,7 @@ namespace NovetusLauncher
|
|||
|
||||
StartClient();
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -347,7 +347,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartServer(false);
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -361,7 +361,7 @@ namespace NovetusLauncher
|
|||
|
||||
WriteConfigValues();
|
||||
StartStudio(false);
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -372,7 +372,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartServer(true);
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -383,7 +383,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartSolo();
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -397,7 +397,7 @@ namespace NovetusLauncher
|
|||
|
||||
WriteConfigValues();
|
||||
StartStudio(true);
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -407,69 +407,69 @@ namespace NovetusLauncher
|
|||
{
|
||||
Text = "Novetus " + GlobalVars.Version;
|
||||
ConsolePrint("Novetus version " + GlobalVars.Version + " loaded. Initializing config.", 4);
|
||||
ConsolePrint("Novetus path: " + GlobalVars.BasePath, 4);
|
||||
if (File.Exists(GlobalVars.RootPath + "\\changelog.txt"))
|
||||
ConsolePrint("Novetus path: " + Directories.BasePath, 4);
|
||||
if (File.Exists(Directories.RootPath + "\\changelog.txt"))
|
||||
{
|
||||
richTextBox2.Text = File.ReadAllText(GlobalVars.RootPath + "\\changelog.txt");
|
||||
richTextBox2.Text = File.ReadAllText(Directories.RootPath + "\\changelog.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
ConsolePrint("ERROR - " + GlobalVars.RootPath + "\\changelog.txt not found.", 2);
|
||||
ConsolePrint("ERROR - " + Directories.RootPath + "\\changelog.txt not found.", 2);
|
||||
}
|
||||
|
||||
if (File.Exists(GlobalVars.RootPath + "\\credits.txt"))
|
||||
if (File.Exists(Directories.RootPath + "\\credits.txt"))
|
||||
{
|
||||
richTextBox3.Text = File.ReadAllText(GlobalVars.RootPath + "\\credits.txt");
|
||||
richTextBox3.Text = File.ReadAllText(Directories.RootPath + "\\credits.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
ConsolePrint("ERROR - " + GlobalVars.RootPath + "\\credits.txt not found.", 2);
|
||||
ConsolePrint("ERROR - " + Directories.RootPath + "\\credits.txt not found.", 2);
|
||||
}
|
||||
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\" + GlobalVars.ConfigName))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName + " not found. Creating one with default values.", 5);
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\" + GlobalVars.ConfigName + " not found. Creating one with default values.", 5);
|
||||
WriteConfigValues();
|
||||
}
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization + " not found. Creating one with default values.", 5);
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization + " not found. Creating one with default values.", 5);
|
||||
WriteCustomizationValues();
|
||||
}
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\servers.txt"))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\servers.txt"))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\servers.txt not found. Creating empty file.", 5);
|
||||
File.Create(GlobalVars.ConfigDir + "\\servers.txt").Dispose();
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\servers.txt not found. Creating empty file.", 5);
|
||||
File.Create(Directories.ConfigDir + "\\servers.txt").Dispose();
|
||||
}
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\ports.txt"))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\ports.txt"))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\ports.txt not found. Creating empty file.", 5);
|
||||
File.Create(GlobalVars.ConfigDir + "\\ports.txt").Dispose();
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\ports.txt not found. Creating empty file.", 5);
|
||||
File.Create(Directories.ConfigDir + "\\ports.txt").Dispose();
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirFonts))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirFonts))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirFonts);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirFonts);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirSky))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirSky))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirSky);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirSky);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirSounds))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirSounds))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirSounds);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirSounds);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirTexturesGUI))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirTexturesGUI))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirTexturesGUI);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirTexturesGUI);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirScripts))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirScripts))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirScripts);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirScripts);
|
||||
}
|
||||
|
||||
label8.Text = Application.ProductVersion;
|
||||
|
|
@ -487,11 +487,11 @@ namespace NovetusLauncher
|
|||
|
||||
void MainFormClose(object sender, CancelEventArgs e)
|
||||
{
|
||||
if (GlobalVars.LocalPlayMode != true)
|
||||
if (LocalVars.LocalPlayMode != true)
|
||||
{
|
||||
WriteConfigValues();
|
||||
}
|
||||
if (GlobalVars.DiscordPresence)
|
||||
if (GlobalVars.UserConfiguration.DiscordPresence)
|
||||
{
|
||||
DiscordRpc.Shutdown();
|
||||
}
|
||||
|
|
@ -503,27 +503,27 @@ namespace NovetusLauncher
|
|||
|
||||
void ReadConfigValues()
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
|
||||
checkBox1.Checked = GlobalVars.CloseOnLaunch;
|
||||
textBox5.Text = GlobalVars.UserID.ToString();
|
||||
label18.Text = GlobalVars.PlayerTripcode.ToString();
|
||||
numericUpDown3.Value = Convert.ToDecimal(GlobalVars.PlayerLimit);
|
||||
textBox2.Text = GlobalVars.PlayerName;
|
||||
label26.Text = GlobalVars.SelectedClient;
|
||||
label28.Text = GlobalVars.Map;
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.Map, treeView1.Nodes);
|
||||
checkBox1.Checked = GlobalVars.UserConfiguration.CloseOnLaunch;
|
||||
textBox5.Text = GlobalVars.UserConfiguration.UserID.ToString();
|
||||
label18.Text = GlobalVars.UserConfiguration.PlayerTripcode.ToString();
|
||||
numericUpDown3.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.PlayerLimit);
|
||||
textBox2.Text = GlobalVars.UserConfiguration.PlayerName;
|
||||
label26.Text = GlobalVars.UserConfiguration.SelectedClient;
|
||||
label28.Text = GlobalVars.UserConfiguration.Map;
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.UserConfiguration.Map, treeView1.Nodes);
|
||||
treeView1.Focus();
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
label37.Text = GlobalVars.IP;
|
||||
label38.Text = GlobalVars.RobloxPort.ToString();
|
||||
checkBox2.Checked = GlobalVars.DiscordPresence;
|
||||
checkBox5.Checked = GlobalVars.ReShade;
|
||||
label38.Text = GlobalVars.UserConfiguration.RobloxPort.ToString();
|
||||
checkBox2.Checked = GlobalVars.UserConfiguration.DiscordPresence;
|
||||
checkBox5.Checked = GlobalVars.UserConfiguration.ReShade;
|
||||
checkBox6.Checked = GlobalVars.ReShadeFPSDisplay;
|
||||
checkBox7.Checked = GlobalVars.ReShadePerformanceMode;
|
||||
|
||||
switch (GlobalVars.GraphicsMode)
|
||||
switch (GlobalVars.UserConfiguration.GraphicsMode)
|
||||
{
|
||||
case GraphicsMode.DirectX:
|
||||
comboBox1.SelectedIndex = 1;
|
||||
|
|
@ -534,7 +534,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
|
||||
switch (GlobalVars.QualityLevel)
|
||||
switch (GlobalVars.UserConfiguration.QualityLevel)
|
||||
{
|
||||
case QualityLevel.VeryLow:
|
||||
comboBox2.SelectedIndex = 0;
|
||||
|
|
@ -555,30 +555,30 @@ namespace NovetusLauncher
|
|||
}
|
||||
|
||||
ConsolePrint("Config loaded.", 3);
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
}
|
||||
|
||||
void WriteConfigValues()
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
ConsolePrint("Config Saved.", 3);
|
||||
}
|
||||
|
||||
void WriteCustomizationValues()
|
||||
{
|
||||
LauncherFuncs.Customization(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, true);
|
||||
LauncherFuncs.Customization(Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, true);
|
||||
ConsolePrint("Config Saved.", 3);
|
||||
}
|
||||
|
||||
void ReadClientValues(string ClientName)
|
||||
{
|
||||
string clientpath = GlobalVars.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
|
||||
string clientpath = Directories.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
|
||||
|
||||
if (!File.Exists(clientpath))
|
||||
{
|
||||
ConsolePrint("ERROR - No clientinfo.nov detected with the client you chose. The client either cannot be loaded, or it is not available.", 2);
|
||||
MessageBox.Show("No clientinfo.nov detected with the client you chose. The client either cannot be loaded, or it is not available.", "Novetus - Error while loading client", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.DefaultClient;
|
||||
ReadClientValues(ClientName);
|
||||
}
|
||||
else
|
||||
|
|
@ -609,7 +609,7 @@ namespace NovetusLauncher
|
|||
textBox5.Enabled = false;
|
||||
button4.Enabled = false;
|
||||
checkBox3.Enabled = false;
|
||||
GlobalVars.LocalPlayMode = false;
|
||||
LocalVars.LocalPlayMode = false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -624,34 +624,34 @@ namespace NovetusLauncher
|
|||
}
|
||||
|
||||
textBox6.Text = GlobalVars.SelectedClientInfo.Description;
|
||||
label26.Text = GlobalVars.SelectedClient;
|
||||
ConsolePrint("Client '" + GlobalVars.SelectedClient + "' successfully loaded.", 3);
|
||||
label26.Text = GlobalVars.UserConfiguration.SelectedClient;
|
||||
ConsolePrint("Client '" + GlobalVars.UserConfiguration.SelectedClient + "' successfully loaded.", 3);
|
||||
}
|
||||
}
|
||||
|
||||
void GeneratePlayerID()
|
||||
{
|
||||
LauncherFuncs.GeneratePlayerID();
|
||||
textBox5.Text = Convert.ToString(GlobalVars.UserID);
|
||||
textBox5.Text = Convert.ToString(GlobalVars.UserConfiguration.UserID);
|
||||
}
|
||||
|
||||
void GenerateTripcode()
|
||||
{
|
||||
LauncherFuncs.GenerateTripcode();
|
||||
label18.Text = GlobalVars.PlayerTripcode;
|
||||
label18.Text = GlobalVars.UserConfiguration.PlayerTripcode;
|
||||
}
|
||||
|
||||
void TextBox1TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.IP = textBox1.Text;
|
||||
checkBox3.Enabled = false;
|
||||
GlobalVars.LocalPlayMode = false;
|
||||
LocalVars.LocalPlayMode = false;
|
||||
label37.Text = GlobalVars.IP;
|
||||
}
|
||||
|
||||
void CheckBox1CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.CloseOnLaunch = checkBox1.Checked;
|
||||
GlobalVars.UserConfiguration.CloseOnLaunch = checkBox1.Checked;
|
||||
}
|
||||
|
||||
void Button4Click(object sender, EventArgs e)
|
||||
|
|
@ -667,19 +667,19 @@ namespace NovetusLauncher
|
|||
|
||||
void TextBox2TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.PlayerName = textBox2.Text;
|
||||
GlobalVars.UserConfiguration.PlayerName = textBox2.Text;
|
||||
}
|
||||
|
||||
void ListBox2SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.SelectedClient = listBox2.SelectedItem.ToString();
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
GlobalVars.UserConfiguration.SelectedClient = listBox2.SelectedItem.ToString();
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InLauncher, "");
|
||||
}
|
||||
|
||||
void CheckBox3CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.LocalPlayMode = checkBox3.Checked;
|
||||
LocalVars.LocalPlayMode = checkBox3.Checked;
|
||||
}
|
||||
|
||||
void TextBox5TextChanged(object sender, EventArgs e)
|
||||
|
|
@ -689,16 +689,16 @@ namespace NovetusLauncher
|
|||
{
|
||||
if (textBox5.Text.Equals(""))
|
||||
{
|
||||
GlobalVars.UserID = 0;
|
||||
GlobalVars.UserConfiguration.UserID = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalVars.UserID = Convert.ToInt32(textBox5.Text);
|
||||
GlobalVars.UserConfiguration.UserID = Convert.ToInt32(textBox5.Text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalVars.UserID = 0;
|
||||
GlobalVars.UserConfiguration.UserID = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -719,34 +719,34 @@ namespace NovetusLauncher
|
|||
GlobalVars.IP = listBox3.SelectedItem.ToString();
|
||||
textBox1.Text = GlobalVars.IP;
|
||||
checkBox3.Enabled = false;
|
||||
GlobalVars.LocalPlayMode = false;
|
||||
LocalVars.LocalPlayMode = false;
|
||||
label37.Text = GlobalVars.IP;
|
||||
}
|
||||
|
||||
void ListBox4SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(listBox4.SelectedItem.ToString());
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(listBox4.SelectedItem.ToString());
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
}
|
||||
|
||||
void Button10Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
}
|
||||
|
||||
void Button11Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\ports.txt", GlobalVars.UserConfiguration.RobloxPort + Environment.NewLine);
|
||||
}
|
||||
|
||||
void Button12Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox3.SelectedIndex >= 0)
|
||||
{
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox3.SelectedItem.ToString() }, GlobalVars.ConfigDir + "\\servers.txt", GlobalVars.ConfigDir + "\\servers.tmp");
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox3.SelectedItem.ToString() }, Directories.ConfigDir + "\\servers.txt", Directories.ConfigDir + "\\servers.tmp");
|
||||
listBox3.Items.Clear();
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
}
|
||||
}
|
||||
|
|
@ -755,42 +755,42 @@ namespace NovetusLauncher
|
|||
{
|
||||
if (listBox4.SelectedIndex >= 0)
|
||||
{
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox4.SelectedItem.ToString() }, GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.ConfigDir + "\\ports.tmp");
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox4.SelectedItem.ToString() }, Directories.ConfigDir + "\\ports.txt", Directories.ConfigDir + "\\ports.tmp");
|
||||
listBox4.Items.Clear();
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
}
|
||||
}
|
||||
|
||||
void Button14Click(object sender, EventArgs e)
|
||||
{
|
||||
File.Create(GlobalVars.ConfigDir + "\\servers.txt").Dispose();
|
||||
File.Create(Directories.ConfigDir + "\\servers.txt").Dispose();
|
||||
listBox3.Items.Clear();
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
}
|
||||
|
||||
void Button15Click(object sender, EventArgs e)
|
||||
{
|
||||
File.Create(GlobalVars.ConfigDir + "\\ports.txt").Dispose();
|
||||
File.Create(Directories.ConfigDir + "\\ports.txt").Dispose();
|
||||
listBox4.Items.Clear();
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
}
|
||||
|
||||
void Button16Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
listBox3.Items.Clear();
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
}
|
||||
|
||||
void Button17Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\ports.txt", GlobalVars.UserConfiguration.RobloxPort + Environment.NewLine);
|
||||
listBox4.Items.Clear();
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
}
|
||||
|
||||
|
|
@ -895,9 +895,9 @@ namespace NovetusLauncher
|
|||
{
|
||||
if (GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true)
|
||||
{
|
||||
if (SecurityFuncs.checkClientMD5(GlobalVars.SelectedClient) == true)
|
||||
if (SecurityFuncs.checkClientMD5(GlobalVars.UserConfiguration.SelectedClient) == true)
|
||||
{
|
||||
if (SecurityFuncs.checkScriptMD5(GlobalVars.SelectedClient) == true)
|
||||
if (SecurityFuncs.checkScriptMD5(GlobalVars.UserConfiguration.SelectedClient) == true)
|
||||
{
|
||||
OpenClient(rbxexe,args);
|
||||
}
|
||||
|
|
@ -923,7 +923,7 @@ namespace NovetusLauncher
|
|||
OpenClient(rbxexe,args);
|
||||
}
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -936,18 +936,18 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ClientExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Client, GlobalVars.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InMPGame, GlobalVars.Map);
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Client, GlobalVars.UserConfiguration.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InMPGame, GlobalVars.UserConfiguration.Map);
|
||||
}
|
||||
|
||||
void ClientExited(object sender, EventArgs e)
|
||||
{
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InLauncher, "");
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = true;
|
||||
}
|
||||
|
|
@ -955,7 +955,7 @@ namespace NovetusLauncher
|
|||
|
||||
void ServerExited(object sender, EventArgs e)
|
||||
{
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = true;
|
||||
}
|
||||
|
|
@ -965,7 +965,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InLauncher, "");
|
||||
label12.Text = LocalVars.prevsplash;
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = true;
|
||||
}
|
||||
|
|
@ -975,7 +975,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.Solo);
|
||||
string mapfile = GlobalVars.MapPath;
|
||||
string mapfile = GlobalVars.UserConfiguration.MapPath;
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -1001,14 +1001,14 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ClientExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Solo, GlobalVars.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InSoloGame, GlobalVars.Map);
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Solo, GlobalVars.UserConfiguration.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InSoloGame, GlobalVars.UserConfiguration.Map);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1019,7 +1019,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.Server);
|
||||
string mapfile = GlobalVars.MapPath;
|
||||
string mapfile = GlobalVars.UserConfiguration.MapPath;
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -1053,13 +1053,13 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ServerExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Server, GlobalVars.Map);
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Server, GlobalVars.UserConfiguration.Map);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1070,8 +1070,8 @@ namespace NovetusLauncher
|
|||
{
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.Studio);
|
||||
string mapfile = (nomap ? "" : GlobalVars.MapPath);
|
||||
string mapname = (nomap ? "" : GlobalVars.Map);
|
||||
string mapfile = (nomap ? "" : GlobalVars.UserConfiguration.MapPath);
|
||||
string mapname = (nomap ? "" : GlobalVars.UserConfiguration.Map);
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -1097,14 +1097,14 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ClientExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Studio, mapname);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InStudio, mapname);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1116,7 +1116,7 @@ namespace NovetusLauncher
|
|||
label12.Text = "<3";
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.EasterEgg);
|
||||
string mapfile = GlobalVars.ConfigDirData + "\\Appreciation.rbxl";
|
||||
string mapfile = Directories.ConfigDirData + "\\Appreciation.rbxl";
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -1142,14 +1142,14 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Start();
|
||||
client.Exited += new EventHandler(EasterEggExited);
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.EasterEgg, "");
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InEasterEggGame, "");
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Easter Egg. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Easter Egg. (Error: " + ex.Message + ")", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1220,7 +1220,7 @@ namespace NovetusLauncher
|
|||
StopWebServer();
|
||||
StartWebServer();
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Cannot restart web server. (" + ex.Message + ")", 2);
|
||||
}
|
||||
|
|
@ -1273,7 +1273,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
Process process = new Process();
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
startInfo.FileName = GlobalVars.ClientDir + @"\\" + GlobalVars.RegisterClient1 + @"\\RobloxApp_studio.exe";
|
||||
startInfo.FileName = Directories.ClientDir + @"\\" + GlobalVars.RegisterClient1 + @"\\RobloxApp_studio.exe";
|
||||
startInfo.Arguments = "/regserver";
|
||||
startInfo.Verb = "runas";
|
||||
process.StartInfo = startInfo;
|
||||
|
|
@ -1281,7 +1281,7 @@ namespace NovetusLauncher
|
|||
|
||||
Process process2 = new Process();
|
||||
ProcessStartInfo startInfo2 = new ProcessStartInfo();
|
||||
startInfo2.FileName = GlobalVars.ClientDir + @"\\" + GlobalVars.RegisterClient2 + @"\\RobloxApp_studio.exe";
|
||||
startInfo2.FileName = Directories.ClientDir + @"\\" + GlobalVars.RegisterClient2 + @"\\RobloxApp_studio.exe";
|
||||
startInfo2.Arguments = "/regserver";
|
||||
startInfo2.Verb = "runas";
|
||||
process2.StartInfo = startInfo2;
|
||||
|
|
@ -1290,7 +1290,7 @@ namespace NovetusLauncher
|
|||
ConsolePrint("UserAgent Library successfully installed and registered!", 3);
|
||||
MessageBox.Show("UserAgent Library successfully installed and registered!", "Novetus - Register UserAgent Library", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to register. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to register. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1305,54 +1305,54 @@ namespace NovetusLauncher
|
|||
|
||||
void NumericUpDown1ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(numericUpDown1.Value);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
label38.Text = GlobalVars.RobloxPort.ToString();
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(numericUpDown1.Value);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
label38.Text = GlobalVars.UserConfiguration.RobloxPort.ToString();
|
||||
}
|
||||
|
||||
void NumericUpDown2ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(numericUpDown2.Value);
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
label38.Text = GlobalVars.RobloxPort.ToString();
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(numericUpDown2.Value);
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
label38.Text = GlobalVars.UserConfiguration.RobloxPort.ToString();
|
||||
}
|
||||
|
||||
void NumericUpDown3ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.PlayerLimit = Convert.ToInt32(numericUpDown3.Value);
|
||||
GlobalVars.UserConfiguration.PlayerLimit = Convert.ToInt32(numericUpDown3.Value);
|
||||
}
|
||||
|
||||
void Button7Click(object sender, EventArgs e)
|
||||
{
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
GlobalVars.RobloxPort = GlobalVars.DefaultRobloxPort;
|
||||
numericUpDown1.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
GlobalVars.UserConfiguration.RobloxPort = LocalVars.DefaultRobloxPort;
|
||||
}
|
||||
|
||||
void Button23Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\ports.txt", GlobalVars.UserConfiguration.RobloxPort + Environment.NewLine);
|
||||
}
|
||||
|
||||
void Button22Click(object sender, EventArgs e)
|
||||
{
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
GlobalVars.RobloxPort = GlobalVars.DefaultRobloxPort;
|
||||
numericUpDown1.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
GlobalVars.UserConfiguration.RobloxPort = LocalVars.DefaultRobloxPort;
|
||||
}
|
||||
|
||||
void TreeView1AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (treeView1.SelectedNode.Nodes.Count == 0)
|
||||
{
|
||||
GlobalVars.Map = treeView1.SelectedNode.Text.ToString();
|
||||
GlobalVars.MapPathSnip = treeView1.SelectedNode.FullPath.ToString().Replace(@"\", @"\\");
|
||||
GlobalVars.MapPath = GlobalVars.BasePath + @"\\" + GlobalVars.MapPathSnip;
|
||||
label28.Text = GlobalVars.Map;
|
||||
GlobalVars.UserConfiguration.Map = treeView1.SelectedNode.Text.ToString();
|
||||
GlobalVars.UserConfiguration.MapPathSnip = treeView1.SelectedNode.FullPath.ToString().Replace(@"\", @"\\");
|
||||
GlobalVars.UserConfiguration.MapPath = Directories.BasePath + @"\\" + GlobalVars.UserConfiguration.MapPathSnip;
|
||||
label28.Text = GlobalVars.UserConfiguration.Map;
|
||||
|
||||
if (File.Exists(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
if (File.Exists(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
{
|
||||
textBox4.Text = File.ReadAllText(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
textBox4.Text = File.ReadAllText(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1363,12 +1363,12 @@ namespace NovetusLauncher
|
|||
|
||||
void Button6Click(object sender, EventArgs e)
|
||||
{
|
||||
Process.Start("explorer.exe", GlobalVars.MapsDir.Replace(@"\\",@"\"));
|
||||
Process.Start("explorer.exe", Directories.MapsDir.Replace(@"\\",@"\"));
|
||||
}
|
||||
|
||||
void CheckBox4CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.UPnP = checkBox4.Checked;
|
||||
GlobalVars.UserConfiguration.UPnP = checkBox4.Checked;
|
||||
}
|
||||
|
||||
void CheckBox4Click(object sender, EventArgs e)
|
||||
|
|
@ -1380,14 +1380,14 @@ namespace NovetusLauncher
|
|||
{
|
||||
treeView1.Nodes.Clear();
|
||||
_fieldsTreeCache.Nodes.Clear();
|
||||
string mapdir = GlobalVars.MapsDir;
|
||||
string mapdir = Directories.MapsDir;
|
||||
TreeNodeHelper.ListDirectory(treeView1, mapdir, ".rbxl");
|
||||
TreeNodeHelper.CopyNodes(treeView1.Nodes,_fieldsTreeCache.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.Map, treeView1.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.UserConfiguration.Map, treeView1.Nodes);
|
||||
treeView1.Focus();
|
||||
if (File.Exists(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
if (File.Exists(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
{
|
||||
textBox4.Text = File.ReadAllText(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
textBox4.Text = File.ReadAllText(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1423,9 +1423,9 @@ namespace NovetusLauncher
|
|||
|
||||
private void button26_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (Directory.Exists(GlobalVars.AssetCacheDir))
|
||||
if (Directory.Exists(Directories.AssetCacheDir))
|
||||
{
|
||||
Directory.Delete(GlobalVars.AssetCacheDir, true);
|
||||
Directory.Delete(Directories.AssetCacheDir, true);
|
||||
ConsolePrint("Asset cache cleared!", 3);
|
||||
MessageBox.Show("Asset cache cleared!");
|
||||
}
|
||||
|
|
@ -1437,7 +1437,7 @@ namespace NovetusLauncher
|
|||
|
||||
private void checkBox2_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.DiscordPresence = checkBox2.Checked;
|
||||
GlobalVars.UserConfiguration.DiscordPresence = checkBox2.Checked;
|
||||
MessageBox.Show("Restart the launcher to apply changes.");
|
||||
}
|
||||
|
||||
|
|
@ -1495,7 +1495,7 @@ namespace NovetusLauncher
|
|||
switch(LocalVars.Clicks)
|
||||
{
|
||||
case 1:
|
||||
label12.Text = "Hi " + GlobalVars.PlayerName + "!";
|
||||
label12.Text = "Hi " + GlobalVars.UserConfiguration.PlayerName + "!";
|
||||
break;
|
||||
case 3:
|
||||
label12.Text = "How are you doing today?";
|
||||
|
|
@ -1510,7 +1510,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartEasterEgg();
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -1523,7 +1523,7 @@ namespace NovetusLauncher
|
|||
|
||||
private void checkBox5_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.ReShade = checkBox5.Checked;
|
||||
GlobalVars.UserConfiguration.ReShade = checkBox5.Checked;
|
||||
}
|
||||
|
||||
private void checkBox6_CheckedChanged(object sender, EventArgs e)
|
||||
|
|
@ -1541,10 +1541,10 @@ namespace NovetusLauncher
|
|||
switch (comboBox1.SelectedIndex)
|
||||
{
|
||||
case 1:
|
||||
GlobalVars.GraphicsMode = GraphicsMode.DirectX;
|
||||
GlobalVars.UserConfiguration.GraphicsMode = GraphicsMode.DirectX;
|
||||
break;
|
||||
default:
|
||||
GlobalVars.GraphicsMode = GraphicsMode.OpenGL;
|
||||
GlobalVars.UserConfiguration.GraphicsMode = GraphicsMode.OpenGL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1554,27 +1554,27 @@ namespace NovetusLauncher
|
|||
switch (comboBox2.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
GlobalVars.QualityLevel = QualityLevel.VeryLow;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.VeryLow;
|
||||
break;
|
||||
case 1:
|
||||
GlobalVars.QualityLevel = QualityLevel.Low;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.Low;
|
||||
break;
|
||||
case 2:
|
||||
GlobalVars.QualityLevel = QualityLevel.Medium;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.Medium;
|
||||
break;
|
||||
case 3:
|
||||
GlobalVars.QualityLevel = QualityLevel.High;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.High;
|
||||
break;
|
||||
case 4:
|
||||
default:
|
||||
GlobalVars.QualityLevel = QualityLevel.Ultra;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.Ultra;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void button36_Click(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.OldLayout = true;
|
||||
GlobalVars.UserConfiguration.OldLayout = true;
|
||||
WriteConfigValues();
|
||||
Application.Restart();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,14 +44,14 @@ namespace NovetusLauncher
|
|||
#region UPnP
|
||||
public void InitUPnP()
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.InitUPnP(DeviceFound,DeviceLost);
|
||||
ConsolePrint("UPnP: Service initialized", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to initialize UPnP. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -60,14 +60,14 @@ namespace NovetusLauncher
|
|||
|
||||
public void StartUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.StartUPnP(device,protocol,port);
|
||||
ConsolePrint("UPnP: Port " + port + " opened on '" + device.GetExternalIP() + "' (" + protocol.ToString() + ")", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to open port mapping. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -76,14 +76,14 @@ namespace NovetusLauncher
|
|||
|
||||
public void StopUPnP(INatDevice device, Protocol protocol, int port)
|
||||
{
|
||||
if (GlobalVars.UPnP == true)
|
||||
if (GlobalVars.UserConfiguration.UPnP == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
UPnP.StopUPnP(device,protocol,port);
|
||||
ConsolePrint("UPnP: Port " + port + " closed on '" + device.GetExternalIP() + "' (" + protocol.ToString() + ")", 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to close port mapping. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -96,12 +96,12 @@ namespace NovetusLauncher
|
|||
{
|
||||
INatDevice device = args.Device;
|
||||
ConsolePrint("UPnP: Device '" + device.GetExternalIP() + "' registered.", 3);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.RobloxPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.RobloxPort);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.WebServer_Port);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.WebServer_Port);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StartUPnP(device, Protocol.Udp, GlobalVars.WebServerPort);
|
||||
StartUPnP(device, Protocol.Tcp, GlobalVars.WebServerPort);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to register device. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -113,12 +113,12 @@ namespace NovetusLauncher
|
|||
{
|
||||
INatDevice device = args.Device;
|
||||
ConsolePrint("UPnP: Device '" + device.GetExternalIP() + "' disconnected.", 3);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.RobloxPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.RobloxPort);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.WebServer_Port);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.WebServer_Port);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.UserConfiguration.RobloxPort);
|
||||
StopUPnP(device, Protocol.Udp, GlobalVars.WebServerPort);
|
||||
StopUPnP(device, Protocol.Tcp, GlobalVars.WebServerPort);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("UPnP: Unable to disconnect device. Reason - " + ex.Message, 2);
|
||||
}
|
||||
|
|
@ -155,7 +155,7 @@ namespace NovetusLauncher
|
|||
|
||||
void StartDiscord()
|
||||
{
|
||||
if (GlobalVars.DiscordPresence)
|
||||
if (GlobalVars.UserConfiguration.DiscordPresence)
|
||||
{
|
||||
handlers = new DiscordRpc.EventHandlers();
|
||||
handlers.readyCallback = ReadyCallback;
|
||||
|
|
@ -179,10 +179,10 @@ namespace NovetusLauncher
|
|||
{
|
||||
try
|
||||
{
|
||||
GlobalVars.WebServer = new SimpleHTTPServer(GlobalVars.ServerDir, GlobalVars.WebServer_Port);
|
||||
GlobalVars.WebServer = new SimpleHTTPServer(Directories.ServerDir, GlobalVars.WebServerPort);
|
||||
ConsolePrint("WebServer: Server is running on port: " + GlobalVars.WebServer.Port.ToString(), 3);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Failed to launch WebServer. Some features may not function. (" + ex.Message + ")", 2);
|
||||
label17.Visible = false;
|
||||
|
|
@ -204,7 +204,7 @@ namespace NovetusLauncher
|
|||
ConsolePrint("WebServer: Server has stopped on port: " + GlobalVars.WebServer.Port.ToString(), 2);
|
||||
GlobalVars.WebServer.Stop();
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Failed to stop WebServer. Some features may not function. (" + ex.Message + ")", 2);
|
||||
}
|
||||
|
|
@ -233,22 +233,22 @@ namespace NovetusLauncher
|
|||
textBox3.Text = "";
|
||||
string[] lines1 = {
|
||||
SecurityFuncs.Base64Encode(IP),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.SelectedClient)
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient)
|
||||
};
|
||||
string URI = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines1), true);
|
||||
string[] lines2 = {
|
||||
SecurityFuncs.Base64Encode("localhost"),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.SelectedClient)
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.RobloxPort.ToString()),
|
||||
SecurityFuncs.Base64Encode(GlobalVars.UserConfiguration.SelectedClient)
|
||||
};
|
||||
string URI2 = "novetus://" + SecurityFuncs.Base64Encode(string.Join("|", lines2), true);
|
||||
string[] text = {
|
||||
"Client: " + GlobalVars.SelectedClient,
|
||||
"Client: " + GlobalVars.UserConfiguration.SelectedClient,
|
||||
"IP: " + IP,
|
||||
"Port: " + GlobalVars.RobloxPort.ToString(),
|
||||
"Map: " + GlobalVars.Map,
|
||||
"Players: " + GlobalVars.PlayerLimit,
|
||||
"Port: " + GlobalVars.UserConfiguration.RobloxPort.ToString(),
|
||||
"Map: " + GlobalVars.UserConfiguration.Map,
|
||||
"Players: " + GlobalVars.UserConfiguration.PlayerLimit,
|
||||
"Version: Novetus " + GlobalVars.Version,
|
||||
"Online URI Link:",
|
||||
URI,
|
||||
|
|
@ -272,10 +272,10 @@ namespace NovetusLauncher
|
|||
textBox3.ScrollToCaret();
|
||||
break;
|
||||
case TabPage pg4 when pg4 == tabControl1.TabPages["tabPage4"]:
|
||||
string mapdir = GlobalVars.MapsDir;
|
||||
string mapdir = Directories.MapsDir;
|
||||
TreeNodeHelper.ListDirectory(treeView1, mapdir, ".rbxl");
|
||||
TreeNodeHelper.CopyNodes(treeView1.Nodes, _fieldsTreeCache.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.Map, treeView1.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.UserConfiguration.Map, treeView1.Nodes);
|
||||
treeView1.Focus();
|
||||
textBox3.Text = "";
|
||||
listBox2.Items.Clear();
|
||||
|
|
@ -283,14 +283,14 @@ namespace NovetusLauncher
|
|||
listBox4.Items.Clear();
|
||||
break;
|
||||
case TabPage pg3 when pg3 == tabControl1.TabPages["tabPage3"]:
|
||||
string clientdir = GlobalVars.ClientDir;
|
||||
string clientdir = Directories.ClientDir;
|
||||
DirectoryInfo dinfo = new DirectoryInfo(clientdir);
|
||||
DirectoryInfo[] Dirs = dinfo.GetDirectories();
|
||||
foreach (DirectoryInfo dir in Dirs)
|
||||
{
|
||||
listBox2.Items.Add(dir.Name);
|
||||
}
|
||||
listBox2.SelectedItem = GlobalVars.SelectedClient;
|
||||
listBox2.SelectedItem = GlobalVars.UserConfiguration.SelectedClient;
|
||||
treeView1.Nodes.Clear();
|
||||
_fieldsTreeCache.Nodes.Clear();
|
||||
textBox4.Text = "";
|
||||
|
|
@ -299,8 +299,8 @@ namespace NovetusLauncher
|
|||
listBox4.Items.Clear();
|
||||
break;
|
||||
case TabPage pg6 when pg6 == tabControl1.TabPages["tabPage6"]:
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
treeView1.Nodes.Clear();
|
||||
|
|
@ -323,7 +323,7 @@ namespace NovetusLauncher
|
|||
|
||||
void Button1Click(object sender, EventArgs e)
|
||||
{
|
||||
if (GlobalVars.LocalPlayMode == true)
|
||||
if (LocalVars.LocalPlayMode == true)
|
||||
{
|
||||
GeneratePlayerID();
|
||||
GenerateTripcode();
|
||||
|
|
@ -335,7 +335,7 @@ namespace NovetusLauncher
|
|||
|
||||
StartClient();
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -346,7 +346,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartServer(false);
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -360,7 +360,7 @@ namespace NovetusLauncher
|
|||
|
||||
WriteConfigValues();
|
||||
StartStudio(false);
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -371,7 +371,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartServer(true);
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -382,7 +382,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartSolo();
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -396,7 +396,7 @@ namespace NovetusLauncher
|
|||
|
||||
WriteConfigValues();
|
||||
StartStudio(true);
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -406,69 +406,69 @@ namespace NovetusLauncher
|
|||
{
|
||||
Text = "Novetus " + GlobalVars.Version;
|
||||
ConsolePrint("Novetus version " + GlobalVars.Version + " loaded. Initializing config.", 4);
|
||||
ConsolePrint("Novetus path: " + GlobalVars.BasePath, 4);
|
||||
if (File.Exists(GlobalVars.RootPath + "\\changelog.txt"))
|
||||
ConsolePrint("Novetus path: " + Directories.BasePath, 4);
|
||||
if (File.Exists(Directories.RootPath + "\\changelog.txt"))
|
||||
{
|
||||
richTextBox2.Text = File.ReadAllText(GlobalVars.RootPath + "\\changelog.txt");
|
||||
richTextBox2.Text = File.ReadAllText(Directories.RootPath + "\\changelog.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
ConsolePrint("ERROR - " + GlobalVars.RootPath + "\\changelog.txt not found.", 2);
|
||||
ConsolePrint("ERROR - " + Directories.RootPath + "\\changelog.txt not found.", 2);
|
||||
}
|
||||
|
||||
if (File.Exists(GlobalVars.RootPath + "\\credits.txt"))
|
||||
if (File.Exists(Directories.RootPath + "\\credits.txt"))
|
||||
{
|
||||
richTextBox3.Text = File.ReadAllText(GlobalVars.RootPath + "\\credits.txt");
|
||||
richTextBox3.Text = File.ReadAllText(Directories.RootPath + "\\credits.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
ConsolePrint("ERROR - " + GlobalVars.RootPath + "\\credits.txt not found.", 2);
|
||||
ConsolePrint("ERROR - " + Directories.RootPath + "\\credits.txt not found.", 2);
|
||||
}
|
||||
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\" + GlobalVars.ConfigName))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName + " not found. Creating one with default values.", 5);
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\" + GlobalVars.ConfigName + " not found. Creating one with default values.", 5);
|
||||
WriteConfigValues();
|
||||
}
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization + " not found. Creating one with default values.", 5);
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization + " not found. Creating one with default values.", 5);
|
||||
WriteCustomizationValues();
|
||||
}
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\servers.txt"))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\servers.txt"))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\servers.txt not found. Creating empty file.", 5);
|
||||
File.Create(GlobalVars.ConfigDir + "\\servers.txt").Dispose();
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\servers.txt not found. Creating empty file.", 5);
|
||||
File.Create(Directories.ConfigDir + "\\servers.txt").Dispose();
|
||||
}
|
||||
if (!File.Exists(GlobalVars.ConfigDir + "\\ports.txt"))
|
||||
if (!File.Exists(Directories.ConfigDir + "\\ports.txt"))
|
||||
{
|
||||
ConsolePrint("WARNING - " + GlobalVars.ConfigDir + "\\ports.txt not found. Creating empty file.", 5);
|
||||
File.Create(GlobalVars.ConfigDir + "\\ports.txt").Dispose();
|
||||
ConsolePrint("WARNING - " + Directories.ConfigDir + "\\ports.txt not found. Creating empty file.", 5);
|
||||
File.Create(Directories.ConfigDir + "\\ports.txt").Dispose();
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirFonts))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirFonts))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirFonts);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirFonts);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirSky))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirSky))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirSky);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirSky);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirSounds))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirSounds))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirSounds);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirSounds);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirTexturesGUI))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirTexturesGUI))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirTexturesGUI);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirTexturesGUI);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirScripts))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirScripts))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirScripts);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirScripts);
|
||||
}
|
||||
|
||||
label8.Text = Application.ProductVersion;
|
||||
|
|
@ -486,11 +486,11 @@ namespace NovetusLauncher
|
|||
|
||||
void MainFormClose(object sender, CancelEventArgs e)
|
||||
{
|
||||
if (GlobalVars.LocalPlayMode != true)
|
||||
if (LocalVars.LocalPlayMode != true)
|
||||
{
|
||||
WriteConfigValues();
|
||||
}
|
||||
if (GlobalVars.DiscordPresence)
|
||||
if (GlobalVars.UserConfiguration.DiscordPresence)
|
||||
{
|
||||
DiscordRpc.Shutdown();
|
||||
}
|
||||
|
|
@ -502,48 +502,48 @@ namespace NovetusLauncher
|
|||
|
||||
void ReadConfigValues()
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
|
||||
checkBox1.Checked = GlobalVars.CloseOnLaunch;
|
||||
textBox5.Text = GlobalVars.UserID.ToString();
|
||||
label18.Text = GlobalVars.PlayerTripcode.ToString();
|
||||
numericUpDown3.Value = Convert.ToDecimal(GlobalVars.PlayerLimit);
|
||||
textBox2.Text = GlobalVars.PlayerName;
|
||||
label26.Text = GlobalVars.SelectedClient;
|
||||
label28.Text = GlobalVars.Map;
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.Map, treeView1.Nodes);
|
||||
checkBox1.Checked = GlobalVars.UserConfiguration.CloseOnLaunch;
|
||||
textBox5.Text = GlobalVars.UserConfiguration.UserID.ToString();
|
||||
label18.Text = GlobalVars.UserConfiguration.PlayerTripcode.ToString();
|
||||
numericUpDown3.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.PlayerLimit);
|
||||
textBox2.Text = GlobalVars.UserConfiguration.PlayerName;
|
||||
label26.Text = GlobalVars.UserConfiguration.SelectedClient;
|
||||
label28.Text = GlobalVars.UserConfiguration.Map;
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.UserConfiguration.Map, treeView1.Nodes);
|
||||
treeView1.Focus();
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
label37.Text = GlobalVars.IP;
|
||||
label38.Text = GlobalVars.RobloxPort.ToString();
|
||||
checkBox2.Checked = GlobalVars.DiscordPresence;
|
||||
label38.Text = GlobalVars.UserConfiguration.RobloxPort.ToString();
|
||||
checkBox2.Checked = GlobalVars.UserConfiguration.DiscordPresence;
|
||||
|
||||
ConsolePrint("Config loaded.", 3);
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
}
|
||||
|
||||
void WriteConfigValues()
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
ConsolePrint("Config Saved.", 3);
|
||||
}
|
||||
|
||||
void WriteCustomizationValues()
|
||||
{
|
||||
LauncherFuncs.Customization(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, true);
|
||||
LauncherFuncs.Customization(Directories.ConfigDir + "\\" + GlobalVars.ConfigNameCustomization, true);
|
||||
ConsolePrint("Config Saved.", 3);
|
||||
}
|
||||
|
||||
void ReadClientValues(string ClientName)
|
||||
{
|
||||
string clientpath = GlobalVars.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
|
||||
string clientpath = Directories.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
|
||||
|
||||
if (!File.Exists(clientpath))
|
||||
{
|
||||
ConsolePrint("ERROR - No clientinfo.nov detected with the client you chose. The client either cannot be loaded, or it is not available.", 2);
|
||||
MessageBox.Show("No clientinfo.nov detected with the client you chose. The client either cannot be loaded, or it is not available.", "Novetus - Error while loading client", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
GlobalVars.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.DefaultClient;
|
||||
ReadClientValues(ClientName);
|
||||
}
|
||||
else
|
||||
|
|
@ -574,7 +574,7 @@ namespace NovetusLauncher
|
|||
textBox5.Enabled = false;
|
||||
button4.Enabled = false;
|
||||
checkBox3.Enabled = false;
|
||||
GlobalVars.LocalPlayMode = false;
|
||||
LocalVars.LocalPlayMode = false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -589,34 +589,34 @@ namespace NovetusLauncher
|
|||
}
|
||||
|
||||
textBox6.Text = GlobalVars.SelectedClientInfo.Description;
|
||||
label26.Text = GlobalVars.SelectedClient;
|
||||
ConsolePrint("Client '" + GlobalVars.SelectedClient + "' successfully loaded.", 3);
|
||||
label26.Text = GlobalVars.UserConfiguration.SelectedClient;
|
||||
ConsolePrint("Client '" + GlobalVars.UserConfiguration.SelectedClient + "' successfully loaded.", 3);
|
||||
}
|
||||
}
|
||||
|
||||
void GeneratePlayerID()
|
||||
{
|
||||
LauncherFuncs.GeneratePlayerID();
|
||||
textBox5.Text = Convert.ToString(GlobalVars.UserID);
|
||||
textBox5.Text = Convert.ToString(GlobalVars.UserConfiguration.UserID);
|
||||
}
|
||||
|
||||
void GenerateTripcode()
|
||||
{
|
||||
LauncherFuncs.GenerateTripcode();
|
||||
label18.Text = GlobalVars.PlayerTripcode;
|
||||
label18.Text = GlobalVars.UserConfiguration.PlayerTripcode;
|
||||
}
|
||||
|
||||
void TextBox1TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.IP = textBox1.Text;
|
||||
checkBox3.Enabled = false;
|
||||
GlobalVars.LocalPlayMode = false;
|
||||
LocalVars.LocalPlayMode = false;
|
||||
label37.Text = GlobalVars.IP;
|
||||
}
|
||||
|
||||
void CheckBox1CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.CloseOnLaunch = checkBox1.Checked;
|
||||
GlobalVars.UserConfiguration.CloseOnLaunch = checkBox1.Checked;
|
||||
}
|
||||
|
||||
void Button4Click(object sender, EventArgs e)
|
||||
|
|
@ -632,19 +632,19 @@ namespace NovetusLauncher
|
|||
|
||||
void TextBox2TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.PlayerName = textBox2.Text;
|
||||
GlobalVars.UserConfiguration.PlayerName = textBox2.Text;
|
||||
}
|
||||
|
||||
void ListBox2SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.SelectedClient = listBox2.SelectedItem.ToString();
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
GlobalVars.UserConfiguration.SelectedClient = listBox2.SelectedItem.ToString();
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InLauncher, "");
|
||||
}
|
||||
|
||||
void CheckBox3CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.LocalPlayMode = checkBox3.Checked;
|
||||
LocalVars.LocalPlayMode = checkBox3.Checked;
|
||||
}
|
||||
|
||||
void TextBox5TextChanged(object sender, EventArgs e)
|
||||
|
|
@ -654,16 +654,16 @@ namespace NovetusLauncher
|
|||
{
|
||||
if (textBox5.Text.Equals(""))
|
||||
{
|
||||
GlobalVars.UserID = 0;
|
||||
GlobalVars.UserConfiguration.UserID = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalVars.UserID = Convert.ToInt32(textBox5.Text);
|
||||
GlobalVars.UserConfiguration.UserID = Convert.ToInt32(textBox5.Text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalVars.UserID = 0;
|
||||
GlobalVars.UserConfiguration.UserID = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -684,34 +684,34 @@ namespace NovetusLauncher
|
|||
GlobalVars.IP = listBox3.SelectedItem.ToString();
|
||||
textBox1.Text = GlobalVars.IP;
|
||||
checkBox3.Enabled = false;
|
||||
GlobalVars.LocalPlayMode = false;
|
||||
LocalVars.LocalPlayMode = false;
|
||||
label37.Text = GlobalVars.IP;
|
||||
}
|
||||
|
||||
void ListBox4SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(listBox4.SelectedItem.ToString());
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(listBox4.SelectedItem.ToString());
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
}
|
||||
|
||||
void Button10Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
}
|
||||
|
||||
void Button11Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\ports.txt", GlobalVars.UserConfiguration.RobloxPort + Environment.NewLine);
|
||||
}
|
||||
|
||||
void Button12Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox3.SelectedIndex >= 0)
|
||||
{
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox3.SelectedItem.ToString() }, GlobalVars.ConfigDir + "\\servers.txt", GlobalVars.ConfigDir + "\\servers.tmp");
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox3.SelectedItem.ToString() }, Directories.ConfigDir + "\\servers.txt", Directories.ConfigDir + "\\servers.tmp");
|
||||
listBox3.Items.Clear();
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
}
|
||||
}
|
||||
|
|
@ -720,42 +720,42 @@ namespace NovetusLauncher
|
|||
{
|
||||
if (listBox4.SelectedIndex >= 0)
|
||||
{
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox4.SelectedItem.ToString() }, GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.ConfigDir + "\\ports.tmp");
|
||||
TextLineRemover.RemoveTextLines(new List<string> { listBox4.SelectedItem.ToString() }, Directories.ConfigDir + "\\ports.txt", Directories.ConfigDir + "\\ports.tmp");
|
||||
listBox4.Items.Clear();
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
}
|
||||
}
|
||||
|
||||
void Button14Click(object sender, EventArgs e)
|
||||
{
|
||||
File.Create(GlobalVars.ConfigDir + "\\servers.txt").Dispose();
|
||||
File.Create(Directories.ConfigDir + "\\servers.txt").Dispose();
|
||||
listBox3.Items.Clear();
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
}
|
||||
|
||||
void Button15Click(object sender, EventArgs e)
|
||||
{
|
||||
File.Create(GlobalVars.ConfigDir + "\\ports.txt").Dispose();
|
||||
File.Create(Directories.ConfigDir + "\\ports.txt").Dispose();
|
||||
listBox4.Items.Clear();
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
}
|
||||
|
||||
void Button16Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\servers.txt", GlobalVars.IP + Environment.NewLine);
|
||||
listBox3.Items.Clear();
|
||||
string[] lines_server = File.ReadAllLines(GlobalVars.ConfigDir + "\\servers.txt");
|
||||
string[] lines_server = File.ReadAllLines(Directories.ConfigDir + "\\servers.txt");
|
||||
listBox3.Items.AddRange(lines_server);
|
||||
}
|
||||
|
||||
void Button17Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\ports.txt", GlobalVars.UserConfiguration.RobloxPort + Environment.NewLine);
|
||||
listBox4.Items.Clear();
|
||||
string[] lines_ports = File.ReadAllLines(GlobalVars.ConfigDir + "\\ports.txt");
|
||||
string[] lines_ports = File.ReadAllLines(Directories.ConfigDir + "\\ports.txt");
|
||||
listBox4.Items.AddRange(lines_ports);
|
||||
}
|
||||
|
||||
|
|
@ -860,9 +860,9 @@ namespace NovetusLauncher
|
|||
{
|
||||
if (GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true)
|
||||
{
|
||||
if (SecurityFuncs.checkClientMD5(GlobalVars.SelectedClient) == true)
|
||||
if (SecurityFuncs.checkClientMD5(GlobalVars.UserConfiguration.SelectedClient) == true)
|
||||
{
|
||||
if (SecurityFuncs.checkScriptMD5(GlobalVars.SelectedClient) == true)
|
||||
if (SecurityFuncs.checkScriptMD5(GlobalVars.UserConfiguration.SelectedClient) == true)
|
||||
{
|
||||
OpenClient(rbxexe,args);
|
||||
}
|
||||
|
|
@ -888,7 +888,7 @@ namespace NovetusLauncher
|
|||
OpenClient(rbxexe,args);
|
||||
}
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -901,18 +901,18 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ClientExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Client, GlobalVars.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InMPGame, GlobalVars.Map);
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Client, GlobalVars.UserConfiguration.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InMPGame, GlobalVars.UserConfiguration.Map);
|
||||
}
|
||||
|
||||
void ClientExited(object sender, EventArgs e)
|
||||
{
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InLauncher, "");
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = true;
|
||||
}
|
||||
|
|
@ -920,7 +920,7 @@ namespace NovetusLauncher
|
|||
|
||||
void ServerExited(object sender, EventArgs e)
|
||||
{
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = true;
|
||||
}
|
||||
|
|
@ -930,7 +930,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InLauncher, "");
|
||||
label12.Text = LocalVars.prevsplash;
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = true;
|
||||
}
|
||||
|
|
@ -940,7 +940,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.Solo);
|
||||
string mapfile = GlobalVars.MapPath;
|
||||
string mapfile = GlobalVars.UserConfiguration.MapPath;
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -966,14 +966,14 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ClientExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Solo, GlobalVars.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InSoloGame, GlobalVars.Map);
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Solo, GlobalVars.UserConfiguration.Map);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InSoloGame, GlobalVars.UserConfiguration.Map);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -984,7 +984,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.Server);
|
||||
string mapfile = GlobalVars.MapPath;
|
||||
string mapfile = GlobalVars.UserConfiguration.MapPath;
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -1018,13 +1018,13 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ServerExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Server, GlobalVars.Map);
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Server, GlobalVars.UserConfiguration.Map);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1035,8 +1035,8 @@ namespace NovetusLauncher
|
|||
{
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.Studio);
|
||||
string mapfile = (nomap ? "" : GlobalVars.MapPath);
|
||||
string mapname = (nomap ? "" : GlobalVars.Map);
|
||||
string mapfile = (nomap ? "" : GlobalVars.UserConfiguration.MapPath);
|
||||
string mapname = (nomap ? "" : GlobalVars.UserConfiguration.Map);
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -1062,14 +1062,14 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Exited += new EventHandler(ClientExited);
|
||||
client.Start();
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.Studio, mapname);
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InStudio, mapname);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Novetus. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Novetus. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1081,7 +1081,7 @@ namespace NovetusLauncher
|
|||
label12.Text = "<3";
|
||||
string luafile = LauncherFuncs.GetLuaFileName();
|
||||
string rbxexe = LauncherFuncs.GetClientEXEDir(ScriptType.EasterEgg);
|
||||
string mapfile = GlobalVars.ConfigDirData + "\\Appreciation.rbxl";
|
||||
string mapfile = Directories.ConfigDirData + "\\Appreciation.rbxl";
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
if (GlobalVars.SelectedClientInfo.CommandLineArgs.Equals("%args%"))
|
||||
|
|
@ -1107,14 +1107,14 @@ namespace NovetusLauncher
|
|||
client.StartInfo.FileName = rbxexe;
|
||||
client.StartInfo.Arguments = args;
|
||||
client.EnableRaisingEvents = true;
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
client.Start();
|
||||
client.Exited += new EventHandler(EasterEggExited);
|
||||
client.PriorityClass = ProcessPriorityClass.RealTime;
|
||||
SecurityFuncs.RenameWindow(client, ScriptType.EasterEgg, "");
|
||||
LauncherFuncs.UpdateRichPresence(LauncherState.InEasterEggGame, "");
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to launch Easter Egg. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to launch Easter Egg. (Error: " + ex.Message + ")", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1185,7 +1185,7 @@ namespace NovetusLauncher
|
|||
StopWebServer();
|
||||
StartWebServer();
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("WebServer: Cannot restart web server. (" + ex.Message + ")", 2);
|
||||
}
|
||||
|
|
@ -1238,7 +1238,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
Process process = new Process();
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
startInfo.FileName = GlobalVars.ClientDir + @"\\" + GlobalVars.RegisterClient1 + @"\\RobloxApp_studio.exe";
|
||||
startInfo.FileName = Directories.ClientDir + @"\\" + GlobalVars.RegisterClient1 + @"\\RobloxApp_studio.exe";
|
||||
startInfo.Arguments = "/regserver";
|
||||
startInfo.Verb = "runas";
|
||||
process.StartInfo = startInfo;
|
||||
|
|
@ -1246,7 +1246,7 @@ namespace NovetusLauncher
|
|||
|
||||
Process process2 = new Process();
|
||||
ProcessStartInfo startInfo2 = new ProcessStartInfo();
|
||||
startInfo2.FileName = GlobalVars.ClientDir + @"\\" + GlobalVars.RegisterClient2 + @"\\RobloxApp_studio.exe";
|
||||
startInfo2.FileName = Directories.ClientDir + @"\\" + GlobalVars.RegisterClient2 + @"\\RobloxApp_studio.exe";
|
||||
startInfo2.Arguments = "/regserver";
|
||||
startInfo2.Verb = "runas";
|
||||
process2.StartInfo = startInfo2;
|
||||
|
|
@ -1255,7 +1255,7 @@ namespace NovetusLauncher
|
|||
ConsolePrint("UserAgent Library successfully installed and registered!", 3);
|
||||
MessageBox.Show("UserAgent Library successfully installed and registered!", "Novetus - Register UserAgent Library", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
ConsolePrint("ERROR - Failed to register. (" + ex.Message + ")", 2);
|
||||
MessageBox.Show("Failed to register. (Error: " + ex.Message + ")","Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
|
@ -1270,54 +1270,54 @@ namespace NovetusLauncher
|
|||
|
||||
void NumericUpDown1ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(numericUpDown1.Value);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
label38.Text = GlobalVars.RobloxPort.ToString();
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(numericUpDown1.Value);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
label38.Text = GlobalVars.UserConfiguration.RobloxPort.ToString();
|
||||
}
|
||||
|
||||
void NumericUpDown2ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(numericUpDown2.Value);
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.RobloxPort);
|
||||
label38.Text = GlobalVars.RobloxPort.ToString();
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(numericUpDown2.Value);
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.UserConfiguration.RobloxPort);
|
||||
label38.Text = GlobalVars.UserConfiguration.RobloxPort.ToString();
|
||||
}
|
||||
|
||||
void NumericUpDown3ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.PlayerLimit = Convert.ToInt32(numericUpDown3.Value);
|
||||
GlobalVars.UserConfiguration.PlayerLimit = Convert.ToInt32(numericUpDown3.Value);
|
||||
}
|
||||
|
||||
void Button7Click(object sender, EventArgs e)
|
||||
{
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
GlobalVars.RobloxPort = GlobalVars.DefaultRobloxPort;
|
||||
numericUpDown1.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
GlobalVars.UserConfiguration.RobloxPort = LocalVars.DefaultRobloxPort;
|
||||
}
|
||||
|
||||
void Button23Click(object sender, EventArgs e)
|
||||
{
|
||||
File.AppendAllText(GlobalVars.ConfigDir + "\\ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
|
||||
File.AppendAllText(Directories.ConfigDir + "\\ports.txt", GlobalVars.UserConfiguration.RobloxPort + Environment.NewLine);
|
||||
}
|
||||
|
||||
void Button22Click(object sender, EventArgs e)
|
||||
{
|
||||
numericUpDown1.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(GlobalVars.DefaultRobloxPort);
|
||||
GlobalVars.RobloxPort = GlobalVars.DefaultRobloxPort;
|
||||
numericUpDown1.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
numericUpDown2.Value = Convert.ToDecimal(LocalVars.DefaultRobloxPort);
|
||||
GlobalVars.UserConfiguration.RobloxPort = LocalVars.DefaultRobloxPort;
|
||||
}
|
||||
|
||||
void TreeView1AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (treeView1.SelectedNode.Nodes.Count == 0)
|
||||
{
|
||||
GlobalVars.Map = treeView1.SelectedNode.Text.ToString();
|
||||
GlobalVars.MapPathSnip = treeView1.SelectedNode.FullPath.ToString().Replace(@"\", @"\\");
|
||||
GlobalVars.MapPath = GlobalVars.BasePath + @"\\" + GlobalVars.MapPathSnip;
|
||||
label28.Text = GlobalVars.Map;
|
||||
GlobalVars.UserConfiguration.Map = treeView1.SelectedNode.Text.ToString();
|
||||
GlobalVars.UserConfiguration.MapPathSnip = treeView1.SelectedNode.FullPath.ToString().Replace(@"\", @"\\");
|
||||
GlobalVars.UserConfiguration.MapPath = Directories.BasePath + @"\\" + GlobalVars.UserConfiguration.MapPathSnip;
|
||||
label28.Text = GlobalVars.UserConfiguration.Map;
|
||||
|
||||
if (File.Exists(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
if (File.Exists(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
{
|
||||
textBox4.Text = File.ReadAllText(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
textBox4.Text = File.ReadAllText(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1328,12 +1328,12 @@ namespace NovetusLauncher
|
|||
|
||||
void Button6Click(object sender, EventArgs e)
|
||||
{
|
||||
Process.Start("explorer.exe", GlobalVars.MapsDir.Replace(@"\\",@"\"));
|
||||
Process.Start("explorer.exe", Directories.MapsDir.Replace(@"\\",@"\"));
|
||||
}
|
||||
|
||||
void CheckBox4CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.UPnP = checkBox4.Checked;
|
||||
GlobalVars.UserConfiguration.UPnP = checkBox4.Checked;
|
||||
}
|
||||
|
||||
void CheckBox4Click(object sender, EventArgs e)
|
||||
|
|
@ -1345,14 +1345,14 @@ namespace NovetusLauncher
|
|||
{
|
||||
treeView1.Nodes.Clear();
|
||||
_fieldsTreeCache.Nodes.Clear();
|
||||
string mapdir = GlobalVars.MapsDir;
|
||||
string mapdir = Directories.MapsDir;
|
||||
TreeNodeHelper.ListDirectory(treeView1, mapdir, ".rbxl");
|
||||
TreeNodeHelper.CopyNodes(treeView1.Nodes,_fieldsTreeCache.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.Map, treeView1.Nodes);
|
||||
treeView1.SelectedNode = TreeNodeHelper.SearchTreeView(GlobalVars.UserConfiguration.Map, treeView1.Nodes);
|
||||
treeView1.Focus();
|
||||
if (File.Exists(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
if (File.Exists(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt"))
|
||||
{
|
||||
textBox4.Text = File.ReadAllText(GlobalVars.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
textBox4.Text = File.ReadAllText(Directories.RootPath + @"\\" + treeView1.SelectedNode.FullPath.ToString().Replace(".rbxl", "") + "_desc.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1388,9 +1388,9 @@ namespace NovetusLauncher
|
|||
|
||||
private void button26_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (Directory.Exists(GlobalVars.AssetCacheDir))
|
||||
if (Directory.Exists(Directories.AssetCacheDir))
|
||||
{
|
||||
Directory.Delete(GlobalVars.AssetCacheDir, true);
|
||||
Directory.Delete(Directories.AssetCacheDir, true);
|
||||
ConsolePrint("Asset cache cleared!", 3);
|
||||
MessageBox.Show("Asset cache cleared!");
|
||||
}
|
||||
|
|
@ -1402,7 +1402,7 @@ namespace NovetusLauncher
|
|||
|
||||
private void checkBox2_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.DiscordPresence = checkBox2.Checked;
|
||||
GlobalVars.UserConfiguration.DiscordPresence = checkBox2.Checked;
|
||||
MessageBox.Show("Restart the launcher to apply changes.");
|
||||
}
|
||||
|
||||
|
|
@ -1460,7 +1460,7 @@ namespace NovetusLauncher
|
|||
switch (LocalVars.Clicks)
|
||||
{
|
||||
case 1:
|
||||
label12.Text = "Hi " + GlobalVars.PlayerName + "!";
|
||||
label12.Text = "Hi " + GlobalVars.UserConfiguration.PlayerName + "!";
|
||||
break;
|
||||
case 3:
|
||||
label12.Text = "How are you doing today?";
|
||||
|
|
@ -1475,7 +1475,7 @@ namespace NovetusLauncher
|
|||
WriteConfigValues();
|
||||
StartEasterEgg();
|
||||
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -1508,7 +1508,7 @@ namespace NovetusLauncher
|
|||
|
||||
WriteConfigValues();
|
||||
StartStudio(nomap);
|
||||
if (GlobalVars.CloseOnLaunch == true)
|
||||
if (GlobalVars.UserConfiguration.CloseOnLaunch == true)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
|
@ -1516,7 +1516,7 @@ namespace NovetusLauncher
|
|||
|
||||
private void button36_Click(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.OldLayout = false;
|
||||
GlobalVars.UserConfiguration.OldLayout = false;
|
||||
WriteConfigValues();
|
||||
Application.Restart();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,12 +18,12 @@ namespace NovetusLauncher
|
|||
|
||||
void ReadConfigValues()
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
checkBox5.Checked = GlobalVars.ReShade;
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
checkBox5.Checked = GlobalVars.UserConfiguration.ReShade;
|
||||
checkBox6.Checked = GlobalVars.ReShadeFPSDisplay;
|
||||
checkBox7.Checked = GlobalVars.ReShadePerformanceMode;
|
||||
|
||||
switch (GlobalVars.GraphicsMode)
|
||||
switch (GlobalVars.UserConfiguration.GraphicsMode)
|
||||
{
|
||||
case GraphicsMode.DirectX:
|
||||
comboBox1.SelectedIndex = 1;
|
||||
|
|
@ -34,7 +34,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
|
||||
switch (GlobalVars.QualityLevel)
|
||||
switch (GlobalVars.UserConfiguration.QualityLevel)
|
||||
{
|
||||
case QualityLevel.VeryLow:
|
||||
comboBox2.SelectedIndex = 0;
|
||||
|
|
@ -57,7 +57,7 @@ namespace NovetusLauncher
|
|||
|
||||
private void checkBox5_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.ReShade = checkBox5.Checked;
|
||||
GlobalVars.UserConfiguration.ReShade = checkBox5.Checked;
|
||||
}
|
||||
|
||||
private void checkBox6_CheckedChanged(object sender, EventArgs e)
|
||||
|
|
@ -75,10 +75,10 @@ namespace NovetusLauncher
|
|||
switch (comboBox1.SelectedIndex)
|
||||
{
|
||||
case 1:
|
||||
GlobalVars.GraphicsMode = GraphicsMode.DirectX;
|
||||
GlobalVars.UserConfiguration.GraphicsMode = GraphicsMode.DirectX;
|
||||
break;
|
||||
default:
|
||||
GlobalVars.GraphicsMode = GraphicsMode.OpenGL;
|
||||
GlobalVars.UserConfiguration.GraphicsMode = GraphicsMode.OpenGL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -88,20 +88,20 @@ namespace NovetusLauncher
|
|||
switch (comboBox2.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
GlobalVars.QualityLevel = QualityLevel.VeryLow;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.VeryLow;
|
||||
break;
|
||||
case 1:
|
||||
GlobalVars.QualityLevel = QualityLevel.Low;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.Low;
|
||||
break;
|
||||
case 2:
|
||||
GlobalVars.QualityLevel = QualityLevel.Medium;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.Medium;
|
||||
break;
|
||||
case 3:
|
||||
GlobalVars.QualityLevel = QualityLevel.High;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.High;
|
||||
break;
|
||||
case 4:
|
||||
default:
|
||||
GlobalVars.QualityLevel = QualityLevel.Ultra;
|
||||
GlobalVars.UserConfiguration.QualityLevel = QualityLevel.Ultra;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,12 +29,12 @@ namespace NovetusLauncher
|
|||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
LauncherFuncs.ReadInfoFile(GlobalVars.ConfigDir + "\\" + GlobalVars.InfoName);
|
||||
LauncherFuncs.ReadInfoFile(Directories.ConfigDir + "\\" + GlobalVars.InfoName);
|
||||
if (args.Length == 0)
|
||||
{
|
||||
//read from our config to determine which clients to load.
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
if (GlobalVars.OldLayout == false)
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, false);
|
||||
if (GlobalVars.UserConfiguration.OldLayout == false)
|
||||
{
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
public partial class AssetLocalizer : Form
|
||||
{
|
||||
private DLType currentType;
|
||||
private RobloxFileType currentType;
|
||||
private string path;
|
||||
private string name;
|
||||
private string meshname;
|
||||
|
|
@ -21,7 +21,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
OpenFileDialog openFileDialog1 = new OpenFileDialog
|
||||
{
|
||||
Filter = (currentType == DLType.RBXL) ? "ROBLOX Level (*.rbxl)|*.rbxl" : "ROBLOX Model (*.rbxm)|*.rbxm",
|
||||
Filter = (currentType == RobloxFileType.RBXL) ? "ROBLOX Level (*.rbxl)|*.rbxl" : "ROBLOX Model (*.rbxm)|*.rbxm",
|
||||
Title = "Open ROBLOX level or model"
|
||||
};
|
||||
|
||||
|
|
@ -38,28 +38,28 @@ namespace NovetusLauncher
|
|||
switch (comboBox1.SelectedIndex)
|
||||
{
|
||||
case 1:
|
||||
currentType = DLType.RBXM;
|
||||
currentType = RobloxFileType.RBXM;
|
||||
break;
|
||||
case 2:
|
||||
currentType = DLType.Hat;
|
||||
currentType = RobloxFileType.Hat;
|
||||
break;
|
||||
case 3:
|
||||
currentType = DLType.Head;
|
||||
currentType = RobloxFileType.Head;
|
||||
break;
|
||||
case 4:
|
||||
currentType = DLType.Face;
|
||||
currentType = RobloxFileType.Face;
|
||||
break;
|
||||
case 5:
|
||||
currentType = DLType.Shirt;
|
||||
currentType = RobloxFileType.Shirt;
|
||||
break;
|
||||
case 6:
|
||||
currentType = DLType.TShirt;
|
||||
currentType = RobloxFileType.TShirt;
|
||||
break;
|
||||
case 7:
|
||||
currentType = DLType.Pants;
|
||||
currentType = RobloxFileType.Pants;
|
||||
break;
|
||||
default:
|
||||
currentType = DLType.RBXL;
|
||||
currentType = RobloxFileType.RBXL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -69,9 +69,9 @@ namespace NovetusLauncher
|
|||
comboBox1.SelectedItem = "RBXL";
|
||||
comboBox2.SelectedItem = "None";
|
||||
|
||||
if (Directory.Exists(GlobalVars.hatdirFonts))
|
||||
if (Directory.Exists(Directories.hatdirFonts))
|
||||
{
|
||||
DirectoryInfo dinfo = new DirectoryInfo(GlobalVars.hatdirFonts);
|
||||
DirectoryInfo dinfo = new DirectoryInfo(Directories.hatdirFonts);
|
||||
FileInfo[] Files = dinfo.GetFiles("*.mesh");
|
||||
foreach (FileInfo file in Files)
|
||||
{
|
||||
|
|
@ -84,29 +84,29 @@ namespace NovetusLauncher
|
|||
}
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirFonts))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirFonts))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirFonts);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirFonts);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirSky))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirSky))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirSky);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirSky);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirSounds))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirSounds))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirSounds);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirSounds);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirTexturesGUI))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirTexturesGUI))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirTexturesGUI);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirTexturesGUI);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(GlobalVars.AssetCacheDirScripts))
|
||||
if (!Directory.Exists(Directories.AssetCacheDirScripts))
|
||||
{
|
||||
Directory.CreateDirectory(GlobalVars.AssetCacheDirScripts);
|
||||
Directory.CreateDirectory(Directories.AssetCacheDirScripts);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ namespace NovetusLauncher
|
|||
|
||||
switch (currentType)
|
||||
{
|
||||
case DLType.RBXL:
|
||||
case RobloxFileType.RBXL:
|
||||
switch (percent)
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -163,7 +163,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case DLType.RBXM:
|
||||
case RobloxFileType.RBXM:
|
||||
switch (percent)
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -207,7 +207,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case DLType.Hat:
|
||||
case RobloxFileType.Hat:
|
||||
switch (percent)
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -224,7 +224,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case DLType.Head:
|
||||
case RobloxFileType.Head:
|
||||
//meshes
|
||||
switch (percent)
|
||||
{
|
||||
|
|
@ -233,7 +233,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case DLType.Face:
|
||||
case RobloxFileType.Face:
|
||||
//decal
|
||||
switch (percent)
|
||||
{
|
||||
|
|
@ -242,7 +242,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case DLType.TShirt:
|
||||
case RobloxFileType.TShirt:
|
||||
//texture
|
||||
switch (percent)
|
||||
{
|
||||
|
|
@ -251,7 +251,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case DLType.Shirt:
|
||||
case RobloxFileType.Shirt:
|
||||
//texture
|
||||
switch (percent)
|
||||
{
|
||||
|
|
@ -260,7 +260,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case DLType.Pants:
|
||||
case RobloxFileType.Pants:
|
||||
//texture
|
||||
switch (percent)
|
||||
{
|
||||
|
|
@ -286,7 +286,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
switch (currentType)
|
||||
{
|
||||
case DLType.RBXL:
|
||||
case RobloxFileType.RBXL:
|
||||
//backup the original copy
|
||||
try
|
||||
{
|
||||
|
|
@ -299,132 +299,132 @@ namespace NovetusLauncher
|
|||
}
|
||||
//meshes
|
||||
worker.ReportProgress(5);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Fonts);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Fonts, 1, 1, 1, 1);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Fonts);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Fonts, 1, 1, 1, 1);
|
||||
//skybox
|
||||
worker.ReportProgress(10);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 1, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 2, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 3, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 4, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 5, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 1, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 2, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 3, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 4, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 5, 0, 0, 0);
|
||||
//decal
|
||||
worker.ReportProgress(15);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Decal);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Decal);
|
||||
//texture
|
||||
worker.ReportProgress(20);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Texture);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Texture);
|
||||
//tools and hopperbin
|
||||
worker.ReportProgress(25);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Tool);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Tool);
|
||||
worker.ReportProgress(30);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.HopperBin);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.HopperBin);
|
||||
//sound
|
||||
worker.ReportProgress(40);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sound);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sound);
|
||||
worker.ReportProgress(50);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ImageLabel);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ImageLabel);
|
||||
//clothing
|
||||
worker.ReportProgress(60);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Shirt);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Shirt);
|
||||
worker.ReportProgress(65);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ShirtGraphic);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ShirtGraphic);
|
||||
worker.ReportProgress(70);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Pants);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Pants);
|
||||
//scripts
|
||||
worker.ReportProgress(80);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Script);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Script);
|
||||
worker.ReportProgress(90);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.LocalScript);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.LocalScript);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case DLType.RBXM:
|
||||
case RobloxFileType.RBXM:
|
||||
//meshes
|
||||
worker.ReportProgress(0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Fonts);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Fonts, 1, 1, 1, 1);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Fonts);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Fonts, 1, 1, 1, 1);
|
||||
//skybox
|
||||
worker.ReportProgress(10);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 1, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 2, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 3, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 4, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sky, 5, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 1, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 2, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 3, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 4, 0, 0, 0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sky, 5, 0, 0, 0);
|
||||
//decal
|
||||
worker.ReportProgress(15);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Decal);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Decal);
|
||||
//texture
|
||||
worker.ReportProgress(20);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Texture);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Texture);
|
||||
//tools and hopperbin
|
||||
worker.ReportProgress(25);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Tool);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Tool);
|
||||
worker.ReportProgress(30);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.HopperBin);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.HopperBin);
|
||||
//sound
|
||||
worker.ReportProgress(40);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Sound);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Sound);
|
||||
worker.ReportProgress(50);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ImageLabel);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ImageLabel);
|
||||
//clothing
|
||||
worker.ReportProgress(60);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Shirt);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Shirt);
|
||||
worker.ReportProgress(65);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ShirtGraphic);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ShirtGraphic);
|
||||
worker.ReportProgress(70);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Pants);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Pants);
|
||||
//scripts
|
||||
worker.ReportProgress(80);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Script);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Script);
|
||||
worker.ReportProgress(90);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.LocalScript);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.LocalScript);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case DLType.Hat:
|
||||
case RobloxFileType.Hat:
|
||||
//meshes
|
||||
worker.ReportProgress(0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemHatFonts, name, meshname);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemHatFonts, 1, 1, 1, 1, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemHatFonts, name, meshname);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemHatFonts, 1, 1, 1, 1, name);
|
||||
worker.ReportProgress(25);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemHatSound);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemHatSound);
|
||||
//scripts
|
||||
worker.ReportProgress(50);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.Script);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.Script);
|
||||
worker.ReportProgress(75);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.LocalScript);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.LocalScript);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case DLType.Head:
|
||||
case RobloxFileType.Head:
|
||||
//meshes
|
||||
worker.ReportProgress(0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemHeadFonts, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemHeadFonts, 1, 1, 1, 1, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemHeadFonts, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemHeadFonts, 1, 1, 1, 1, name);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case DLType.Face:
|
||||
case RobloxFileType.Face:
|
||||
//decal
|
||||
worker.ReportProgress(0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemFaceTexture, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemFaceTexture, name);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case DLType.TShirt:
|
||||
case RobloxFileType.TShirt:
|
||||
//texture
|
||||
worker.ReportProgress(0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemTShirtTexture, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemTShirtTexture, name);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case DLType.Shirt:
|
||||
case RobloxFileType.Shirt:
|
||||
//texture
|
||||
worker.ReportProgress(0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemShirtTexture, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemShirtTexture, name);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
case DLType.Pants:
|
||||
case RobloxFileType.Pants:
|
||||
//texture
|
||||
worker.ReportProgress(0);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, GlobalVars.ItemPantsTexture, name);
|
||||
RobloxXMLLocalizer.DownloadFromNodes(path, RobloxTypeDefs.ItemPantsTexture, name);
|
||||
worker.ReportProgress(100);
|
||||
break;
|
||||
default:
|
||||
|
|
@ -432,7 +432,7 @@ namespace NovetusLauncher
|
|||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Error: Unable to localize the asset. " + ex.Message, "Novetus Asset Localizer", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace NovetusLauncher
|
|||
|
||||
void ClientScriptDocumentationLoad(object sender, EventArgs e)
|
||||
{
|
||||
richTextBox1.Text = File.ReadAllText(GlobalVars.BasePath + "\\documentation.txt");
|
||||
richTextBox1.Text = File.ReadAllText(Directories.BasePath + "\\documentation.txt");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ namespace NovetusLauncher
|
|||
|
||||
void ClientinfoCreatorLoad(object sender, EventArgs e)
|
||||
{
|
||||
string cfgpath = GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName;
|
||||
string cfgpath = Directories.ConfigDir + "\\" + GlobalVars.ConfigName;
|
||||
if (!File.Exists(cfgpath))
|
||||
{
|
||||
LauncherFuncs.Config(cfgpath, true);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace NovetusLauncher
|
|||
|
||||
if (!isWebSite)
|
||||
{
|
||||
if (!GlobalVars.DisabledHelp)
|
||||
if (!GlobalVars.UserConfiguration.DisabledItemMakerHelp)
|
||||
{
|
||||
string helptext = "If you're trying to create a offline item, please use these file extension names when saving your files:\n.rbxm - ROBLOX Model/Item\n.mesh - ROBLOX Mesh\n.png - Texture/Icon\n.wav - Sound";
|
||||
MessageBox.Show(helptext, "Novetus Item SDK", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
|
|
@ -53,9 +53,9 @@ namespace NovetusLauncher
|
|||
try
|
||||
{
|
||||
string helptext = "In order for the item to work in Novetus, you'll need to find an icon for your item (it must be a .png file), then name it the same name as your item.\n\nIf you want to create a local (offline) item, you'll have to download the meshes/textures from the links in the rbxm file, then replace the links in the file pointing to where they are using rbxasset://. Look at the directory in the 'shareddata/charcustom' folder that best suits your item type, then look at the rbxm for any one of the items. If you get a corrupted file, change the URL using the drop down box.";
|
||||
download.InitDownload((!GlobalVars.DisabledHelp) ? helptext : "");
|
||||
download.InitDownload((!GlobalVars.UserConfiguration.DisabledItemMakerHelp) ? helptext : "");
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Error: Unable to download the file. " +ex.Message, "Novetus Item SDK | Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
|
|
@ -69,14 +69,14 @@ namespace NovetusLauncher
|
|||
{
|
||||
System.Diagnostics.Process.Start(fullURL);
|
||||
|
||||
if (!GlobalVars.DisabledHelp)
|
||||
if (!GlobalVars.UserConfiguration.DisabledItemMakerHelp)
|
||||
{
|
||||
string helptext = "In order for the item to work in Novetus, you'll need to find an icon for your item (it must be a .png file), then name it the same name as your item.\n\nIf you want to create a local (offline) item, you'll have to download the meshes/textures from the links in the rbxm file, then replace the links in the file pointing to where they are using rbxasset://. Look at the directory in the 'shareddata/charcustom' folder that best suits your item type, then look at the rbxm for any one of the items. If you get a corrupted file, change the URL using the drop down box.\n\nIf you're trying to create a offline item, please use these file extension names when saving your files:\n.rbxm - ROBLOX Model/Item\n.mesh - ROBLOX Mesh\n.png - Texture/Icon\n.wav - Sound";
|
||||
MessageBox.Show(helptext, "Novetus Item SDK", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception) when (!Env.Debugging)
|
||||
catch (Exception)
|
||||
{
|
||||
MessageBox.Show("Error: Unable to download the file. Try using a different file name or ID.","Novetus Item SDK | Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
|
|
@ -107,7 +107,7 @@ namespace NovetusLauncher
|
|||
|
||||
void ItemMakerLoad(object sender, EventArgs e)
|
||||
{
|
||||
string cfgpath = GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName;
|
||||
string cfgpath = Directories.ConfigDir + "\\" + GlobalVars.ConfigName;
|
||||
if (!File.Exists(cfgpath))
|
||||
{
|
||||
LauncherFuncs.Config(cfgpath, true);
|
||||
|
|
@ -120,17 +120,17 @@ namespace NovetusLauncher
|
|||
comboBox1.SelectedItem = "http://www.roblox.com/";
|
||||
isWebSite = false;
|
||||
|
||||
checkBox1.Checked = GlobalVars.DisabledHelp;
|
||||
checkBox1.Checked = GlobalVars.UserConfiguration.DisabledItemMakerHelp;
|
||||
}
|
||||
|
||||
void ItemMakerClose(object sender, CancelEventArgs e)
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
}
|
||||
|
||||
void CheckBox1CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.DisabledHelp = checkBox1.Checked;
|
||||
GlobalVars.UserConfiguration.DisabledItemMakerHelp = checkBox1.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,14 +64,14 @@ namespace NovetusLauncher
|
|||
break;
|
||||
case 6:
|
||||
Process proc = new Process();
|
||||
proc.StartInfo.FileName = GlobalVars.ConfigDirData + "\\RSG.exe";
|
||||
proc.StartInfo.FileName = Directories.ConfigDirData + "\\RSG.exe";
|
||||
proc.StartInfo.CreateNoWindow = false;
|
||||
proc.StartInfo.UseShellExecute = false;
|
||||
proc.Start();
|
||||
break;
|
||||
case 7:
|
||||
Process proc2 = new Process();
|
||||
proc2.StartInfo.FileName = GlobalVars.ConfigDirData + "\\Roblox_Legacy_Place_Converter.exe";
|
||||
proc2.StartInfo.FileName = Directories.ConfigDirData + "\\Roblox_Legacy_Place_Converter.exe";
|
||||
proc2.StartInfo.CreateNoWindow = false;
|
||||
proc2.StartInfo.UseShellExecute = false;
|
||||
proc2.Start();
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ namespace NovetusLauncher
|
|||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
ProcessOBJ(GlobalVars.ConfigDirData + "\\RBXMeshConverter.exe", openFileDialog1.FileName);
|
||||
ProcessOBJ(Directories.ConfigDirData + "\\RBXMeshConverter.exe", openFileDialog1.FileName);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using System;
|
||||
using System.Windows.Forms;
|
||||
using NovetusFuncs;
|
||||
|
||||
namespace NovetusURI
|
||||
{
|
||||
|
|
@ -22,7 +21,7 @@ namespace NovetusURI
|
|||
|
||||
MessageBox.Show("URI successfully installed and registered!", "Novetus - Install URI", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex) when (!Env.Debugging)
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Failed to register. (Error: " + ex.Message + ")", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
Close();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace NovetusURI
|
||||
{
|
||||
class LocalVars
|
||||
{
|
||||
public static bool ReadyToLaunch = false;
|
||||
}
|
||||
}
|
||||
|
|
@ -91,6 +91,7 @@
|
|||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LocalVars.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="URI\LoaderForm.cs">
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ namespace NovetusURI
|
|||
|
||||
void StartDiscord()
|
||||
{
|
||||
if (GlobalVars.DiscordPresence)
|
||||
if (GlobalVars.UserConfiguration.DiscordPresence)
|
||||
{
|
||||
handlers = new DiscordRpc.EventHandlers();
|
||||
handlers.readyCallback = ReadyCallback;
|
||||
|
|
@ -90,10 +90,10 @@ namespace NovetusURI
|
|||
string ip = SecurityFuncs.Base64Decode(SplitArg[0]);
|
||||
string port = SecurityFuncs.Base64Decode(SplitArg[1]);
|
||||
string client = SecurityFuncs.Base64Decode(SplitArg[2]);
|
||||
GlobalVars.SelectedClient = client;
|
||||
GlobalVars.UserConfiguration.SelectedClient = client;
|
||||
GlobalVars.IP = ip;
|
||||
GlobalVars.RobloxPort = Convert.ToInt32(port);
|
||||
ReadClientValues(GlobalVars.SelectedClient);
|
||||
GlobalVars.UserConfiguration.RobloxPort = Convert.ToInt32(port);
|
||||
ReadClientValues(GlobalVars.UserConfiguration.SelectedClient);
|
||||
string luafile = "";
|
||||
if (!GlobalVars.SelectedClientInfo.Fix2007)
|
||||
{
|
||||
|
|
@ -101,16 +101,16 @@ namespace NovetusURI
|
|||
}
|
||||
else
|
||||
{
|
||||
luafile = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua";
|
||||
luafile = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\scripts\\" + GlobalVars.ScriptGenName + ".lua";
|
||||
}
|
||||
string rbxexe = "";
|
||||
if (GlobalVars.SelectedClientInfo.LegacyMode == true)
|
||||
{
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp.exe";
|
||||
}
|
||||
else
|
||||
{
|
||||
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_client.exe";
|
||||
rbxexe = Directories.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\RobloxApp_client.exe";
|
||||
}
|
||||
string quote = "\"";
|
||||
string args = "";
|
||||
|
|
@ -136,9 +136,9 @@ namespace NovetusURI
|
|||
{
|
||||
if (GlobalVars.SelectedClientInfo.AlreadyHasSecurity != true)
|
||||
{
|
||||
if (SecurityFuncs.checkClientMD5(GlobalVars.SelectedClient) == true)
|
||||
if (SecurityFuncs.checkClientMD5(GlobalVars.UserConfiguration.SelectedClient) == true)
|
||||
{
|
||||
if (SecurityFuncs.checkScriptMD5(GlobalVars.SelectedClient) == true)
|
||||
if (SecurityFuncs.checkScriptMD5(GlobalVars.UserConfiguration.SelectedClient) == true)
|
||||
{
|
||||
LaunchClient(rbxexe,args);
|
||||
}
|
||||
|
|
@ -190,14 +190,14 @@ namespace NovetusURI
|
|||
|
||||
private void CheckIfFinished(object state)
|
||||
{
|
||||
if (GlobalVars.ReadyToLaunch == false)
|
||||
if (LocalVars.ReadyToLaunch == false)
|
||||
{
|
||||
System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Visible = true;
|
||||
if (GlobalVars.DiscordPresence)
|
||||
if (GlobalVars.UserConfiguration.DiscordPresence)
|
||||
{
|
||||
label1.Text = "Starting Discord Rich Presence...";
|
||||
StartDiscord();
|
||||
|
|
@ -209,12 +209,12 @@ namespace NovetusURI
|
|||
|
||||
void ReadClientValues(string ClientName)
|
||||
{
|
||||
string clientpath = GlobalVars.ClientDir + @"\\" + ClientName + @"\\clientinfo.nov";
|
||||
string clientpath = Directories.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.SelectedClient = GlobalVars.DefaultClient;
|
||||
GlobalVars.UserConfiguration.SelectedClient = GlobalVars.DefaultClient;
|
||||
ReadClientValues(ClientName);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace NovetusURI
|
|||
|
||||
void QuickConfigureLoad(object sender, EventArgs e)
|
||||
{
|
||||
string cfgpath = GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName;
|
||||
string cfgpath = Directories.ConfigDir + "\\" + GlobalVars.ConfigName;
|
||||
if (!File.Exists(cfgpath))
|
||||
{
|
||||
LauncherFuncs.Config(cfgpath, true);
|
||||
|
|
@ -52,20 +52,20 @@ namespace NovetusURI
|
|||
void ReadConfigValues(string cfgpath)
|
||||
{
|
||||
LauncherFuncs.Config(cfgpath, false);
|
||||
textBox2.Text = GlobalVars.UserID.ToString();
|
||||
label3.Text = GlobalVars.PlayerTripcode.ToString();
|
||||
textBox1.Text = GlobalVars.PlayerName;
|
||||
textBox2.Text = GlobalVars.UserConfiguration.UserID.ToString();
|
||||
label3.Text = GlobalVars.UserConfiguration.PlayerTripcode.ToString();
|
||||
textBox1.Text = GlobalVars.UserConfiguration.PlayerName;
|
||||
}
|
||||
|
||||
void GeneratePlayerID()
|
||||
{
|
||||
LauncherFuncs.GeneratePlayerID();
|
||||
textBox2.Text = GlobalVars.UserID.ToString();
|
||||
textBox2.Text = GlobalVars.UserConfiguration.UserID.ToString();
|
||||
}
|
||||
|
||||
void TextBox1TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
GlobalVars.PlayerName = textBox1.Text;
|
||||
GlobalVars.UserConfiguration.PlayerName = textBox1.Text;
|
||||
}
|
||||
|
||||
void TextBox2TextChanged(object sender, EventArgs e)
|
||||
|
|
@ -75,16 +75,16 @@ namespace NovetusURI
|
|||
{
|
||||
if (textBox2.Text.Equals(""))
|
||||
{
|
||||
GlobalVars.UserID = 0;
|
||||
GlobalVars.UserConfiguration.UserID = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalVars.UserID = Convert.ToInt32(textBox2.Text);
|
||||
GlobalVars.UserConfiguration.UserID = Convert.ToInt32(textBox2.Text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalVars.UserID = 0;
|
||||
GlobalVars.UserConfiguration.UserID = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -101,8 +101,8 @@ namespace NovetusURI
|
|||
|
||||
void QuickConfigureClose(object sender, CancelEventArgs e)
|
||||
{
|
||||
LauncherFuncs.Config(GlobalVars.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
GlobalVars.ReadyToLaunch = true;
|
||||
LauncherFuncs.Config(Directories.ConfigDir + "\\" + GlobalVars.ConfigName, true);
|
||||
LocalVars.ReadyToLaunch = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue