automatic default StartInfo creation if not found

This commit is contained in:
liam 2020-02-16 19:51:10 -05:00
parent 85ca70f96e
commit 5aed3d615a

View file

@ -42,6 +42,14 @@ namespace Dalamud.Injector {
break;
}
if (args.Length == 1) {
var defaultStartInfo = GetDefaultStartInfo();
Console.WriteLine("\nA Dalamud start info was not found in the program arguments. One has been generated for you.");
Console.WriteLine("\nCopy the following contents into the program arguments:");
Console.WriteLine(defaultStartInfo);
return;
}
var startInfo = JsonConvert.DeserializeObject<DalamudStartInfo>(Encoding.UTF8.GetString(Convert.FromBase64String(args[1])));
startInfo.WorkingDirectory = Directory.GetCurrentDirectory();
@ -66,5 +74,31 @@ namespace Dalamud.Injector {
Console.WriteLine("Injected");
}
private static string GetDefaultStartInfo() {
DalamudStartInfo startInfo = new DalamudStartInfo();
startInfo.WorkingDirectory = null;
startInfo.ConfigurationPath =
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) +
@"\XIVLauncher\dalamudConfig.json";
startInfo.PluginDirectory =
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\XIVLauncher\plugins";
startInfo.DefaultPluginDirectory =
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\XIVLauncher\defaultplugins";
startInfo.Language = ClientLanguage.English;
Console.WriteLine("Creating a StartInfo with:\n" +
$"ConfigurationPath: {startInfo.ConfigurationPath}\n" +
$"PluginDirectory: {startInfo.PluginDirectory}\n" +
$"DefaultPluginDirectory: {startInfo.DefaultPluginDirectory}\n" +
$"Language: {startInfo.Language}");
return Convert.ToBase64String(Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(startInfo)));
}
}
}