Overall Optimization #6
|
@ -12,115 +12,25 @@ namespace UnturnedSL
|
||||||
{
|
{
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
string lauversion = "1.12 rewrite";
|
string lauversion = "1.13 rewrite";
|
||||||
string title = "USL by casKd running on version " + lauversion;
|
string title = "USL by casKd running on version " + lauversion;
|
||||||
Console.Title = title;
|
Console.Title = title;
|
||||||
Console.SetWindowSize(100,20);
|
Console.SetWindowSize(100,20);
|
||||||
/*Console.WriteLine("Currently running from:" + Environment.NewLine + Directory.GetCurrentDirectory() + Environment.NewLine +
|
|
||||||
"Config exists: " + File.Exists("settings.cfg") + Environment.NewLine); DEBUGGING PURPOSES ONLY*/
|
|
||||||
if (!File.Exists("settings.cfg")) { /*Checks for new users*/
|
if (!File.Exists("settings.cfg")) { /*Checks for new users*/
|
||||||
Console.ForegroundColor = ConsoleColor.Green;
|
FirstSetup();
|
||||||
Console.WriteLine("Welcome!", Environment.NewLine);
|
TextReader settings = new StreamReader("settings.cfg", true);
|
||||||
string[] defvalue = {
|
string name = settings.ReadLine();
|
||||||
"PEI",
|
string map = settings.ReadLine();
|
||||||
"USL-My server",
|
string welcome = settings.ReadLine();
|
||||||
"Hey! Welcome to our server!",
|
string port = settings.ReadLine();
|
||||||
"27015",
|
string data = settings.ReadLine();
|
||||||
"Server_Data",
|
string extralo = settings.ReadLine();
|
||||||
"-perspective both",
|
string path = settings.ReadLine();
|
||||||
@"C:\Program Files\Steam\SteamApps\Common\Unturned" };
|
settings.Close(); /*Loads settings from file and checks if all lines are present and valid*/
|
||||||
string[] question = {
|
|
||||||
"Which map would you like to play?",
|
|
||||||
"What name do you wish your server to be called?",
|
|
||||||
"What welcome message would you want to have?",
|
|
||||||
"What port do you want your server to run on?",
|
|
||||||
"What folder name do you want to assign to your server?",
|
|
||||||
"Do you want any other parameters for your server?",
|
|
||||||
"Where is your Unturned installation located?"
|
|
||||||
};
|
|
||||||
/*Asks user to setup their own server, which later saves in a config file*/
|
|
||||||
Console.ForegroundColor = ConsoleColor.Yellow;
|
|
||||||
|
|
||||||
string[] setvals = { "map", "name", "welcome", "port", "data", "extralo", "path" };
|
|
||||||
var loopval = 0;
|
|
||||||
string[] answ = new string[7];
|
|
||||||
foreach (string val in setvals)
|
|
||||||
{
|
|
||||||
while (loopval <= 6)
|
|
||||||
{
|
|
||||||
Console.WriteLine(question[loopval] + Environment.NewLine + "Default value: " + defvalue[loopval]);
|
|
||||||
answ[loopval] = Console.ReadLine();
|
|
||||||
if (String.IsNullOrWhiteSpace(answ[loopval]))
|
|
||||||
{
|
|
||||||
answ[loopval] = defvalue[loopval];
|
|
||||||
loopval++;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
loopval++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*Saves data*/
|
|
||||||
string map = answ[0];
|
|
||||||
string name = answ[1];
|
|
||||||
string welcome = answ[2];
|
|
||||||
string port = answ[3];
|
|
||||||
string data = answ[4];
|
|
||||||
string extralo = answ[5];
|
|
||||||
string path = answ[6];
|
|
||||||
|
|
||||||
Console.Clear();
|
|
||||||
/*Stores data into a file*/
|
|
||||||
TextWriter settings = new StreamWriter("settings.cfg", true);
|
|
||||||
settings.WriteLine(name);
|
|
||||||
settings.WriteLine(map);
|
|
||||||
settings.WriteLine(welcome);
|
|
||||||
settings.WriteLine(port);
|
|
||||||
settings.WriteLine(data);
|
|
||||||
settings.WriteLine(extralo);
|
|
||||||
settings.WriteLine(path);
|
|
||||||
settings.Close();
|
|
||||||
Console.ForegroundColor = ConsoleColor.Green;
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
string launchop = "-nographics -batchmode -name " + "\"" + name + "\"" + " -map " + map + " -welcome " + "\"" + welcome + "\"" + " -port:" + port + " " + extralo + " +secureserver/" + data;
|
string launchop = "-nographics -batchmode -name " + "\"" + name + "\"" + " -map " + map + " -welcome " + "\"" + welcome + "\"" + " -port:" + port + " " + extralo + " +secureserver/" + data;
|
||||||
string curdirargs = path + @"\Unturned.exe " + launchop;
|
Validation(name, map, welcome, port, data, extralo, path, out bool valid);
|
||||||
if (
|
Run(valid, name, map, welcome, data, port, extralo, path);
|
||||||
String.IsNullOrWhiteSpace(name) ||
|
|
||||||
String.IsNullOrWhiteSpace(map) ||
|
|
||||||
String.IsNullOrWhiteSpace(welcome) ||
|
|
||||||
String.IsNullOrWhiteSpace(port) ||
|
|
||||||
String.IsNullOrWhiteSpace(data) ||
|
|
||||||
String.IsNullOrWhiteSpace(extralo) ||
|
|
||||||
String.IsNullOrWhiteSpace(path) ||
|
|
||||||
!File.Exists(path + @"\Unturned.exe")
|
|
||||||
)
|
|
||||||
{
|
|
||||||
/*Shows an error with information to fix it*/
|
|
||||||
Console.ForegroundColor = ConsoleColor.Red;
|
|
||||||
Console.WriteLine("Oh, noes! Seems like the settings file contains wrong info." + Environment.NewLine +
|
|
||||||
"Try deleting it or correcting it!" + Environment.NewLine + Environment.NewLine +
|
|
||||||
"If you still get the problem, report it on GitHub!");
|
|
||||||
Console.WriteLine(Environment.NewLine + "Your settings:" +
|
|
||||||
Environment.NewLine + Environment.NewLine + "Server Name:" + "\t" + "\t" + name + Environment.NewLine +
|
|
||||||
"Running Map:" + "\t" + "\t" + map + Environment.NewLine +
|
|
||||||
"Welcome Msg:" + "\t" + "\t" + welcome + Environment.NewLine +
|
|
||||||
"Data folder:" + "\t" + "\t" + data + Environment.NewLine +
|
|
||||||
"Extra options:" + "\t" + "\t" + extralo + Environment.NewLine +
|
|
||||||
"Path to Game:" + "\t" + "\t" + path + Environment.NewLine);
|
|
||||||
Console.Beep(2300, 250);
|
|
||||||
Console.ReadKey();
|
|
||||||
Environment.Exit(1);
|
|
||||||
}
|
|
||||||
string displaytext =
|
|
||||||
"Server info:" + Environment.NewLine + Environment.NewLine +
|
|
||||||
"Server Name:" + "\t" + "\t" + name + Environment.NewLine +
|
|
||||||
"Running Map:" + "\t" + "\t" + map + Environment.NewLine +
|
|
||||||
"Welcome Msg:" + "\t" + "\t" + welcome + Environment.NewLine +
|
|
||||||
"Data folder:" + "\t" + "\t" + data + Environment.NewLine +
|
|
||||||
"Extra options:" + "\t" + "\t" + extralo + Environment.NewLine +
|
|
||||||
"Path to Game:" + "\t" + "\t" + path + Environment.NewLine;
|
|
||||||
Console.WriteLine(displaytext);
|
|
||||||
try { Process.Start(path + @"\Unturned.exe" + launchop);} catch { }
|
|
||||||
Console.ReadKey();
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -133,49 +43,140 @@ namespace UnturnedSL
|
||||||
string extralo = settings.ReadLine();
|
string extralo = settings.ReadLine();
|
||||||
string path = settings.ReadLine();
|
string path = settings.ReadLine();
|
||||||
settings.Close(); /*Loads settings from file and checks if all lines are present and valid*/
|
settings.Close(); /*Loads settings from file and checks if all lines are present and valid*/
|
||||||
if (
|
Validation(name, map, welcome, port, data, extralo, path, out bool valid);
|
||||||
String.IsNullOrWhiteSpace(name) ||
|
Run(valid, name, map, welcome, port, data, extralo, path);
|
||||||
String.IsNullOrWhiteSpace(map) ||
|
}
|
||||||
String.IsNullOrWhiteSpace(welcome) ||
|
}
|
||||||
String.IsNullOrWhiteSpace(port) ||
|
/*Validate if all input is correct*/
|
||||||
String.IsNullOrWhiteSpace(data) ||
|
static void Validation(string name, string map, string welcome, string port, string data, string extralo, string path,out bool valid)
|
||||||
String.IsNullOrWhiteSpace(extralo) ||
|
{
|
||||||
String.IsNullOrWhiteSpace(path) ||
|
/*Checks if every condition is true*/
|
||||||
!File.Exists(path + @"\Unturned.exe")
|
bool bNum = int.TryParse(port, out int i);
|
||||||
)
|
if (
|
||||||
|
bNum != true ||
|
||||||
|
String.IsNullOrWhiteSpace(name) ||
|
||||||
|
String.IsNullOrWhiteSpace(map) ||
|
||||||
|
String.IsNullOrWhiteSpace(welcome) ||
|
||||||
|
String.IsNullOrWhiteSpace(port) ||
|
||||||
|
String.IsNullOrWhiteSpace(data) ||
|
||||||
|
String.IsNullOrWhiteSpace(extralo) ||
|
||||||
|
String.IsNullOrWhiteSpace(path) ||
|
||||||
|
!File.Exists(path + @"\Unturned.exe")
|
||||||
|
)
|
||||||
|
{ valid = true;} else { valid = false;}
|
||||||
|
}
|
||||||
|
/*First setup*/
|
||||||
|
static void FirstSetup()
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
Console.WriteLine("Welcome!" + Environment.NewLine);
|
||||||
|
string[] defvalue = {
|
||||||
|
"PEI",
|
||||||
|
"USL-My server",
|
||||||
|
"Hey! Welcome to our server!",
|
||||||
|
"27015",
|
||||||
|
"Server_Data",
|
||||||
|
"-perspective both",
|
||||||
|
@"C:\Program Files\Steam\SteamApps\Common\Unturned" };
|
||||||
|
string[] question = {
|
||||||
|
"Which map would you like to play?",
|
||||||
|
"What name do you wish your server to be called?",
|
||||||
|
"What welcome message would you want to have?",
|
||||||
|
"What port do you want your server to run on?",
|
||||||
|
"What folder name do you want to assign to your server?",
|
||||||
|
"Do you want any other parameters for your server?",
|
||||||
|
"Where is your Unturned installation located?"
|
||||||
|
};
|
||||||
|
/*Asks user to setup their own server, which later saves in a config file*/
|
||||||
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
|
string[] setvals = { "map", "name", "welcome", "port", "data", "extralo", "path" };
|
||||||
|
var loopval = 0;
|
||||||
|
string[] answ = new string[7];
|
||||||
|
foreach (string val in setvals)
|
||||||
|
{
|
||||||
|
while (loopval <= 6)
|
||||||
{
|
{
|
||||||
Console.ForegroundColor = ConsoleColor.Red;
|
Console.WriteLine(question[loopval] + Environment.NewLine + "Default value: " + defvalue[loopval]);
|
||||||
Console.WriteLine("Oh, noes! Seems like the settings file contains wrong info." + Environment.NewLine +
|
answ[loopval] = Console.ReadLine();
|
||||||
"Try deleting it or correcting it!" + Environment.NewLine + Environment.NewLine +
|
if (String.IsNullOrWhiteSpace(answ[loopval]))
|
||||||
"If you still get the problem, report it on GitHub!" );
|
{
|
||||||
Console.WriteLine(Environment.NewLine + "Your settings:" +
|
answ[loopval] = defvalue[loopval];
|
||||||
Environment.NewLine + Environment.NewLine + "Server Name:" + "\t" + "\t" + name + Environment.NewLine +
|
loopval++;
|
||||||
"Running Map:" + "\t" + "\t" + map + Environment.NewLine +
|
}
|
||||||
"Welcome Msg:" + "\t" + "\t" + welcome + Environment.NewLine +
|
else
|
||||||
"Data folder:" + "\t" + "\t" + data + Environment.NewLine +
|
{
|
||||||
"Extra options:" + "\t" + "\t" + extralo + Environment.NewLine +
|
loopval++;
|
||||||
"Path to Game:" + "\t" + "\t" + path + Environment.NewLine);
|
}
|
||||||
Console.Beep(2300, 250);
|
Console.Clear();
|
||||||
Console.ReadKey();
|
|
||||||
Environment.Exit(1);
|
|
||||||
} else {
|
|
||||||
Console.ForegroundColor = ConsoleColor.Green;
|
|
||||||
Console.WriteLine("Welcome back!" + Environment.NewLine);
|
|
||||||
string displaytext =
|
|
||||||
"Server info:" + Environment.NewLine + Environment.NewLine +
|
|
||||||
"Server Name:" + "\t" + "\t" + name + Environment.NewLine +
|
|
||||||
"Running Map:" + "\t" + "\t" + map + Environment.NewLine +
|
|
||||||
"Welcome Msg:" + "\t" + "\t" + welcome + Environment.NewLine +
|
|
||||||
"Data folder:" + "\t" + "\t" + data + Environment.NewLine +
|
|
||||||
"Extra options:" + "\t" + "\t" + extralo + Environment.NewLine +
|
|
||||||
"Path to Game:" + "\t" + "\t" + path + Environment.NewLine;
|
|
||||||
Console.WriteLine(displaytext);
|
|
||||||
string launchop = "-nographics -batchmode -name " + "\"" + name + "\"" + " -map " + map + " -welcome " + "\"" + welcome + "\"" + " -port:" + port + " " + extralo + " +secureserver/" + data;
|
|
||||||
try { Process.Start(path + @"\Unturned.exe ", launchop);} catch { }
|
|
||||||
Console.ReadKey();
|
|
||||||
Environment.Exit(0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*Saves data*/
|
||||||
|
string map = answ[0];
|
||||||
|
string name = answ[1];
|
||||||
|
string welcome = answ[2];
|
||||||
|
string port = answ[3];
|
||||||
|
string data = answ[4];
|
||||||
|
string extralo = answ[5];
|
||||||
|
string path = answ[6];
|
||||||
|
Console.Clear();
|
||||||
|
/*Stores data into a file*/
|
||||||
|
TextWriter settings = new StreamWriter("settings.cfg", true);
|
||||||
|
settings.WriteLine(name);
|
||||||
|
settings.WriteLine(map);
|
||||||
|
settings.WriteLine(welcome);
|
||||||
|
settings.WriteLine(port);
|
||||||
|
settings.WriteLine(data);
|
||||||
|
settings.WriteLine(extralo);
|
||||||
|
settings.WriteLine(path);
|
||||||
|
settings.Close();
|
||||||
|
}
|
||||||
|
static void DisplayText(string name, string map, string welcome, string port, string data, string extralo, string path)
|
||||||
|
/*Outputs info of the current configuration*/
|
||||||
|
{
|
||||||
|
string displaytext =
|
||||||
|
"Server info:" + Environment.NewLine + Environment.NewLine +
|
||||||
|
"Server Name:" + "\t" + "\t" + name + Environment.NewLine +
|
||||||
|
"Running Map:" + "\t" + "\t" + map + Environment.NewLine +
|
||||||
|
"Welcome Msg:" + "\t" + "\t" + welcome + Environment.NewLine +
|
||||||
|
"Data folder:" + "\t" + "\t" + data + Environment.NewLine +
|
||||||
|
"Running port:" + "\t" + "\t" + port + Environment.NewLine +
|
||||||
|
"Extra options:" + "\t" + "\t" + extralo + Environment.NewLine +
|
||||||
|
"Path to Game:" + "\t" + "\t" + path + Environment.NewLine;
|
||||||
|
Console.WriteLine(displaytext);
|
||||||
|
}
|
||||||
|
static void DebugInfo()
|
||||||
|
/*Helps at debugging, mostly needed when having problems*/
|
||||||
|
{
|
||||||
|
string debugtext =
|
||||||
|
"Currently running from:" + Environment.NewLine +
|
||||||
|
Directory.GetCurrentDirectory() + Environment.NewLine +
|
||||||
|
"Config exists: " + File.Exists("settings.cfg") + Environment.NewLine;
|
||||||
|
Console.WriteLine(debugtext);
|
||||||
|
}
|
||||||
|
static void Run(bool valid, string name, string map, string welcome, string port, string data, string extralo, string path)
|
||||||
|
{
|
||||||
|
if (valid == true)
|
||||||
|
/*If conditions have problems, output errors and variables, else, start the server*/
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
Console.WriteLine("Oh, noes! Seems like the settings file contains wrong info." + Environment.NewLine +
|
||||||
|
"Try deleting it or correcting it!" + Environment.NewLine + Environment.NewLine +
|
||||||
|
"If you still get the problem, report it on GitHub!");
|
||||||
|
DisplayText(name, map, welcome, data, port, extralo, path);
|
||||||
|
Console.Beep(2300, 250);
|
||||||
|
Console.ReadKey();
|
||||||
|
Environment.Exit(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
Console.WriteLine("Welcome!" + Environment.NewLine);
|
||||||
|
DisplayText(name, map, welcome, data, port, extralo, path);
|
||||||
|
string launchop = "-nographics -batchmode -name " + "\"" + name + "\"" + " -map " + map + " -welcome " + "\"" + welcome + "\"" + " -port:" + port + " " + extralo + " +secureserver/" + data;
|
||||||
|
Process.Start(path + @"\Unturned.exe ", launchop);
|
||||||
|
Console.ReadKey();
|
||||||
|
Environment.Exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue