2 Commits

Author SHA1 Message Date
Tsubasahane
f1817c5974 transfer LocationWithTimeDto 2025-12-28 13:02:34 +08:00
Tsubasahane
67cdf2c384 Location sharing 2 2025-12-28 12:39:37 +08:00
5 changed files with 15 additions and 7 deletions

View File

@@ -9,4 +9,5 @@ public enum UserPermissions
DisableSounds = 4,
DisableVFX = 8,
Sticky = 16,
ShareLocation = 32,
}

View File

@@ -28,6 +28,10 @@ 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)
{
@@ -58,4 +62,10 @@ 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;
}
}

View File

@@ -9,7 +9,4 @@ namespace LightlessSync.API.Dto.User;
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);
public record LocationWithTimeDto(LocationDto Location, DateTimeOffset ExpireAt);

View File

@@ -118,7 +118,7 @@ public interface ILightlessHub
Task SetChatParticipantMute(ChatParticipantMuteRequestDto request);
Task UpdateLocation(LocationDto locationDto, bool offline);
Task<(List<LocationWithTimeDto>, List<SharingStatusDto>)> RequestAllLocationInfo();
Task<bool> ToggleLocationSharing(LocationSharingToggleDto dto);
Task<List<LocationWithTimeDto>> RequestAllLocationInfo();
Task ToggleLocationSharing(LocationSharingToggleDto dto);
}

View File

@@ -58,5 +58,5 @@ public interface ILightlessHubClient : ILightlessHub
void OnGposeLobbyPushCharacterData(Action<CharaDataDownloadDto> act);
void OnGposeLobbyPushPoseData(Action<UserData, PoseData> act);
void OnGposeLobbyPushWorldData(Action<UserData, WorldData> act);
void OnReceiveLocation(Action<LocationDto, DateTimeOffset> act);
void OnReciveLocation(Action<LocationDto> act);
}