private static void TelemetryManagerCustomContentInfo(int buildingsCount, int propsCount, int treeCount, int vehicleCount) { UpdateActiveModCount(); try { Telemetry telemetry = new Telemetry(); Telemetry.Pair[] infoPair = new Telemetry.Pair[] { new Telemetry.Pair("buildings", buildingsCount), new Telemetry.Pair("props", propsCount), new Telemetry.Pair("trees", treeCount), new Telemetry.Pair("vehicles", vehicleCount) }; telemetry.AddEvent("custom_content", infoPair); DebugUtils.Log("Sending telemetry with " + m_ActiveModCount + " mods active"); Telemetry.Pair[] pairArray2 = new Telemetry.Pair[] { new Telemetry.Pair("enabledModCount", m_ActiveModCount), new Telemetry.Pair("modCount", Singleton <PluginManager> .instance.modCount) }; telemetry.AddEvent("custom_mods", pairArray2); telemetry.Push(); IEnumerator <PluginManager.PluginInfo> enumerator = Singleton <PluginManager> .instance.GetPluginsInfo().GetEnumerator(); try { while (enumerator.MoveNext()) { PluginManager.PluginInfo current = enumerator.Current; if (current.isEnabled) { Telemetry telemetry2 = new Telemetry(); Telemetry.Pair[] pairArray3 = new Telemetry.Pair[] { new Telemetry.Pair("modName", current.name), new Telemetry.Pair("modWorkshopID", !(current.publishedFileID != PublishedFileId.invalid) ? "none" : current.publishedFileID.ToString()), new Telemetry.Pair("assemblyInfo", current.assembliesString) }; telemetry2.AddEvent("mod_used", pairArray3); telemetry2.Push(); } } } finally { if (enumerator == null) { } enumerator.Dispose(); } } catch (Exception ex) { DebugUtils.Log(ex.Message); //CODebugBase<LogChannel>.Warn(LogChannel.HTTP, exception.GetType() + ": Telemetry event failed " + exception.Message); } }