From 714aeef468dbff14448c54fc2f704272359db115 Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Wed, 1 Oct 2025 04:16:19 +0200 Subject: [PATCH] Moved ContextMenu from UI to Service. --- LightlessSync/Plugin.cs | 6 ++--- .../ContextMenuService.cs} | 22 +++++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) rename LightlessSync/{UI/ContextMenu.cs => Services/ContextMenuService.cs} (92%) diff --git a/LightlessSync/Plugin.cs b/LightlessSync/Plugin.cs index 7490ebe..bb66c5a 100644 --- a/LightlessSync/Plugin.cs +++ b/LightlessSync/Plugin.cs @@ -147,8 +147,8 @@ public sealed class Plugin : IDalamudPlugin collection.AddSingleton(); collection.AddSingleton(); collection.AddSingleton(addonLifecycle); - collection.AddSingleton(p => new ContextMenu(contextMenu, pluginInterface, gameData, - p.GetRequiredService>(), p.GetRequiredService(), p.GetRequiredService(), objectTable, + collection.AddSingleton(p => new ContextMenuService(contextMenu, pluginInterface, gameData, + p.GetRequiredService>(), p.GetRequiredService(), p.GetRequiredService(), objectTable, p.GetRequiredService(), p.GetRequiredService(), clientState)); collection.AddSingleton((s) => new IpcCallerPenumbra(s.GetRequiredService>(), pluginInterface, s.GetRequiredService(), s.GetRequiredService(), s.GetRequiredService())); @@ -263,7 +263,7 @@ public sealed class Plugin : IDalamudPlugin collection.AddHostedService(p => p.GetRequiredService()); collection.AddHostedService(p => p.GetRequiredService()); collection.AddHostedService(p => p.GetRequiredService()); - collection.AddHostedService(p => p.GetRequiredService()); + collection.AddHostedService(p => p.GetRequiredService()); collection.AddHostedService(p => p.GetRequiredService()); }) .Build(); diff --git a/LightlessSync/UI/ContextMenu.cs b/LightlessSync/Services/ContextMenuService.cs similarity index 92% rename from LightlessSync/UI/ContextMenu.cs rename to LightlessSync/Services/ContextMenuService.cs index efa9997..e941311 100644 --- a/LightlessSync/UI/ContextMenu.cs +++ b/LightlessSync/Services/ContextMenuService.cs @@ -4,21 +4,20 @@ using Dalamud.Plugin; using Dalamud.Plugin.Services; using LightlessSync.LightlessConfiguration; using LightlessSync.PlayerData.Pairs; -using LightlessSync.Services; using LightlessSync.Utils; using LightlessSync.WebAPI; using Lumina.Excel.Sheets; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -namespace LightlessSync.UI; +namespace LightlessSync.Services; -internal class ContextMenu : IHostedService +internal class ContextMenuService : IHostedService { private readonly IContextMenu _contextMenu; private readonly IDalamudPluginInterface _pluginInterface; private readonly IDataManager _gameData; - private readonly ILogger _logger; + private readonly ILogger _logger; private readonly DalamudUtilService _dalamudUtil; private readonly LightlessConfigService _configService; private readonly IClientState _clientState; @@ -34,11 +33,11 @@ internal class ContextMenu : IHostedService "SocialList", "ContactList", "BeginnerChatList", "MuteList" ]; - public ContextMenu( + public ContextMenuService( IContextMenu contextMenu, IDalamudPluginInterface pluginInterface, IDataManager gameData, - ILogger logger, + ILogger logger, DalamudUtilService dalamudUtil, ApiController apiController, IObjectTable objectTable, @@ -100,7 +99,7 @@ internal class ContextMenu : IHostedService //Check if it is a real target. IPlayerCharacter? targetData = GetPlayerFromObjectTable(target); - if (targetData == null || targetData.Address == IntPtr.Zero) + if (targetData == null || targetData.Address == nint.Zero) return; //Check if user is paired or is own. @@ -139,7 +138,7 @@ internal class ContextMenu : IHostedService { IPlayerCharacter? targetData = GetPlayerFromObjectTable(target); - if (targetData == null || targetData.Address == IntPtr.Zero) + if (targetData == null || targetData.Address == nint.Zero) { _logger.LogWarning("Target player {TargetName}@{World} not found in object table.", target.TargetName, world.Name); return; @@ -156,10 +155,9 @@ internal class ContextMenu : IHostedService _logger.LogError(ex, "Error sending pair request."); } } - private HashSet VisibleUserIds => _pairManager.GetOnlineUserPairs() + private HashSet VisibleUserIds => [.. _pairManager.GetOnlineUserPairs() .Where(u => u.IsVisible && u.PlayerCharacterId != uint.MaxValue) - .Select(u => (ulong)u.PlayerCharacterId) - .ToHashSet(); + .Select(u => (ulong)u.PlayerCharacterId)]; private IPlayerCharacter? GetPlayerFromObjectTable(MenuTargetDefault target) { @@ -196,7 +194,7 @@ internal class ContextMenu : IHostedService private static bool IsChineseJapaneseKoreanString(string text) => text.All(IsChineseJapaneseKoreanCharacter); - private static bool IsChineseJapaneseKoreanCharacter(char c) => (c >= 0x4E00 && c <= 0x9FFF); + private static bool IsChineseJapaneseKoreanCharacter(char c) => c >= 0x4E00 && c <= 0x9FFF; public bool IsWorldValid(uint worldId) => IsWorldValid(GetWorld(worldId));