public HarmonyBuilder <TComponent, TModule> AddModule(TModule module) { var moduleType = typeof(TModule); foreach (var providerMethod in moduleType .GetMethods(BindingFlags.Instance | BindingFlags.Public) .Where(x => x.GetCustomAttribute <ProvidesAttribute>() != null)) { if (providerMethod.ReturnType == typeof(void)) { _logger.Verbose($"Skipping void method {providerMethod.Name} of {moduleType.Name} module"); continue; } _provider.AddProvider(module, providerMethod); } return(this); }