From 7e765bb536afcf13993bc44885ffcd257bfd38de Mon Sep 17 00:00:00 2001 From: Alexa <53471801+Alexa-RR@users.noreply.github.com> Date: Wed, 3 Jun 2026 02:46:04 +0300 Subject: [PATCH] Add share cam permission for public rooms: enable desktop/share screen access in public rooms without host/mod/co-owner requirement --- .../API/Rooms/V2/RoomsModerationController.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/DorkNet.Server/Controllers/API/Rooms/V2/RoomsModerationController.cs b/DorkNet.Server/Controllers/API/Rooms/V2/RoomsModerationController.cs index f77a846..61e9410 100644 --- a/DorkNet.Server/Controllers/API/Rooms/V2/RoomsModerationController.cs +++ b/DorkNet.Server/Controllers/API/Rooms/V2/RoomsModerationController.cs @@ -23,6 +23,9 @@ namespace DorkNet.Server.Controllers.API.Rooms.V2; [Authorize] public class RoomsModerationController(DorkNetDbContext db) : ControllerBase { + private const int PublicAccessibility = 1; + private const long CanUseShareCamPermission = 1L << 18; + private long Me => this.RequireCurrentPlayerId(); private async Task RequireOwnedRoomAsync(long roomId) @@ -318,6 +321,14 @@ public class RoomsModerationController(DorkNetDbContext db) : ControllerBase 5 => 0x000000FFL, _ => 0x0000000FL, }; + // RoomRole.BJICCBAKLAF.CAN_USE_SHARE_CAM = 18 in the + // 2020.12 decompile. Public rooms should allow desktop/share + // screens without requiring host/mod/co-owner, while private + // rooms keep their explicit role gate. + if (room?.Accessibility == PublicAccessibility) + { + permissions |= CanUseShareCamPermission; + } return Ok(new { success = true,