update to api9

This commit is contained in:
rootdarkarchon
2023-10-02 14:13:08 +02:00
parent 99f8060798
commit f89f6c1216
33 changed files with 94 additions and 163 deletions

View File

@@ -64,7 +64,7 @@ public sealed class FileCompactor
public long GetFileSizeOnDisk(string filePath) 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); var clusterSize = GetClusterSize(filePath);
if (clusterSize == -1) return new FileInfo(filePath).Length; 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) 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; return;
} }

View File

@@ -1,4 +1,4 @@
using Dalamud.Logging; using Dalamud.Plugin.Services;
using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.Text; using System.Text;
@@ -8,12 +8,14 @@ namespace MareSynchronos.Interop;
internal sealed class DalamudLogger : ILogger internal sealed class DalamudLogger : ILogger
{ {
private readonly MareConfigService _mareConfigService; private readonly MareConfigService _mareConfigService;
private readonly IPluginLog _pluginLog;
private readonly string _name; private readonly string _name;
public DalamudLogger(string name, MareConfigService mareConfigService) public DalamudLogger(string name, MareConfigService mareConfigService, IPluginLog pluginLog)
{ {
_name = name; _name = name;
_mareConfigService = mareConfigService; _mareConfigService = mareConfigService;
_pluginLog = pluginLog;
} }
public IDisposable BeginScope<TState>(TState state) => default!; public IDisposable BeginScope<TState>(TState state) => default!;
@@ -28,18 +30,18 @@ internal sealed class DalamudLogger : ILogger
if (!IsEnabled(logLevel)) return; if (!IsEnabled(logLevel)) return;
if ((int)logLevel <= (int)LogLevel.Information) if ((int)logLevel <= (int)LogLevel.Information)
PluginLog.Information($"[{_name}]{{{(int)logLevel}}} {state}"); _pluginLog.Information($"[{_name}]{{{(int)logLevel}}} {state}");
else else
{ {
StringBuilder sb = new(); StringBuilder sb = new();
sb.AppendLine($"[{_name}]{{{(int)logLevel}}} {state}: {exception?.Message}"); sb.AppendLine($"[{_name}]{{{(int)logLevel}}} {state}: {exception?.Message}");
sb.AppendLine(exception?.StackTrace); sb.AppendLine(exception?.StackTrace);
if (logLevel == LogLevel.Warning) if (logLevel == LogLevel.Warning)
PluginLog.Warning(sb.ToString()); _pluginLog.Warning(sb.ToString());
else if (logLevel == LogLevel.Error) else if (logLevel == LogLevel.Error)
PluginLog.Error(sb.ToString()); _pluginLog.Error(sb.ToString());
else else
PluginLog.Fatal(sb.ToString()); _pluginLog.Fatal(sb.ToString());
} }
} }
} }

View File

@@ -1,4 +1,5 @@
using System.Collections.Concurrent; using System.Collections.Concurrent;
using Dalamud.Plugin.Services;
using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -11,10 +12,12 @@ public sealed class DalamudLoggingProvider : ILoggerProvider
new(StringComparer.OrdinalIgnoreCase); new(StringComparer.OrdinalIgnoreCase);
private readonly MareConfigService _mareConfigService; private readonly MareConfigService _mareConfigService;
private readonly IPluginLog _pluginLog;
public DalamudLoggingProvider(MareConfigService mareConfigService) public DalamudLoggingProvider(MareConfigService mareConfigService, IPluginLog pluginLog)
{ {
_mareConfigService = mareConfigService; _mareConfigService = mareConfigService;
_pluginLog = pluginLog;
} }
public ILogger CreateLogger(string categoryName) 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; 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() public void Dispose()

View File

@@ -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.DependencyInjection.Extensions;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -6,11 +8,12 @@ namespace MareSynchronos.Interop;
public static class DalamudLoggingProviderExtensions public static class DalamudLoggingProviderExtensions
{ {
public static ILoggingBuilder AddDalamudLogging(this ILoggingBuilder builder) public static ILoggingBuilder AddDalamudLogging(this ILoggingBuilder builder, IPluginLog pluginLog)
{ {
builder.ClearProviders(); builder.ClearProviders();
builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ILoggerProvider, DalamudLoggingProvider>()); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ILoggerProvider, DalamudLoggingProvider>
(b => new DalamudLoggingProvider(b.GetRequiredService<MareConfigService>(), pluginLog)));
return builder; return builder;
} }

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -1,10 +0,0 @@
using System.Runtime.InteropServices;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct Material
{
[FieldOffset(0x10)]
public ResourceHandle* ResourceHandle;
}

View File

@@ -1,10 +0,0 @@
using System.Runtime.InteropServices;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct MaterialData
{
[FieldOffset(0x0)]
public byte* Data;
}

View File

@@ -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);
}

View File

@@ -5,15 +5,14 @@ using FFXIVClientStructs.FFXIV.Client.System.Resource;
using MareSynchronos.API.Data.Enum; using MareSynchronos.API.Data.Enum;
using MareSynchronos.Interop; using MareSynchronos.Interop;
using Object = FFXIVClientStructs.FFXIV.Client.Graphics.Scene.Object; using Object = FFXIVClientStructs.FFXIV.Client.Graphics.Scene.Object;
using Penumbra.String;
using Weapon = MareSynchronos.Interop.FFXIV.Weapon; using Weapon = MareSynchronos.Interop.FFXIV.Weapon;
using MareSynchronos.FileCache; using MareSynchronos.FileCache;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.Globalization; using System.Globalization;
using MareSynchronos.PlayerData.Data; using MareSynchronos.PlayerData.Data;
using MareSynchronos.PlayerData.Handlers; using MareSynchronos.PlayerData.Handlers;
using MareSynchronos.Interop.FFXIV;
using MareSynchronos.Services; using MareSynchronos.Services;
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
namespace MareSynchronos.PlayerData.Factories; namespace MareSynchronos.PlayerData.Factories;
@@ -112,7 +111,7 @@ public class PlayerDataFactory
{ {
var mainHandWeapon = weaponObject->WeaponRenderModel->RenderModel; var mainHandWeapon = weaponObject->WeaponRenderModel->RenderModel;
AddReplacementsFromRenderModel(mainHandWeapon, forwardResolve, reverseResolve); AddReplacementsFromRenderModel((Model*)mainHandWeapon, forwardResolve, reverseResolve);
foreach (var item in _transientResourceManager.GetTransientResources((IntPtr)weaponObject)) foreach (var item in _transientResourceManager.GetTransientResources((IntPtr)weaponObject))
{ {
@@ -124,7 +123,7 @@ public class PlayerDataFactory
{ {
var offHandWeapon = ((Weapon*)weaponObject->NextSibling)->WeaponRenderModel->RenderModel; var offHandWeapon = ((Weapon*)weaponObject->NextSibling)->WeaponRenderModel->RenderModel;
AddReplacementsFromRenderModel(offHandWeapon, forwardResolve, reverseResolve); AddReplacementsFromRenderModel((Model*)offHandWeapon, forwardResolve, reverseResolve);
foreach (var item in _transientResourceManager.GetTransientResources((IntPtr)offHandWeapon)) 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 try
{ {
AddReplacementsFromTexture(new ByteString(((HumanExt*)human)->Decal->FileName()).ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false); AddReplacementsFromTexture((human)->Decal->ResourceHandle.FileName.ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false);
} }
catch catch
{ {
@@ -145,7 +144,7 @@ public class PlayerDataFactory
} }
try try
{ {
AddReplacementsFromTexture(new ByteString(((HumanExt*)human)->LegacyBodyDecal->FileName()).ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false); AddReplacementsFromTexture((human)->LegacyBodyDecal->ResourceHandle.FileName.ToString(), forwardResolve, reverseResolve, doNotReverseResolve: false);
} }
catch catch
{ {
@@ -158,7 +157,7 @@ public class PlayerDataFactory
string fileName; string fileName;
try try
{ {
fileName = new ByteString(mtrl->ResourceHandle->FileName()).ToString(); fileName = mtrl->MaterialResourceHandle->ResourceHandle.FileName.ToString();
} }
catch catch
{ {
@@ -171,13 +170,13 @@ public class PlayerDataFactory
reverseResolve.Add(mtrlPath); reverseResolve.Add(mtrlPath);
var mtrlResourceHandle = (MtrlResource*)mtrl->ResourceHandle; var mtrlResourceHandle = mtrl->MaterialResourceHandle;
for (var resIdx = 0; resIdx < mtrlResourceHandle->NumTex; resIdx++) for (var resIdx = 0; resIdx < mtrlResourceHandle->TextureCount; resIdx++)
{ {
string? texPath = null; string? texPath = null;
try try
{ {
texPath = new ByteString(mtrlResourceHandle->TexString(resIdx)).ToString(); texPath = mtrlResourceHandle->TexturePathString(resIdx);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -191,7 +190,7 @@ public class PlayerDataFactory
try 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); _logger.LogTrace("Checking File Replacement for Shader {path}", shpkPath);
forwardResolve.Add(shpkPath); forwardResolve.Add(shpkPath);
} }
@@ -201,9 +200,9 @@ public class PlayerDataFactory
} }
} }
private unsafe void AddReplacementsFromRenderModel(RenderModel* mdl, HashSet<string> forwardResolve, HashSet<string> reverseResolve) private unsafe void AddReplacementsFromRenderModel(Model* mdl, HashSet<string> forwardResolve, HashSet<string> 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; return;
} }
@@ -211,7 +210,7 @@ public class PlayerDataFactory
string mdlPath; string mdlPath;
try try
{ {
mdlPath = new ByteString(mdl->ResourceHandle->FileName()).ToString(); mdlPath = mdl->ModelResourceHandle->ResourceHandle.FileName.ToString();
} }
catch catch
{ {
@@ -224,7 +223,7 @@ public class PlayerDataFactory
for (var mtrlIdx = 0; mtrlIdx < mdl->MaterialCount; mtrlIdx++) for (var mtrlIdx = 0; mtrlIdx < mdl->MaterialCount; mtrlIdx++)
{ {
var mtrl = (Material*)mdl->Materials[mtrlIdx]; var mtrl = mdl->Materials[mtrlIdx];
if (mtrl == null) continue; if (mtrl == null) continue;
AddReplacementsFromMaterial(mtrl, forwardResolve, reverseResolve); AddReplacementsFromMaterial(mtrl, forwardResolve, reverseResolve);
@@ -269,8 +268,8 @@ public class PlayerDataFactory
var human = (Human*)((Character*)charaPointer)->GameObject.GetDrawObject(); var human = (Human*)((Character*)charaPointer)->GameObject.GetDrawObject();
for (var mdlIdx = 0; mdlIdx < human->CharacterBase.SlotCount; ++mdlIdx) for (var mdlIdx = 0; mdlIdx < human->CharacterBase.SlotCount; ++mdlIdx)
{ {
var mdl = (RenderModel*)human->CharacterBase.ModelArray[mdlIdx]; var mdl = human->CharacterBase.Models[mdlIdx];
if (mdl == null || mdl->ResourceHandle == null || mdl->ResourceHandle->Category != ResourceCategory.Chara) if (mdl == null || mdl->ModelResourceHandle == null || mdl->ModelResourceHandle->ResourceHandle.Category != ResourceCategory.Chara)
{ {
continue; continue;
} }

View File

@@ -1,5 +1,4 @@
using Dalamud.Logging; using MareSynchronos.API.Data;
using MareSynchronos.API.Data;
using MareSynchronos.API.Dto.User; using MareSynchronos.API.Dto.User;
using MareSynchronos.FileCache; using MareSynchronos.FileCache;
using MareSynchronos.Interop; using MareSynchronos.Interop;
@@ -586,7 +585,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase
} }
catch (Exception ex) 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(); if (hasMigrationChanges) _fileDbManager.WriteOutFullCsv();
st.Stop(); st.Stop();

View File

@@ -5,7 +5,6 @@ using MareSynchronos.PlayerData.Handlers;
using MareSynchronos.Services; using MareSynchronos.Services;
using MareSynchronos.Services.Mediator; using MareSynchronos.Services.Mediator;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.Linq;
namespace MareSynchronos.PlayerData.Services; namespace MareSynchronos.PlayerData.Services;

View File

@@ -1,15 +1,8 @@
using Dalamud.ContextMenu; 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.ImGuiFileDialog;
using Dalamud.Interface.Windowing; using Dalamud.Interface.Windowing;
using Dalamud.Plugin; using Dalamud.Plugin;
using Dalamud.Plugin.Services;
using MareSynchronos.FileCache; using MareSynchronos.FileCache;
using MareSynchronos.Interop; using MareSynchronos.Interop;
using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration;
@@ -35,16 +28,16 @@ public sealed class Plugin : IDalamudPlugin
{ {
private readonly CancellationTokenSource _pluginCts = new(); private readonly CancellationTokenSource _pluginCts = new();
public Plugin(DalamudPluginInterface pluginInterface, CommandManager commandManager, DataManager gameData, public Plugin(DalamudPluginInterface pluginInterface, ICommandManager commandManager, IDataManager gameData,
Framework framework, ObjectTable objectTable, ClientState clientState, Condition condition, ChatGui chatGui, IFramework framework, IObjectTable objectTable, IClientState clientState, ICondition condition, IChatGui chatGui,
GameGui gameGui, DtrBar dtrBar) IGameGui gameGui, IDtrBar dtrBar, IPluginLog pluginLog)
{ {
_ = new HostBuilder() _ = new HostBuilder()
.UseContentRoot(pluginInterface.ConfigDirectory.FullName) .UseContentRoot(pluginInterface.ConfigDirectory.FullName)
.ConfigureLogging(lb => .ConfigureLogging(lb =>
{ {
lb.ClearProviders(); lb.ClearProviders();
lb.AddDalamudLogging(); lb.AddDalamudLogging(pluginLog);
lb.SetMinimumLevel(LogLevel.Trace); lb.SetMinimumLevel(LogLevel.Trace);
}) })
.ConfigureServices(collection => .ConfigureServices(collection =>

View File

@@ -5,7 +5,6 @@ using MareSynchronos.Services.Mediator;
using MareSynchronos.UI; using MareSynchronos.UI;
using MareSynchronos.Utils; using MareSynchronos.Utils;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Lumina.Data;
using Lumina.Data.Files; using Lumina.Data.Files;
namespace MareSynchronos.Services; namespace MareSynchronos.Services;

View File

@@ -1,4 +1,5 @@
using Dalamud.Game.Command; using Dalamud.Game.Command;
using Dalamud.Plugin.Services;
using MareSynchronos.FileCache; using MareSynchronos.FileCache;
using MareSynchronos.Services.Mediator; using MareSynchronos.Services.Mediator;
using MareSynchronos.Services.ServerConfiguration; using MareSynchronos.Services.ServerConfiguration;
@@ -12,14 +13,14 @@ public sealed class CommandManagerService : IDisposable
private const string _commandName = "/mare"; private const string _commandName = "/mare";
private readonly ApiController _apiController; private readonly ApiController _apiController;
private readonly CommandManager _commandManager; private readonly ICommandManager _commandManager;
private readonly MareMediator _mediator; private readonly MareMediator _mediator;
private readonly PerformanceCollectorService _performanceCollectorService; private readonly PerformanceCollectorService _performanceCollectorService;
private readonly PeriodicFileScanner _periodicFileScanner; private readonly PeriodicFileScanner _periodicFileScanner;
private readonly ServerConfigurationManager _serverConfigurationManager; private readonly ServerConfigurationManager _serverConfigurationManager;
private readonly UiService _uiService; private readonly UiService _uiService;
public CommandManagerService(CommandManager commandManager, PerformanceCollectorService performanceCollectorService, public CommandManagerService(ICommandManager commandManager, PerformanceCollectorService performanceCollectorService,
UiService uiService, ServerConfigurationManager serverConfigurationManager, PeriodicFileScanner periodicFileScanner, UiService uiService, ServerConfigurationManager serverConfigurationManager, PeriodicFileScanner periodicFileScanner,
ApiController apiController, MareMediator mediator) ApiController apiController, MareMediator mediator)
{ {

View File

@@ -1,9 +1,6 @@
using Dalamud.Game; using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.SubKinds; 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.Character;
using FFXIVClientStructs.FFXIV.Client.Game.Control; using FFXIVClientStructs.FFXIV.Client.Game.Control;
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene; using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
@@ -21,13 +18,13 @@ namespace MareSynchronos.Services;
public class DalamudUtilService : IHostedService public class DalamudUtilService : IHostedService
{ {
private readonly List<uint> _classJobIdsIgnoredForPets = new() { 30 }; private readonly List<uint> _classJobIdsIgnoredForPets = new() { 30 };
private readonly ClientState _clientState; private readonly IClientState _clientState;
private readonly Condition _condition; private readonly ICondition _condition;
private readonly Framework _framework; private readonly IFramework _framework;
private readonly GameGui _gameGui; private readonly IGameGui _gameGui;
private readonly ILogger<DalamudUtilService> _logger; private readonly ILogger<DalamudUtilService> _logger;
private readonly MareMediator _mediator; private readonly MareMediator _mediator;
private readonly ObjectTable _objectTable; private readonly IObjectTable _objectTable;
private readonly PerformanceCollectorService _performanceCollector; private readonly PerformanceCollectorService _performanceCollector;
private uint? _classJobId = 0; private uint? _classJobId = 0;
private DateTime _delayedFrameworkUpdateCheck = DateTime.Now; private DateTime _delayedFrameworkUpdateCheck = DateTime.Now;
@@ -37,8 +34,8 @@ public class DalamudUtilService : IHostedService
private Dictionary<string, (string Name, nint Address)> _playerCharas = new(StringComparer.Ordinal); private Dictionary<string, (string Name, nint Address)> _playerCharas = new(StringComparer.Ordinal);
private bool _sentBetweenAreas = false; private bool _sentBetweenAreas = false;
public DalamudUtilService(ILogger<DalamudUtilService> logger, ClientState clientState, ObjectTable objectTable, Framework framework, public DalamudUtilService(ILogger<DalamudUtilService> logger, IClientState clientState, IObjectTable objectTable, IFramework framework,
GameGui gameGui, Condition condition, Dalamud.Data.DataManager gameData, MareMediator mediator, PerformanceCollectorService performanceCollector) IGameGui gameGui, ICondition condition, IDataManager gameData, MareMediator mediator, PerformanceCollectorService performanceCollector)
{ {
_logger = logger; _logger = logger;
_clientState = clientState; _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); _performanceCollector.LogPerformance(this, "FrameworkOnUpdate", FrameworkOnUpdateInternal);
} }

View File

@@ -1,7 +1,7 @@
using Dalamud.Game.Gui; using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Interface; using Dalamud.Interface;
using Dalamud.Interface.Internal.Notifications; using Dalamud.Interface.Internal.Notifications;
using Dalamud.Plugin.Services;
using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration;
using MareSynchronos.MareConfiguration.Models; using MareSynchronos.MareConfiguration.Models;
using MareSynchronos.Services.Mediator; using MareSynchronos.Services.Mediator;
@@ -11,11 +11,11 @@ namespace MareSynchronos.Services;
public class NotificationService : DisposableMediatorSubscriberBase public class NotificationService : DisposableMediatorSubscriberBase
{ {
private readonly ChatGui _chatGui; private readonly IChatGui _chatGui;
private readonly MareConfigService _configurationService; private readonly MareConfigService _configurationService;
private readonly UiBuilder _uiBuilder; private readonly UiBuilder _uiBuilder;
public NotificationService(ILogger<NotificationService> logger, MareMediator mediator, UiBuilder uiBuilder, ChatGui chatGui, MareConfigService configurationService) : base(logger, mediator) public NotificationService(ILogger<NotificationService> logger, MareMediator mediator, UiBuilder uiBuilder, IChatGui chatGui, MareConfigService configurationService) : base(logger, mediator)
{ {
_uiBuilder = uiBuilder; _uiBuilder = uiBuilder;
_chatGui = chatGui; _chatGui = chatGui;

View File

@@ -6,6 +6,7 @@ using System.Reflection;
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.Utility; using Dalamud.Utility;
using ImGuiNET; using ImGuiNET;
using MareSynchronos.API.Data.Extensions; using MareSynchronos.API.Data.Extensions;

View File

@@ -9,6 +9,7 @@ using MareSynchronos.API.Dto.User;
using MareSynchronos.UI.Handlers; using MareSynchronos.UI.Handlers;
using MareSynchronos.API.Dto.Group; using MareSynchronos.API.Dto.Group;
using MareSynchronos.API.Data.Enum; using MareSynchronos.API.Data.Enum;
using Dalamud.Interface.Utility;
namespace MareSynchronos.UI.Components; namespace MareSynchronos.UI.Components;

View File

@@ -8,6 +8,7 @@ using MareSynchronos.API.Data.Extensions;
using MareSynchronos.WebAPI; using MareSynchronos.WebAPI;
using MareSynchronos.API.Dto.User; using MareSynchronos.API.Dto.User;
using MareSynchronos.UI.Handlers; using MareSynchronos.UI.Handlers;
using Dalamud.Interface.Utility;
namespace MareSynchronos.UI.Components; namespace MareSynchronos.UI.Components;

View File

@@ -14,6 +14,7 @@ using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.Services.ServerConfiguration; using MareSynchronos.Services.ServerConfiguration;
using MareSynchronos.UI.Components; using MareSynchronos.UI.Components;
using MareSynchronos.UI.Handlers; using MareSynchronos.UI.Handlers;
using Dalamud.Interface.Utility;
namespace MareSynchronos.UI; namespace MareSynchronos.UI;

View File

@@ -1,6 +1,7 @@
using System.Numerics; using System.Numerics;
using Dalamud.Interface; using Dalamud.Interface;
using Dalamud.Interface.Components; using Dalamud.Interface.Components;
using Dalamud.Interface.Utility;
using Dalamud.Utility; using Dalamud.Utility;
using ImGuiNET; using ImGuiNET;
using MareSynchronos.PlayerData.Pairs; using MareSynchronos.PlayerData.Pairs;

View File

@@ -1,5 +1,6 @@
using System.Numerics; using System.Numerics;
using Dalamud.Interface; using Dalamud.Interface;
using Dalamud.Interface.Utility;
using ImGuiNET; using ImGuiNET;
using MareSynchronos.PlayerData.Pairs; using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.UI.Handlers; using MareSynchronos.UI.Handlers;

View File

@@ -1,6 +1,6 @@
using Dalamud.Interface; using Dalamud.Interface;
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using Dalamud.Interface.Raii; using Dalamud.Interface.Utility.Raii;
using ImGuiNET; using ImGuiNET;
using MareSynchronos.API.Data.Enum; using MareSynchronos.API.Data.Enum;
using MareSynchronos.Interop; using MareSynchronos.Interop;

View File

@@ -1,4 +1,5 @@
using Dalamud.Game.Gui.Dtr; using Dalamud.Game.Gui.Dtr;
using Dalamud.Plugin.Services;
using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration;
using MareSynchronos.MareConfiguration.Configurations; using MareSynchronos.MareConfiguration.Configurations;
using MareSynchronos.PlayerData.Pairs; using MareSynchronos.PlayerData.Pairs;
@@ -13,14 +14,14 @@ public sealed class DtrEntry : IDisposable, IHostedService
private readonly ApiController _apiController; private readonly ApiController _apiController;
private readonly CancellationTokenSource _cancellationTokenSource = new(); private readonly CancellationTokenSource _cancellationTokenSource = new();
private readonly ILogger<DtrEntry> _logger; private readonly ILogger<DtrEntry> _logger;
private readonly DtrBar _dtrBar; private readonly IDtrBar _dtrBar;
private readonly ConfigurationServiceBase<MareConfig> _configService; private readonly ConfigurationServiceBase<MareConfig> _configService;
private Lazy<DtrBarEntry> _entry; private Lazy<DtrBarEntry> _entry;
private readonly PairManager _pairManager; private readonly PairManager _pairManager;
private Task? _runTask; private Task? _runTask;
private string? _text; private string? _text;
public DtrEntry(ILogger<DtrEntry> logger, DtrBar dtrBar, ConfigurationServiceBase<MareConfig> configService, PairManager pairManager, ApiController apiController) public DtrEntry(ILogger<DtrEntry> logger, IDtrBar dtrBar, ConfigurationServiceBase<MareConfig> configService, PairManager pairManager, ApiController apiController)
{ {
_logger = logger; _logger = logger;
_dtrBar = dtrBar; _dtrBar = dtrBar;

View File

@@ -2,8 +2,9 @@
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using Dalamud.Interface.GameFonts; using Dalamud.Interface.GameFonts;
using Dalamud.Interface.ImGuiFileDialog; using Dalamud.Interface.ImGuiFileDialog;
using Dalamud.Interface.Internal;
using Dalamud.Interface.Utility;
using ImGuiNET; using ImGuiNET;
using ImGuiScene;
using MareSynchronos.API.Data; using MareSynchronos.API.Data;
using MareSynchronos.API.Dto.User; using MareSynchronos.API.Dto.User;
using MareSynchronos.Services; using MareSynchronos.Services;
@@ -23,7 +24,7 @@ public class EditProfileUi : WindowMediatorSubscriberBase
private bool _adjustedForScollBarsLocalProfile = false; private bool _adjustedForScollBarsLocalProfile = false;
private bool _adjustedForScollBarsOnlineProfile = false; private bool _adjustedForScollBarsOnlineProfile = false;
private string _descriptionText = string.Empty; private string _descriptionText = string.Empty;
private TextureWrap? _pfpTextureWrap; private IDalamudTextureWrap? _pfpTextureWrap;
private string _profileDescription = string.Empty; private string _profileDescription = string.Empty;
private byte[] _profileImage = Array.Empty<byte>(); private byte[] _profileImage = Array.Empty<byte>();
private bool _showFileDialogError = false; private bool _showFileDialogError = false;

View File

@@ -1,5 +1,5 @@
using Dalamud.Interface; using Dalamud.Interface.Colors;
using Dalamud.Interface.Colors; using Dalamud.Interface.Utility;
using Dalamud.Utility; using Dalamud.Utility;
using ImGuiNET; using ImGuiNET;
using MareSynchronos.FileCache; using MareSynchronos.FileCache;
@@ -49,7 +49,7 @@ public class IntroUi : WindowMediatorSubscriberBase
Mediator.Subscribe<SwitchToMainUiMessage>(this, (_) => IsOpen = false); Mediator.Subscribe<SwitchToMainUiMessage>(this, (_) => IsOpen = false);
Mediator.Subscribe<SwitchToIntroUiMessage>(this, (_) => Mediator.Subscribe<SwitchToIntroUiMessage>(this, (_) =>
{ {
_configService.Current.UseCompactor = !Util.IsLinux(); _configService.Current.UseCompactor = !Util.IsWine();
IsOpen = true; IsOpen = true;
}); });
} }
@@ -174,7 +174,7 @@ public class IntroUi : WindowMediatorSubscriberBase
{ {
_uiShared.DrawFileScanState(); _uiShared.DrawFileScanState();
} }
if (!Util.IsLinux()) if (!Util.IsWine())
{ {
var useFileCompactor = _configService.Current.UseCompactor; var useFileCompactor = _configService.Current.UseCompactor;
if (ImGui.Checkbox("Use File Compactor", ref useFileCompactor)) if (ImGui.Checkbox("Use File Compactor", ref useFileCompactor))

View File

@@ -1,6 +1,5 @@
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using ImGuiNET; using ImGuiNET;
using ImGuiScene;
using MareSynchronos.PlayerData.Pairs; using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.Services; using MareSynchronos.Services;
using MareSynchronos.Services.Mediator; using MareSynchronos.Services.Mediator;
@@ -9,7 +8,8 @@ using Microsoft.Extensions.Logging;
using System.Numerics; using System.Numerics;
using MareSynchronos.API.Data.Extensions; using MareSynchronos.API.Data.Extensions;
using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration;
using Dalamud.Interface; using Dalamud.Interface.Utility;
using Dalamud.Interface.Internal;
namespace MareSynchronos.UI; namespace MareSynchronos.UI;
@@ -23,8 +23,8 @@ public class PopoutProfileUi : WindowMediatorSubscriberBase
private byte[] _lastProfilePicture = Array.Empty<byte>(); private byte[] _lastProfilePicture = Array.Empty<byte>();
private byte[] _lastSupporterPicture = Array.Empty<byte>(); private byte[] _lastSupporterPicture = Array.Empty<byte>();
private Pair? _pair; private Pair? _pair;
private TextureWrap? _supporterTextureWrap; private IDalamudTextureWrap? _supporterTextureWrap;
private TextureWrap? _textureWrap; private IDalamudTextureWrap? _textureWrap;
public PopoutProfileUi(ILogger<PopoutProfileUi> logger, MareMediator mediator, UiSharedService uiBuilder, public PopoutProfileUi(ILogger<PopoutProfileUi> logger, MareMediator mediator, UiSharedService uiBuilder,
ServerConfigurationManager serverManager, MareConfigService mareConfigService, ServerConfigurationManager serverManager, MareConfigService mareConfigService,

View File

@@ -437,7 +437,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
_uiShared.DrawTimeSpanBetweenScansSetting(); _uiShared.DrawTimeSpanBetweenScansSetting();
_uiShared.DrawCacheDirectorySetting(); _uiShared.DrawCacheDirectorySetting();
ImGui.Text($"Currently utilized local storage: {UiSharedService.ByteToString(_uiShared.FileCacheSize)}"); ImGui.Text($"Currently utilized local storage: {UiSharedService.ByteToString(_uiShared.FileCacheSize)}");
bool isLinux = Util.IsLinux(); bool isLinux = Util.IsWine();
if (isLinux) ImGui.BeginDisabled(); if (isLinux) ImGui.BeginDisabled();
bool useFileCompactor = _configService.Current.UseCompactor; bool useFileCompactor = _configService.Current.UseCompactor;
if (ImGui.Checkbox("Use file compactor", ref useFileCompactor)) if (ImGui.Checkbox("Use file compactor", ref useFileCompactor))

View File

@@ -1,6 +1,5 @@
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using ImGuiNET; using ImGuiNET;
using ImGuiScene;
using MareSynchronos.PlayerData.Pairs; using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.Services; using MareSynchronos.Services;
using MareSynchronos.Services.Mediator; using MareSynchronos.Services.Mediator;
@@ -8,7 +7,8 @@ using MareSynchronos.Services.ServerConfiguration;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.Numerics; using System.Numerics;
using MareSynchronos.API.Data.Extensions; using MareSynchronos.API.Data.Extensions;
using Dalamud.Interface; using Dalamud.Interface.Utility;
using Dalamud.Interface.Internal;
namespace MareSynchronos.UI; namespace MareSynchronos.UI;
@@ -20,8 +20,8 @@ public class StandaloneProfileUi : WindowMediatorSubscriberBase
private bool _adjustedForScrollBars = false; private bool _adjustedForScrollBars = false;
private byte[] _lastProfilePicture = Array.Empty<byte>(); private byte[] _lastProfilePicture = Array.Empty<byte>();
private byte[] _lastSupporterPicture = Array.Empty<byte>(); private byte[] _lastSupporterPicture = Array.Empty<byte>();
private TextureWrap? _supporterTextureWrap; private IDalamudTextureWrap? _supporterTextureWrap;
private TextureWrap? _textureWrap; private IDalamudTextureWrap? _textureWrap;
public StandaloneProfileUi(ILogger<StandaloneProfileUi> logger, MareMediator mediator, UiSharedService uiBuilder, public StandaloneProfileUi(ILogger<StandaloneProfileUi> logger, MareMediator mediator, UiSharedService uiBuilder,
ServerConfigurationManager serverManager, MareProfileManager mareProfileManager, Pair pair) ServerConfigurationManager serverManager, MareProfileManager mareProfileManager, Pair pair)

View File

@@ -2,10 +2,11 @@
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using Dalamud.Interface.GameFonts; using Dalamud.Interface.GameFonts;
using Dalamud.Interface.ImGuiFileDialog; using Dalamud.Interface.ImGuiFileDialog;
using Dalamud.Interface.Internal;
using Dalamud.Interface.Utility;
using Dalamud.Plugin; using Dalamud.Plugin;
using Dalamud.Utility; using Dalamud.Utility;
using ImGuiNET; using ImGuiNET;
using ImGuiScene;
using MareSynchronos.FileCache; using MareSynchronos.FileCache;
using MareSynchronos.Interop; using MareSynchronos.Interop;
using MareSynchronos.Localization; using MareSynchronos.Localization;
@@ -781,7 +782,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase
return _pluginInterface.UiBuilder.GetGameFontHandle(new GameFontStyle(GameFontFamilyAndSize.Axis12)).ImFont; return _pluginInterface.UiBuilder.GetGameFontHandle(new GameFontStyle(GameFontFamilyAndSize.Axis12)).ImFont;
} }
internal TextureWrap LoadImage(byte[] imageData) internal IDalamudTextureWrap LoadImage(byte[] imageData)
{ {
return _pluginInterface.UiBuilder.LoadImage(imageData); return _pluginInterface.UiBuilder.LoadImage(imageData);
} }

View File

@@ -1,5 +1,4 @@
using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Utility;
using MareSynchronos.API.Data; using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum; using MareSynchronos.API.Data.Enum;
using MareSynchronos.PlayerData.Handlers; using MareSynchronos.PlayerData.Handlers;

View File

@@ -1,5 +1,4 @@
using LZ4; using MareSynchronos.API.Data;
using MareSynchronos.API.Data;
using MareSynchronos.API.Dto.Files; using MareSynchronos.API.Dto.Files;
using MareSynchronos.API.Routes; using MareSynchronos.API.Routes;
using MareSynchronos.FileCache; using MareSynchronos.FileCache;