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..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/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/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/LocationDto.cs b/LightlessSyncAPI/Dto/User/LocationDto.cs deleted file mode 100644 index 0b70b26..0000000 --- a/LightlessSyncAPI/Dto/User/LocationDto.cs +++ /dev/null @@ -1,9 +0,0 @@ -using LightlessSync.API.Data; -using LightlessSync.API.Dto.CharaData; -using MessagePack; - -namespace LightlessSync.API.Dto.User; - - -[MessagePackObject(keyAsPropertyName: true)] -public record LocationDto(UserData user, LocationInfo location); \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/User/LocationSharingDto.cs b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs new file mode 100644 index 0000000..b14fbe9 --- /dev/null +++ b/LightlessSyncAPI/Dto/User/LocationSharingDto.cs @@ -0,0 +1,15 @@ +using LightlessSync.API.Data; +using LightlessSync.API.Dto.CharaData; +using MessagePack; + +namespace LightlessSync.API.Dto.User; + + +[MessagePackObject(keyAsPropertyName: true)] +public record LocationDto(UserData User, LocationInfo Location); + +[MessagePackObject(keyAsPropertyName: true)] +public record LocationWithTimeDto(LocationDto LocationDto, DateTimeOffset ExpireAt); + +[MessagePackObject(keyAsPropertyName: true)] +public record SharingStatusDto(UserData User, DateTimeOffset ExpireAt); 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..08fc687 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(); @@ -118,6 +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); } 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