private void LoadData() { try { Data = Interface.Oxide.DataFileSystem.ReadObject <PluginData>($"{dataFilename}"); if (Data.needWipe == true) { Interface.Oxide.DataFileSystem.WriteObject($"{dataFilename}_old", Data); Data = new PluginData(); PrintWarning($"Data was wiped by auto-wiping function (Old: {Data.creationTime}, New: {SaveRestore.SaveCreatedTime})"); } if (Data.needCleanup == true) { var oldCount = Data.valuesCount; Data.Cleanup(); var newCount = Data.valuesCount; PrintWarning($"Removed {oldCount - newCount} values that are older than {PluginData.unusedDataLifeSpanDays} days (Was: {oldCount}, Now: {newCount})"); } dataValid = true; timer.Every(Core.Random.Range(500, 700), SaveData); SaveData(); } catch (Exception e) { Data = new PluginData(); dataValid = false; for (var i = 0; i < 5; i++) { PrintError("!!! CRITICAL DATA ERROR !!!\n * Data was not loaded!\n * Data auto-save was disabled!"); } LogToFile("errors", $"\n\nError: {e.Message}\n\nTrace: {e.StackTrace}\n\n", this); } }