refactor: update to net5
This commit is contained in:
parent
d8c6f2ea56
commit
fc0d1f15ea
|
@ -7,6 +7,6 @@
|
||||||
AssemblyName="$(AssemblyName)"
|
AssemblyName="$(AssemblyName)"
|
||||||
VersionComponents="3"
|
VersionComponents="3"
|
||||||
ManifestType="yaml"
|
ManifestType="yaml"
|
||||||
MakeZip="true" />
|
MakeZip="true"/>
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
|
||||||
<ILMerge/>
|
|
||||||
</Weavers>
|
|
|
@ -17,11 +17,11 @@ namespace GoodMemory {
|
||||||
private readonly IntPtr _cardStaticAddr;
|
private readonly IntPtr _cardStaticAddr;
|
||||||
|
|
||||||
public GameFunctions(Plugin plugin) {
|
public GameFunctions(Plugin plugin) {
|
||||||
this.Plugin = plugin ?? throw new ArgumentNullException(nameof(plugin), "Plugin cannot be null");
|
this.Plugin = plugin;
|
||||||
|
|
||||||
var hasIaUnlockedPtr = plugin.Interface.TargetModuleScanner.ScanText("48 83 EC 28 E8 ?? ?? ?? ?? 48 85 C0 0F 84 ?? ?? ?? ??");
|
var hasIaUnlockedPtr = this.Plugin.SigScanner.ScanText("48 83 EC 28 E8 ?? ?? ?? ?? 48 85 C0 0F 84 ?? ?? ?? ??");
|
||||||
var hasCardPtr = plugin.Interface.TargetModuleScanner.ScanText("40 53 48 83 EC 20 48 8B D9 66 85 D2 74 ??");
|
var hasCardPtr = this.Plugin.SigScanner.ScanText("40 53 48 83 EC 20 48 8B D9 66 85 D2 74 ??");
|
||||||
this._cardStaticAddr = plugin.Interface.TargetModuleScanner.GetStaticAddressFromSig("41 0F B7 17 48 8D 0D ?? ?? ?? ??");
|
this._cardStaticAddr = this.Plugin.SigScanner.GetStaticAddressFromSig("41 0F B7 17 48 8D 0D ?? ?? ?? ??");
|
||||||
|
|
||||||
if (hasIaUnlockedPtr == IntPtr.Zero || hasCardPtr == IntPtr.Zero || this._cardStaticAddr == IntPtr.Zero) {
|
if (hasIaUnlockedPtr == IntPtr.Zero || hasCardPtr == IntPtr.Zero || this._cardStaticAddr == IntPtr.Zero) {
|
||||||
throw new ApplicationException("Could not get pointers for game functions");
|
throw new ApplicationException("Could not get pointers for game functions");
|
||||||
|
@ -45,7 +45,7 @@ namespace GoodMemory {
|
||||||
}
|
}
|
||||||
|
|
||||||
var cardId = item.AdditionalData;
|
var cardId = item.AdditionalData;
|
||||||
var card = this.Plugin.Interface.Data.GetExcelSheet<TripleTriadCard>().GetRow(cardId);
|
var card = this.Plugin.DataManager.GetExcelSheet<TripleTriadCard>().GetRow(cardId);
|
||||||
return card != null && this.HasCard((ushort) card.RowId);
|
return card != null && this.HasCard((ushort) card.RowId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,10 @@
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Version>1.0.8</Version>
|
<Version>1.0.8</Version>
|
||||||
<TargetFramework>net48</TargetFramework>
|
<TargetFramework>net5-windows</TargetFramework>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||||
|
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Dalamud">
|
<Reference Include="Dalamud">
|
||||||
|
@ -22,9 +24,7 @@
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="DalamudPackager" Version="1.2.1"/>
|
<PackageReference Include="DalamudPackager" Version="2.0.0"/>
|
||||||
<PackageReference Include="Fody" Version="6.5.1" PrivateAssets="all"/>
|
<PackageReference Include="XivCommon" Version="3.0.1"/>
|
||||||
<PackageReference Include="ILMerge.Fody" Version="1.16.0" PrivateAssets="all"/>
|
|
||||||
<PackageReference Include="XivCommon" Version="1.6.0"/>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
author: ascclemens
|
author: ascclemens
|
||||||
name: Good Memory
|
name: Good Memory
|
||||||
|
punchline: Adds an indicator in item tooltips to show whether you have acquired that item.
|
||||||
description: |-
|
description: |-
|
||||||
Adds an indicator in item tooltips to show whether you have acquired that item.
|
Adds an indicator in item tooltips to show whether you have acquired that item.
|
||||||
|
|
||||||
This indicator is in the item's description near the bottom and only appears for
|
This indicator is in the item's description near the bottom and only appears for
|
||||||
items that are unlockable, such as orchestrion rolls, minions, etc.
|
items that are unlockable, such as orchestrion rolls, minions, etc.
|
||||||
|
|
||||||
|
Square Enix say this plugin is impossible!
|
||||||
|
|
||||||
|
Icon: Server by Vectorstall from the Noun Project
|
||||||
repo_url: https://git.sr.ht/~jkcclemens/GoodMemory
|
repo_url: https://git.sr.ht/~jkcclemens/GoodMemory
|
||||||
|
icon_url: https://annaclemens.io/assets/plugins/icons/goodmemory.png
|
||||||
|
|
|
@ -1,26 +1,35 @@
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using Lumina.Excel.GeneratedSheets;
|
using Lumina.Excel.GeneratedSheets;
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Dalamud.Data;
|
||||||
|
using Dalamud.Game;
|
||||||
|
using Dalamud.Game.ClientState;
|
||||||
using Dalamud.Game.Text.SeStringHandling;
|
using Dalamud.Game.Text.SeStringHandling;
|
||||||
using Dalamud.Game.Text.SeStringHandling.Payloads;
|
using Dalamud.Game.Text.SeStringHandling.Payloads;
|
||||||
using XivCommon;
|
using XivCommon;
|
||||||
using XivCommon.Functions.Tooltips;
|
using XivCommon.Functions.Tooltips;
|
||||||
|
|
||||||
namespace GoodMemory {
|
namespace GoodMemory {
|
||||||
|
// ReSharper disable once ClassNeverInstantiated.Global
|
||||||
public class Plugin : IDalamudPlugin {
|
public class Plugin : IDalamudPlugin {
|
||||||
public string Name => "Good Memory";
|
public string Name => "Good Memory";
|
||||||
|
|
||||||
public DalamudPluginInterface Interface { get; private set; } = null!;
|
private ClientState ClientState { get; }
|
||||||
private GameFunctions Functions { get; set; } = null!;
|
internal DataManager DataManager { get; }
|
||||||
private XivCommonBase Common { get; set; } = null!;
|
internal SigScanner SigScanner { get; }
|
||||||
|
private GameFunctions Functions { get; }
|
||||||
|
private XivCommonBase Common { get; }
|
||||||
|
|
||||||
public void Initialize(DalamudPluginInterface pluginInterface) {
|
public Plugin(ClientState clientState, DataManager dataManager, SigScanner sigScanner) {
|
||||||
this.Interface = pluginInterface ?? throw new ArgumentNullException(nameof(pluginInterface), "DalamudPluginInterface cannot be null");
|
this.ClientState = clientState;
|
||||||
this.Functions = new GameFunctions(this);
|
this.DataManager = dataManager;
|
||||||
this.Common = new XivCommonBase(pluginInterface, Hooks.Tooltips);
|
this.SigScanner = sigScanner;
|
||||||
|
|
||||||
|
this.Common = new XivCommonBase(Hooks.Tooltips);
|
||||||
this.Common.Functions.Tooltips.OnItemTooltip += this.OnItemTooltip;
|
this.Common.Functions.Tooltips.OnItemTooltip += this.OnItemTooltip;
|
||||||
|
|
||||||
|
this.Functions = new GameFunctions(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose() {
|
public void Dispose() {
|
||||||
|
@ -41,7 +50,7 @@ namespace GoodMemory {
|
||||||
itemId -= 1_000_000;
|
itemId -= 1_000_000;
|
||||||
}
|
}
|
||||||
|
|
||||||
var item = this.Interface.Data.GetExcelSheet<Item>().GetRow((uint) itemId);
|
var item = this.DataManager.GetExcelSheet<Item>().GetRow((uint) itemId);
|
||||||
if (item == null) {
|
if (item == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -50,27 +59,27 @@ namespace GoodMemory {
|
||||||
|
|
||||||
// Faded Copies
|
// Faded Copies
|
||||||
if (item.FilterGroup == 12 && item.ItemUICategory.Value?.RowId == 94 && item.LevelItem.Value?.RowId == 1) {
|
if (item.FilterGroup == 12 && item.ItemUICategory.Value?.RowId == 94 && item.LevelItem.Value?.RowId == 1) {
|
||||||
var recipeResults = this.Interface.Data.GetExcelSheet<Recipe>()
|
var recipeResults = this.DataManager.GetExcelSheet<Recipe>()
|
||||||
.Where(recipe => recipe.UnkStruct5.Any(ritem => ritem.ItemIngredient == item.RowId))
|
.Where(recipe => recipe.UnkStruct5.Any(ritem => ritem.ItemIngredient == item.RowId))
|
||||||
.Select(recipe => recipe.ItemResult.Value)
|
.Select(recipe => recipe.ItemResult.Value)
|
||||||
.Where(result => result != null)
|
.Where(result => result != null)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
foreach (var result in recipeResults) {
|
foreach (var result in recipeResults) {
|
||||||
var resultAction = result.ItemAction?.Value;
|
var resultAction = result?.ItemAction?.Value;
|
||||||
if (!ActionTypeExt.IsValidAction(resultAction)) {
|
if (!ActionTypeExt.IsValidAction(resultAction)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Assert(resultAction != null, nameof(resultAction) + " != null");
|
Debug.Assert(resultAction != null, nameof(resultAction) + " != null");
|
||||||
|
|
||||||
uint orchId = resultAction!.Data[0];
|
uint orchId = resultAction.Data[0];
|
||||||
var orch = this.Interface.Data.GetExcelSheet<Orchestrion>().GetRow(orchId);
|
var orch = this.DataManager.GetExcelSheet<Orchestrion>().GetRow(orchId);
|
||||||
if (orch == null) {
|
if (orch == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.AppendIfAcquired(description, result, orch.Name);
|
this.AppendIfAcquired(description, result!, orch.Name);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var action = item.ItemAction?.Value;
|
var action = item.ItemAction?.Value;
|
||||||
|
@ -93,7 +102,7 @@ namespace GoodMemory {
|
||||||
string colon;
|
string colon;
|
||||||
string parenL;
|
string parenL;
|
||||||
string parenR;
|
string parenR;
|
||||||
switch (this.Interface.ClientState.ClientLanguage) {
|
switch (this.ClientState.ClientLanguage) {
|
||||||
default:
|
default:
|
||||||
acquired = "Acquired";
|
acquired = "Acquired";
|
||||||
colon = ": ";
|
colon = ": ";
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
x="0px"
|
||||||
|
y="0px"
|
||||||
|
viewBox="0 0 48 48"
|
||||||
|
xml:space="preserve"
|
||||||
|
id="svg12"
|
||||||
|
sodipodi:docname="icon.svg"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
inkscape:export-filename="C:\Users\Anna\Desktop\goodmemory.png"
|
||||||
|
inkscape:export-xdpi="1023.6888"
|
||||||
|
inkscape:export-ydpi="1023.6888"
|
||||||
|
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||||
|
id="defs16" /><sodipodi:namedview
|
||||||
|
id="namedview14"
|
||||||
|
pagecolor="#505050"
|
||||||
|
bordercolor="#ffffff"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:pageshadow="0"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="11.093333"
|
||||||
|
inkscape:cx="23.933293"
|
||||||
|
inkscape:cy="24.023438"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1017"
|
||||||
|
inkscape:window-x="1592"
|
||||||
|
inkscape:window-y="32"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg12" /><path
|
||||||
|
d="m 20.13,19.015959 c 0.14,1.06 0.5,2.19 1.26,3.23 1.06,1.46 2.07,2.84 2.28,4.56 0.06,0.48 0.47,0.85 0.96,0.87 0.1,0.01 0.21,0.01 0.32,0.01 3.48,0 6.93,-2.26 8.47,-5.59 1.42,-3.09 1.36,-6.51 -0.15,-8.13 -0.24,-0.26 -0.61,-0.36 -0.96,-0.28 -0.35,0.09 -0.64,0.37 -0.74,0.71 -0.02,0.08 -0.05,0.25 -0.06,0.33 -0.04,1.11 -0.54,1.83 -1.46,2.14 -0.67,0.22 -1.62,-0.1 -2.08,-0.7 -0.21,-0.27 -0.83,-1.08 0.08,-2.53 l 0.16,-0.26 c 0.22,-0.33 0.47,-0.72 0.65,-1.15 1.22,-2.9399999 0.81,-5.8999999 -1.23,-8.8099999 -1,-1.42 -2.3,-2.44999996 -3.88,-3.06999996 -0.37,-0.15 -0.79,-0.06 -1.07,0.22 -0.28,0.28 -0.37,0.70999996 -0.22,1.07999996 0.46,1.14 0.57,2.19 0.35,3.23 -0.34,1.55 -1.18,2.9 -2.73,4.4 -0.33,0.32 -0.67,0.63 -1.01,0.9399999 -0.52,0.47 -1.05,0.96 -1.56,1.48 -2.7,2.8 -3.31,6.2 -1.79,10.11 0.67,1.72 1.7,3.03 3.15,4.02 0.36,0.25 0.84,0.23 1.18,-0.04 0.35,-0.27 0.47,-0.73 0.32,-1.14 -0.66,-1.73 -0.84,-3.1 -0.58,-4.44 0.08,-0.41 0.19,-0.81 0.34,-1.19 z"
|
||||||
|
id="path2"
|
||||||
|
style="fill:#ff4a00;fill-opacity:1" /><path
|
||||||
|
d="m 8.03,34.975959 c -0.84,0 -1.53,0.69 -1.53,1.53 0,0.84 0.68,1.53 1.53,1.53 0.84,0 1.53,-0.68 1.53,-1.53 0,-0.84 -0.69,-1.53 -1.53,-1.53 z"
|
||||||
|
id="path4"
|
||||||
|
style="fill:#cccccc" /><path
|
||||||
|
d="m 36.45,47.725959 h 6.4 c 0.55,0 1,-0.45 1,-1 v -3.02 H 47 c 0.55,0 1,-0.44 1,-1 v -12.4 c 0,-0.55 -0.45,-1 -1,-1 H 1 c -0.55,0 -1,0.45 -1,1 v 12.4 c 0,0.56 0.45,1 1,1 h 3.15 v 3.02 c 0,0.55 0.45,1 1,1 h 6.4 c 0.56,0 1,-0.45 1,-1 v -3.02 h 22.9 v 3.02 c 0,0.55 0.44,1 1,1 z m 5.53,-14.29 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.56 0.45,-1 1,-1 z m 0,4.14 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.55 0.45,-1 1,-1 z m -4.01,-4.14 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.56 0.44,-1 1,-1 z m 0,4.14 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.55 0.44,-1 1,-1 z m -4.02,-4.14 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.56 0.44,-1 1,-1 z m -11.09,4.07 H 11.4 c -0.43,1.46 -1.77,2.53 -3.36,2.53 -1.95,0 -3.53,-1.58 -3.53,-3.53 0,-1.95 1.58,-3.53 3.53,-3.53 1.59,0 2.93,1.07 3.36,2.53 h 11.46 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 z m 7.57,2.07 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.55 0.45,-1 1,-1 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.44,1 -1,1 z m 0,-4.14 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.55 0.45,-1 1,-1 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.44,1 -1,1 z m 4.03,4.14 h -0.51 c -0.55,0 -1,-0.45 -1,-1 0,-0.55 0.45,-1 1,-1 h 0.51 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 z"
|
||||||
|
id="path6"
|
||||||
|
style="fill:#cccccc" /></svg>
|
After Width: | Height: | Size: 3.8 KiB |
Loading…
Reference in New Issue