From a5ddec48c88d4c3b326e27faa508dc7818c4c92c Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Mon, 31 Mar 2025 22:16:32 -0400 Subject: [PATCH] attempt at better config I/O during setup --- MiraAPI/PluginLoading/MiraPluginManager.cs | 6 ++++++ MiraAPI/Roles/CustomRoleManager.cs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/MiraAPI/PluginLoading/MiraPluginManager.cs b/MiraAPI/PluginLoading/MiraPluginManager.cs index 885414d..a40ee75 100644 --- a/MiraAPI/PluginLoading/MiraPluginManager.cs +++ b/MiraAPI/PluginLoading/MiraPluginManager.cs @@ -43,6 +43,9 @@ public sealed class MiraPluginManager var info = new MiraPluginInfo(miraPlugin, pluginInfo); var roles = new List(); + var oldConfigSetting = info.PluginConfig.SaveOnConfigSet; + info.PluginConfig.SaveOnConfigSet = false; + foreach (var type in assembly.GetTypes()) { if (type.GetCustomAttribute() != null) @@ -96,6 +99,9 @@ public sealed class MiraPluginManager RegisterColorClasses(type); } + info.PluginConfig.Save(); + info.PluginConfig.SaveOnConfigSet = oldConfigSetting; + info.OptionGroups.Sort((x, y) => x.GroupPriority.CompareTo(y.GroupPriority)); QueuedRoleRegistrations.Add(info, roles); diff --git a/MiraAPI/Roles/CustomRoleManager.cs b/MiraAPI/Roles/CustomRoleManager.cs index ab890fb..8aaf288 100644 --- a/MiraAPI/Roles/CustomRoleManager.cs +++ b/MiraAPI/Roles/CustomRoleManager.cs @@ -59,6 +59,9 @@ public static class CustomRoleManager { roles.ForEach(x => RoleIds.Add(x, GetNextRoleId())); + var oldConfigSetting = pluginInfo.PluginConfig.SaveOnConfigSet; + pluginInfo.PluginConfig.SaveOnConfigSet = false; + foreach (var roleType in roles) { ClassInjector.RegisterTypeInIl2Cpp(roleType); @@ -71,6 +74,9 @@ public static class CustomRoleManager pluginInfo.CustomRoles.Add((ushort)role.Role, role); } + + pluginInfo.PluginConfig.Save(); + pluginInfo.PluginConfig.SaveOnConfigSet = oldConfigSetting; } private static RoleBehaviour? RegisterRole(Type roleType, MiraPluginInfo parentMod)