Ensure no two discard processes run at the same time
This commit is contained in:
parent
7396aa97d1
commit
51d94c923a
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<Version>5.2</Version>
|
<Version>5.3</Version>
|
||||||
<LangVersion>12</LangVersion>
|
<LangVersion>12</LangVersion>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||||
|
@ -92,7 +92,10 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
|||||||
_configWindow.ConfigSaved += (_, _) => _discardWindow.RefreshInventory(true);
|
_configWindow.ConfigSaved += (_, _) => _discardWindow.RefreshInventory(true);
|
||||||
_discardWindow.OpenConfigurationClicked += (_, _) => OpenConfigUi();
|
_discardWindow.OpenConfigurationClicked += (_, _) => OpenConfigUi();
|
||||||
_discardWindow.DiscardAllClicked += (_, filter) =>
|
_discardWindow.DiscardAllClicked += (_, filter) =>
|
||||||
_taskManager!.Enqueue(() => DiscardNextItem(PostProcessType.ManuallyStarted, filter));
|
{
|
||||||
|
_taskManager!.Abort();
|
||||||
|
_taskManager.Enqueue(() => DiscardNextItem(PostProcessType.ManuallyStarted, filter));
|
||||||
|
};
|
||||||
|
|
||||||
ECommonsMain.Init(_pluginInterface, this);
|
ECommonsMain.Init(_pluginInterface, this);
|
||||||
_autoRetainerApi = new();
|
_autoRetainerApi = new();
|
||||||
@ -151,11 +154,13 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
|||||||
|
|
||||||
private void DoRetainerPostProcess(string retainerName)
|
private void DoRetainerPostProcess(string retainerName)
|
||||||
{
|
{
|
||||||
|
_taskManager.Abort();
|
||||||
_taskManager.Enqueue(() => DiscardNextItem(PostProcessType.Retainer, ItemFilter.None));
|
_taskManager.Enqueue(() => DiscardNextItem(PostProcessType.Retainer, ItemFilter.None));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DoCharacterPostProcess()
|
private void DoCharacterPostProcess()
|
||||||
{
|
{
|
||||||
|
_taskManager.Abort();
|
||||||
_taskManager.Enqueue(() => DiscardNextItem(PostProcessType.Character, ItemFilter.None));
|
_taskManager.Enqueue(() => DiscardNextItem(PostProcessType.Character, ItemFilter.None));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,6 +173,7 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
|||||||
|
|
||||||
private void DiscardAll(string command, string arguments)
|
private void DiscardAll(string command, string arguments)
|
||||||
{
|
{
|
||||||
|
_taskManager.Abort();
|
||||||
_taskManager.Enqueue(() => DiscardNextItem(PostProcessType.ManuallyStarted, ItemFilter.None));
|
_taskManager.Enqueue(() => DiscardNextItem(PostProcessType.ManuallyStarted, ItemFilter.None));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,7 +271,7 @@ public sealed class AutoDiscardPlogon : IDalamudPlugin
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_pluginLog.Information($"ContinueAfterDiscard: Discovered different item to discard");
|
_pluginLog.Information("ContinueAfterDiscard: Discovered different item to discard");
|
||||||
_taskManager.EnqueueImmediate(() => DiscardNextItem(type, itemFilter));
|
_taskManager.EnqueueImmediate(() => DiscardNextItem(type, itemFilter));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user