Commit Graph

19 Commits

Author SHA1 Message Date
Alexa eb2fb0e1f1 Enhance room role management: refactor role granting logic, add role invitation endpoints, and improve role handling in RoomsController and AdminController 2026-06-06 20:33:08 +03:00
Alexa fe1c2c53e3 Refactor leaderboard logic: incorporate room context into leaderboard stats and channel metadata handling 2026-06-05 23:55:26 +03:00
Alexa e2f169cdea Refactor RelationshipsController: merge relationship rows for accurate status representation and enhance gifting functionality in AdminController and Gift component 2026-06-04 15:55:59 +03:00
Alexa 8dfe4c8d63 Implement "Everyone is friends" toggle: add global friends functionality with server settings and UI integration 2026-06-04 13:40:15 +03:00
Alexa f581d03bec Add weekly challenge configuration management: implement types and functions for building and parsing weekly challenge configurations; enhance UI for challenge type and amount selection 2026-06-03 01:07:42 +03:00
Alexa ef440bedaa Add game configuration management: implement endpoints for retrieving and updating discovered game configurations; enhance database schema and UI integration 2026-06-02 17:14:39 +03:00
Alexa 810ba0992c Add Rec Center doors management: implement endpoints for retrieving and updating door configurations; enhance database schema and UI integration 2026-06-02 17:08:42 +03:00
Alexa 218d92f856 Implement Play Menu Tags management: add endpoints for retrieving and updating tags; enhance database schema and UI integration 2026-06-02 16:46:28 +03:00
Alexa a2feb780c2 Refactor image URL handling: streamline image and asset CDN URL generation using new utility functions 2026-06-02 15:57:55 +03:00
Alexa 7535cd823f Refactor admin UI for consolidated navigation and improved moderation workflow
- Updated Sidebar component to consolidate navigation items under new categories: Moderation, Content, and Operations.
- Removed outdated pages and integrated their functionalities into tabs under Players, Activity, Content, and Settings.
- Introduced new Activity and Content pages to house Audit, Player Logs, Community Board, and Loading Tips with tabbed navigation.
- Created a unified Moderation page combining Players, Bans, and Reports with tabbed navigation.
- Refactored individual pages (e.g., Audit, Bans, CommunityBoard, etc.) to support embedded mode for better integration within modals.
- Added Tabs component for consistent tab navigation across multiple pages.
- Updated README to reflect changes in navigation and settings structure.
- Removed Grants page as it is not yet implemented.
2026-06-02 10:49:35 +03:00
Alexa 96eb368d41 Refactor AvatarGiftsController: change ToWire method to public for external access; update AdminController to use ToWire for gift notifications 2026-06-02 02:39:29 +03:00
Alexa 27c560906f Enhance admin dashboard: add new player count, active sessions, and online player details; improve stats display and layout 2026-06-02 02:33:31 +03:00
Alexa 5dbcf50d37 Enhance room import functionality: support studio single-room dumps, improve zip parsing, and add validation for save entries 2026-06-02 02:22:38 +03:00
Alexa e18e167660 Enhance signup process: increase item fetch limit, update Join API to use password, and improve UI for account creation 2026-06-02 02:05:01 +03:00
Alexa e404ed8352 Fix live room and account updates 2026-06-01 20:55:43 +03:00
Alexa 3d089f6e32 admin: change a player's username from the Players panel
Add POST players/{id}/username + a Username field in the player detail's
Profile tab. Changes only the unique @handle (not the display name) and
rejects a collision outright rather than auto-suffixing, so the admin
gets the exact handle they typed. Same 2-24 char letters/digits/_/-
rule as the account API; logged to the audit trail as old -> new.
2026-05-31 20:52:11 +03:00
Alexa 3480ca21fa signup codes: admin-issued invite codes + site /join redemption
While account creation is disabled, the only way in is now an
admin-issued single-use signup code (Discord-invite style), redeemed on
the public site's /join page.

Because the 2020 watch login is device-id-bound with no code field, the
flow captures it server-side instead: a new device refused at the
signups-disabled gate (PlatformLogin / account create) is stashed in a
PendingDevices table keyed by the real client IP (CF-Connecting-IP aware).
The /join page then shows the player the device their own client just
reported, they enter their code + username, and the account is minted
bound to that device — so the next launch logs straight in via the
existing device-id path. No watch changes.

- SignupCodeEntity (code, descriptor, optional expiry, redeemer) +
  PendingDeviceEntity; idempotent CREATE TABLE in DatabaseBootstrap so
  both providers pick them up without a new migration.
- SignupCodeService: generate / list / revoke / redeem + pending-device
  capture, single-use + expiry + revoke validation.
- Admin: GET/POST signup-codes + revoke endpoints and a Signup codes
  admin-ui page (generate with descriptor/expiry, status table, revoke).
- Public: anonymous /api/site/v1/join pending-devices + redeem, and a
  /join site page (+ header link).
- README documents the flow + the post-Initial table-create approach.
2026-05-31 20:00:35 +03:00
Alexa c5db16eeb0 Port march fixes: Vite relative-base + ResolveType internal + park AuthValuesInjector
Three carry-overs from the march branch (commits 80cc4ce, cd9d105) and
the launcher-side Vite build fix, all applicable to december without
modification:

1. Vite admin-ui + site configs switch from `base: '/'` to `base: './'`.
   Built index.html now emits `<script src="./assets/...">` instead of
   `/assets/...`, so the Easy Launcher's single-origin path-prefix mode
   (`https://<apex>/__dn/admin/`) resolves assets under the prefix
   instead of skipping it and 404'ing on the wrong server host.

2. Mod.ResolveType promoted from private to internal so PhotonPatches'
   and SavePatches' local FindGameType helpers can delegate to the
   broader assembly-scan fallback (was misssing IL2CPP-mangled type
   names like the literal "PhotonNetwork"). Both helpers collapse to
   one-line `=> Mod.ResolveType(name);`.

3. Parked AuthValuesInjector_Prefix into
   DorkNet.ClientMod/attic/AuthValuesInjector.cs.attic. In december
   this method was defined but **never wired to a harmony hook** in
   OnLateInitializeMelon, so it was effectively dead code. Removed
   the method + GetCurrentLockToken helper + Cfg.InjectAuthValues
   field + LoadConfig reader + log mention. The .cs.attic suffix
   keeps the SDK's auto-globber from compiling the parked file.
   Restore notes inside the attic file describe how to re-enable —
   for december the suggested hook is a postfix on
   PUNNetworkManager.EMGGKBALALH (mutate the AuthValues there)
   instead of march's NetworkingPeer.CallAuthenticate which never
   fires in IL2CPP.
2026-05-28 14:18:59 +03:00
Alexa 4edf25b2d5 Import december-2020-12-18 from private repo (scrubbed 2026-05-27)
Targets Rec Room 2020.12.18 client.

Re-import after adding:
- DorkNet.ClientMod/dorknet-clientmod.json.template — config schema
  the launcher's manifest-driven patcher renders into UserData/.
- tools/build-patcher-zip.ps1 — produces the dorknet-clientpatch-{key}.zip
  Release asset the launcher fetches.
- .github/workflows/release.yml — auto-publishes both Release assets
  on v1-december-* tag push.

Scrubbed via maintainer-side scrub-for-public.ps1: same drop rules as
the prior import, plus build-patcher-zip.ps1 added to the tools/
allow-list so it survives the scrub.
2026-05-27 01:04:12 +03:00