qstcompanion v1.0.6
This commit is contained in:
parent
5e1e1decc5
commit
ada27cf05b
30 changed files with 3403 additions and 426 deletions
|
|
@ -1,7 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
|
@ -28,6 +27,8 @@ public class SubmarineManager : IDisposable
|
|||
|
||||
private bool submarinesPaused;
|
||||
|
||||
private bool externalPause;
|
||||
|
||||
private bool submarinesWaitingForSeq0;
|
||||
|
||||
private bool submarineReloginInProgress;
|
||||
|
|
@ -36,7 +37,17 @@ public class SubmarineManager : IDisposable
|
|||
|
||||
private string? originalCharacterForSubmarines;
|
||||
|
||||
public bool IsSubmarinePaused => submarinesPaused;
|
||||
public bool IsSubmarinePaused
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!submarinesPaused)
|
||||
{
|
||||
return externalPause;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsWaitingForSequence0 => submarinesWaitingForSeq0;
|
||||
|
||||
|
|
@ -44,6 +55,12 @@ public class SubmarineManager : IDisposable
|
|||
|
||||
public bool IsSubmarineJustCompleted => submarineJustCompleted;
|
||||
|
||||
public void SetExternalPause(bool paused)
|
||||
{
|
||||
externalPause = paused;
|
||||
log.Information($"[SubmarineManager] External pause set to: {paused}");
|
||||
}
|
||||
|
||||
public SubmarineManager(IPluginLog log, AutoRetainerIPC autoRetainerIPC, Configuration config, ICommandManager? commandManager = null, IFramework? framework = null)
|
||||
{
|
||||
this.log = log;
|
||||
|
|
@ -88,7 +105,7 @@ public class SubmarineManager : IDisposable
|
|||
|
||||
public bool CheckSubmarines()
|
||||
{
|
||||
if (!config.EnableSubmarineCheck)
|
||||
if (!config.EnableSubmarineCheck || externalPause)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -154,7 +171,7 @@ public class SubmarineManager : IDisposable
|
|||
|
||||
public int CheckSubmarinesSoon()
|
||||
{
|
||||
if (!config.EnableSubmarineCheck)
|
||||
if (!config.EnableSubmarineCheck || externalPause)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -230,25 +247,39 @@ public class SubmarineManager : IDisposable
|
|||
{
|
||||
JObject json = JObject.Parse(jsonContent);
|
||||
HashSet<string> enabledSubs = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
||||
if (json.SelectTokens("$..EnabledSubs").FirstOrDefault() is JArray enabledSubsArray)
|
||||
IEnumerable<JToken> enumerable = json.SelectTokens("$..EnabledSubs");
|
||||
int arrayCount = 0;
|
||||
foreach (JToken item in enumerable)
|
||||
{
|
||||
foreach (JToken item in enabledSubsArray)
|
||||
if (!(item is JArray enabledSubsArray))
|
||||
{
|
||||
string subName = item.Value<string>();
|
||||
continue;
|
||||
}
|
||||
arrayCount++;
|
||||
foreach (JToken item2 in enabledSubsArray)
|
||||
{
|
||||
string subName = item2.Value<string>();
|
||||
if (!string.IsNullOrEmpty(subName))
|
||||
{
|
||||
enabledSubs.Add(subName);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (arrayCount > 0)
|
||||
{
|
||||
if (enabledSubs.Count > 0)
|
||||
{
|
||||
log.Information($"[SubmarineManager] Found {enabledSubs.Count} enabled submarines: {string.Join(", ", enabledSubs)}");
|
||||
log.Information($"[SubmarineManager] Found {enabledSubs.Count} unique submarine name(s) across {arrayCount} character(s): {string.Join(", ", enabledSubs)}");
|
||||
}
|
||||
else
|
||||
{
|
||||
log.Information("[SubmarineManager] EnabledSubs array found but empty - NO submarines will be checked");
|
||||
log.Information($"[SubmarineManager] Found {arrayCount} EnabledSubs array(s) but all empty - NO submarines will be checked");
|
||||
}
|
||||
FindReturnTimes(json, returnTimes, enabledSubs);
|
||||
if (returnTimes.Count > 0)
|
||||
{
|
||||
log.Information($"[SubmarineManager] Total submarines to monitor: {returnTimes.Count} (including same-named subs from different characters)");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -281,10 +312,6 @@ public class SubmarineManager : IDisposable
|
|||
{
|
||||
long returnTime = returnTimeToken.Value<long>();
|
||||
returnTimes.Add(returnTime);
|
||||
if (enabledSubs != null)
|
||||
{
|
||||
log.Debug($"[SubmarineManager] Including submarine '{submarineName}' (ReturnTime: {returnTime})");
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue