From ae523fe1587dcdd20d3ca64aa4bae322e32a41e5 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Sat, 17 Oct 2020 20:43:09 -0700 Subject: [PATCH] Adds configure/initialize for internal assembly (#274) --- Projects/Server/AssemblyHandler.cs | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Projects/Server/AssemblyHandler.cs b/Projects/Server/AssemblyHandler.cs index 90d4bf9c0..b7173dda5 100644 --- a/Projects/Server/AssemblyHandler.cs +++ b/Projects/Server/AssemblyHandler.cs @@ -44,14 +44,11 @@ namespace Server { var invoke = new List(); - for (var a = 0; a < Assemblies.Length; ++a) + Core.Assembly.AddMethods(method, invoke); + + for (var i = 0; i < Assemblies.Length; i++) { - invoke.AddRange( - Assemblies[a] - .GetTypes() - .Select(t => t.GetMethod(method, BindingFlags.Static | BindingFlags.Public)) - .Where(m => m != null) - ); + Assemblies[i].AddMethods(method, invoke); } invoke.Sort(new CallPriorityComparer()); @@ -62,6 +59,21 @@ namespace Server } } + private static void AddMethods(this Assembly assembly, string method, List list) + { + var types = assembly.GetTypes(); + + for (int i = 0; i < types.Length; i++) + { + var m = types[i].GetMethod(method, BindingFlags.Static | BindingFlags.Public); + if (m != null) + { + list.Add(m); + } + } + } + + public static TypeCache GetTypeCache(Assembly asm) { if (asm == null)