Skip to content

Commit 2e196c4

Browse files
fix framework methods not loading
1 parent 653f065 commit 2e196c4

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

Code/Helpers/FrameworkBridge.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using LabApi.Loader;
22
using MEC;
33
using SER.Code.Extensions;
4+
using SER.Code.MethodSystem;
45
using SER.Code.MethodSystem.Structures;
56

67
namespace SER.Code.Helpers;
@@ -44,5 +45,6 @@ private IEnumerator<float> Await(Framework framework)
4445
}
4546

4647
_found.Add(framework);
48+
MethodIndex.LoadMethodsOfFramework(framework.Type);
4749
}
4850
}

Code/MethodSystem/MethodIndex.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace SER.Code.MethodSystem;
1010
public static class MethodIndex
1111
{
1212
private static readonly Dictionary<string, Method> NameToMethodIndex = [];
13-
private static readonly Dictionary<IDependOnFramework.Type, List<Type>> FrameworkDependentMethods = [];
13+
private static readonly Dictionary<IDependOnFramework.Type, List<Method>> FrameworkDependentMethods = [];
1414

1515
/// <summary>
1616
/// Initializes the method index.
@@ -41,17 +41,15 @@ public static void AddAllDefinedMethodsInAssembly(Assembly? assembly = null)
4141
assembly ??= Assembly.GetCallingAssembly();
4242
var definedMethods = assembly.GetTypes()
4343
.Where(t => t.IsClass && !t.IsAbstract && typeof(Method).IsAssignableFrom(t))
44+
.Select(t => Activator.CreateInstance(t) as Method)
4445
.Where(t =>
4546
{
46-
if (!typeof(IDependOnFramework).IsAssignableFrom(t))
47+
if (t is not IDependOnFramework framework)
4748
return true;
4849

49-
var framework = t.CreateInstance<IDependOnFramework>().DependsOn;
50-
FrameworkDependentMethods.AddOrInitListWithKey(framework, t);
50+
FrameworkDependentMethods.AddOrInitListWithKey(framework.DependsOn, t);
5151
return false;
52-
5352
})
54-
.Select(t => Activator.CreateInstance(t) as Method)
5553
.ToList();
5654

5755
foreach (var method in definedMethods.OfType<Method>())
@@ -103,7 +101,7 @@ internal static void LoadMethodsOfFramework(IDependOnFramework.Type framework)
103101
{
104102
foreach (var method in FrameworkDependentMethods.TryGetValue(framework, out var methods) ? methods : [])
105103
{
106-
AddMethod((Method)Activator.CreateInstance(method));
104+
AddMethod(method);
107105
}
108106
}
109107

0 commit comments

Comments
 (0)