diff --git a/ChatTwo.Tests/ChatTwo.Tests.csproj b/ChatTwo.Tests/ChatTwo.Tests.csproj index 80dc8ff..1241c05 100644 --- a/ChatTwo.Tests/ChatTwo.Tests.csproj +++ b/ChatTwo.Tests/ChatTwo.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/ChatTwo/ChatTwo.csproj b/ChatTwo/ChatTwo.csproj index c53a222..c17cbe6 100755 --- a/ChatTwo/ChatTwo.csproj +++ b/ChatTwo/ChatTwo.csproj @@ -1,6 +1,6 @@ - + - 1.30.7 + 1.31.0 net9.0-windows enable enable @@ -14,10 +14,10 @@ - + - + diff --git a/ChatTwo/Configuration.cs b/ChatTwo/Configuration.cs index 121345e..78c4606 100755 --- a/ChatTwo/Configuration.cs +++ b/ChatTwo/Configuration.cs @@ -8,7 +8,7 @@ using Dalamud; using Dalamud.Configuration; using Dalamud.Game.ClientState.Keys; using Dalamud.Interface.FontIdentifier; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo; @@ -633,15 +633,15 @@ internal static class ExtraGlyphRangesExt _ => throw new ArgumentOutOfRangeException(nameof(ranges), ranges, null), }; - internal static nint Range(this ExtraGlyphRanges ranges) => ranges switch + internal static unsafe nint Range(this ExtraGlyphRanges ranges) => ranges switch { - ExtraGlyphRanges.ChineseFull => ImGui.GetIO().Fonts.GetGlyphRangesChineseFull(), - ExtraGlyphRanges.ChineseSimplifiedCommon => ImGui.GetIO().Fonts.GetGlyphRangesChineseSimplifiedCommon(), - ExtraGlyphRanges.Cyrillic => ImGui.GetIO().Fonts.GetGlyphRangesCyrillic(), - ExtraGlyphRanges.Japanese => ImGui.GetIO().Fonts.GetGlyphRangesJapanese(), - ExtraGlyphRanges.Korean => ImGui.GetIO().Fonts.GetGlyphRangesKorean(), - ExtraGlyphRanges.Thai => ImGui.GetIO().Fonts.GetGlyphRangesThai(), - ExtraGlyphRanges.Vietnamese => ImGui.GetIO().Fonts.GetGlyphRangesVietnamese(), + ExtraGlyphRanges.ChineseFull => (nint)ImGui.GetIO().Fonts.GetGlyphRangesChineseFull(), + ExtraGlyphRanges.ChineseSimplifiedCommon => (nint)ImGui.GetIO().Fonts.GetGlyphRangesChineseSimplifiedCommon(), + ExtraGlyphRanges.Cyrillic => (nint)ImGui.GetIO().Fonts.GetGlyphRangesCyrillic(), + ExtraGlyphRanges.Japanese => (nint)ImGui.GetIO().Fonts.GetGlyphRangesJapanese(), + ExtraGlyphRanges.Korean => (nint)ImGui.GetIO().Fonts.GetGlyphRangesKorean(), + ExtraGlyphRanges.Thai => (nint)ImGui.GetIO().Fonts.GetGlyphRangesThai(), + ExtraGlyphRanges.Vietnamese => (nint)ImGui.GetIO().Fonts.GetGlyphRangesVietnamese(), _ => throw new ArgumentOutOfRangeException(nameof(ranges), ranges, null), }; } diff --git a/ChatTwo/EmoteCache.cs b/ChatTwo/EmoteCache.cs index dd01c10..77913a7 100644 --- a/ChatTwo/EmoteCache.cs +++ b/ChatTwo/EmoteCache.cs @@ -4,7 +4,7 @@ using System.Text.Json.Serialization; using Dalamud.Interface.Textures; using Dalamud.Interface.Textures.TextureWraps; using Dalamud.Utility; -using ImGuiNET; +using Dalamud.Bindings.ImGui; using SixLabors.ImageSharp; using SixLabors.ImageSharp.PixelFormats; @@ -154,7 +154,7 @@ public static class EmoteCache public virtual void Draw(Vector2 size) { - ImGui.Image(Texture!.ImGuiHandle, size); + ImGui.Image(Texture!.Handle, size); } internal async Task LoadAsync(Emote emote) @@ -236,7 +236,7 @@ public static class EmoteCache if (FrameTimer <= 0.0f) FrameTimer = frame.Delay; - ImGui.Image(frame.Texture.ImGuiHandle, size); + ImGui.Image(frame.Texture.Handle, size); if (GlobalFrameCount == Plugin.Interface.UiBuilder.FrameCount) return; diff --git a/ChatTwo/FontManager.cs b/ChatTwo/FontManager.cs index 6e08346..41692b4 100644 --- a/ChatTwo/FontManager.cs +++ b/ChatTwo/FontManager.cs @@ -2,7 +2,7 @@ using Dalamud.Interface.GameFonts; using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo; @@ -44,7 +44,7 @@ public class FontManager .ReadAsByteArrayAsync() .Result; - Dalamud.Utility.Util.WriteAllBytesSafe(filePath, GameSymFont); + Dalamud.Utility.FilesystemUtil.WriteAllBytesSafe(filePath, GameSymFont); } } @@ -52,10 +52,10 @@ public class FontManager { ushort[] BuildRange(IReadOnlyList? chars, params nint[] ranges) { - var builder = new ImFontGlyphRangesBuilderPtr(ImGuiNative.ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder()); + var builder = new ImFontGlyphRangesBuilderPtr(ImGuiNative.ImFontGlyphRangesBuilder()); // text foreach (var range in ranges) - builder.AddRanges(range); + builder.AddRanges((ushort*)range); // chars if (chars != null) @@ -85,7 +85,7 @@ public class FontManager return builder.BuildRangesToArray(); } - var ranges = new List { ImGui.GetIO().Fonts.GetGlyphRangesDefault() }; + var ranges = new List { (nint)ImGui.GetIO().Fonts.GetGlyphRangesDefault() }; foreach (var extraRange in Enum.GetValues()) if (Plugin.Config.ExtraGlyphRanges.HasFlag(extraRange)) ranges.Add(extraRange.Range()); diff --git a/ChatTwo/GameFunctions/Chat.cs b/ChatTwo/GameFunctions/Chat.cs index d0ba337..1b38605 100755 --- a/ChatTwo/GameFunctions/Chat.cs +++ b/ChatTwo/GameFunctions/Chat.cs @@ -34,7 +34,7 @@ internal sealed unsafe class Chat : IDisposable private readonly delegate* unmanaged SendTellNative = null!; // Client::UI::AddonChatLog.OnRefresh - [Signature("40 53 56 57 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 84 24 ?? ?? ?? ?? 49 8B F0 8B FA", DetourName = nameof(ChatLogRefreshDetour))] + [Signature("40 53 57 41 57 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 84 24 ?? ?? ?? ?? 4D 8B F8", DetourName = nameof(ChatLogRefreshDetour))] private Hook? ChatLogRefreshHook { get; init; } private delegate byte ChatLogRefreshDelegate(nint log, ushort eventId, AtkValue* value); diff --git a/ChatTwo/GameFunctions/GameFunctions.cs b/ChatTwo/GameFunctions/GameFunctions.cs index c97f3b1..272f65d 100755 --- a/ChatTwo/GameFunctions/GameFunctions.cs +++ b/ChatTwo/GameFunctions/GameFunctions.cs @@ -5,7 +5,9 @@ using Dalamud.Game.Text.SeStringHandling; using Dalamud.Game.Text.SeStringHandling.Payloads; using Dalamud.Hooking; using Dalamud.Memory; +using Dalamud.Utility; using Dalamud.Utility.Signatures; +using FFXIVClientStructs.FFXIV.Client.Enums; using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; @@ -21,10 +23,9 @@ namespace ChatTwo.GameFunctions; internal unsafe class GameFunctions : IDisposable { #region Hooks - private delegate nint ResolveTextCommandPlaceholderDelegate(nint a1, byte* placeholderText, byte a3, byte a4); - - [Signature("E8 ?? ?? ?? ?? 49 8D 4F 18 4C 8B E0", DetourName = nameof(ResolveTextCommandPlaceholderDetour))] + [Signature("E8 ?? ?? ?? ?? 48 85 C0 0F 84 ?? ?? ?? ?? 48 8B D0 49 8D 4F", DetourName = nameof(ResolveTextCommandPlaceholderDetour))] private Hook? ResolveTextCommandPlaceholderHook { get; init; } + private delegate nint ResolveTextCommandPlaceholderDelegate(nint a1, byte* placeholderText, byte a3, byte a4); #endregion private Plugin Plugin { get; } @@ -109,7 +110,7 @@ internal unsafe class GameFunctions : IDisposable return addon != null && addon->IsVisible; } - internal static void OpenItemTooltip(uint id, ItemPayload.ItemKind itemKind) + internal static void OpenItemTooltip(uint id, ItemKind itemKind) { var atkStage = AtkStage.Instance(); var agent = AgentItemDetail.Instance(); @@ -119,7 +120,7 @@ internal unsafe class GameFunctions : IDisposable if (agent == null || addon == null) return; - agent->ItemKind = itemKind == ItemPayload.ItemKind.EventItem ? ItemDetailKind.ChatEventItem : ItemDetailKind.ChatItem; + agent->DetailKind = itemKind == ItemKind.EventItem ? DetailKind.KeyItem : DetailKind.Item; agent->TypeOrId = id; agent->Index = 0; agent->Flag1 &= 0xEF; diff --git a/ChatTwo/GameFunctions/KeybindManager.cs b/ChatTwo/GameFunctions/KeybindManager.cs index d0d174e..b3cf37c 100644 --- a/ChatTwo/GameFunctions/KeybindManager.cs +++ b/ChatTwo/GameFunctions/KeybindManager.cs @@ -7,7 +7,7 @@ using Dalamud.Game.Config; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.System.String; using FFXIVClientStructs.FFXIV.Client.UI; -using ImGuiNET; +using Dalamud.Bindings.ImGui; using ModifierFlag = ChatTwo.GameFunctions.Types.ModifierFlag; namespace ChatTwo.GameFunctions; diff --git a/ChatTwo/Message.cs b/ChatTwo/Message.cs index 8da3dcc..54ada50 100755 --- a/ChatTwo/Message.cs +++ b/ChatTwo/Message.cs @@ -310,13 +310,13 @@ internal partial class Message var kind = item.ItemId switch { - < 500_000 => ItemPayload.ItemKind.Normal, - < 1_000_000 => ItemPayload.ItemKind.Collectible, - < 2_000_000 => ItemPayload.ItemKind.Hq, - _ => ItemPayload.ItemKind.EventItem + < 500_000 => ItemKind.Normal, + < 1_000_000 => ItemKind.Collectible, + < 2_000_000 => ItemKind.Hq, + _ => ItemKind.EventItem }; - var name = kind != ItemPayload.ItemKind.EventItem + var name = kind != ItemKind.EventItem ? Plugin.DataManager.GetExcelSheet().GetRow(item.ItemId).Name.ToString() : Plugin.DataManager.GetExcelSheet().GetRow(item.ItemId).Name.ToString(); @@ -346,13 +346,13 @@ internal partial class Message else if (split == "") { var agentMap = AgentMap.Instance(); - if (!agentMap->IsFlagMarkerSet) + if (agentMap->FlagMarkerCount == 0) { AddChunkWithMessage(text.NewWithStyle(chunk.Source, chunk.Link, split)); continue; } - var mapCoords = agentMap->FlagMapMarker; + var mapCoords = agentMap->FlagMapMarkers[0]; var rawX = (int)(MathF.Round(mapCoords.XFloat, 3, MidpointRounding.AwayFromZero) * 1000); var rawY = (int)(MathF.Round(mapCoords.YFloat, 3, MidpointRounding.AwayFromZero) * 1000); diff --git a/ChatTwo/PayloadHandler.cs b/ChatTwo/PayloadHandler.cs index 872a58e..2a696bd 100755 --- a/ChatTwo/PayloadHandler.cs +++ b/ChatTwo/PayloadHandler.cs @@ -18,7 +18,7 @@ using Dalamud.Interface.Utility.Raii; using Dalamud.Utility; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Component.GUI; -using ImGuiNET; +using Dalamud.Bindings.ImGui; using Lumina.Excel.Sheets; using Action = System.Action; @@ -263,17 +263,21 @@ public sealed class PayloadHandler if (!Plugin.GameConfig.TryGet(UiControlOption.DetailTrackingType, out uint selected) || selected != 0) return; - if (LogWindow.LastViewport != ImGuiHelpers.MainViewport.NativePtr) + if (LogWindow.LastViewport != ImGuiHelpers.MainViewport.Handle) return; - var atk = (AtkUnitBase*) args.Addon; - if (atk->WindowNode == null) + var atk = args.Addon; + if (atk.IsNull) return; - if (!atk->IsVisible) + var atkBase = (AtkUnitBase*)atk.Address; + if (atkBase->WindowNode == null) return; - var component = atk->WindowNode->AtkResNode; + if (!atkBase->IsVisible) + return; + + var component = atkBase->WindowNode->AtkResNode; var atkPos = new Vector2(component.ScreenX, component.ScreenY); var atkSize = new Vector2(component.GetWidth() * component.ScaleX, component.GetHeight() * component.GetScaleY()); @@ -303,7 +307,7 @@ public sealed class PayloadHandler if (!chatRect.HasOverlap(addonRect)) { - atk->SetPosition((short) addonRect.X, (short) addonRect.Y); + atkBase->SetPosition((short) addonRect.X, (short) addonRect.Y); return; } @@ -321,7 +325,7 @@ public sealed class PayloadHandler if (!chatRect.HasOverlap(addonRect)) { - atk->SetPosition((short) addonRect.X, (short) addonRect.Y); + atkBase->SetPosition((short) addonRect.X, (short) addonRect.Y); return; } @@ -330,14 +334,14 @@ public sealed class PayloadHandler var y = Math.Clamp(chatRect.SizeY - atkSize.Y, 0, float.MaxValue); y -= isTop ? 0 : Plugin.Config.TooltipOffset; // offset to prevent cut-off on the bottom - atk->SetPosition((short) x, (short) y); + atkBase->SetPosition((short) x, (short) y); } private static void InlineIcon(IDalamudTextureWrap icon) { var cursor = ImGui.GetCursorPos(); var size = ImGuiHelpers.ScaledVector2(32, 32); - ImGui.Image(icon.ImGuiHandle, size); + ImGui.Image(icon.Handle, size); ImGui.SameLine(); ImGui.SetCursorPos(cursor + new Vector2(size.X + 4, size.Y - ImGui.GetTextLineHeightWithSpacing())); } @@ -373,7 +377,7 @@ public sealed class PayloadHandler private void HoverItem(ItemPayload item) { - if (item.Kind == ItemPayload.ItemKind.EventItem) + if (item.Kind == ItemKind.EventItem) { HoverEventItem(item); return; @@ -489,7 +493,7 @@ public sealed class PayloadHandler private void DrawItemPopup(ItemPayload payload) { - if (payload.Kind == ItemPayload.ItemKind.EventItem) + if (payload.Kind == ItemKind.EventItem) { DrawEventItemPopup(payload); return; @@ -498,7 +502,7 @@ public sealed class PayloadHandler if (!Sheets.ItemSheet.TryGetRow(payload.ItemId, out var itemRow)) return; - var hq = payload.Kind == ItemPayload.ItemKind.Hq; + var hq = payload.Kind == ItemKind.Hq; if (Plugin.TextureProvider.GetFromGameIcon(new GameIconLookup(itemRow.Icon, hq)).GetWrapOrDefault() is { } icon) InlineIcon(icon); @@ -506,7 +510,7 @@ public sealed class PayloadHandler // hq symbol if (hq) name.Payloads.Add(new TextPayload(" ")); - else if (payload.Kind == ItemPayload.ItemKind.Collectible) + else if (payload.Kind == ItemKind.Collectible) name.Payloads.Add(new TextPayload(" ")); LogWindow.DrawChunks(ChunkUtil.ToChunks(name, ChunkSource.None, null).ToList(), false); @@ -538,7 +542,7 @@ public sealed class PayloadHandler private void DrawEventItemPopup(ItemPayload payload) { - if (payload.Kind != ItemPayload.ItemKind.EventItem) + if (payload.Kind != ItemKind.EventItem) return; if (!Sheets.EventItemSheet.HasRow(payload.ItemId)) diff --git a/ChatTwo/Plugin.cs b/ChatTwo/Plugin.cs index bf05741..b9cee32 100755 --- a/ChatTwo/Plugin.cs +++ b/ChatTwo/Plugin.cs @@ -12,7 +12,7 @@ using Dalamud.Interface.Windowing; using Dalamud.IoC; using Dalamud.Plugin; using Dalamud.Plugin.Services; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo; diff --git a/ChatTwo/Ui/AutoCompleteInfo.cs b/ChatTwo/Ui/AutoCompleteInfo.cs index e0d7222..230d6ed 100755 --- a/ChatTwo/Ui/AutoCompleteInfo.cs +++ b/ChatTwo/Ui/AutoCompleteInfo.cs @@ -1,11 +1,13 @@ namespace ChatTwo.Ui; -internal class AutoCompleteInfo { +internal class AutoCompleteInfo +{ internal string ToComplete; internal int StartPos { get; } internal int EndPos { get; } - internal AutoCompleteInfo(string toComplete, int startPos, int endPos) { + internal AutoCompleteInfo(string toComplete, int startPos, int endPos) + { ToComplete = toComplete; StartPos = startPos; EndPos = endPos; diff --git a/ChatTwo/Ui/ChatLogWindow.cs b/ChatTwo/Ui/ChatLogWindow.cs index 922c2d4..b8571ac 100644 --- a/ChatTwo/Ui/ChatLogWindow.cs +++ b/ChatTwo/Ui/ChatLogWindow.cs @@ -18,7 +18,7 @@ using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; using Dalamud.Memory; using FFXIVClientStructs.FFXIV.Client.UI; -using ImGuiNET; +using Dalamud.Bindings.ImGui; using Lumina.Excel.Sheets; namespace ChatTwo.Ui; @@ -443,10 +443,10 @@ public sealed class ChatLogWindow : Window if (!Plugin.Config.ShowTitleBar) Flags |= ImGuiWindowFlags.NoTitleBar; - if (LastViewport == ImGuiHelpers.MainViewport.NativePtr && !WasDocked) + if (LastViewport == ImGuiHelpers.MainViewport.Handle && !WasDocked) BgAlpha = Plugin.Config.WindowAlpha / 100f; - LastViewport = ImGui.GetWindowViewport().NativePtr; + LastViewport = ImGui.GetWindowViewport().Handle; WasDocked = ImGui.IsWindowDocked(); } @@ -530,7 +530,7 @@ public sealed class ChatLogWindow : Window if (resized) LastResize.Restart(); - LastViewport = ImGui.GetWindowViewport().NativePtr; + LastViewport = ImGui.GetWindowViewport().Handle; WasDocked = ImGui.IsWindowDocked(); if (IsChatMode && Plugin.InputPreview.IsDrawable) @@ -1430,7 +1430,7 @@ public sealed class ChatLogWindow : Window for (var i = 0; i < 10 && i < AutoCompleteList.Count; i++) { var num = (i + 1) % 10; - var key = ImGuiKey._0 + num; + var key = ImGuiKey.Key0 + num; var key2 = ImGuiKey.Keypad0 + num; if (ImGui.IsKeyDown(key) || ImGui.IsKeyDown(key2)) selected = i; @@ -1460,7 +1460,7 @@ public sealed class ChatLogWindow : Window if (!child.Success) return; - var clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper_ImGuiListClipper()); + var clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper()); clipper.Begin(AutoCompleteList.Count); while (clipper.Step()) @@ -1503,19 +1503,19 @@ public sealed class ChatLogWindow : Window ImGui.SetScrollFromPosY(selectedPos - ImGui.GetWindowPos().Y); } - private unsafe int AutoCompleteCallback(ImGuiInputTextCallbackData* data) + private int AutoCompleteCallback(scoped ref ImGuiInputTextCallbackData data) { if (FixCursor && AutoCompleteInfo != null) { FixCursor = false; - data->CursorPos = AutoCompleteInfo.ToComplete.Length; - data->SelectionStart = data->SelectionEnd = data->CursorPos; + data.CursorPos = AutoCompleteInfo.ToComplete.Length; + data.SelectionStart = data.SelectionEnd = data.CursorPos; } if (AutoCompleteList == null) return 0; - switch (data->EventKey) + switch (data.EventKey) { case ImGuiKey.UpArrow: if (AutoCompleteSelection == 0) @@ -1550,7 +1550,7 @@ public sealed class ChatLogWindow : Window return 0; } - private unsafe int Callback(ImGuiInputTextCallbackData* data) + private unsafe int Callback(scoped ref ImGuiInputTextCallbackData data) { // We play the opening sound here only if closing sound has been played before if (Plugin.Config.PlaySounds && PlayedClosingSound) @@ -1559,22 +1559,20 @@ public sealed class ChatLogWindow : Window UIGlobals.PlaySoundEffect(ChatOpenSfx); } - var ptr = new ImGuiInputTextCallbackDataPtr(data); - // Set the cursor pos to the user selected if (Plugin.InputPreview.SelectedCursorPos != -1) - ptr.CursorPos = Plugin.InputPreview.SelectedCursorPos; + data.CursorPos = Plugin.InputPreview.SelectedCursorPos; Plugin.InputPreview.SelectedCursorPos = -1; - CursorPos = ptr.CursorPos; - if (data->EventFlag == ImGuiInputTextFlags.CallbackCompletion) + CursorPos = data.CursorPos; + if (data.EventFlag == ImGuiInputTextFlags.CallbackCompletion) { - if (ptr.CursorPos == 0) + if (data.CursorPos == 0) { AutoCompleteInfo = new AutoCompleteInfo( string.Empty, - ptr.CursorPos, - ptr.CursorPos + data.CursorPos, + data.CursorPos ); AutoCompleteOpen = true; AutoCompleteSelection = 0; @@ -1583,14 +1581,14 @@ public sealed class ChatLogWindow : Window } int white; - for (white = ptr.CursorPos - 1; white >= 0; white--) - if (data->Buf[white] == ' ') + for (white = data.CursorPos - 1; white >= 0; white--) + if (data.Buf[white] == ' ') break; - var start = ptr.Buf + white + 1; - var end = ptr.CursorPos - white - 1; - var utf8Message = Marshal.PtrToStringUTF8(start, end); - var correctedCursor = ptr.CursorPos - (end - utf8Message.Length); + var start = data.Buf + white + 1; + var end = data.CursorPos - white - 1; + var utf8Message = Marshal.PtrToStringUTF8((nint)start, end); + var correctedCursor = data.CursorPos - (end - utf8Message.Length); AutoCompleteInfo = new AutoCompleteInfo( utf8Message, white + 1, @@ -1601,20 +1599,20 @@ public sealed class ChatLogWindow : Window return 0; } - if (data->EventFlag == ImGuiInputTextFlags.CallbackCharFilter) - if (!Plugin.Functions.Chat.IsCharValid((char) ptr.EventChar)) + if (data.EventFlag == ImGuiInputTextFlags.CallbackCharFilter) + if (!Plugin.Functions.Chat.IsCharValid((char) data.EventChar)) return 1; if (Activate) { Activate = false; - data->CursorPos = ActivatePos > -1 ? ActivatePos : Chat.Length; - data->SelectionStart = data->SelectionEnd = data->CursorPos; + data.CursorPos = ActivatePos > -1 ? ActivatePos : Chat.Length; + data.SelectionStart = data.SelectionEnd = data.CursorPos; ActivatePos = -1; } Plugin.CommandHelpWindow.IsOpen = false; - var text = MemoryHelper.ReadString((nint) data->Buf, data->BufTextLen); + var text = MemoryHelper.ReadString((nint) data.Buf, data.BufTextLen); if (text.StartsWith('/')) { var command = text.Split(' ')[0]; @@ -1626,11 +1624,11 @@ public sealed class ChatLogWindow : Window Plugin.CommandHelpWindow.UpdateContent(cmd.Value); } - if (data->EventFlag != ImGuiInputTextFlags.CallbackHistory) + if (data.EventFlag != ImGuiInputTextFlags.CallbackHistory) return 0; var prevPos = InputBacklogIdx; - switch (data->EventKey) + switch (data.EventKey) { case ImGuiKey.UpArrow: switch (InputBacklogIdx) @@ -1662,8 +1660,8 @@ public sealed class ChatLogWindow : Window return 0; var historyStr = InputBacklogIdx >= 0 ? InputBacklog[InputBacklogIdx] : string.Empty; - ptr.DeleteChars(0, ptr.BufTextLen); - ptr.InsertChars(0, historyStr); + data.DeleteChars(0, data.BufTextLen); + data.InsertChars(0, historyStr); return 0; } @@ -1793,7 +1791,7 @@ public sealed class ChatLogWindow : Window var uv0 = new Vector2(entry.Left, entry.Top + 170) * 2 / texSize; var uv1 = new Vector2(entry.Left + entry.Width, entry.Top + entry.Height + 170) * 2 / texSize; - ImGui.Image(iconTexture.ImGuiHandle, size, uv0, uv1); + ImGui.Image(iconTexture.Handle, size, uv0, uv1); ImGuiUtil.PostPayload(chunk, handler); } diff --git a/ChatTwo/Ui/CommandHelpWindow.cs b/ChatTwo/Ui/CommandHelpWindow.cs index ca91123..6d93884 100644 --- a/ChatTwo/Ui/CommandHelpWindow.cs +++ b/ChatTwo/Ui/CommandHelpWindow.cs @@ -3,7 +3,7 @@ using ChatTwo.Util; using Dalamud.Interface.Utility; using Dalamud.Interface.Windowing; using Dalamud.Utility; -using ImGuiNET; +using Dalamud.Bindings.ImGui; using Lumina.Excel.Sheets; namespace ChatTwo.Ui; diff --git a/ChatTwo/Ui/DbViewer.cs b/ChatTwo/Ui/DbViewer.cs index 098d73d..4e99bbe 100644 --- a/ChatTwo/Ui/DbViewer.cs +++ b/ChatTwo/Ui/DbViewer.cs @@ -9,7 +9,7 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui; diff --git a/ChatTwo/Ui/Debugger.cs b/ChatTwo/Ui/Debugger.cs index 8d1c40e..d3e93f2 100644 --- a/ChatTwo/Ui/Debugger.cs +++ b/ChatTwo/Ui/Debugger.cs @@ -4,7 +4,7 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.Utility; using Dalamud.Interface.Windowing; using FFXIVClientStructs.FFXIV.Client.UI.Agent; -using ImGuiNET; +using Dalamud.Bindings.ImGui; using Lumina.Text.ReadOnly; namespace ChatTwo.Ui; diff --git a/ChatTwo/Ui/InputPreview.cs b/ChatTwo/Ui/InputPreview.cs index b096253..7a4c6ad 100644 --- a/ChatTwo/Ui/InputPreview.cs +++ b/ChatTwo/Ui/InputPreview.cs @@ -10,7 +10,7 @@ using Dalamud.Game.Text.SeStringHandling.Payloads; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; using Dalamud.Plugin.Services; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui; diff --git a/ChatTwo/Ui/Popout.cs b/ChatTwo/Ui/Popout.cs index 7a0b395..8871d54 100644 --- a/ChatTwo/Ui/Popout.cs +++ b/ChatTwo/Ui/Popout.cs @@ -2,7 +2,7 @@ using Dalamud.Interface.Style; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui; diff --git a/ChatTwo/Ui/SeStringDebugger.cs b/ChatTwo/Ui/SeStringDebugger.cs index 5be7138..8be4732 100644 --- a/ChatTwo/Ui/SeStringDebugger.cs +++ b/ChatTwo/Ui/SeStringDebugger.cs @@ -6,8 +6,8 @@ using Dalamud.Game.Text.SeStringHandling; using Dalamud.Game.Text.SeStringHandling.Payloads; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; -using ImGuiNET; - +using Dalamud.Bindings.ImGui; +using Dalamud.Utility; using DalamudPartyFinderPayload = Dalamud.Game.Text.SeStringHandling.Payloads.PartyFinderPayload; namespace ChatTwo.Ui; @@ -146,7 +146,7 @@ public class SeStringDebugger : Window { "RawItemId", item.RawItemId.ToString() }, { "Kind", EnumName(item.Kind) }, { "IsHQ", item.IsHQ.ToString() }, - { "Item.Name", item.Kind == ItemPayload.ItemKind.EventItem ? Sheets.EventItemSheet.GetRow(item.ItemId).Name.ExtractText() : Sheets.ItemSheet.GetRow(item.ItemId).Name.ExtractText() }, + { "Item.Name", item.Kind == ItemKind.EventItem ? Sheets.EventItemSheet.GetRow(item.ItemId).Name.ExtractText() : Sheets.ItemSheet.GetRow(item.ItemId).Name.ExtractText() }, }); break; } diff --git a/ChatTwo/Ui/Settings.cs b/ChatTwo/Ui/Settings.cs index b9fee83..138d438 100755 --- a/ChatTwo/Ui/Settings.cs +++ b/ChatTwo/Ui/Settings.cs @@ -5,7 +5,7 @@ using ChatTwo.Util; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; using Dalamud.Utility; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui; diff --git a/ChatTwo/Ui/SettingsTabs/About.cs b/ChatTwo/Ui/SettingsTabs/About.cs index ccc0b89..d6a5b0e 100755 --- a/ChatTwo/Ui/SettingsTabs/About.cs +++ b/ChatTwo/Ui/SettingsTabs/About.cs @@ -5,7 +5,7 @@ using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Changelog.cs b/ChatTwo/Ui/SettingsTabs/Changelog.cs index adcd823..6df74c7 100644 --- a/ChatTwo/Ui/SettingsTabs/Changelog.cs +++ b/ChatTwo/Ui/SettingsTabs/Changelog.cs @@ -1,7 +1,7 @@ using ChatTwo.Resources; using ChatTwo.Util; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/ChatColours.cs b/ChatTwo/Ui/SettingsTabs/ChatColours.cs index 7694d1b..18f784f 100755 --- a/ChatTwo/Ui/SettingsTabs/ChatColours.cs +++ b/ChatTwo/Ui/SettingsTabs/ChatColours.cs @@ -2,7 +2,7 @@ using ChatTwo.Code; using ChatTwo.Resources; using ChatTwo.Util; using Dalamud.Interface; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/ChatLog.cs b/ChatTwo/Ui/SettingsTabs/ChatLog.cs index 50d432d..069fde8 100644 --- a/ChatTwo/Ui/SettingsTabs/ChatLog.cs +++ b/ChatTwo/Ui/SettingsTabs/ChatLog.cs @@ -2,7 +2,7 @@ using ChatTwo.Resources; using ChatTwo.Util; using Dalamud.Interface.Style; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Database.cs b/ChatTwo/Ui/SettingsTabs/Database.cs index d2dee7c..111687d 100755 --- a/ChatTwo/Ui/SettingsTabs/Database.cs +++ b/ChatTwo/Ui/SettingsTabs/Database.cs @@ -6,7 +6,7 @@ using Dalamud.Game.Text.SeStringHandling; using Dalamud.Game.Text.SeStringHandling.Payloads; using Dalamud.Interface.ImGuiNotification; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Display.cs b/ChatTwo/Ui/SettingsTabs/Display.cs index 72f41c6..f6980df 100755 --- a/ChatTwo/Ui/SettingsTabs/Display.cs +++ b/ChatTwo/Ui/SettingsTabs/Display.cs @@ -2,7 +2,7 @@ using ChatTwo.Code; using ChatTwo.Resources; using ChatTwo.Util; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Emote.cs b/ChatTwo/Ui/SettingsTabs/Emote.cs index 7f8861c..fb03d4d 100644 --- a/ChatTwo/Ui/SettingsTabs/Emote.cs +++ b/ChatTwo/Ui/SettingsTabs/Emote.cs @@ -4,7 +4,7 @@ using ChatTwo.Util; using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Fonts.cs b/ChatTwo/Ui/SettingsTabs/Fonts.cs index 2218e6f..b1343d1 100755 --- a/ChatTwo/Ui/SettingsTabs/Fonts.cs +++ b/ChatTwo/Ui/SettingsTabs/Fonts.cs @@ -2,7 +2,7 @@ using ChatTwo.Resources; using ChatTwo.Util; using Dalamud; using Dalamud.Interface.FontIdentifier; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Miscellaneous.cs b/ChatTwo/Ui/SettingsTabs/Miscellaneous.cs index cd2466c..e802d5e 100755 --- a/ChatTwo/Ui/SettingsTabs/Miscellaneous.cs +++ b/ChatTwo/Ui/SettingsTabs/Miscellaneous.cs @@ -1,6 +1,6 @@ using ChatTwo.Resources; using ChatTwo.Util; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Preview.cs b/ChatTwo/Ui/SettingsTabs/Preview.cs index 253db9c..cfa0e1a 100644 --- a/ChatTwo/Ui/SettingsTabs/Preview.cs +++ b/ChatTwo/Ui/SettingsTabs/Preview.cs @@ -1,6 +1,6 @@ using ChatTwo.Resources; using ChatTwo.Util; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Tabs.cs b/ChatTwo/Ui/SettingsTabs/Tabs.cs index 906410a..eab084c 100755 --- a/ChatTwo/Ui/SettingsTabs/Tabs.cs +++ b/ChatTwo/Ui/SettingsTabs/Tabs.cs @@ -3,7 +3,7 @@ using ChatTwo.Resources; using ChatTwo.Util; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Ui/SettingsTabs/Webinterface.cs b/ChatTwo/Ui/SettingsTabs/Webinterface.cs index 854837d..7f8ee74 100644 --- a/ChatTwo/Ui/SettingsTabs/Webinterface.cs +++ b/ChatTwo/Ui/SettingsTabs/Webinterface.cs @@ -4,7 +4,7 @@ using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.ImGuiNotification; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Ui.SettingsTabs; diff --git a/ChatTwo/Util/AutoTranslate.cs b/ChatTwo/Util/AutoTranslate.cs index 1cb9fe4..c419f45 100644 --- a/ChatTwo/Util/AutoTranslate.cs +++ b/ChatTwo/Util/AutoTranslate.cs @@ -83,6 +83,9 @@ internal static class AutoTranslate { if (lookup is not ("" or "@")) { + // SE added whitespace to the newest additions, but ParseOrThrow doesn't see them as valid + lookup = lookup.Replace(" ", ""); + var (sheetName, selector) = parser.ParseOrThrow(lookup); var sheet = Plugin.DataManager.Excel.GetSheet(name: sheetName); diff --git a/ChatTwo/Util/DatePicker.cs b/ChatTwo/Util/DatePicker.cs index 32fe13a..16e5acf 100644 --- a/ChatTwo/Util/DatePicker.cs +++ b/ChatTwo/Util/DatePicker.cs @@ -7,7 +7,7 @@ using Dalamud.Interface.ImGuiNotification; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; using Dalamud.Utility; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Util; @@ -91,7 +91,7 @@ public static class DateWidget var arrowLeftWidth = ImGui.CalcTextSize(arrowLeft).X; var arrowRightWidth = ImGui.CalcTextSize(arrowRight).X; - var labelSize = ImGui.CalcTextSize(label, 0, true); + var labelSize = ImGui.CalcTextSize(label, true, 0); var widthRequiredByCalendar = (2.0f * arrowLeftWidth) + (2.0f * arrowRightWidth) + LongestMonthWidth + ImGui.CalcTextSize("9999").X + (120.0f * ImGuiHelpers.GlobalScale); var popupHeight = ((labelSize.Y + (2 * style.ItemSpacing.Y)) * HeightInItems) + (style.FramePadding.Y * 3); diff --git a/ChatTwo/Util/ImGuiUtil.cs b/ChatTwo/Util/ImGuiUtil.cs index b386364..6467a4b 100755 --- a/ChatTwo/Util/ImGuiUtil.cs +++ b/ChatTwo/Util/ImGuiUtil.cs @@ -12,7 +12,7 @@ using Dalamud.Interface.ImGuiFontChooserDialog; using Dalamud.Interface.Style; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; -using ImGuiNET; +using Dalamud.Bindings.ImGui; namespace ChatTwo.Util; @@ -64,7 +64,7 @@ internal static class ImGuiUtil { var oldPos = ImGui.GetCursorScreenPos(); - ImGuiNative.igTextUnformatted(text, textEnd); + ImGuiNative.TextUnformatted(text, textEnd); PostPayload(chunk, handler); if (!ReferenceEquals(LastLink, chunk.Link)) @@ -107,7 +107,7 @@ internal static class ImGuiUtil } var widthLeft = ImGui.GetContentRegionAvail().X; - var endPrevLine = ImGuiNative.ImFont_CalcWordWrapPositionA(ImGui.GetFont().NativePtr, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft); + var endPrevLine = ImGuiNative.CalcWordWrapPositionA(ImGui.GetFont().Handle, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft); if (endPrevLine == null) continue; @@ -126,7 +126,7 @@ internal static class ImGuiUtil else { // check if the next bit is longer than the entire line width - var wrapPos = ImGuiNative.ImFont_CalcWordWrapPositionA(ImGui.GetFont().NativePtr, ImGuiHelpers.GlobalScale, text, firstSpace, lineWidth); + var wrapPos = ImGuiNative.CalcWordWrapPositionA(ImGui.GetFont().Handle, ImGuiHelpers.GlobalScale, text, firstSpace, lineWidth); // only go to next line is it's going to wrap at the space if (wrapPos >= firstSpace) @@ -144,7 +144,7 @@ internal static class ImGuiUtil if (*text == ' ') ++text; - var newEnd = ImGuiNative.ImFont_CalcWordWrapPositionA(ImGui.GetFont().NativePtr, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft); + var newEnd = ImGuiNative.CalcWordWrapPositionA(ImGui.GetFont().Handle, ImGuiHelpers.GlobalScale, text, textEnd, widthLeft); if (properBreak && newEnd == endPrevLine) break; @@ -257,7 +257,7 @@ internal static class ImGuiUtil { ImGui.TextUnformatted(label); ImGui.SetNextItemWidth(-1); - var r = ImGui.InputInt($"##{label}", ref value, step, stepFast, flags); + var r = ImGui.InputInt($"##{label}", ref value, step, stepFast, flags: flags); HelpText(description); return r; @@ -475,16 +475,16 @@ internal static class ImGuiUtil VirtualKey.SNAPSHOT => ImGuiKey.PrintScreen, VirtualKey.INSERT => ImGuiKey.Insert, VirtualKey.DELETE => ImGuiKey.Delete, - VirtualKey.KEY_0 => ImGuiKey._0, - VirtualKey.KEY_1 => ImGuiKey._1, - VirtualKey.KEY_2 => ImGuiKey._2, - VirtualKey.KEY_3 => ImGuiKey._3, - VirtualKey.KEY_4 => ImGuiKey._4, - VirtualKey.KEY_5 => ImGuiKey._5, - VirtualKey.KEY_6 => ImGuiKey._6, - VirtualKey.KEY_7 => ImGuiKey._7, - VirtualKey.KEY_8 => ImGuiKey._8, - VirtualKey.KEY_9 => ImGuiKey._9, + VirtualKey.KEY_0 => ImGuiKey.Key0, + VirtualKey.KEY_1 => ImGuiKey.Key1, + VirtualKey.KEY_2 => ImGuiKey.Key2, + VirtualKey.KEY_3 => ImGuiKey.Key3, + VirtualKey.KEY_4 => ImGuiKey.Key4, + VirtualKey.KEY_5 => ImGuiKey.Key5, + VirtualKey.KEY_6 => ImGuiKey.Key6, + VirtualKey.KEY_7 => ImGuiKey.Key7, + VirtualKey.KEY_8 => ImGuiKey.Key8, + VirtualKey.KEY_9 => ImGuiKey.Key9, VirtualKey.A => ImGuiKey.A, VirtualKey.B => ImGuiKey.B, VirtualKey.C => ImGuiKey.C, diff --git a/ChatTwo/Util/SearchSelector.cs b/ChatTwo/Util/SearchSelector.cs index 28c87d3..60ef653 100644 --- a/ChatTwo/Util/SearchSelector.cs +++ b/ChatTwo/Util/SearchSelector.cs @@ -1,6 +1,6 @@ using System.Numerics; using Dalamud.Interface.Utility; -using ImGuiNET; +using Dalamud.Bindings.ImGui; using System.Collections; using Dalamud.Interface.Utility.Raii; @@ -147,7 +147,7 @@ public unsafe class ListClipper : IEnumerable<(int, int)>, IDisposable CurrentColumns = cols; CurrentRows = TwoDimensional ? items : (int)MathF.Ceiling((float)items / CurrentColumns); ItemRemainder = !TwoDimensional ? items % CurrentColumns : 0; - Clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper_ImGuiListClipper()); + Clipper = new ImGuiListClipperPtr(ImGuiNative.ImGuiListClipper()); Clipper.Begin(CurrentRows, itemHeight); } diff --git a/ChatTwo/packages.lock.json b/ChatTwo/packages.lock.json index 5907b82..0ccf71c 100644 --- a/ChatTwo/packages.lock.json +++ b/ChatTwo/packages.lock.json @@ -4,9 +4,9 @@ "net9.0-windows7.0": { "DalamudPackager": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "J5TJLV3f16T/E2H2P17ClWjtfEBPpq3yxvqW46eN36JCm6wR+EaoaYkqG9Rm5sHqs3/nK/vKjWWyvEs/jhKoXw==" + "requested": "[13.0.0, )", + "resolved": "13.0.0", + "contentHash": "Mb3cUDSK/vDPQ8gQIeuCw03EMYrej1B4J44a1AvIJ9C759p9XeqdU9Hg4WgOmlnlPe0G7ILTD32PKSUpkQNa8w==" }, "DotNet.ReproducibleBuilds": { "type": "Direct", @@ -16,12 +16,12 @@ }, "MessagePack": { "type": "Direct", - "requested": "[3.1.3, )", - "resolved": "3.1.3", - "contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==", + "requested": "[3.1.4, )", + "resolved": "3.1.4", + "contentHash": "BH0wlHWmVoZpbAPyyt2Awbq30C+ZsS3eHSkYdnyUAbqVJ22fAJDzn2xTieBeoT5QlcBzp61vHcv878YJGfi3mg==", "dependencies": { - "MessagePack.Annotations": "3.1.3", - "MessagePackAnalyzer": "3.1.3", + "MessagePack.Annotations": "3.1.4", + "MessagePackAnalyzer": "3.1.4", "Microsoft.NET.StringTools": "17.11.4" } }, @@ -44,9 +44,9 @@ }, "SixLabors.ImageSharp": { "type": "Direct", - "requested": "[3.1.7, )", - "resolved": "3.1.7", - "contentHash": "9fIOOAsyLFid6qKypM2Iy0Z3Q9yoanV8VoYAHtI2sYGMNKzhvRTjgFDHonIiVe+ANtxIxM6SuqUzj0r91nItpA==" + "requested": "[3.1.11, )", + "resolved": "3.1.11", + "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw==" }, "Watson.Lite": { "type": "Direct", @@ -70,13 +70,13 @@ }, "MessagePack.Annotations": { "type": "Transitive", - "resolved": "3.1.3", - "contentHash": "XTy4njgTAf6UVBKFj7c7ad5R0WVKbvAgkbYZy4f00kplzX2T3VOQ34AUke/Vn/QgQZ7ETdd34/IDWS3KBInSGA==" + "resolved": "3.1.4", + "contentHash": "aVWrDAkCdqxwQsz/q0ldPh2EFn48M99YUzE9OvZjMq2RNLKz4o2z88iGFvSvbMqOWRweRvKPHBJZe22PRqzslQ==" }, "MessagePackAnalyzer": { "type": "Transitive", - "resolved": "3.1.3", - "contentHash": "19u1oVNv2brCs5F/jma8O8CnsKMMpYwNqD0CAEDEzvqwDTAhqC9r7xHZP4stPb3APs/ryO/zVn7LvjoEHfvs7Q==" + "resolved": "3.1.4", + "contentHash": "CTaSsN/liJ7MhLCAB7Z4ZLBNuVGCq9lt2BT/cbrc9vzGv89yK3CqIA+z9T19a11eQYl9etZHL6MQJgCqECRVpg==" }, "Microsoft.Data.Sqlite.Core": { "type": "Transitive",