diff --git a/Dalamud/Dalamud.cs b/Dalamud/Dalamud.cs index 20746fd30..f03538a76 100644 --- a/Dalamud/Dalamud.cs +++ b/Dalamud/Dalamud.cs @@ -170,6 +170,8 @@ namespace Dalamud { this.ClientState.Enable(); IsReady = true; + + Troubleshooting.LogTroubleshooting(this); }); } diff --git a/Dalamud/Troubleshooting.cs b/Dalamud/Troubleshooting.cs new file mode 100644 index 000000000..07fa08f50 --- /dev/null +++ b/Dalamud/Troubleshooting.cs @@ -0,0 +1,41 @@ +using System; +using System.Linq; +using Dalamud.Plugin; +using Newtonsoft.Json; +using Serilog; +using Encoding = System.Text.Encoding; + +namespace Dalamud +{ + internal static class Troubleshooting + { + private class TroubleshootingPayload { + public PluginDefinition[] LoadedPlugins { get; set; } + public string DalamudVersion { get; set; } + public string GameVersion { get; set; } + public string Language { get; set; } + public bool DoDalamudTest { get; set; } + public bool DoPluginTest { get; set; } + } + + public static void LogTroubleshooting(Dalamud dalamud) { + try { + var payload = new TroubleshootingPayload { + LoadedPlugins = dalamud.PluginManager.Plugins.Select(x => x.Definition).ToArray(), + DalamudVersion = Util.AssemblyVersion, + GameVersion = dalamud.StartInfo.GameVersion, + Language = dalamud.StartInfo.Language.ToString(), + DoDalamudTest = dalamud.Configuration.DoDalamudTest, + DoPluginTest = dalamud.Configuration.DoPluginTest + }; + + + Log.Information("TROUBLESHOOTING:" + + System.Convert.ToBase64String( + Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload)))); + } catch (Exception ex) { + Log.Error(ex, "Could not print troubleshooting."); + } + } + } +}