diff --git a/IPA.Loader/Loader/PluginInitInjector.cs b/IPA.Loader/Loader/PluginInitInjector.cs
index c4d085ab..9272239d 100644
--- a/IPA.Loader/Loader/PluginInitInjector.cs
+++ b/IPA.Loader/Loader/PluginInitInjector.cs
@@ -1,4 +1,5 @@
-using System;
+#nullable enable
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
@@ -6,6 +7,7 @@ using IPA.Config;
using IPA.Logging;
using IPA.Utilities;
using System.Linq.Expressions;
+using IPA.AntiMalware;
#if NET4
using Expression = System.Linq.Expressions.Expression;
using ExpressionEx = System.Linq.Expressions.Expression;
@@ -57,7 +59,7 @@ namespace IPA.Loader
/// the of the parameter being injected.
/// the for the plugin being loaded.
/// the value to inject into that parameter.
- public delegate object InjectParameter(object previous, ParameterInfo param, PluginMetadata meta);
+ public delegate object? InjectParameter(object? previous, ParameterInfo param, PluginMetadata meta);
///
/// Adds an injector to be used when calling future plugins' Init methods.
@@ -77,7 +79,7 @@ namespace IPA.Loader
public TypedInjector(Type t, InjectParameter i)
{ Type = t; Injector = i; }
- public object Inject(object prev, ParameterInfo info, PluginMetadata meta)
+ public object? Inject(object? prev, ParameterInfo info, PluginMetadata meta)
=> Injector(prev, info, meta);
public bool Equals(TypedInjector other)
@@ -94,15 +96,12 @@ namespace IPA.Loader
public static bool operator !=(TypedInjector a, TypedInjector b) => !a.Equals(b);
}
- private static readonly List injectors = new List
+ private static readonly List injectors = new()
{
new TypedInjector(typeof(Logger), (prev, param, meta) => prev ?? new StandardLogger(meta.Name)),
new TypedInjector(typeof(PluginMetadata), (prev, param, meta) => prev ?? meta),
- new TypedInjector(typeof(Config.Config), (prev, param, meta) =>
- {
- if (prev != null) return prev;
- return Config.Config.GetConfigFor(meta.Name, param);
- })
+ new TypedInjector(typeof(Config.Config), (prev, param, meta) => prev ?? Config.Config.GetConfigFor(meta.Name, param)),
+ new TypedInjector(typeof(IAntiMalware), (prev, param, meta) => prev ?? AntiMalwareEngine.Engine)
};
private static int? MatchPriority(Type target, Type source)
@@ -139,14 +138,14 @@ namespace IPA.Loader
Expression.ArrayIndex(arr, Expression.Constant(i)), t))));
}
- internal static object[] Inject(ParameterInfo[] initParams, PluginMetadata meta, ref object persist)
+ internal static object?[] Inject(ParameterInfo[] initParams, PluginMetadata meta, ref object? persist)
{
- var initArgs = new List