diff --git a/Source/MpCompatLoader.cs b/Source/MpCompatLoader.cs index 4144f6a..1bd2c21 100644 --- a/Source/MpCompatLoader.cs +++ b/Source/MpCompatLoader.cs @@ -93,13 +93,14 @@ static void ClearCaches() var mpType = AccessTools.TypeByName("Multiplayer.Client.Util.TypeCache") ?? AccessTools.TypeByName("Multiplayer.Client.Multiplayer"); ((IDictionary)AccessTools.Field(mpType, "subClasses").GetValue(null)).Clear(); ((IDictionary)AccessTools.Field(mpType, "subClassesNonAbstract").GetValue(null)).Clear(); - ((IDictionary)AccessTools.Field(mpType, "implementations").GetValue(null)).Clear(); - AccessTools.Method(mpType, "CacheTypeHierarchy").Invoke(null, Array.Empty()); + ((IDictionary)AccessTools.Field(mpType, "interfaceImplementations").GetValue(null)).Clear(); + ((IDictionary)AccessTools.Field(mpType, "interfaceImplementationsOrdered").GetValue(null)).Clear(); + AccessTools.Method(mpType, "CacheTypeHierarchy").Invoke(null, []); // Clear/re-init the list of ISyncSimple implementations. - AccessTools.Method("Multiplayer.Client.ImplSerialization:Init").Invoke(null, Array.Empty()); + AccessTools.Method("Multiplayer.Client.ImplSerialization:Init").Invoke(null, []); // Clear/re-init the localDefInfos dictionary so it contains the classes added from referenced assembly. - AccessTools.Method("Multiplayer.Client.MultiplayerData:CollectDefInfos").Invoke(null, Array.Empty()); + AccessTools.Method("Multiplayer.Client.MultiplayerData:CollectDefInfos").Invoke(null, []); } } } \ No newline at end of file