Ignore:
Timestamp:
Aug 7, 2022, 1:11:51 AM (2 years ago)
Author:
alloc
Message:

Finished up REST API base
Made API handler look for APIs in all loaded mods

Location:
binary-improvements2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2

    • Property svn:ignore
      •  

        old new  
         1.idea
        12bin
        2 .idea
         3server-fixes.sln.DotSettings.user
  • binary-improvements2/MapRendering

    • Property svn:ignore
      •  

        old new  
         1bin
        12obj
  • binary-improvements2/MapRendering/Web/Handlers/ApiHandler.cs

    r387 r389  
    2222                        Object[] apiEmptyCtorArgs = { };
    2323                       
    24                         foreach (Type t in Assembly.GetExecutingAssembly ().GetTypes ()) {
    25                                 if (!t.IsAbstract && t.IsSubclassOf (typeof (AbsWebAPI))) {
    26                                         ConstructorInfo ctor = t.GetConstructor (apiWithParentCtorTypes);
    27                                         if (ctor != null) {
    28                                                 AbsWebAPI apiInstance = (AbsWebAPI) ctor.Invoke (apiWithParentCtorArgs);
    29                                                 addApi (apiInstance);
    30                                                 continue;
    31                                         }
     24                       
     25                        ReflectionHelpers.FindTypesImplementingBase (typeof (AbsWebAPI), _type => {
     26                                ConstructorInfo ctor = _type.GetConstructor (apiWithParentCtorTypes);
     27                                if (ctor != null) {
     28                                        AbsWebAPI apiInstance = (AbsWebAPI) ctor.Invoke (apiWithParentCtorArgs);
     29                                        addApi (apiInstance);
     30                                        return;
     31                                }
    3232                                       
    33                                         ctor = t.GetConstructor (apiEmptyCtorTypes);
    34                                         if (ctor != null) {
    35                                                 AbsWebAPI apiInstance = (AbsWebAPI) ctor.Invoke (apiEmptyCtorArgs);
    36                                                 addApi (apiInstance);
    37                                         }
     33                                ctor = _type.GetConstructor (apiEmptyCtorTypes);
     34                                if (ctor != null) {
     35                                        AbsWebAPI apiInstance = (AbsWebAPI) ctor.Invoke (apiEmptyCtorArgs);
     36                                        addApi (apiInstance);
    3837                                }
    39                         }
     38                        });
    4039
    4140                        // Permissions that don't map to a real API
Note: See TracChangeset for help on using the changeset viewer.