using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Runtime.CompilerServices; using Dalamud.Plugin; using Dalamud.Plugin.Services; using LLib.External; using Microsoft.Extensions.Logging; using Questionable.Controller; using Questionable.Data; namespace Questionable.External; internal sealed class PandorasBoxIpc : IDisposable { internal static readonly ImmutableHashSet ConflictingFeatures = new HashSet { global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(1616111798), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(1357410567), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-1401269692), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-1855030583), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-1419570559), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(149571058), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(918765153), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(324148354), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(1441534502), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-1342775702), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(917802614), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-923476706), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-1001272448), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-1171663763), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(213726178), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1137319472), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(1873399642), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1676513025), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-53557543), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(1318853520), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(1902156422), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-2045136826), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(603380574), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-941639504) }.ToImmutableHashSet(); internal const string AutoActiveTimeManeuverFeature = "Auto Active Time Maneuver"; private readonly Configuration _configuration; private readonly QuestController _questController; private readonly FateController _fateController; private readonly SeasonalDutyController _seasonalDutyController; private readonly CustomDeliveryController _customDeliveryController; private readonly TerritoryData _territoryData; private readonly IClientState _clientState; private readonly IFramework _framework; private readonly PluginFeaturePauser _pauser; private readonly ILogger _logger; private bool _wasFateRunning; [MethodImpl(MethodImplOptions.NoInlining)] public PandorasBoxIpc(Configuration configuration, IDalamudPluginInterface pluginInterface, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, CustomDeliveryController customDeliveryController, TerritoryData territoryData, IClientState clientState, IFramework framework, ILogger logger) { _configuration = configuration; _questController = questController; _fateController = fateController; _seasonalDutyController = seasonalDutyController; _customDeliveryController = customDeliveryController; _territoryData = territoryData; _clientState = clientState; _framework = framework; _logger = logger; _pauser = _202D_202B_202E_200B_206D_200B_206E_206F_206A_202A_200B_206B_206C_206B_206F_206D_200C_200D_206E_202A_200C_200D_202A_202A_200B_200D_200C_200C_206C_206F_202C_202B_200D_206A_206F_200C_206A_202C_200F_206C_202E(pluginInterface, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(1668439260), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-816671911), (ILogger)logger); _questController.AutomationTypeChanged += OnAutomationTypeChanged; _206B_206D_202C_206A_202A_200B_202D_200D_202E_200D_206E_202B_200E_200E_206D_206C_202E_200C_202C_202E_206E_206A_200F_206D_206D_200C_206C_206B_200F_206C_200B_200C_200F_206A_200C_202A_200F_200D_200C_202A_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); } private void OnAutomationTypeChanged(object sender, QuestController.EAutomationType automationType) { int num = ((automationType == QuestController.EAutomationType.Manual) ? (-1872452755) : (-1872452756)); while (true) { int num2 = num; int num3 = -1872452753; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 6: num = -1872452756; break; case 2: num = (_fateController.IsRunning ? (-1872452754) : (-1872452760)); break; case 5: InvokeGuarded(DisableConflictingFeatures); return; case 7: num = (_seasonalDutyController.IsRunning ? (-1872452754) : (-1872452757)); break; case 1: return; case 4: num = (_customDeliveryController.IsRunning ? (-1872452754) : (-1872452753)); break; case 0: InvokeGuarded(delegate { _206D_206C_200B_202A_200F_206B_202E_200B_200F_200D_200F_202C_206B_206D_202B_202E_206E_200B_200E_206D_202B_206B_206C_200C_202A_206A_202C_200C_200D_202C_206D_200D_202C_206C_206C_206F_202C_202D_200D_202B_202E(_pauser); }); num = -1872452754; break; case 3: num = (_territoryData.IsDutyInstance(_200E_202A_200D_200B_200E_206D_202B_206C_200E_206E_202A_206C_202E_206A_202B_206E_200D_200B_206D_206F_206B_200E_206D_206F_202B_202B_202E_206C_202C_206D_206E_206B_200F_206A_200D_202E_200D_200D_202E_200F_202E(_clientState)) ? (-1872452755) : (-1872452758)); break; } } } private void OnFrameworkUpdate(IFramework framework) { int num = (_fateController.IsRunning ? (-793436018) : (-793436032)); bool flag = default(bool); while (true) { int num2 = num; int num3 = -793436025; int num4 = num2; int num5; switch ((num4 | num3) - (num4 & num3)) { case 0: return; case 9: num5 = 1; goto IL_006d; case 6: num = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? (-793436019) : (-793436027)); break; case 1: InvokeGuarded(DisableConflictingFeatures); return; case 5: num = -793436032; break; case 10: return; case 3: num = (_territoryData.IsDutyInstance(_200E_202A_200D_200B_200E_206D_202B_206C_200E_206E_202A_206C_202E_206A_202B_206E_200D_200B_206D_206F_206B_200E_206D_206F_202B_202B_202E_206C_202C_206D_206E_206B_200F_206A_200D_202E_200D_200D_202E_200F_202E(_clientState)) ? (-793436031) : (-793436026)); break; case 2: InvokeGuarded(delegate { _206D_206C_200B_202A_200F_206B_202E_200B_200F_200D_200F_202C_206B_206D_202B_202E_206E_200B_200E_206D_202B_206B_206C_200C_202A_206A_202C_200C_200D_202C_206D_200D_202C_206C_206C_206F_202C_202D_200D_202B_202E(_pauser); }); num = -793436019; break; case 8: num5 = (_customDeliveryController.IsRunning ? 1 : 0); goto IL_006d; case 4: _wasFateRunning = flag; num = ((!flag) ? (-793436031) : (-793436028)); break; case 7: { num = (_seasonalDutyController.IsRunning ? (-793436018) : (-793436017)); break; } IL_006d: flag = (byte)num5 != 0; num = ((flag != _wasFateRunning) ? (-793436029) : (-793436025)); break; } } } [MethodImpl(MethodImplOptions.NoInlining)] private void InvokeGuarded(Action action) { try { action(); } catch (Exception ex) { _206D_202E_202B_202D_202A_200D_200E_200F_202D_202A_206B_202E_200C_206A_202B_200E_206E_200B_202C_202E_206E_200E_202A_206E_206C_200F_200F_206A_200D_200D_202A_200B_206E_200C_206F_200F_200E_200D_206E_202E_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(-818958467), Array.Empty()); } } [MethodImpl(MethodImplOptions.NoInlining)] private void DisableConflictingFeatures() { int num = (_configuration.General.AutoSolveQte ? 851339859 : 851339856); ImmutableHashSet immutableHashSet; while (true) { int num2 = num; int num3 = 851339857; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { default: continue; case 2: immutableHashSet = ConflictingFeatures.Add(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(1787972166)); break; case 1: immutableHashSet = ConflictingFeatures; break; case 0: goto IL_009c; } break; IL_009c: num = 851339856; } ImmutableHashSet immutableHashSet2 = immutableHashSet; _206A_200F_206A_200D_206B_200D_202B_202E_202E_206A_202D_202B_200B_202A_200C_202E_200E_202C_206E_206B_200F_202E_202B_206E_206F_200F_200C_202D_206E_200D_202D_202B_206F_206C_202C_202B_206F_200C_206B_206B_202E(_pauser, (IEnumerable)immutableHashSet2.Except(_configuration.Advanced.PandoraFeatureExclusions)); } public void Dispose() { _200C_202A_200E_200E_206A_202C_202B_206F_202A_206C_200F_200F_200B_202C_206C_200F_206A_202B_200F_200E_206C_206B_206C_206F_206F_202C_200D_202D_202E_202A_202C_202D_202C_206D_200E_200B_202D_206F_202C_202E_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); _questController.AutomationTypeChanged -= OnAutomationTypeChanged; _200E_206E_200B_206C_206E_206C_206E_202C_206F_202E_206D_200B_200C_206B_202B_200E_200C_200E_206A_202C_202C_200D_206C_200B_206F_206E_200C_206D_202E_202E_200E_200E_206E_200D_202D_206D_202B_200D_202B_202A_202E(_pauser); } void IDisposable.Dispose() { //ILSpy generated this explicit interface implementation from .override directive in Dispose this.Dispose(); } static PluginFeaturePauser _202D_202B_202E_200B_206D_200B_206E_206F_206A_202A_200B_206B_206C_206B_206F_206D_200C_200D_206E_202A_200C_200D_202A_202A_200B_200D_200C_200C_206C_206F_202C_202B_200D_206A_206F_200C_206A_202C_200F_206C_202E(IDalamudPluginInterface P_0, string P_1, string P_2, ILogger P_3) { return new PluginFeaturePauser(P_0, P_1, P_2, P_3); } static void _206B_206D_202C_206A_202A_200B_202D_200D_202E_200D_206E_202B_200E_200E_206D_206C_202E_200C_202C_202E_206E_206A_200F_206D_206D_200C_206C_206B_200F_206C_200B_200C_200F_206A_200C_202A_200F_200D_200C_202A_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) { P_0.Update += P_1; } static uint _200E_202A_200D_200B_200E_206D_202B_206C_200E_206E_202A_206C_202E_206A_202B_206E_200D_200B_206D_206F_206B_200E_206D_206F_202B_202B_202E_206C_202C_206D_206E_206B_200F_206A_200D_202E_200D_200D_202E_200F_202E(IClientState P_0) { return P_0.TerritoryType; } static void _206D_202E_202B_202D_202A_200D_200E_200F_202D_202A_206B_202E_200C_206A_202B_200E_206E_200B_202C_202E_206E_200E_202A_206E_206C_200F_200F_206A_200D_200D_202A_200B_206E_200C_206F_200F_200E_200D_206E_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) { P_0.LogError(P_1, P_2, P_3); } static void _206A_200F_206A_200D_206B_200D_202B_202E_202E_206A_202D_202B_200B_202A_200C_202E_200E_202C_206E_206B_200F_202E_202B_206E_206F_200F_200C_202D_206E_200D_202D_202B_206F_206C_202C_202B_206F_200C_206B_206B_202E(PluginFeaturePauser P_0, IEnumerable P_1) { P_0.Disable(P_1); } static void _200C_202A_200E_200E_206A_202C_202B_206F_202A_206C_200F_200F_200B_202C_206C_200F_206A_202B_200F_200E_206C_206B_206C_206F_206F_202C_200D_202D_202E_202A_202C_202D_202C_206D_200E_200B_202D_206F_202C_202E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) { P_0.Update -= P_1; } static void _200E_206E_200B_206C_206E_206C_206E_202C_206F_202E_206D_200B_200C_206B_202B_200E_200C_200E_206A_202C_202C_200D_206C_200B_206F_206E_200C_206D_202E_202E_200E_200E_206E_200D_202D_206D_202B_200D_202B_202A_202E(PluginFeaturePauser P_0) { P_0.Dispose(); } static void _206D_206C_200B_202A_200F_206B_202E_200B_200F_200D_200F_202C_206B_206D_202B_202E_206E_200B_200E_206D_202B_206B_206C_200C_202A_206A_202C_200C_200D_202C_206D_200D_202C_206C_206C_206F_202C_202D_200D_202B_202E(PluginFeaturePauser P_0) { P_0.Restore(); } }