terraria-source-code/Initializers/LaunchInitializer.cs
2021-10-26 12:45:26 -04:00

210 lines
7 KiB
C#

// Decompiled with JetBrains decompiler
// Type: Terraria.Initializers.LaunchInitializer
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
using System.Diagnostics;
using Terraria.Localization;
using Terraria.Social;
namespace Terraria.Initializers
{
public static class LaunchInitializer
{
public static void LoadParameters(Main game)
{
LaunchInitializer.LoadSharedParameters(game);
LaunchInitializer.LoadClientParameters(game);
}
private static void LoadSharedParameters(Main game)
{
string[] strArray1 = new string[1]{ "-loadlib" };
string path;
if ((path = LaunchInitializer.TryParameter(strArray1)) != null)
game.loadLib(path);
string[] strArray2 = new string[2]{ "-p", "-port" };
string s;
int result;
if ((s = LaunchInitializer.TryParameter(strArray2)) == null || !int.TryParse(s, out result))
return;
Netplay.ListenPort = result;
}
private static void LoadClientParameters(Main game)
{
string[] strArray1 = new string[2]{ "-j", "-join" };
string IP;
if ((IP = LaunchInitializer.TryParameter(strArray1)) != null)
game.AutoJoin(IP);
string[] strArray2 = new string[2]
{
"-pass",
"-password"
};
string str;
if ((str = LaunchInitializer.TryParameter(strArray2)) != null)
{
Netplay.ServerPassword = Main.ConvertFromSafeArgument(str);
game.AutoPass();
}
if (!LaunchInitializer.HasParameter("-host"))
return;
game.AutoHost();
}
private static void LoadServerParameters(Main game)
{
try
{
string[] strArray = new string[1]
{
"-forcepriority"
};
string s;
if ((s = LaunchInitializer.TryParameter(strArray)) != null)
{
Process currentProcess = Process.GetCurrentProcess();
int result;
if (int.TryParse(s, out result))
{
switch (result)
{
case 0:
currentProcess.PriorityClass = ProcessPriorityClass.RealTime;
break;
case 1:
currentProcess.PriorityClass = ProcessPriorityClass.High;
break;
case 2:
currentProcess.PriorityClass = ProcessPriorityClass.AboveNormal;
break;
case 3:
currentProcess.PriorityClass = ProcessPriorityClass.Normal;
break;
case 4:
currentProcess.PriorityClass = ProcessPriorityClass.BelowNormal;
break;
case 5:
currentProcess.PriorityClass = ProcessPriorityClass.Idle;
break;
default:
currentProcess.PriorityClass = ProcessPriorityClass.High;
break;
}
}
else
currentProcess.PriorityClass = ProcessPriorityClass.High;
}
else
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
}
catch
{
}
string[] strArray1 = new string[2]
{
"-maxplayers",
"-players"
};
string s1;
int result1;
if ((s1 = LaunchInitializer.TryParameter(strArray1)) != null && int.TryParse(s1, out result1))
game.SetNetPlayers(result1);
string[] strArray2 = new string[2]
{
"-pass",
"-password"
};
string str1;
if ((str1 = LaunchInitializer.TryParameter(strArray2)) != null)
Netplay.ServerPassword = Main.ConvertFromSafeArgument(str1);
string[] strArray3 = new string[1]{ "-lang" };
string s2;
int result2;
if ((s2 = LaunchInitializer.TryParameter(strArray3)) != null && int.TryParse(s2, out result2))
LanguageManager.Instance.SetLanguage(result2);
string[] strArray4 = new string[1]{ "-language" };
string cultureName;
if ((cultureName = LaunchInitializer.TryParameter(strArray4)) != null)
LanguageManager.Instance.SetLanguage(cultureName);
string[] strArray5 = new string[1]{ "-worldname" };
string world1;
if ((world1 = LaunchInitializer.TryParameter(strArray5)) != null)
game.SetWorldName(world1);
string[] strArray6 = new string[1]{ "-motd" };
string newMOTD;
if ((newMOTD = LaunchInitializer.TryParameter(strArray6)) != null)
game.NewMOTD(newMOTD);
string[] strArray7 = new string[1]{ "-banlist" };
string str2;
if ((str2 = LaunchInitializer.TryParameter(strArray7)) != null)
Netplay.BanFilePath = str2;
if (LaunchInitializer.HasParameter("-autoshutdown"))
game.EnableAutoShutdown();
if (LaunchInitializer.HasParameter("-secure"))
Netplay.SpamCheck = true;
string[] strArray8 = new string[1]
{
"-worldrollbackstokeep"
};
string rollBacksToKeep;
if ((rollBacksToKeep = LaunchInitializer.TryParameter(strArray8)) != null)
game.setServerWorldRollbacks(rollBacksToKeep);
string[] strArray9 = new string[1]{ "-autocreate" };
string worldSize;
if ((worldSize = LaunchInitializer.TryParameter(strArray9)) != null)
game.autoCreate(worldSize);
if (LaunchInitializer.HasParameter("-noupnp"))
Netplay.UseUPNP = false;
if (LaunchInitializer.HasParameter("-experimental"))
Main.UseExperimentalFeatures = true;
string[] strArray10 = new string[1]{ "-world" };
string world2;
if ((world2 = LaunchInitializer.TryParameter(strArray10)) != null)
game.SetWorld(world2, false);
else if (SocialAPI.Mode == SocialMode.Steam)
{
string[] strArray11 = new string[1]{ "-cloudworld" };
string world3;
if ((world3 = LaunchInitializer.TryParameter(strArray11)) != null)
game.SetWorld(world3, true);
}
string[] strArray12 = new string[1]{ "-config" };
string configPath;
if ((configPath = LaunchInitializer.TryParameter(strArray12)) != null)
game.LoadDedConfig(configPath);
string[] strArray13 = new string[1]{ "-seed" };
string str3;
if ((str3 = LaunchInitializer.TryParameter(strArray13)) == null)
return;
Main.AutogenSeedName = str3;
}
private static bool HasParameter(params string[] keys)
{
for (int index = 0; index < keys.Length; ++index)
{
if (Program.LaunchParameters.ContainsKey(keys[index]))
return true;
}
return false;
}
private static string TryParameter(params string[] keys)
{
for (int index = 0; index < keys.Length; ++index)
{
string str;
if (Program.LaunchParameters.TryGetValue(keys[index], out str))
{
if (str == null)
str = "";
return str;
}
}
return (string) null;
}
}
}