mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-25 23:18:44 -07:00
feat: Add account privacy settings endpoint
- Implemented new endpoints for retrieving account privacy settings. - Added fields for privacy preferences such as profile visibility, online status, and activity visibility. feat: Extend play menu tags functionality - Updated PlayMenuTagsRequest to include TrendingTags. - Modified SetPlayMenuTags to handle trending tags. - Enhanced logging to include trending tags. fix: Increase maximum archive size for room zip imports - Updated MaxArchiveBytes from 12GB to 25GB in RoomZipImportController. feat: Improve CDN image handling - Added local image path resolution for room images. - Implemented lazy loading of room image aliases from JSON file. feat: Enhance match player presence resolution - Updated ResolveDataBlobForPresenceAsync to consider sub-room IDs and private instance status. feat: Extend RoomEntity with new properties - Added AllowNewUsers, MinLevel, MaxPlayerCalculationMode, LoadScreensJson, PromoImagesJson, and PromoExternalContentJson fields. feat: Update database schema for new room properties - Added new columns to the Rooms table for AllowNewUsers, MinLevel, MaxPlayerCalculationMode, LoadScreensJson, PromoImagesJson, and PromoExternalContentJson. feat: Implement platform notifications controller - Created PlatformNotificationsController for managing user notification preferences. - Added endpoints for retrieving and setting notification preferences and categories.
This commit is contained in:
@@ -329,7 +329,12 @@ public class MatchPlayerController(
|
||||
return null;
|
||||
}
|
||||
|
||||
var resolvedDataBlob = await ResolveDataBlobForPresenceAsync(room.RoomId, playerId, room.RoomInstanceId);
|
||||
var resolvedDataBlob = await ResolveDataBlobForPresenceAsync(
|
||||
room.RoomId,
|
||||
playerId,
|
||||
room.RoomInstanceId,
|
||||
room.SubRoomId,
|
||||
room.IsPrivate);
|
||||
if (!string.IsNullOrWhiteSpace(resolvedDataBlob)
|
||||
&& !string.Equals(room.DataBlob, resolvedDataBlob, StringComparison.Ordinal))
|
||||
{
|
||||
@@ -434,7 +439,9 @@ public class MatchPlayerController(
|
||||
private async Task<string> ResolveDataBlobForPresenceAsync(
|
||||
long roomId,
|
||||
int playerId,
|
||||
long? roomInstanceId = null)
|
||||
long? roomInstanceId = null,
|
||||
long? subRoomId = null,
|
||||
bool isPrivateInstance = false)
|
||||
{
|
||||
var room = await db.Rooms.AsNoTracking().FirstOrDefaultAsync(r => r.Id == roomId);
|
||||
if (room is null) return string.Empty;
|
||||
@@ -445,7 +452,7 @@ public class MatchPlayerController(
|
||||
if (!string.IsNullOrWhiteSpace(dormBlob)) return dormBlob;
|
||||
}
|
||||
|
||||
if (roomInstanceId is > 0)
|
||||
if (isPrivateInstance && roomInstanceId is > 0)
|
||||
{
|
||||
var instanceBlob = await db.PrivateInstances.AsNoTracking()
|
||||
.Where(instance => instance.Id == roomInstanceId && instance.RoomId == roomId)
|
||||
@@ -454,8 +461,19 @@ public class MatchPlayerController(
|
||||
if (!string.IsNullOrWhiteSpace(instanceBlob)) return instanceBlob;
|
||||
}
|
||||
|
||||
if (subRoomId is >= 0)
|
||||
{
|
||||
var sceneBlob = await db.RoomScenes.AsNoTracking()
|
||||
.Where(scene => scene.RoomId == roomId && scene.OrderIndex == subRoomId)
|
||||
.Select(scene => scene.DataBlobName)
|
||||
.FirstOrDefaultAsync();
|
||||
if (!string.IsNullOrWhiteSpace(sceneBlob)) return sceneBlob;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(room.CurrentDataBlobName)) return room.CurrentDataBlobName;
|
||||
|
||||
if (RoomService.IsBakedOriginalRoom(room)) return string.Empty;
|
||||
|
||||
return RoomService.SyntheticDefaultRoomDataBlobName(room.Id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user