forked from liza/Deliveroo
API 9
This commit is contained in:
parent
51d1d6f9a3
commit
67b6981f7b
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net7.0-windows</TargetFramework>
|
||||||
<Version>1.0</Version>
|
<Version>2.0</Version>
|
||||||
<LangVersion>11.0</LangVersion>
|
<LangVersion>11.0</LangVersion>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="DalamudPackager" Version="2.1.11"/>
|
<PackageReference Include="DalamudPackager" Version="2.1.12"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -34,10 +34,6 @@
|
|||||||
<HintPath>$(DalamudLibPath)ImGui.NET.dll</HintPath>
|
<HintPath>$(DalamudLibPath)ImGui.NET.dll</HintPath>
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="ImGuiScene">
|
|
||||||
<HintPath>$(DalamudLibPath)ImGuiScene.dll</HintPath>
|
|
||||||
<Private>false</Private>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Lumina">
|
<Reference Include="Lumina">
|
||||||
<HintPath>$(DalamudLibPath)Lumina.dll</HintPath>
|
<HintPath>$(DalamudLibPath)Lumina.dll</HintPath>
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Logging;
|
|
||||||
using Deliveroo.GameData;
|
using Deliveroo.GameData;
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
using ValueType = FFXIVClientStructs.FFXIV.Component.GUI.ValueType;
|
using ValueType = FFXIVClientStructs.FFXIV.Component.GUI.ValueType;
|
||||||
@ -51,7 +50,7 @@ partial class DeliverooPlugin
|
|||||||
if (TryGetAddonByName<AtkUnitBase>("GrandCompanyExchange", out var addonExchange) &&
|
if (TryGetAddonByName<AtkUnitBase>("GrandCompanyExchange", out var addonExchange) &&
|
||||||
IsAddonReady(addonExchange))
|
IsAddonReady(addonExchange))
|
||||||
{
|
{
|
||||||
PluginLog.Information($"Selecting tier 1, {(int)item.Tier - 1}");
|
_pluginLog.Information($"Selecting tier 1, {(int)item.Tier - 1}");
|
||||||
var selectRank = stackalloc AtkValue[]
|
var selectRank = stackalloc AtkValue[]
|
||||||
{
|
{
|
||||||
new() { Type = ValueType.Int, Int = 1 },
|
new() { Type = ValueType.Int, Int = 1 },
|
||||||
@ -82,7 +81,7 @@ partial class DeliverooPlugin
|
|||||||
if (TryGetAddonByName<AtkUnitBase>("GrandCompanyExchange", out var addonExchange) &&
|
if (TryGetAddonByName<AtkUnitBase>("GrandCompanyExchange", out var addonExchange) &&
|
||||||
IsAddonReady(addonExchange))
|
IsAddonReady(addonExchange))
|
||||||
{
|
{
|
||||||
PluginLog.Information($"Selecting subcategory 2, {(int)item.SubCategory}");
|
_pluginLog.Information($"Selecting subcategory 2, {(int)item.SubCategory}");
|
||||||
var selectType = stackalloc AtkValue[]
|
var selectType = stackalloc AtkValue[]
|
||||||
{
|
{
|
||||||
new() { Type = ValueType.Int, Int = 2 },
|
new() { Type = ValueType.Int, Int = 2 },
|
||||||
@ -131,7 +130,7 @@ partial class DeliverooPlugin
|
|||||||
uint itemId = addonExchange->AtkValues[317 + i].UInt;
|
uint itemId = addonExchange->AtkValues[317 + i].UInt;
|
||||||
if (itemId == item.ItemId)
|
if (itemId == item.ItemId)
|
||||||
{
|
{
|
||||||
PluginLog.Information($"Selecting item {itemId}, {i}");
|
_pluginLog.Information($"Selecting item {itemId}, {i}");
|
||||||
long toBuy = (GetCurrentSealCount() - _configuration.ReservedSealCount) / item.SealCost;
|
long toBuy = (GetCurrentSealCount() - _configuration.ReservedSealCount) / item.SealCost;
|
||||||
toBuy = Math.Min(toBuy, item.EffectiveLimit - GetItemCount(item.ItemId));
|
toBuy = Math.Min(toBuy, item.EffectiveLimit - GetItemCount(item.ItemId));
|
||||||
|
|
||||||
@ -140,7 +139,7 @@ partial class DeliverooPlugin
|
|||||||
|
|
||||||
if (toBuy <= 0)
|
if (toBuy <= 0)
|
||||||
{
|
{
|
||||||
PluginLog.Information($"Items to buy = {toBuy}");
|
_pluginLog.Information($"Items to buy = {toBuy}");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,7 +161,7 @@ partial class DeliverooPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginLog.Warning("Could not find selected reward item");
|
_pluginLog.Warning("Could not find selected reward item");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ using System.Linq;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using Dalamud.Game.ClientState.Objects.Enums;
|
using Dalamud.Game.ClientState.Objects.Enums;
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Logging;
|
|
||||||
using Dalamud.Memory;
|
using Dalamud.Memory;
|
||||||
using Deliveroo.GameData;
|
using Deliveroo.GameData;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||||
@ -21,7 +20,7 @@ partial class DeliverooPlugin
|
|||||||
{
|
{
|
||||||
private unsafe void InteractWithTarget(GameObject obj)
|
private unsafe void InteractWithTarget(GameObject obj)
|
||||||
{
|
{
|
||||||
PluginLog.Information($"Setting target to {obj}");
|
_pluginLog.Information($"Setting target to {obj}");
|
||||||
if (_targetManager.Target == null || _targetManager.Target != obj)
|
if (_targetManager.Target == null || _targetManager.Target != obj)
|
||||||
{
|
{
|
||||||
_targetManager.Target = obj;
|
_targetManager.Target = obj;
|
||||||
@ -165,12 +164,9 @@ partial class DeliverooPlugin
|
|||||||
var unitManagers = &AtkStage.GetSingleton()->RaptureAtkUnitManager->AtkUnitManager.DepthLayerOneList;
|
var unitManagers = &AtkStage.GetSingleton()->RaptureAtkUnitManager->AtkUnitManager.DepthLayerOneList;
|
||||||
for (var i = 0; i < 18; i++)
|
for (var i = 0; i < 18; i++)
|
||||||
{
|
{
|
||||||
var unitManager = &unitManagers[i];
|
foreach (AtkUnitBase* unitBase in unitManagers[i].EntriesSpan)
|
||||||
var unitBaseArray = &(unitManager->AtkUnitEntries);
|
|
||||||
for (var j = 0; j < unitManager->Count; j++)
|
|
||||||
{
|
{
|
||||||
var unitBase = unitBaseArray[j];
|
if (unitBase != null && unitBase->ID == id)
|
||||||
if (unitBase->ID == id)
|
|
||||||
{
|
{
|
||||||
return unitBase;
|
return unitBase;
|
||||||
}
|
}
|
||||||
@ -219,7 +215,7 @@ partial class DeliverooPlugin
|
|||||||
IsAddonReady(&addonSelectYesno->AtkUnitBase) &&
|
IsAddonReady(&addonSelectYesno->AtkUnitBase) &&
|
||||||
predicate(MemoryHelper.ReadSeString(&addonSelectYesno->PromptText->NodeText).ToString()))
|
predicate(MemoryHelper.ReadSeString(&addonSelectYesno->PromptText->NodeText).ToString()))
|
||||||
{
|
{
|
||||||
PluginLog.Information(
|
_pluginLog.Information(
|
||||||
$"Selecting choice={choice} for '{MemoryHelper.ReadSeString(&addonSelectYesno->PromptText->NodeText)}'");
|
$"Selecting choice={choice} for '{MemoryHelper.ReadSeString(&addonSelectYesno->PromptText->NodeText)}'");
|
||||||
|
|
||||||
addonSelectYesno->AtkUnitBase.FireCallbackInt(choice);
|
addonSelectYesno->AtkUnitBase.FireCallbackInt(choice);
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Logging;
|
|
||||||
using Dalamud.Memory;
|
|
||||||
using Deliveroo.GameData;
|
using Deliveroo.GameData;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||||
@ -46,12 +43,12 @@ partial class DeliverooPlugin
|
|||||||
var addonGc = (AddonGrandCompanySupplyList*)addon;
|
var addonGc = (AddonGrandCompanySupplyList*)addon;
|
||||||
if (addonGc->SelectedTab == 2)
|
if (addonGc->SelectedTab == 2)
|
||||||
{
|
{
|
||||||
PluginLog.Information("Tab already selected, probably due to haseltweaks");
|
_pluginLog.Information("Tab already selected, probably due to haseltweaks");
|
||||||
CurrentStage = Stage.SelectItemToTurnIn;
|
CurrentStage = Stage.SelectItemToTurnIn;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginLog.Information("Switching to expert deliveries");
|
_pluginLog.Information("Switching to expert deliveries");
|
||||||
var selectExpertDeliveryTab = stackalloc AtkValue[]
|
var selectExpertDeliveryTab = stackalloc AtkValue[]
|
||||||
{
|
{
|
||||||
new() { Type = ValueType.Int, Int = 0 },
|
new() { Type = ValueType.Int, Int = 0 },
|
||||||
|
@ -1,24 +1,19 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Dalamud.Data;
|
|
||||||
using Dalamud.Game;
|
|
||||||
using Dalamud.Game.ClientState;
|
|
||||||
using Dalamud.Game.ClientState.Conditions;
|
using Dalamud.Game.ClientState.Conditions;
|
||||||
using Dalamud.Game.ClientState.Objects;
|
using Dalamud.Game.ClientState.Objects;
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Game.Command;
|
using Dalamud.Game.Command;
|
||||||
using Dalamud.Game.Gui;
|
|
||||||
using Dalamud.Interface.Windowing;
|
using Dalamud.Interface.Windowing;
|
||||||
using Dalamud.Logging;
|
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
|
using Dalamud.Plugin.Services;
|
||||||
using Deliveroo.External;
|
using Deliveroo.External;
|
||||||
using Deliveroo.GameData;
|
using Deliveroo.GameData;
|
||||||
using Deliveroo.Windows;
|
using Deliveroo.Windows;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
using Lumina.Excel.GeneratedSheets;
|
using Lumina.Excel.GeneratedSheets;
|
||||||
using Condition = Dalamud.Game.ClientState.Conditions.Condition;
|
|
||||||
|
|
||||||
namespace Deliveroo;
|
namespace Deliveroo;
|
||||||
|
|
||||||
@ -27,14 +22,15 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
private readonly WindowSystem _windowSystem = new(typeof(DeliverooPlugin).AssemblyQualifiedName);
|
private readonly WindowSystem _windowSystem = new(typeof(DeliverooPlugin).AssemblyQualifiedName);
|
||||||
|
|
||||||
private readonly DalamudPluginInterface _pluginInterface;
|
private readonly DalamudPluginInterface _pluginInterface;
|
||||||
private readonly ChatGui _chatGui;
|
private readonly IChatGui _chatGui;
|
||||||
private readonly GameGui _gameGui;
|
private readonly IGameGui _gameGui;
|
||||||
private readonly Framework _framework;
|
private readonly IFramework _framework;
|
||||||
private readonly ClientState _clientState;
|
private readonly IClientState _clientState;
|
||||||
private readonly ObjectTable _objectTable;
|
private readonly IObjectTable _objectTable;
|
||||||
private readonly TargetManager _targetManager;
|
private readonly ITargetManager _targetManager;
|
||||||
private readonly Condition _condition;
|
private readonly ICondition _condition;
|
||||||
private readonly CommandManager _commandManager;
|
private readonly ICommandManager _commandManager;
|
||||||
|
private readonly IPluginLog _pluginLog;
|
||||||
|
|
||||||
// ReSharper disable once PrivateFieldCanBeConvertedToLocalVariable
|
// ReSharper disable once PrivateFieldCanBeConvertedToLocalVariable
|
||||||
private readonly Configuration _configuration;
|
private readonly Configuration _configuration;
|
||||||
@ -53,9 +49,9 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
private List<PurchaseItemRequest> _itemsToPurchaseNow = new();
|
private List<PurchaseItemRequest> _itemsToPurchaseNow = new();
|
||||||
private (bool Saved, bool? PreviousState) _yesAlreadyState = (false, null);
|
private (bool Saved, bool? PreviousState) _yesAlreadyState = (false, null);
|
||||||
|
|
||||||
public DeliverooPlugin(DalamudPluginInterface pluginInterface, ChatGui chatGui, GameGui gameGui,
|
public DeliverooPlugin(DalamudPluginInterface pluginInterface, IChatGui chatGui, IGameGui gameGui,
|
||||||
Framework framework, ClientState clientState, ObjectTable objectTable, TargetManager targetManager,
|
IFramework framework, IClientState clientState, IObjectTable objectTable, ITargetManager targetManager,
|
||||||
DataManager dataManager, Condition condition, CommandManager commandManager)
|
IDataManager dataManager, ICondition condition, ICommandManager commandManager, IPluginLog pluginLog)
|
||||||
{
|
{
|
||||||
_pluginInterface = pluginInterface;
|
_pluginInterface = pluginInterface;
|
||||||
_chatGui = chatGui;
|
_chatGui = chatGui;
|
||||||
@ -66,12 +62,13 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
_targetManager = targetManager;
|
_targetManager = targetManager;
|
||||||
_condition = condition;
|
_condition = condition;
|
||||||
_commandManager = commandManager;
|
_commandManager = commandManager;
|
||||||
|
_pluginLog = pluginLog;
|
||||||
|
|
||||||
var dalamudReflector = new DalamudReflector(_pluginInterface, _framework);
|
var dalamudReflector = new DalamudReflector(_pluginInterface, _framework, _pluginLog);
|
||||||
_yesAlreadyIpc = new YesAlreadyIpc(dalamudReflector);
|
_yesAlreadyIpc = new YesAlreadyIpc(dalamudReflector);
|
||||||
_configuration = (Configuration?)_pluginInterface.GetPluginConfig() ?? new Configuration();
|
_configuration = (Configuration?)_pluginInterface.GetPluginConfig() ?? new Configuration();
|
||||||
_gcRewardsCache = new GcRewardsCache(dataManager);
|
_gcRewardsCache = new GcRewardsCache(dataManager);
|
||||||
_configWindow = new ConfigWindow(_pluginInterface, this, _configuration, _gcRewardsCache, _clientState);
|
_configWindow = new ConfigWindow(_pluginInterface, this, _configuration, _gcRewardsCache, _clientState, _pluginLog);
|
||||||
_windowSystem.AddWindow(_configWindow);
|
_windowSystem.AddWindow(_configWindow);
|
||||||
_turnInWindow = new TurnInWindow(this, _pluginInterface, _configuration, _gcRewardsCache, _configWindow);
|
_turnInWindow = new TurnInWindow(this, _pluginInterface, _configuration, _gcRewardsCache, _configWindow);
|
||||||
_windowSystem.AddWindow(_turnInWindow);
|
_windowSystem.AddWindow(_turnInWindow);
|
||||||
@ -89,7 +86,7 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (_clientState.IsLoggedIn)
|
if (_clientState.IsLoggedIn)
|
||||||
Login(this, EventArgs.Empty);
|
Login();
|
||||||
|
|
||||||
if (_configuration.AddVentureIfNoItemToPurchaseSelected())
|
if (_configuration.AddVentureIfNoItemToPurchaseSelected())
|
||||||
_pluginInterface.SavePluginConfig(_configuration);
|
_pluginInterface.SavePluginConfig(_configuration);
|
||||||
@ -107,13 +104,13 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
{
|
{
|
||||||
if (_currentStageInternal != value)
|
if (_currentStageInternal != value)
|
||||||
{
|
{
|
||||||
PluginLog.Information($"Changing stage from {_currentStageInternal} to {value}");
|
_pluginLog.Information($"Changing stage from {_currentStageInternal} to {value}");
|
||||||
_currentStageInternal = value;
|
_currentStageInternal = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Login(object? sender, EventArgs e)
|
private void Login()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -131,27 +128,27 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
CharacterConfiguration.Save(_pluginInterface);
|
CharacterConfiguration.Save(_pluginInterface);
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginLog.Information($"Loaded character-specific information for {_clientState.LocalContentId}");
|
_pluginLog.Information($"Loaded character-specific information for {_clientState.LocalContentId}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PluginLog.Verbose(
|
_pluginLog.Verbose(
|
||||||
$"No character-specific information for {_clientState.LocalContentId}");
|
$"No character-specific information for {_clientState.LocalContentId}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
PluginLog.Error(ex, "Unable to load character configuration");
|
_pluginLog.Error(ex, "Unable to load character configuration");
|
||||||
CharacterConfiguration = null;
|
CharacterConfiguration = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Logout(object? sender, EventArgs e)
|
private void Logout()
|
||||||
{
|
{
|
||||||
CharacterConfiguration = null;
|
CharacterConfiguration = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void FrameworkUpdate(Framework f)
|
private unsafe void FrameworkUpdate(IFramework f)
|
||||||
{
|
{
|
||||||
_turnInWindow.Error = string.Empty;
|
_turnInWindow.Error = string.Empty;
|
||||||
if (!_clientState.IsLoggedIn ||
|
if (!_clientState.IsLoggedIn ||
|
||||||
@ -191,12 +188,12 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
_itemsToPurchaseNow = _turnInWindow.SelectedItems;
|
_itemsToPurchaseNow = _turnInWindow.SelectedItems;
|
||||||
if (_itemsToPurchaseNow.Count > 0)
|
if (_itemsToPurchaseNow.Count > 0)
|
||||||
{
|
{
|
||||||
PluginLog.Information("Items to purchase:");
|
_pluginLog.Information("Items to purchase:");
|
||||||
foreach (var item in _itemsToPurchaseNow)
|
foreach (var item in _itemsToPurchaseNow)
|
||||||
PluginLog.Information($" {item.Name} (limit = {item.EffectiveLimit})");
|
_pluginLog.Information($" {item.Name} (limit = {item.EffectiveLimit})");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
PluginLog.Information("No items to purchase configured or available");
|
_pluginLog.Information("No items to purchase configured or available");
|
||||||
|
|
||||||
|
|
||||||
var nextItem = GetNextItemToPurchase();
|
var nextItem = GetNextItemToPurchase();
|
||||||
@ -282,7 +279,7 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
PluginLog.Warning($"Unknown stage {CurrentStage}");
|
_pluginLog.Warning($"Unknown stage {CurrentStage}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -307,19 +304,19 @@ public sealed partial class DeliverooPlugin : IDalamudPlugin
|
|||||||
{
|
{
|
||||||
if (_yesAlreadyState.Saved)
|
if (_yesAlreadyState.Saved)
|
||||||
{
|
{
|
||||||
PluginLog.Information("Not overwriting yesalready state");
|
_pluginLog.Information("Not overwriting yesalready state");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_yesAlreadyState = (true, _yesAlreadyIpc.DisableIfNecessary());
|
_yesAlreadyState = (true, _yesAlreadyIpc.DisableIfNecessary());
|
||||||
PluginLog.Information($"Previous yesalready state: {_yesAlreadyState.PreviousState}");
|
_pluginLog.Information($"Previous yesalready state: {_yesAlreadyState.PreviousState}");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RestoreYesAlready()
|
private void RestoreYesAlready()
|
||||||
{
|
{
|
||||||
if (_yesAlreadyState.Saved)
|
if (_yesAlreadyState.Saved)
|
||||||
{
|
{
|
||||||
PluginLog.Information($"Restoring previous yesalready state: {_yesAlreadyState.PreviousState}");
|
_pluginLog.Information($"Restoring previous yesalready state: {_yesAlreadyState.PreviousState}");
|
||||||
if (_yesAlreadyState.PreviousState == true)
|
if (_yesAlreadyState.PreviousState == true)
|
||||||
_yesAlreadyIpc.Enable();
|
_yesAlreadyIpc.Enable();
|
||||||
}
|
}
|
||||||
|
15
Deliveroo/External/DalamudReflector.cs
vendored
15
Deliveroo/External/DalamudReflector.cs
vendored
@ -6,6 +6,7 @@ using Dalamud.Plugin;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using Dalamud.Plugin.Services;
|
||||||
|
|
||||||
namespace Deliveroo.External;
|
namespace Deliveroo.External;
|
||||||
|
|
||||||
@ -17,14 +18,16 @@ namespace Deliveroo.External;
|
|||||||
internal sealed class DalamudReflector : IDisposable
|
internal sealed class DalamudReflector : IDisposable
|
||||||
{
|
{
|
||||||
private readonly DalamudPluginInterface _pluginInterface;
|
private readonly DalamudPluginInterface _pluginInterface;
|
||||||
private readonly Framework _framework;
|
private readonly IFramework _framework;
|
||||||
|
private readonly IPluginLog _pluginLog;
|
||||||
private readonly Dictionary<string, IDalamudPlugin> _pluginCache = new();
|
private readonly Dictionary<string, IDalamudPlugin> _pluginCache = new();
|
||||||
private bool _pluginsChanged = false;
|
private bool _pluginsChanged = false;
|
||||||
|
|
||||||
public DalamudReflector(DalamudPluginInterface pluginInterface, Framework framework)
|
public DalamudReflector(DalamudPluginInterface pluginInterface, IFramework framework, IPluginLog pluginLog)
|
||||||
{
|
{
|
||||||
_pluginInterface = pluginInterface;
|
_pluginInterface = pluginInterface;
|
||||||
_framework = framework;
|
_framework = framework;
|
||||||
|
_pluginLog = pluginLog;
|
||||||
var pm = GetPluginManager();
|
var pm = GetPluginManager();
|
||||||
pm.GetType().GetEvent("OnInstalledPluginsChanged")!.AddEventHandler(pm, OnInstalledPluginsChanged);
|
pm.GetType().GetEvent("OnInstalledPluginsChanged")!.AddEventHandler(pm, OnInstalledPluginsChanged);
|
||||||
|
|
||||||
@ -39,7 +42,7 @@ internal sealed class DalamudReflector : IDisposable
|
|||||||
pm.GetType().GetEvent("OnInstalledPluginsChanged")!.RemoveEventHandler(pm, OnInstalledPluginsChanged);
|
pm.GetType().GetEvent("OnInstalledPluginsChanged")!.RemoveEventHandler(pm, OnInstalledPluginsChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FrameworkUpdate(Framework framework)
|
private void FrameworkUpdate(IFramework framework)
|
||||||
{
|
{
|
||||||
if (_pluginsChanged)
|
if (_pluginsChanged)
|
||||||
{
|
{
|
||||||
@ -80,7 +83,7 @@ internal sealed class DalamudReflector : IDisposable
|
|||||||
.GetField("instance", BindingFlags.NonPublic | BindingFlags.Instance)!.GetValue(t);
|
.GetField("instance", BindingFlags.NonPublic | BindingFlags.Instance)!.GetValue(t);
|
||||||
if (plugin == null)
|
if (plugin == null)
|
||||||
{
|
{
|
||||||
PluginLog.Warning($"[DalamudReflector] Found requested plugin {internalName} but it was null");
|
_pluginLog.Warning($"[DalamudReflector] Found requested plugin {internalName} but it was null");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -98,7 +101,7 @@ internal sealed class DalamudReflector : IDisposable
|
|||||||
{
|
{
|
||||||
if (!suppressErrors)
|
if (!suppressErrors)
|
||||||
{
|
{
|
||||||
PluginLog.Error(e, $"Can't find {internalName} plugin: {e.Message}");
|
_pluginLog.Error(e, $"Can't find {internalName} plugin: {e.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
instance = null;
|
instance = null;
|
||||||
@ -108,7 +111,7 @@ internal sealed class DalamudReflector : IDisposable
|
|||||||
|
|
||||||
private void OnInstalledPluginsChanged()
|
private void OnInstalledPluginsChanged()
|
||||||
{
|
{
|
||||||
PluginLog.Verbose("Installed plugins changed event fired");
|
_pluginLog.Verbose("Installed plugins changed event fired");
|
||||||
_pluginsChanged = true;
|
_pluginsChanged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Dalamud.Data;
|
using Dalamud.Plugin.Services;
|
||||||
using Lumina.Excel.GeneratedSheets;
|
using Lumina.Excel.GeneratedSheets;
|
||||||
using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany;
|
using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany;
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ namespace Deliveroo.GameData;
|
|||||||
|
|
||||||
internal sealed class GcRewardsCache
|
internal sealed class GcRewardsCache
|
||||||
{
|
{
|
||||||
public GcRewardsCache(DataManager dataManager)
|
public GcRewardsCache(IDataManager dataManager)
|
||||||
{
|
{
|
||||||
var categories = dataManager.GetExcelSheet<GCScripShopCategory>()!
|
var categories = dataManager.GetExcelSheet<GCScripShopCategory>()!
|
||||||
.Where(x => x.RowId > 0)
|
.Where(x => x.RowId > 0)
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using Dalamud.Game.ClientState;
|
|
||||||
using Dalamud.Interface;
|
using Dalamud.Interface;
|
||||||
using Dalamud.Interface.Components;
|
using Dalamud.Interface.Components;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Windowing;
|
using Dalamud.Interface.Windowing;
|
||||||
using Dalamud.Logging;
|
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
|
using Dalamud.Plugin.Services;
|
||||||
using Deliveroo.GameData;
|
using Deliveroo.GameData;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||||
using ImGuiNET;
|
using ImGuiNET;
|
||||||
@ -20,13 +20,14 @@ internal sealed class ConfigWindow : Window
|
|||||||
private readonly DeliverooPlugin _plugin;
|
private readonly DeliverooPlugin _plugin;
|
||||||
private readonly Configuration _configuration;
|
private readonly Configuration _configuration;
|
||||||
private readonly GcRewardsCache _gcRewardsCache;
|
private readonly GcRewardsCache _gcRewardsCache;
|
||||||
private readonly ClientState _clientState;
|
private readonly IClientState _clientState;
|
||||||
|
private readonly IPluginLog _pluginLog;
|
||||||
|
|
||||||
private readonly Dictionary<uint, GcRewardItem> _itemLookup;
|
private readonly Dictionary<uint, GcRewardItem> _itemLookup;
|
||||||
private uint _dragDropSource = 0;
|
private uint _dragDropSource = 0;
|
||||||
|
|
||||||
public ConfigWindow(DalamudPluginInterface pluginInterface, DeliverooPlugin plugin, Configuration configuration,
|
public ConfigWindow(DalamudPluginInterface pluginInterface, DeliverooPlugin plugin, Configuration configuration,
|
||||||
GcRewardsCache gcRewardsCache, ClientState clientState)
|
GcRewardsCache gcRewardsCache, IClientState clientState, IPluginLog pluginLog)
|
||||||
: base("Deliveroo - Configuration###DeliverooConfig")
|
: base("Deliveroo - Configuration###DeliverooConfig")
|
||||||
{
|
{
|
||||||
_pluginInterface = pluginInterface;
|
_pluginInterface = pluginInterface;
|
||||||
@ -34,6 +35,7 @@ internal sealed class ConfigWindow : Window
|
|||||||
_configuration = configuration;
|
_configuration = configuration;
|
||||||
_gcRewardsCache = gcRewardsCache;
|
_gcRewardsCache = gcRewardsCache;
|
||||||
_clientState = clientState;
|
_clientState = clientState;
|
||||||
|
_pluginLog = pluginLog;
|
||||||
|
|
||||||
_itemLookup = _gcRewardsCache.Rewards.Values
|
_itemLookup = _gcRewardsCache.Rewards.Values
|
||||||
.SelectMany(x => x)
|
.SelectMany(x => x)
|
||||||
@ -251,7 +253,7 @@ internal sealed class ConfigWindow : Window
|
|||||||
CachedWorldName = currentWorldName,
|
CachedWorldName = currentWorldName,
|
||||||
};
|
};
|
||||||
_plugin.CharacterConfiguration.Save(_pluginInterface);
|
_plugin.CharacterConfiguration.Save(_pluginInterface);
|
||||||
PluginLog.Information(
|
_pluginLog.Information(
|
||||||
$"Created character-specific configuration for {_clientState.LocalContentId}");
|
$"Created character-specific configuration for {_clientState.LocalContentId}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ using System.Numerics;
|
|||||||
using Dalamud.Interface;
|
using Dalamud.Interface;
|
||||||
using Dalamud.Interface.Colors;
|
using Dalamud.Interface.Colors;
|
||||||
using Dalamud.Interface.Components;
|
using Dalamud.Interface.Components;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Windowing;
|
using Dalamud.Interface.Windowing;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using Deliveroo.GameData;
|
using Deliveroo.GameData;
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
"net7.0-windows7.0": {
|
"net7.0-windows7.0": {
|
||||||
"DalamudPackager": {
|
"DalamudPackager": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
"requested": "[2.1.11, )",
|
"requested": "[2.1.12, )",
|
||||||
"resolved": "2.1.11",
|
"resolved": "2.1.12",
|
||||||
"contentHash": "9qlAWoRRTiL/geAvuwR/g6Bcbrd/bJJgVnB/RurBiyKs6srsP0bvpoo8IK+Eg8EA6jWeM6/YJWs66w4FIAzqPw=="
|
"contentHash": "Sc0PVxvgg4NQjcI8n10/VfUQBAS4O+Fw2pZrAqBdRMbthYGeogzu5+xmIGCGmsEZ/ukMOBuAqiNiB5qA3MRalg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user