From 67cdf2c384cce631dd3da3350ea57d3e8335a371 Mon Sep 17 00:00:00 2001 From: Tsubasahane Date: Sun, 28 Dec 2025 12:39:37 +0800 Subject: [PATCH 1/5] Location sharing 2 --- .../Data/Enum/GroupUserPreferredPermissions.cs | 1 - LightlessSyncAPI/Data/Enum/UserPermissions.cs | 2 +- .../Data/Extensions/GroupUserPermissionsExtensions.cs | 11 ----------- LightlessSyncAPI/Dto/User/LocationDto.cs | 2 +- LightlessSyncAPI/Dto/User/LocationSharingToggleDto.cs | 6 ++++++ LightlessSyncAPI/SignalR/ILightlessHub.cs | 3 ++- 6 files changed, 10 insertions(+), 15 deletions(-) create mode 100644 LightlessSyncAPI/Dto/User/LocationSharingToggleDto.cs diff --git a/LightlessSyncAPI/Data/Enum/GroupUserPreferredPermissions.cs b/LightlessSyncAPI/Data/Enum/GroupUserPreferredPermissions.cs index 0924b83..cf0b448 100644 --- a/LightlessSyncAPI/Data/Enum/GroupUserPreferredPermissions.cs +++ b/LightlessSyncAPI/Data/Enum/GroupUserPreferredPermissions.cs @@ -8,5 +8,4 @@ public enum GroupUserPreferredPermissions DisableAnimations = 0x2, DisableSounds = 0x4, DisableVFX = 0x8, - ShareLocation = 0x10, } \ No newline at end of file diff --git a/LightlessSyncAPI/Data/Enum/UserPermissions.cs b/LightlessSyncAPI/Data/Enum/UserPermissions.cs index 6e2f0c0..7f92d42 100644 --- a/LightlessSyncAPI/Data/Enum/UserPermissions.cs +++ b/LightlessSyncAPI/Data/Enum/UserPermissions.cs @@ -9,5 +9,5 @@ public enum UserPermissions DisableSounds = 4, DisableVFX = 8, Sticky = 16, - ShareLocation = 32 + ShareLocation = 32, } \ No newline at end of file diff --git a/LightlessSyncAPI/Data/Extensions/GroupUserPermissionsExtensions.cs b/LightlessSyncAPI/Data/Extensions/GroupUserPermissionsExtensions.cs index a16fae0..f55f1cd 100644 --- a/LightlessSyncAPI/Data/Extensions/GroupUserPermissionsExtensions.cs +++ b/LightlessSyncAPI/Data/Extensions/GroupUserPermissionsExtensions.cs @@ -23,11 +23,6 @@ public static class GroupUserPermissionsExtensions { return perm.HasFlag(GroupUserPreferredPermissions.Paused); } - - public static bool IsSharingLocation(this GroupUserPreferredPermissions perm) - { - return perm.HasFlag(GroupUserPreferredPermissions.ShareLocation); - } public static void SetDisableAnimations(this ref GroupUserPreferredPermissions perm, bool set) { @@ -52,10 +47,4 @@ public static class GroupUserPermissionsExtensions if (set) perm |= GroupUserPreferredPermissions.Paused; else perm &= ~GroupUserPreferredPermissions.Paused; } - - public static void SetShareLocation(this ref GroupUserPreferredPermissions perm, bool set) - { - if (set) perm |= GroupUserPreferredPermissions.ShareLocation; - else perm &= ~GroupUserPreferredPermissions.ShareLocation; - } } \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/User/LocationDto.cs b/LightlessSyncAPI/Dto/User/LocationDto.cs index 0b70b26..9746297 100644 --- a/LightlessSyncAPI/Dto/User/LocationDto.cs +++ b/LightlessSyncAPI/Dto/User/LocationDto.cs @@ -6,4 +6,4 @@ namespace LightlessSync.API.Dto.User; [MessagePackObject(keyAsPropertyName: true)] -public record LocationDto(UserData user, LocationInfo location); \ No newline at end of file +public record LocationDto(UserData User, LocationInfo Location); \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/User/LocationSharingToggleDto.cs b/LightlessSyncAPI/Dto/User/LocationSharingToggleDto.cs new file mode 100644 index 0000000..0240bb5 --- /dev/null +++ b/LightlessSyncAPI/Dto/User/LocationSharingToggleDto.cs @@ -0,0 +1,6 @@ +using MessagePack; + +namespace LightlessSync.API.Dto.User; + +[MessagePackObject(keyAsPropertyName: true)] +public record LocationSharingToggleDto(List users, DateTimeOffset duration); \ No newline at end of file diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index 70ce047..ed00af4 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -45,7 +45,7 @@ public interface ILightlessHub Task Client_GposeLobbyPushPoseData(UserData userData, PoseData poseData); Task Client_GposeLobbyPushWorldData(UserData userData, WorldData worldData); Task Client_ChatReceive(ChatMessageDto message); - Task Client_SendLocationToClient(LocationDto locationDto); + Task Client_SendLocationToClient(LocationDto locationDto, DateTimeOffset expireAt); Task GetConnectionDto(); Task> GetZoneChatChannels(); @@ -119,5 +119,6 @@ public interface ILightlessHub Task UpdateLocation(LocationDto locationDto, bool offline); Task> RequestAllLocationInfo(); + Task ToggleLocationSharing(LocationSharingToggleDto dto); } -- 2.49.1 From f1817c597450bf2ee5425708b982a68916214e3a Mon Sep 17 00:00:00 2001 From: Tsubasahane Date: Sun, 28 Dec 2025 13:02:34 +0800 Subject: [PATCH 2/5] transfer LocationWithTimeDto --- .../Dto/User/{LocationDto.cs => LocationSharingDto.cs} | 5 ++++- LightlessSyncAPI/SignalR/ILightlessHub.cs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) rename LightlessSyncAPI/Dto/User/{LocationDto.cs => LocationSharingDto.cs} (65%) diff --git a/LightlessSyncAPI/Dto/User/LocationDto.cs b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs similarity index 65% rename from LightlessSyncAPI/Dto/User/LocationDto.cs rename to LightlessSyncAPI/Dto/User/LocationSharingDto.cs index 9746297..57381c6 100644 --- a/LightlessSyncAPI/Dto/User/LocationDto.cs +++ b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs @@ -6,4 +6,7 @@ namespace LightlessSync.API.Dto.User; [MessagePackObject(keyAsPropertyName: true)] -public record LocationDto(UserData User, LocationInfo Location); \ No newline at end of file +public record LocationDto(UserData User, LocationInfo Location); + +[MessagePackObject(keyAsPropertyName: true)] +public record LocationWithTimeDto(LocationDto Location, DateTimeOffset ExpireAt); \ No newline at end of file diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index ed00af4..f271969 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -118,7 +118,7 @@ public interface ILightlessHub Task SetChatParticipantMute(ChatParticipantMuteRequestDto request); Task UpdateLocation(LocationDto locationDto, bool offline); - Task> RequestAllLocationInfo(); + Task> RequestAllLocationInfo(); Task ToggleLocationSharing(LocationSharingToggleDto dto); } -- 2.49.1 From 03243c93c6bee535d6659fe866a079e7142eed5a Mon Sep 17 00:00:00 2001 From: Tsubasahane Date: Sun, 28 Dec 2025 19:32:31 +0800 Subject: [PATCH 3/5] Don't use permissionSet to transfer --- LightlessSyncAPI/Data/Enum/UserPermissions.cs | 1 - .../Data/Extensions/UserPermissionsExtensions.cs | 10 ---------- LightlessSyncAPI/Dto/User/LocationSharingDto.cs | 5 ++++- LightlessSyncAPI/SignalR/ILightlessHub.cs | 2 +- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/LightlessSyncAPI/Data/Enum/UserPermissions.cs b/LightlessSyncAPI/Data/Enum/UserPermissions.cs index 7f92d42..7d875d7 100644 --- a/LightlessSyncAPI/Data/Enum/UserPermissions.cs +++ b/LightlessSyncAPI/Data/Enum/UserPermissions.cs @@ -9,5 +9,4 @@ public enum UserPermissions DisableSounds = 4, DisableVFX = 8, Sticky = 16, - ShareLocation = 32, } \ No newline at end of file diff --git a/LightlessSyncAPI/Data/Extensions/UserPermissionsExtensions.cs b/LightlessSyncAPI/Data/Extensions/UserPermissionsExtensions.cs index 63b516e..6357b8f 100644 --- a/LightlessSyncAPI/Data/Extensions/UserPermissionsExtensions.cs +++ b/LightlessSyncAPI/Data/Extensions/UserPermissionsExtensions.cs @@ -28,10 +28,6 @@ public static class UserPermissionsExtensions { return perm.HasFlag(UserPermissions.Sticky); } - public static bool IsSharingLocation(this UserPermissions perm) - { - return perm.HasFlag(UserPermissions.ShareLocation); - } public static void SetDisableAnimations(this ref UserPermissions perm, bool set) { @@ -62,10 +58,4 @@ public static class UserPermissionsExtensions if (sticky) perm |= UserPermissions.Sticky; else perm &= ~UserPermissions.Sticky; } - - public static void SetShareLocation(this ref UserPermissions perm, bool? set) - { - if (set == true) perm |= UserPermissions.ShareLocation; - else perm &= ~UserPermissions.ShareLocation; - } } \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/User/LocationSharingDto.cs b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs index 57381c6..d0f949e 100644 --- a/LightlessSyncAPI/Dto/User/LocationSharingDto.cs +++ b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs @@ -9,4 +9,7 @@ namespace LightlessSync.API.Dto.User; public record LocationDto(UserData User, LocationInfo Location); [MessagePackObject(keyAsPropertyName: true)] -public record LocationWithTimeDto(LocationDto Location, DateTimeOffset ExpireAt); \ No newline at end of file +public record LocationWithTimeDto(LocationDto Location, DateTimeOffset ExpireAt); + +[MessagePackObject(keyAsPropertyName: true)] +public record SharingStatusDto(UserData User, DateTimeOffset ExpireAt); diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index f271969..45af3f6 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -118,7 +118,7 @@ public interface ILightlessHub Task SetChatParticipantMute(ChatParticipantMuteRequestDto request); Task UpdateLocation(LocationDto locationDto, bool offline); - Task> RequestAllLocationInfo(); + Task<(List, List)> RequestAllLocationInfo(); Task ToggleLocationSharing(LocationSharingToggleDto dto); } -- 2.49.1 From 852e2a005f5bfdf3844e057c6ba71de6f5f84ed8 Mon Sep 17 00:00:00 2001 From: Tsubasahane Date: Sun, 28 Dec 2025 19:34:43 +0800 Subject: [PATCH 4/5] update OnReciveLocation --- LightlessSyncAPI/Dto/User/LocationSharingDto.cs | 2 +- LightlessSyncAPI/SignalR/ILightlessHubClient.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LightlessSyncAPI/Dto/User/LocationSharingDto.cs b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs index d0f949e..b14fbe9 100644 --- a/LightlessSyncAPI/Dto/User/LocationSharingDto.cs +++ b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs @@ -9,7 +9,7 @@ namespace LightlessSync.API.Dto.User; public record LocationDto(UserData User, LocationInfo Location); [MessagePackObject(keyAsPropertyName: true)] -public record LocationWithTimeDto(LocationDto Location, DateTimeOffset ExpireAt); +public record LocationWithTimeDto(LocationDto LocationDto, DateTimeOffset ExpireAt); [MessagePackObject(keyAsPropertyName: true)] public record SharingStatusDto(UserData User, DateTimeOffset ExpireAt); diff --git a/LightlessSyncAPI/SignalR/ILightlessHubClient.cs b/LightlessSyncAPI/SignalR/ILightlessHubClient.cs index a63c013..ad249c8 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHubClient.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHubClient.cs @@ -58,5 +58,5 @@ public interface ILightlessHubClient : ILightlessHub void OnGposeLobbyPushCharacterData(Action act); void OnGposeLobbyPushPoseData(Action act); void OnGposeLobbyPushWorldData(Action act); - void OnReciveLocation(Action act); + void OnReceiveLocation(Action act); } \ No newline at end of file -- 2.49.1 From c3caa7e25cf17fd52c4765bf051ec37c8fd92082 Mon Sep 17 00:00:00 2001 From: Tsubasahane Date: Mon, 29 Dec 2025 15:35:00 +0800 Subject: [PATCH 5/5] ToggleLocationSharing return bool --- LightlessSyncAPI/SignalR/ILightlessHub.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index 45af3f6..08fc687 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -119,6 +119,6 @@ public interface ILightlessHub Task UpdateLocation(LocationDto locationDto, bool offline); Task<(List, List)> RequestAllLocationInfo(); - Task ToggleLocationSharing(LocationSharingToggleDto dto); + Task ToggleLocationSharing(LocationSharingToggleDto dto); } -- 2.49.1