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)