mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-13 12:14:17 +01:00
Don't reflect the interface before it apparently exists.
This commit is contained in:
parent
5cd4b49fee
commit
743f449a49
1 changed files with 10 additions and 15 deletions
|
|
@ -38,7 +38,7 @@ public class Dalamud
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
|
||||||
private static readonly object? DalamudConfig;
|
private static readonly object? DalamudConfig;
|
||||||
private static readonly object? SettingsWindow;
|
private static readonly MethodInfo? InterfaceGetter;
|
||||||
private static readonly MethodInfo? SaveDalamudConfig;
|
private static readonly MethodInfo? SaveDalamudConfig;
|
||||||
public const string WaitingForPluginsOption = "IsResumeGameAfterPluginLoad";
|
public const string WaitingForPluginsOption = "IsResumeGameAfterPluginLoad";
|
||||||
|
|
||||||
|
|
@ -56,9 +56,9 @@ public class Dalamud
|
||||||
|
|
||||||
var configService = serviceType.MakeGenericType( configType );
|
var configService = serviceType.MakeGenericType( configType );
|
||||||
var interfaceService = serviceType.MakeGenericType( interfaceType );
|
var interfaceService = serviceType.MakeGenericType( interfaceType );
|
||||||
var configGetter = configService.GetMethod( "Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic );
|
var configGetter = configService.GetMethod( "Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic );
|
||||||
var interfaceGetter = interfaceService.GetMethod( "Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic );
|
InterfaceGetter = interfaceService.GetMethod( "Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic );
|
||||||
if( configGetter == null || interfaceGetter == null )
|
if( configGetter == null || InterfaceGetter == null )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -69,15 +69,8 @@ public class Dalamud
|
||||||
SaveDalamudConfig = DalamudConfig.GetType().GetMethod( "Save", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic );
|
SaveDalamudConfig = DalamudConfig.GetType().GetMethod( "Save", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic );
|
||||||
if( SaveDalamudConfig == null )
|
if( SaveDalamudConfig == null )
|
||||||
{
|
{
|
||||||
DalamudConfig = null;
|
DalamudConfig = null;
|
||||||
}
|
InterfaceGetter = null;
|
||||||
|
|
||||||
var inter = interfaceGetter.Invoke( null, null );
|
|
||||||
SettingsWindow = inter?.GetType().GetField( "settingsWindow", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic )?.GetValue( inter );
|
|
||||||
if( SettingsWindow == null )
|
|
||||||
{
|
|
||||||
DalamudConfig = null;
|
|
||||||
SaveDalamudConfig = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -85,7 +78,7 @@ public class Dalamud
|
||||||
{
|
{
|
||||||
DalamudConfig = null;
|
DalamudConfig = null;
|
||||||
SaveDalamudConfig = null;
|
SaveDalamudConfig = null;
|
||||||
SettingsWindow = null;
|
InterfaceGetter = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -139,7 +132,9 @@ public class Dalamud
|
||||||
getter.SetValue( DalamudConfig, value );
|
getter.SetValue( DalamudConfig, value );
|
||||||
if( windowFieldName != null )
|
if( windowFieldName != null )
|
||||||
{
|
{
|
||||||
SettingsWindow!.GetType().GetField( windowFieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic )?.SetValue( SettingsWindow, value );
|
var inter = InterfaceGetter!.Invoke( null, null );
|
||||||
|
var settingsWindow = inter?.GetType().GetField( "settingsWindow", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic )?.GetValue( inter );
|
||||||
|
settingsWindow?.GetType().GetField( windowFieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic )?.SetValue( settingsWindow, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveDalamudConfig!.Invoke( DalamudConfig, null );
|
SaveDalamudConfig!.Invoke( DalamudConfig, null );
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue