muffin v7.38.2
This commit is contained in:
parent
0336b9c9e9
commit
bbc394c386
10 changed files with 737 additions and 437 deletions
|
|
@ -72,6 +72,18 @@ internal sealed class QuestionableIpc : IDisposable
|
|||
|
||||
private const string IpcExportQuestPriority = "Questionable.ExportQuestPriority";
|
||||
|
||||
private const string IpcGetDefaultDutyMode = "Questionable.GetDefaultDutyMode";
|
||||
|
||||
private const string IpcSetDefaultDutyMode = "Questionable.SetDefaultDutyMode";
|
||||
|
||||
private const string IpcGetDutyModeOverride = "Questionable.GetDutyModeOverride";
|
||||
|
||||
private const string IpcSetDutyModeOverride = "Questionable.SetDutyModeOverride";
|
||||
|
||||
private const string IpcClearDutyModeOverride = "Questionable.ClearDutyModeOverride";
|
||||
|
||||
private const string IpcClearAllDutyModeOverrides = "Questionable.ClearAllDutyModeOverrides";
|
||||
|
||||
private readonly QuestController _questController;
|
||||
|
||||
private readonly QuestRegistry _questRegistry;
|
||||
|
|
@ -80,6 +92,10 @@ internal sealed class QuestionableIpc : IDisposable
|
|||
|
||||
private readonly ManualPriorityComponent _manualPriorityComponent;
|
||||
|
||||
private readonly Configuration _configuration;
|
||||
|
||||
private readonly IDalamudPluginInterface _pluginInterface;
|
||||
|
||||
private readonly ICallGateProvider<bool> _isRunning;
|
||||
|
||||
private readonly ICallGateProvider<string?> _getCurrentQuestId;
|
||||
|
|
@ -114,13 +130,27 @@ internal sealed class QuestionableIpc : IDisposable
|
|||
|
||||
private readonly ICallGateProvider<string> _exportQuestPriority;
|
||||
|
||||
public QuestionableIpc(QuestController questController, EventInfoComponent eventInfoComponent, QuestRegistry questRegistry, QuestFunctions questFunctions, ManualPriorityComponent manualPriorityComponent, IDalamudPluginInterface pluginInterface)
|
||||
private readonly ICallGateProvider<int> _getDefaultDutyMode;
|
||||
|
||||
private readonly ICallGateProvider<int, bool> _setDefaultDutyMode;
|
||||
|
||||
private readonly ICallGateProvider<uint, int> _getDutyModeOverride;
|
||||
|
||||
private readonly ICallGateProvider<uint, int, bool> _setDutyModeOverride;
|
||||
|
||||
private readonly ICallGateProvider<uint, bool> _clearDutyModeOverride;
|
||||
|
||||
private readonly ICallGateProvider<bool> _clearAllDutyModeOverrides;
|
||||
|
||||
public QuestionableIpc(QuestController questController, EventInfoComponent eventInfoComponent, QuestRegistry questRegistry, QuestFunctions questFunctions, ManualPriorityComponent manualPriorityComponent, Configuration configuration, IDalamudPluginInterface pluginInterface)
|
||||
{
|
||||
QuestionableIpc questionableIpc = this;
|
||||
_questController = questController;
|
||||
_questRegistry = questRegistry;
|
||||
_questFunctions = questFunctions;
|
||||
_manualPriorityComponent = manualPriorityComponent;
|
||||
_configuration = configuration;
|
||||
_pluginInterface = pluginInterface;
|
||||
_isRunning = pluginInterface.GetIpcProvider<bool>("Questionable.IsRunning");
|
||||
_isRunning.RegisterFunc(() => questController.AutomationType != QuestController.EAutomationType.Manual || questController.IsRunning);
|
||||
_getCurrentQuestId = pluginInterface.GetIpcProvider<string>("Questionable.GetCurrentQuestId");
|
||||
|
|
@ -156,6 +186,18 @@ internal sealed class QuestionableIpc : IDisposable
|
|||
_insertQuestPriority.RegisterFunc(InsertQuestPriority);
|
||||
_exportQuestPriority = pluginInterface.GetIpcProvider<string>("Questionable.ExportQuestPriority");
|
||||
_exportQuestPriority.RegisterFunc(_manualPriorityComponent.EncodeQuestPriority);
|
||||
_getDefaultDutyMode = pluginInterface.GetIpcProvider<int>("Questionable.GetDefaultDutyMode");
|
||||
_getDefaultDutyMode.RegisterFunc(GetDefaultDutyMode);
|
||||
_setDefaultDutyMode = pluginInterface.GetIpcProvider<int, bool>("Questionable.SetDefaultDutyMode");
|
||||
_setDefaultDutyMode.RegisterFunc(SetDefaultDutyMode);
|
||||
_getDutyModeOverride = pluginInterface.GetIpcProvider<uint, int>("Questionable.GetDutyModeOverride");
|
||||
_getDutyModeOverride.RegisterFunc(GetDutyModeOverride);
|
||||
_setDutyModeOverride = pluginInterface.GetIpcProvider<uint, int, bool>("Questionable.SetDutyModeOverride");
|
||||
_setDutyModeOverride.RegisterFunc(SetDutyModeOverride);
|
||||
_clearDutyModeOverride = pluginInterface.GetIpcProvider<uint, bool>("Questionable.ClearDutyModeOverride");
|
||||
_clearDutyModeOverride.RegisterFunc(ClearDutyModeOverride);
|
||||
_clearAllDutyModeOverrides = pluginInterface.GetIpcProvider<bool>("Questionable.ClearAllDutyModeOverrides");
|
||||
_clearAllDutyModeOverrides.RegisterFunc(ClearAllDutyModeOverrides);
|
||||
}
|
||||
|
||||
private bool StartQuest(string questId, bool single)
|
||||
|
|
@ -296,8 +338,67 @@ internal sealed class QuestionableIpc : IDisposable
|
|||
return true;
|
||||
}
|
||||
|
||||
private int GetDefaultDutyMode()
|
||||
{
|
||||
return (int)_configuration.Duties.DefaultDutyMode;
|
||||
}
|
||||
|
||||
private bool SetDefaultDutyMode(int dutyMode)
|
||||
{
|
||||
if (!Enum.IsDefined(typeof(EDutyMode), dutyMode))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
_configuration.Duties.DefaultDutyMode = (EDutyMode)dutyMode;
|
||||
_pluginInterface.SavePluginConfig(_configuration);
|
||||
return true;
|
||||
}
|
||||
|
||||
private int GetDutyModeOverride(uint contentFinderConditionId)
|
||||
{
|
||||
if (_configuration.Duties.DutyModeOverrides.TryGetValue(contentFinderConditionId, out var value))
|
||||
{
|
||||
return (int)value;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
private bool SetDutyModeOverride(uint contentFinderConditionId, int dutyMode)
|
||||
{
|
||||
if (!Enum.IsDefined(typeof(EDutyMode), dutyMode))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
_configuration.Duties.DutyModeOverrides[contentFinderConditionId] = (EDutyMode)dutyMode;
|
||||
_pluginInterface.SavePluginConfig(_configuration);
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool ClearDutyModeOverride(uint contentFinderConditionId)
|
||||
{
|
||||
bool num = _configuration.Duties.DutyModeOverrides.Remove(contentFinderConditionId);
|
||||
if (num)
|
||||
{
|
||||
_pluginInterface.SavePluginConfig(_configuration);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
private bool ClearAllDutyModeOverrides()
|
||||
{
|
||||
_configuration.Duties.DutyModeOverrides.Clear();
|
||||
_pluginInterface.SavePluginConfig(_configuration);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_clearAllDutyModeOverrides.UnregisterFunc();
|
||||
_clearDutyModeOverride.UnregisterFunc();
|
||||
_setDutyModeOverride.UnregisterFunc();
|
||||
_getDutyModeOverride.UnregisterFunc();
|
||||
_setDefaultDutyMode.UnregisterFunc();
|
||||
_getDefaultDutyMode.UnregisterFunc();
|
||||
_exportQuestPriority.UnregisterFunc();
|
||||
_insertQuestPriority.UnregisterFunc();
|
||||
_clearQuestPriority.UnregisterFunc();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue