diff --git a/LightlessSync/Services/ContextMenuService.cs b/LightlessSync/Services/ContextMenuService.cs index 075a704..4555f3a 100644 --- a/LightlessSync/Services/ContextMenuService.cs +++ b/LightlessSync/Services/ContextMenuService.cs @@ -109,7 +109,8 @@ internal class ContextMenuService : IHostedService if (targetData == null || targetData.Address == nint.Zero) return; - if (!_configService.Current.EnableRightClickMenus) + //Check if user is directly paired or is own. + if (VisibleUserIds.Any(u => u == target.TargetObjectId) || _clientState.LocalPlayer.GameObjectId == target.TargetObjectId || !_configService.Current.EnableRightClickMenus) return; var snapshot = _pairUiService.GetSnapshot(); @@ -237,6 +238,10 @@ internal class ContextMenuService : IHostedService _mediator.Publish(new NotificationMessage(title, message, type, TimeSpan.FromSeconds(durationSeconds))); } + private HashSet VisibleUserIds => [.. _pairManager.DirectPairs + .Where(u => u.IsVisible && u.PlayerCharacterId != uint.MaxValue) + .Select(u => (ulong)u.PlayerCharacterId)]; + private bool CanOpenLightfinderProfile(string hashedCid) { if (!_broadcastService.IsBroadcasting) diff --git a/LightlessSync/WebAPI/SignalR/ApiController.cs b/LightlessSync/WebAPI/SignalR/ApiController.cs index c184fdb..ec4025f 100644 --- a/LightlessSync/WebAPI/SignalR/ApiController.cs +++ b/LightlessSync/WebAPI/SignalR/ApiController.cs @@ -741,5 +741,44 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IL ServerState = state; } + public Task UserGetLightfinderProfile(string hashedCid) + { + throw new NotImplementedException(); + } + + public Task UpdateChatPresence(ChatPresenceUpdateDto presence) + { + throw new NotImplementedException(); + } + + public Task Client_ChatReceive(ChatMessageDto message) + { + throw new NotImplementedException(); + } + + public Task> GetZoneChatChannels() + { + throw new NotImplementedException(); + } + + public Task> GetGroupChatChannels() + { + throw new NotImplementedException(); + } + + public Task SendChatMessage(ChatSendRequestDto request) + { + throw new NotImplementedException(); + } + + public Task ReportChatMessage(ChatReportSubmitDto request) + { + throw new NotImplementedException(); + } + + public Task ResolveChatParticipant(ChatParticipantResolveRequestDto request) + { + throw new NotImplementedException(); + } } #pragma warning restore MA0040 diff --git a/PenumbraAPI b/PenumbraAPI new file mode 160000 index 0000000..a2f8923 --- /dev/null +++ b/PenumbraAPI @@ -0,0 +1 @@ +Subproject commit a2f89235464ea6cc25bb933325e8724b73312aa6