diff --git a/MareSynchronos/FileCache/FileCompactor.cs b/MareSynchronos/FileCache/FileCompactor.cs index 8c3cd05..26cf500 100644 --- a/MareSynchronos/FileCache/FileCompactor.cs +++ b/MareSynchronos/FileCache/FileCompactor.cs @@ -64,7 +64,7 @@ public sealed class FileCompactor public long GetFileSizeOnDisk(string filePath) { - if (Dalamud.Utility.Util.IsLinux()) return new FileInfo(filePath).Length; + if (Dalamud.Utility.Util.IsWine()) return new FileInfo(filePath).Length; var clusterSize = GetClusterSize(filePath); if (clusterSize == -1) return new FileInfo(filePath).Length; @@ -75,9 +75,9 @@ public sealed class FileCompactor public async Task WriteAllBytesAsync(string filePath, byte[] decompressedFile, CancellationToken token) { - await File.WriteAllBytesAsync(filePath, decompressedFile, token); + await File.WriteAllBytesAsync(filePath, decompressedFile, token).ConfigureAwait(false); - if (Dalamud.Utility.Util.IsLinux() || !_mareConfigService.Current.UseCompactor) + if (Dalamud.Utility.Util.IsWine() || !_mareConfigService.Current.UseCompactor) { return; } diff --git a/MareSynchronos/Interop/DalamudLogger.cs b/MareSynchronos/Interop/DalamudLogger.cs index 8a01354..c9571d8 100644 --- a/MareSynchronos/Interop/DalamudLogger.cs +++ b/MareSynchronos/Interop/DalamudLogger.cs @@ -1,4 +1,4 @@ -using Dalamud.Logging; +using Dalamud.Plugin.Services; using MareSynchronos.MareConfiguration; using Microsoft.Extensions.Logging; using System.Text; @@ -8,12 +8,14 @@ namespace MareSynchronos.Interop; internal sealed class DalamudLogger : ILogger { private readonly MareConfigService _mareConfigService; + private readonly IPluginLog _pluginLog; private readonly string _name; - public DalamudLogger(string name, MareConfigService mareConfigService) + public DalamudLogger(string name, MareConfigService mareConfigService, IPluginLog pluginLog) { _name = name; _mareConfigService = mareConfigService; + _pluginLog = pluginLog; } public IDisposable BeginScope(TState state) => default!; @@ -28,18 +30,18 @@ internal sealed class DalamudLogger : ILogger if (!IsEnabled(logLevel)) return; if ((int)logLevel <= (int)LogLevel.Information) - PluginLog.Information($"[{_name}]{{{(int)logLevel}}} {state}"); + _pluginLog.Information($"[{_name}]{{{(int)logLevel}}} {state}"); else { StringBuilder sb = new(); sb.AppendLine($"[{_name}]{{{(int)logLevel}}} {state}: {exception?.Message}"); sb.AppendLine(exception?.StackTrace); if (logLevel == LogLevel.Warning) - PluginLog.Warning(sb.ToString()); + _pluginLog.Warning(sb.ToString()); else if (logLevel == LogLevel.Error) - PluginLog.Error(sb.ToString()); + _pluginLog.Error(sb.ToString()); else - PluginLog.Fatal(sb.ToString()); + _pluginLog.Fatal(sb.ToString()); } } } \ No newline at end of file diff --git a/MareSynchronos/Interop/DalamudLoggingProvider.cs b/MareSynchronos/Interop/DalamudLoggingProvider.cs index b1c4594..0a74bb1 100644 --- a/MareSynchronos/Interop/DalamudLoggingProvider.cs +++ b/MareSynchronos/Interop/DalamudLoggingProvider.cs @@ -1,4 +1,5 @@ using System.Collections.Concurrent; +using Dalamud.Plugin.Services; using MareSynchronos.MareConfiguration; using Microsoft.Extensions.Logging; @@ -11,10 +12,12 @@ public sealed class DalamudLoggingProvider : ILoggerProvider new(StringComparer.OrdinalIgnoreCase); private readonly MareConfigService _mareConfigService; + private readonly IPluginLog _pluginLog; - public DalamudLoggingProvider(MareConfigService mareConfigService) + public DalamudLoggingProvider(MareConfigService mareConfigService, IPluginLog pluginLog) { _mareConfigService = mareConfigService; + _pluginLog = pluginLog; } public ILogger CreateLogger(string categoryName) @@ -29,7 +32,7 @@ public sealed class DalamudLoggingProvider : ILoggerProvider catName = string.Join("", Enumerable.Range(0, 15 - catName.Length).Select(_ => " ")) + catName; } - return _loggers.GetOrAdd(catName, name => new DalamudLogger(catName, _mareConfigService)); + return _loggers.GetOrAdd(catName, name => new DalamudLogger(catName, _mareConfigService, _pluginLog)); } public void Dispose() diff --git a/MareSynchronos/Interop/DalamudLoggingProviderExtensions.cs b/MareSynchronos/Interop/DalamudLoggingProviderExtensions.cs index 5d50b57..392e5d0 100644 --- a/MareSynchronos/Interop/DalamudLoggingProviderExtensions.cs +++ b/MareSynchronos/Interop/DalamudLoggingProviderExtensions.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.DependencyInjection; +using Dalamud.Plugin.Services; +using MareSynchronos.MareConfiguration; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging; @@ -6,11 +8,12 @@ namespace MareSynchronos.Interop; public static class DalamudLoggingProviderExtensions { - public static ILoggingBuilder AddDalamudLogging(this ILoggingBuilder builder) + public static ILoggingBuilder AddDalamudLogging(this ILoggingBuilder builder, IPluginLog pluginLog) { builder.ClearProviders(); - builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton()); + builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton + (b => new DalamudLoggingProvider(b.GetRequiredService(), pluginLog))); return builder; } diff --git a/MareSynchronos/Interop/FFXIV/CharaExt.cs b/MareSynchronos/Interop/FFXIV/CharaExt.cs deleted file mode 100644 index 94c24a6..0000000 --- a/MareSynchronos/Interop/FFXIV/CharaExt.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Runtime.InteropServices; -using FFXIVClientStructs.FFXIV.Client.Game.Character; - -namespace MareSynchronos.Interop.FFXIV; - -[StructLayout(LayoutKind.Explicit)] -public unsafe struct CharaExt -{ - [FieldOffset(0x0)] public Character Character; - [FieldOffset(0x650)] public Character* Mount; -} diff --git a/MareSynchronos/Interop/FFXIV/HumanExt.cs b/MareSynchronos/Interop/FFXIV/HumanExt.cs deleted file mode 100644 index eec2adf..0000000 --- a/MareSynchronos/Interop/FFXIV/HumanExt.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Runtime.InteropServices; -using FFXIVClientStructs.FFXIV.Client.Graphics.Scene; - -namespace MareSynchronos.Interop.FFXIV; - -[StructLayout(LayoutKind.Explicit)] -public unsafe struct HumanExt -{ - [FieldOffset(0x0)] public Human Human; - [FieldOffset(0x9E8)] public ResourceHandle* Decal; - [FieldOffset(0x9F0)] public ResourceHandle* LegacyBodyDecal; -} diff --git a/MareSynchronos/Interop/FFXIV/Material.cs b/MareSynchronos/Interop/FFXIV/Material.cs deleted file mode 100644 index 41cd349..0000000 --- a/MareSynchronos/Interop/FFXIV/Material.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Runtime.InteropServices; - -namespace MareSynchronos.Interop.FFXIV; - -[StructLayout(LayoutKind.Explicit)] -public unsafe struct Material -{ - [FieldOffset(0x10)] - public ResourceHandle* ResourceHandle; -} diff --git a/MareSynchronos/Interop/FFXIV/MaterialData.cs b/MareSynchronos/Interop/FFXIV/MaterialData.cs deleted file mode 100644 index bc7bfac..0000000 --- a/MareSynchronos/Interop/FFXIV/MaterialData.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Runtime.InteropServices; - -namespace MareSynchronos.Interop.FFXIV; - -[StructLayout(LayoutKind.Explicit)] -public unsafe struct MaterialData -{ - [FieldOffset(0x0)] - public byte* Data; -} \ No newline at end of file diff --git a/MareSynchronos/Interop/FFXIV/MtrlResource.cs b/MareSynchronos/Interop/FFXIV/MtrlResource.cs deleted file mode 100644 index 02947bb..0000000 --- a/MareSynchronos/Interop/FFXIV/MtrlResource.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Runtime.InteropServices; - -namespace MareSynchronos.Interop.FFXIV; - -[StructLayout(LayoutKind.Explicit)] -public unsafe struct MtrlResource -{ - [FieldOffset(0x00)] - public ResourceHandle Handle; - - [FieldOffset(0xD0)] - public ushort* TexSpace; // Contains the offsets for the tex files inside the string list. - - [FieldOffset(0xE0)] - public byte* StringList; - - [FieldOffset(0xF8)] - public ushort ShpkOffset; - - [FieldOffset(0xFA)] - public byte NumTex; - - public byte* ShpkString - => StringList + ShpkOffset; - - public byte* TexString(int idx) - => StringList + *(TexSpace + 4 + idx * 8); -} \ No newline at end of file diff --git a/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs b/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs index d3a63fd..fb15747 100644 --- a/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs +++ b/MareSynchronos/PlayerData/Factories/PlayerDataFactory.cs @@ -5,15 +5,14 @@ using FFXIVClientStructs.FFXIV.Client.System.Resource; using MareSynchronos.API.Data.Enum; using MareSynchronos.Interop; using Object = FFXIVClientStructs.FFXIV.Client.Graphics.Scene.Object; -using Penumbra.String; using Weapon = MareSynchronos.Interop.FFXIV.Weapon; using MareSynchronos.FileCache; using Microsoft.Extensions.Logging; using System.Globalization; using MareSynchronos.PlayerData.Data; using MareSynchronos.PlayerData.Handlers; -using MareSynchronos.Interop.FFXIV; using MareSynchronos.Services; +using FFXIVClientStructs.FFXIV.Client.Graphics.Render; namespace MareSynchronos.PlayerData.Factories; @@ -112,7 +111,7 @@ public class PlayerDataFactory { var mainHandWeapon = weaponObject->WeaponRenderModel->RenderModel; - AddReplacementsFromRenderModel(mainHandWeapon, forwardResolve, reverseResolve); + AddReplacementsFromRenderModel((Model*)mainHandWeapon, forwardResolve, reverseResolve); foreach (var item in _transientResourceManager.GetTransientResources((IntPtr)weaponObject)) { @@ -124,7 +123,7 @@ public class PlayerDataFactory { var offHandWeapon = ((Weapon*)weaponObject->NextSibling)->WeaponRenderModel->RenderModel; - AddReplacementsFromRenderModel(offHandWeapon, forwardResolve, reverseResolve); + AddReplacementsFromRenderModel((Model*)offHandWeapon, forwardResolve, reverseResolve); foreach (var item in _transientResourceManager.GetTransientResources((IntPtr)offHandWeapon)) { @@ -134,10 +133,10 @@ public class PlayerDataFactory } } - AddReplacementSkeleton(((HumanExt*)human)->Human.RaceSexId, forwardResolve); + AddReplacementSkeleton((human)->RaceSexId, forwardResolve); try { - AddReplacementsFromTexture(new ByteString(((HumanExt*)human)->Decal->FileName()).ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false); + AddReplacementsFromTexture((human)->Decal->ResourceHandle.FileName.ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false); } catch { @@ -145,7 +144,7 @@ public class PlayerDataFactory } try { - AddReplacementsFromTexture(new ByteString(((HumanExt*)human)->LegacyBodyDecal->FileName()).ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false); + AddReplacementsFromTexture((human)->LegacyBodyDecal->ResourceHandle.FileName.ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false); } catch { @@ -158,7 +157,7 @@ public class PlayerDataFactory string fileName; try { - fileName = new ByteString(mtrl->ResourceHandle->FileName()).ToString(); + fileName = mtrl->MaterialResourceHandle->ResourceHandle.FileName.ToString(); } catch { @@ -171,13 +170,13 @@ public class PlayerDataFactory reverseResolve.Add(mtrlPath); - var mtrlResourceHandle = (MtrlResource*)mtrl->ResourceHandle; - for (var resIdx = 0; resIdx < mtrlResourceHandle->NumTex; resIdx++) + var mtrlResourceHandle = mtrl->MaterialResourceHandle; + for (var resIdx = 0; resIdx < mtrlResourceHandle->TextureCount; resIdx++) { string? texPath = null; try { - texPath = new ByteString(mtrlResourceHandle->TexString(resIdx)).ToString(); + texPath = mtrlResourceHandle->TexturePathString(resIdx); } catch (Exception e) { @@ -191,7 +190,7 @@ public class PlayerDataFactory try { - var shpkPath = "shader/sm5/shpk/" + new ByteString(mtrlResourceHandle->ShpkString).ToString(); + var shpkPath = "shader/sm5/shpk/" + mtrlResourceHandle->ShpkNameString; _logger.LogTrace("Checking File Replacement for Shader {path}", shpkPath); forwardResolve.Add(shpkPath); } @@ -201,9 +200,9 @@ public class PlayerDataFactory } } - private unsafe void AddReplacementsFromRenderModel(RenderModel* mdl, HashSet forwardResolve, HashSet reverseResolve) + private unsafe void AddReplacementsFromRenderModel(Model* mdl, HashSet forwardResolve, HashSet reverseResolve) { - if (mdl == null || mdl->ResourceHandle == null || mdl->ResourceHandle->Category != ResourceCategory.Chara) + if (mdl == null || mdl->ModelResourceHandle == null || mdl->ModelResourceHandle->ResourceHandle.Category != ResourceCategory.Chara) { return; } @@ -211,7 +210,7 @@ public class PlayerDataFactory string mdlPath; try { - mdlPath = new ByteString(mdl->ResourceHandle->FileName()).ToString(); + mdlPath = mdl->ModelResourceHandle->ResourceHandle.FileName.ToString(); } catch { @@ -224,7 +223,7 @@ public class PlayerDataFactory for (var mtrlIdx = 0; mtrlIdx < mdl->MaterialCount; mtrlIdx++) { - var mtrl = (Material*)mdl->Materials[mtrlIdx]; + var mtrl = mdl->Materials[mtrlIdx]; if (mtrl == null) continue; AddReplacementsFromMaterial(mtrl, forwardResolve, reverseResolve); @@ -269,8 +268,8 @@ public class PlayerDataFactory var human = (Human*)((Character*)charaPointer)->GameObject.GetDrawObject(); for (var mdlIdx = 0; mdlIdx < human->CharacterBase.SlotCount; ++mdlIdx) { - var mdl = (RenderModel*)human->CharacterBase.ModelArray[mdlIdx]; - if (mdl == null || mdl->ResourceHandle == null || mdl->ResourceHandle->Category != ResourceCategory.Chara) + var mdl = human->CharacterBase.Models[mdlIdx]; + if (mdl == null || mdl->ModelResourceHandle == null || mdl->ModelResourceHandle->ResourceHandle.Category != ResourceCategory.Chara) { continue; } diff --git a/MareSynchronos/PlayerData/Handlers/PairHandler.cs b/MareSynchronos/PlayerData/Handlers/PairHandler.cs index 98a5ad4..016cdc0 100644 --- a/MareSynchronos/PlayerData/Handlers/PairHandler.cs +++ b/MareSynchronos/PlayerData/Handlers/PairHandler.cs @@ -1,5 +1,4 @@ -using Dalamud.Logging; -using MareSynchronos.API.Data; +using MareSynchronos.API.Data; using MareSynchronos.API.Dto.User; using MareSynchronos.FileCache; using MareSynchronos.Interop; @@ -586,7 +585,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase } catch (Exception ex) { - PluginLog.Error(ex, "[BASE-{appBase}] Something went wrong during calculation replacements", applicationBase); + Logger.LogError(ex, "[BASE-{appBase}] Something went wrong during calculation replacements", applicationBase); } if (hasMigrationChanges) _fileDbManager.WriteOutFullCsv(); st.Stop(); diff --git a/MareSynchronos/PlayerData/Services/CacheCreationService.cs b/MareSynchronos/PlayerData/Services/CacheCreationService.cs index e4b7a21..683fbc4 100644 --- a/MareSynchronos/PlayerData/Services/CacheCreationService.cs +++ b/MareSynchronos/PlayerData/Services/CacheCreationService.cs @@ -5,7 +5,6 @@ using MareSynchronos.PlayerData.Handlers; using MareSynchronos.Services; using MareSynchronos.Services.Mediator; using Microsoft.Extensions.Logging; -using System.Linq; namespace MareSynchronos.PlayerData.Services; diff --git a/MareSynchronos/Plugin.cs b/MareSynchronos/Plugin.cs index 3285ede..25da158 100644 --- a/MareSynchronos/Plugin.cs +++ b/MareSynchronos/Plugin.cs @@ -1,15 +1,8 @@ using Dalamud.ContextMenu; -using Dalamud.Data; -using Dalamud.Game; -using Dalamud.Game.ClientState; -using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects; -using Dalamud.Game.Command; -using Dalamud.Game.Gui; -using Dalamud.Game.Gui.Dtr; using Dalamud.Interface.ImGuiFileDialog; using Dalamud.Interface.Windowing; using Dalamud.Plugin; +using Dalamud.Plugin.Services; using MareSynchronos.FileCache; using MareSynchronos.Interop; using MareSynchronos.MareConfiguration; @@ -35,16 +28,16 @@ public sealed class Plugin : IDalamudPlugin { private readonly CancellationTokenSource _pluginCts = new(); - public Plugin(DalamudPluginInterface pluginInterface, CommandManager commandManager, DataManager gameData, - Framework framework, ObjectTable objectTable, ClientState clientState, Condition condition, ChatGui chatGui, - GameGui gameGui, DtrBar dtrBar) + public Plugin(DalamudPluginInterface pluginInterface, ICommandManager commandManager, IDataManager gameData, + IFramework framework, IObjectTable objectTable, IClientState clientState, ICondition condition, IChatGui chatGui, + IGameGui gameGui, IDtrBar dtrBar, IPluginLog pluginLog) { _ = new HostBuilder() .UseContentRoot(pluginInterface.ConfigDirectory.FullName) .ConfigureLogging(lb => { lb.ClearProviders(); - lb.AddDalamudLogging(); + lb.AddDalamudLogging(pluginLog); lb.SetMinimumLevel(LogLevel.Trace); }) .ConfigureServices(collection => @@ -119,7 +112,7 @@ public sealed class Plugin : IDalamudPlugin s.GetRequiredService(), s.GetServices(), s.GetRequiredService>(), s.GetRequiredService(), s.GetRequiredService())); collection.AddScoped((s) => new CommandManagerService(commandManager, s.GetRequiredService(), s.GetRequiredService(), - s.GetRequiredService(), s.GetRequiredService(), s.GetRequiredService(), + s.GetRequiredService(), s.GetRequiredService(), s.GetRequiredService(), s.GetRequiredService())); collection.AddScoped((s) => new NotificationService(s.GetRequiredService>(), s.GetRequiredService(), pluginInterface.UiBuilder, chatGui, s.GetRequiredService())); diff --git a/MareSynchronos/Services/CharacterAnalyzer.cs b/MareSynchronos/Services/CharacterAnalyzer.cs index 5088155..271f275 100644 --- a/MareSynchronos/Services/CharacterAnalyzer.cs +++ b/MareSynchronos/Services/CharacterAnalyzer.cs @@ -5,7 +5,6 @@ using MareSynchronos.Services.Mediator; using MareSynchronos.UI; using MareSynchronos.Utils; using Microsoft.Extensions.Logging; -using Lumina.Data; using Lumina.Data.Files; namespace MareSynchronos.Services; diff --git a/MareSynchronos/Services/CommandManagerService.cs b/MareSynchronos/Services/CommandManagerService.cs index 31514e3..6252908 100644 --- a/MareSynchronos/Services/CommandManagerService.cs +++ b/MareSynchronos/Services/CommandManagerService.cs @@ -1,4 +1,5 @@ using Dalamud.Game.Command; +using Dalamud.Plugin.Services; using MareSynchronos.FileCache; using MareSynchronos.Services.Mediator; using MareSynchronos.Services.ServerConfiguration; @@ -12,14 +13,14 @@ public sealed class CommandManagerService : IDisposable private const string _commandName = "/mare"; private readonly ApiController _apiController; - private readonly CommandManager _commandManager; + private readonly ICommandManager _commandManager; private readonly MareMediator _mediator; private readonly PerformanceCollectorService _performanceCollectorService; private readonly PeriodicFileScanner _periodicFileScanner; private readonly ServerConfigurationManager _serverConfigurationManager; private readonly UiService _uiService; - public CommandManagerService(CommandManager commandManager, PerformanceCollectorService performanceCollectorService, + public CommandManagerService(ICommandManager commandManager, PerformanceCollectorService performanceCollectorService, UiService uiService, ServerConfigurationManager serverConfigurationManager, PeriodicFileScanner periodicFileScanner, ApiController apiController, MareMediator mediator) { diff --git a/MareSynchronos/Services/DalamudUtilService.cs b/MareSynchronos/Services/DalamudUtilService.cs index 5f7ea99..ce0fa8d 100644 --- a/MareSynchronos/Services/DalamudUtilService.cs +++ b/MareSynchronos/Services/DalamudUtilService.cs @@ -1,9 +1,6 @@ -using Dalamud.Game; -using Dalamud.Game.ClientState; -using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects; +using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.Gui; +using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Client.Game.Control; using FFXIVClientStructs.FFXIV.Client.Graphics.Scene; @@ -21,13 +18,13 @@ namespace MareSynchronos.Services; public class DalamudUtilService : IHostedService { private readonly List _classJobIdsIgnoredForPets = new() { 30 }; - private readonly ClientState _clientState; - private readonly Condition _condition; - private readonly Framework _framework; - private readonly GameGui _gameGui; + private readonly IClientState _clientState; + private readonly ICondition _condition; + private readonly IFramework _framework; + private readonly IGameGui _gameGui; private readonly ILogger _logger; private readonly MareMediator _mediator; - private readonly ObjectTable _objectTable; + private readonly IObjectTable _objectTable; private readonly PerformanceCollectorService _performanceCollector; private uint? _classJobId = 0; private DateTime _delayedFrameworkUpdateCheck = DateTime.Now; @@ -37,8 +34,8 @@ public class DalamudUtilService : IHostedService private Dictionary _playerCharas = new(StringComparer.Ordinal); private bool _sentBetweenAreas = false; - public DalamudUtilService(ILogger logger, ClientState clientState, ObjectTable objectTable, Framework framework, - GameGui gameGui, Condition condition, Dalamud.Data.DataManager gameData, MareMediator mediator, PerformanceCollectorService performanceCollector) + public DalamudUtilService(ILogger logger, IClientState clientState, IObjectTable objectTable, IFramework framework, + IGameGui gameGui, ICondition condition, IDataManager gameData, MareMediator mediator, PerformanceCollectorService performanceCollector) { _logger = logger; _clientState = clientState; @@ -394,7 +391,7 @@ public class DalamudUtilService : IHostedService } } - private void FrameworkOnUpdate(Framework framework) + private void FrameworkOnUpdate(IFramework framework) { _performanceCollector.LogPerformance(this, "FrameworkOnUpdate", FrameworkOnUpdateInternal); } diff --git a/MareSynchronos/Services/NotificationService.cs b/MareSynchronos/Services/NotificationService.cs index 89cbbf2..b940029 100644 --- a/MareSynchronos/Services/NotificationService.cs +++ b/MareSynchronos/Services/NotificationService.cs @@ -1,7 +1,7 @@ -using Dalamud.Game.Gui; -using Dalamud.Game.Text.SeStringHandling; +using Dalamud.Game.Text.SeStringHandling; using Dalamud.Interface; using Dalamud.Interface.Internal.Notifications; +using Dalamud.Plugin.Services; using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration.Models; using MareSynchronos.Services.Mediator; @@ -11,11 +11,11 @@ namespace MareSynchronos.Services; public class NotificationService : DisposableMediatorSubscriberBase { - private readonly ChatGui _chatGui; + private readonly IChatGui _chatGui; private readonly MareConfigService _configurationService; private readonly UiBuilder _uiBuilder; - public NotificationService(ILogger logger, MareMediator mediator, UiBuilder uiBuilder, ChatGui chatGui, MareConfigService configurationService) : base(logger, mediator) + public NotificationService(ILogger logger, MareMediator mediator, UiBuilder uiBuilder, IChatGui chatGui, MareConfigService configurationService) : base(logger, mediator) { _uiBuilder = uiBuilder; _chatGui = chatGui; diff --git a/MareSynchronos/UI/CompactUI.cs b/MareSynchronos/UI/CompactUI.cs index c6d5a11..4455ec8 100644 --- a/MareSynchronos/UI/CompactUI.cs +++ b/MareSynchronos/UI/CompactUI.cs @@ -6,6 +6,7 @@ using System.Reflection; using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Components; +using Dalamud.Interface.Utility; using Dalamud.Utility; using ImGuiNET; using MareSynchronos.API.Data.Extensions; diff --git a/MareSynchronos/UI/Components/DrawGroupPair.cs b/MareSynchronos/UI/Components/DrawGroupPair.cs index f0c0be8..1597415 100644 --- a/MareSynchronos/UI/Components/DrawGroupPair.cs +++ b/MareSynchronos/UI/Components/DrawGroupPair.cs @@ -9,6 +9,7 @@ using MareSynchronos.API.Dto.User; using MareSynchronos.UI.Handlers; using MareSynchronos.API.Dto.Group; using MareSynchronos.API.Data.Enum; +using Dalamud.Interface.Utility; namespace MareSynchronos.UI.Components; diff --git a/MareSynchronos/UI/Components/DrawUserPair.cs b/MareSynchronos/UI/Components/DrawUserPair.cs index 2b6450b..04ba261 100644 --- a/MareSynchronos/UI/Components/DrawUserPair.cs +++ b/MareSynchronos/UI/Components/DrawUserPair.cs @@ -8,6 +8,7 @@ using MareSynchronos.API.Data.Extensions; using MareSynchronos.WebAPI; using MareSynchronos.API.Dto.User; using MareSynchronos.UI.Handlers; +using Dalamud.Interface.Utility; namespace MareSynchronos.UI.Components; diff --git a/MareSynchronos/UI/Components/GroupPanel.cs b/MareSynchronos/UI/Components/GroupPanel.cs index 6931eb4..30a9e3b 100644 --- a/MareSynchronos/UI/Components/GroupPanel.cs +++ b/MareSynchronos/UI/Components/GroupPanel.cs @@ -14,6 +14,7 @@ using MareSynchronos.PlayerData.Pairs; using MareSynchronos.Services.ServerConfiguration; using MareSynchronos.UI.Components; using MareSynchronos.UI.Handlers; +using Dalamud.Interface.Utility; namespace MareSynchronos.UI; diff --git a/MareSynchronos/UI/Components/SelectGroupForPairUi.cs b/MareSynchronos/UI/Components/SelectGroupForPairUi.cs index 7462fed..4be2e70 100644 --- a/MareSynchronos/UI/Components/SelectGroupForPairUi.cs +++ b/MareSynchronos/UI/Components/SelectGroupForPairUi.cs @@ -1,6 +1,7 @@ using System.Numerics; using Dalamud.Interface; using Dalamud.Interface.Components; +using Dalamud.Interface.Utility; using Dalamud.Utility; using ImGuiNET; using MareSynchronos.PlayerData.Pairs; diff --git a/MareSynchronos/UI/Components/SelectPairForGroupUi.cs b/MareSynchronos/UI/Components/SelectPairForGroupUi.cs index c86da26..8d906e2 100644 --- a/MareSynchronos/UI/Components/SelectPairForGroupUi.cs +++ b/MareSynchronos/UI/Components/SelectPairForGroupUi.cs @@ -1,5 +1,6 @@ using System.Numerics; using Dalamud.Interface; +using Dalamud.Interface.Utility; using ImGuiNET; using MareSynchronos.PlayerData.Pairs; using MareSynchronos.UI.Handlers; diff --git a/MareSynchronos/UI/DataAnalysisUi.cs b/MareSynchronos/UI/DataAnalysisUi.cs index 4132373..8003399 100644 --- a/MareSynchronos/UI/DataAnalysisUi.cs +++ b/MareSynchronos/UI/DataAnalysisUi.cs @@ -1,6 +1,6 @@ using Dalamud.Interface; using Dalamud.Interface.Colors; -using Dalamud.Interface.Raii; +using Dalamud.Interface.Utility.Raii; using ImGuiNET; using MareSynchronos.API.Data.Enum; using MareSynchronos.Interop; diff --git a/MareSynchronos/UI/DtrEntry.cs b/MareSynchronos/UI/DtrEntry.cs index f1bb17e..a518d45 100644 --- a/MareSynchronos/UI/DtrEntry.cs +++ b/MareSynchronos/UI/DtrEntry.cs @@ -1,4 +1,5 @@ using Dalamud.Game.Gui.Dtr; +using Dalamud.Plugin.Services; using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration.Configurations; using MareSynchronos.PlayerData.Pairs; @@ -13,14 +14,14 @@ public sealed class DtrEntry : IDisposable, IHostedService private readonly ApiController _apiController; private readonly CancellationTokenSource _cancellationTokenSource = new(); private readonly ILogger _logger; - private readonly DtrBar _dtrBar; + private readonly IDtrBar _dtrBar; private readonly ConfigurationServiceBase _configService; private Lazy _entry; private readonly PairManager _pairManager; private Task? _runTask; private string? _text; - public DtrEntry(ILogger logger, DtrBar dtrBar, ConfigurationServiceBase configService, PairManager pairManager, ApiController apiController) + public DtrEntry(ILogger logger, IDtrBar dtrBar, ConfigurationServiceBase configService, PairManager pairManager, ApiController apiController) { _logger = logger; _dtrBar = dtrBar; diff --git a/MareSynchronos/UI/EditProfileUi.cs b/MareSynchronos/UI/EditProfileUi.cs index e35c36d..5aab875 100644 --- a/MareSynchronos/UI/EditProfileUi.cs +++ b/MareSynchronos/UI/EditProfileUi.cs @@ -2,8 +2,9 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.GameFonts; using Dalamud.Interface.ImGuiFileDialog; +using Dalamud.Interface.Internal; +using Dalamud.Interface.Utility; using ImGuiNET; -using ImGuiScene; using MareSynchronos.API.Data; using MareSynchronos.API.Dto.User; using MareSynchronos.Services; @@ -23,7 +24,7 @@ public class EditProfileUi : WindowMediatorSubscriberBase private bool _adjustedForScollBarsLocalProfile = false; private bool _adjustedForScollBarsOnlineProfile = false; private string _descriptionText = string.Empty; - private TextureWrap? _pfpTextureWrap; + private IDalamudTextureWrap? _pfpTextureWrap; private string _profileDescription = string.Empty; private byte[] _profileImage = Array.Empty(); private bool _showFileDialogError = false; diff --git a/MareSynchronos/UI/IntroUI.cs b/MareSynchronos/UI/IntroUI.cs index cdbe7f1..49307c8 100644 --- a/MareSynchronos/UI/IntroUI.cs +++ b/MareSynchronos/UI/IntroUI.cs @@ -1,5 +1,5 @@ -using Dalamud.Interface; -using Dalamud.Interface.Colors; +using Dalamud.Interface.Colors; +using Dalamud.Interface.Utility; using Dalamud.Utility; using ImGuiNET; using MareSynchronos.FileCache; @@ -49,7 +49,7 @@ public class IntroUi : WindowMediatorSubscriberBase Mediator.Subscribe(this, (_) => IsOpen = false); Mediator.Subscribe(this, (_) => { - _configService.Current.UseCompactor = !Util.IsLinux(); + _configService.Current.UseCompactor = !Util.IsWine(); IsOpen = true; }); } @@ -174,7 +174,7 @@ public class IntroUi : WindowMediatorSubscriberBase { _uiShared.DrawFileScanState(); } - if (!Util.IsLinux()) + if (!Util.IsWine()) { var useFileCompactor = _configService.Current.UseCompactor; if (ImGui.Checkbox("Use File Compactor", ref useFileCompactor)) diff --git a/MareSynchronos/UI/PopoutProfileUi.cs b/MareSynchronos/UI/PopoutProfileUi.cs index 65ce268..85c9ed8 100644 --- a/MareSynchronos/UI/PopoutProfileUi.cs +++ b/MareSynchronos/UI/PopoutProfileUi.cs @@ -1,6 +1,5 @@ using Dalamud.Interface.Colors; using ImGuiNET; -using ImGuiScene; using MareSynchronos.PlayerData.Pairs; using MareSynchronos.Services; using MareSynchronos.Services.Mediator; @@ -9,7 +8,8 @@ using Microsoft.Extensions.Logging; using System.Numerics; using MareSynchronos.API.Data.Extensions; using MareSynchronos.MareConfiguration; -using Dalamud.Interface; +using Dalamud.Interface.Utility; +using Dalamud.Interface.Internal; namespace MareSynchronos.UI; @@ -23,8 +23,8 @@ public class PopoutProfileUi : WindowMediatorSubscriberBase private byte[] _lastProfilePicture = Array.Empty(); private byte[] _lastSupporterPicture = Array.Empty(); private Pair? _pair; - private TextureWrap? _supporterTextureWrap; - private TextureWrap? _textureWrap; + private IDalamudTextureWrap? _supporterTextureWrap; + private IDalamudTextureWrap? _textureWrap; public PopoutProfileUi(ILogger logger, MareMediator mediator, UiSharedService uiBuilder, ServerConfigurationManager serverManager, MareConfigService mareConfigService, diff --git a/MareSynchronos/UI/SettingsUi.cs b/MareSynchronos/UI/SettingsUi.cs index 42925f7..219bcea 100644 --- a/MareSynchronos/UI/SettingsUi.cs +++ b/MareSynchronos/UI/SettingsUi.cs @@ -437,7 +437,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawTimeSpanBetweenScansSetting(); _uiShared.DrawCacheDirectorySetting(); ImGui.Text($"Currently utilized local storage: {UiSharedService.ByteToString(_uiShared.FileCacheSize)}"); - bool isLinux = Util.IsLinux(); + bool isLinux = Util.IsWine(); if (isLinux) ImGui.BeginDisabled(); bool useFileCompactor = _configService.Current.UseCompactor; if (ImGui.Checkbox("Use file compactor", ref useFileCompactor)) diff --git a/MareSynchronos/UI/StandaloneProfileUi.cs b/MareSynchronos/UI/StandaloneProfileUi.cs index 9b5d5f8..dd396c7 100644 --- a/MareSynchronos/UI/StandaloneProfileUi.cs +++ b/MareSynchronos/UI/StandaloneProfileUi.cs @@ -1,6 +1,5 @@ using Dalamud.Interface.Colors; using ImGuiNET; -using ImGuiScene; using MareSynchronos.PlayerData.Pairs; using MareSynchronos.Services; using MareSynchronos.Services.Mediator; @@ -8,7 +7,8 @@ using MareSynchronos.Services.ServerConfiguration; using Microsoft.Extensions.Logging; using System.Numerics; using MareSynchronos.API.Data.Extensions; -using Dalamud.Interface; +using Dalamud.Interface.Utility; +using Dalamud.Interface.Internal; namespace MareSynchronos.UI; @@ -20,8 +20,8 @@ public class StandaloneProfileUi : WindowMediatorSubscriberBase private bool _adjustedForScrollBars = false; private byte[] _lastProfilePicture = Array.Empty(); private byte[] _lastSupporterPicture = Array.Empty(); - private TextureWrap? _supporterTextureWrap; - private TextureWrap? _textureWrap; + private IDalamudTextureWrap? _supporterTextureWrap; + private IDalamudTextureWrap? _textureWrap; public StandaloneProfileUi(ILogger logger, MareMediator mediator, UiSharedService uiBuilder, ServerConfigurationManager serverManager, MareProfileManager mareProfileManager, Pair pair) diff --git a/MareSynchronos/UI/UISharedService.cs b/MareSynchronos/UI/UISharedService.cs index 7cdaba0..2d88fe2 100644 --- a/MareSynchronos/UI/UISharedService.cs +++ b/MareSynchronos/UI/UISharedService.cs @@ -2,10 +2,11 @@ using Dalamud.Interface.Colors; using Dalamud.Interface.GameFonts; using Dalamud.Interface.ImGuiFileDialog; +using Dalamud.Interface.Internal; +using Dalamud.Interface.Utility; using Dalamud.Plugin; using Dalamud.Utility; using ImGuiNET; -using ImGuiScene; using MareSynchronos.FileCache; using MareSynchronos.Interop; using MareSynchronos.Localization; @@ -781,7 +782,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase return _pluginInterface.UiBuilder.GetGameFontHandle(new GameFontStyle(GameFontFamilyAndSize.Axis12)).ImFont; } - internal TextureWrap LoadImage(byte[] imageData) + internal IDalamudTextureWrap LoadImage(byte[] imageData) { return _pluginInterface.UiBuilder.LoadImage(imageData); } diff --git a/MareSynchronos/Utils/VariousExtensions.cs b/MareSynchronos/Utils/VariousExtensions.cs index c4d44db..8584337 100644 --- a/MareSynchronos/Utils/VariousExtensions.cs +++ b/MareSynchronos/Utils/VariousExtensions.cs @@ -1,5 +1,4 @@ using Dalamud.Game.ClientState.Objects.Types; -using Dalamud.Utility; using MareSynchronos.API.Data; using MareSynchronos.API.Data.Enum; using MareSynchronos.PlayerData.Handlers; diff --git a/MareSynchronos/WebAPI/Files/FileUploadManager.cs b/MareSynchronos/WebAPI/Files/FileUploadManager.cs index dfd39c3..e764665 100644 --- a/MareSynchronos/WebAPI/Files/FileUploadManager.cs +++ b/MareSynchronos/WebAPI/Files/FileUploadManager.cs @@ -1,5 +1,4 @@ -using LZ4; -using MareSynchronos.API.Data; +using MareSynchronos.API.Data; using MareSynchronos.API.Dto.Files; using MareSynchronos.API.Routes; using MareSynchronos.FileCache;