diff --git a/MiraAPI/PluginLoading/MiraPluginManager.cs b/MiraAPI/PluginLoading/MiraPluginManager.cs index 1c37bab..a96fbf8 100644 --- a/MiraAPI/PluginLoading/MiraPluginManager.cs +++ b/MiraAPI/PluginLoading/MiraPluginManager.cs @@ -34,9 +34,9 @@ public class MiraPluginManager var id = MetadataHelper.GetMetadata(plugin.GetType()).GUID; var info = new MiraPluginInfo(id, plugin as IMiraPlugin, IL2CPPChainloader.Instance.Plugins[id]); - RegisterRoleAttribute(assembly, info); RegisterOptionsGroups(assembly, info); RegisterOptionsAttributes(assembly, info); + RegisterRoleAttribute(assembly, info); RegisterButtonAttribute(assembly); RegisteredPlugins.Add(assembly, info); @@ -103,7 +103,21 @@ public class MiraPluginManager var role = CustomRoleManager.RegisterRole(type, attribute.RoleId); - pluginInfo.CustomRoles.Add((ushort)role.Role, role); + try + { + pluginInfo.CustomRoles.Add((ushort)role.Role, role); + } + catch (Exception e) + { + Logger.Error("Failed to register role: " + type.Name); + + foreach (var (k, v) in pluginInfo.CustomRoles) + { + Logger.Error($"{k}: {v}"); + } + + Logger.Error(e); + } } } diff --git a/MiraAPI/Roles/CustomRoleManager.cs b/MiraAPI/Roles/CustomRoleManager.cs index 412a112..1d1f3c2 100644 --- a/MiraAPI/Roles/CustomRoleManager.cs +++ b/MiraAPI/Roles/CustomRoleManager.cs @@ -24,6 +24,7 @@ public static class CustomRoleManager { while (CustomRoles.ContainsKey(requestedId) || requestedId <= Enum.GetNames().Length) { + Logger.Error(requestedId + ", " + (requestedId+1)); requestedId++; }