mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-25 15:09:26 -07:00
Radicade Public Code
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# Keepsakes status
|
||||
|
||||
Keepsakes are enabled for all rooms, with a room limit of 10 and the catalog's
|
||||
per-category limits. The September client tool defaults to enabled through
|
||||
Keepsakes.EnableTool in the BepInEx configuration. RADICADE_KEEPSAKE_TOOL can still
|
||||
be used to override it (skip disables hooks; off installs observation-only hooks).
|
||||
|
||||
## Confirmed client compatibility fixes
|
||||
|
||||
The October 4 client log showed repeated FNKNJGBLBHO Keepsake runtime null references,
|
||||
a disabled client tool patch, and GET /api/keepsakes/events/1. Native inspection of
|
||||
the installed 20230831 client established these contracts:
|
||||
|
||||
- GGHPHLPMAAD reads room data as Instances, CollectionRecords, and
|
||||
KeepsakeProgressionEventIds. The server previously omitted Instances entirely.
|
||||
Instances now contains all active room instances, with the caller's collection
|
||||
records separate, so collected items remain available for count/category lookup.
|
||||
- EBHENPDHDLN reads event data as Instances and CollectionRecords, each containing
|
||||
RoomId/KeepsakeInstanceIds groups (FHGMHPEJIGJ). GET events/{id} now serves this.
|
||||
- AMAOGLDGNLL posts placement to /api/keepsakes with RoomId, SubRoomId and
|
||||
KeepsakeCategory, and expects a GUID response. Collection is POST
|
||||
/api/keepsakes/{guid}/collect; deletion is DELETE /api/keepsakes/{guid}.
|
||||
The older room-based routes remain available.
|
||||
- JNOKNEBCEMD and NIAPIJPPFCM require KeepsakeRoomLists to contain room DTO objects,
|
||||
not bare numeric room IDs. Lists now include event identity and unlock settings.
|
||||
AllRooms enumerates database rooms for the event definition rather than emitting
|
||||
an empty list that cannot grant room eligibility.
|
||||
- BAEFNEHEPIJ reads a player progression record (AccountId, Xp, RewardsCollected,
|
||||
BonusRewardsCollected, GameMinutesToday, XpBoostLastPurchasedAt), not another copy
|
||||
of the event definition. Event XP derives from stored collection records. A repeat
|
||||
pickup returns zero additional XP; no player-level XP is awarded by these routes.
|
||||
|
||||
Inspection output is under artifacts/keepsake-*.txt. The client patch now uses
|
||||
explicit September type references and handles zero-argument overloads safely.
|
||||
No exception suppression was added.
|
||||
|
||||
## Validation and installation
|
||||
|
||||
56 Keepsake/startup compatibility tests pass, including the actual client request
|
||||
flow, non-null empty lists, object-shaped event room membership, per-player
|
||||
collection and XP, placement limits, ownership, removal, and config overrides.
|
||||
The server and September client plugin both build successfully.
|
||||
|
||||
The client DLL was installed in the 2023-09-06T06-53-47Z game folder with a backup
|
||||
named RadicadeSeptemberClient.dll.before-keepsake-fix-20261004-214443. The normal
|
||||
local server output was rebuilt. No remote deployment or in-game verification was
|
||||
performed. Start the rebuilt server and relaunch the game, then place a keepsake,
|
||||
save/rejoin, collect/rejoin, and delete it. Other unrelated glitches have not been
|
||||
verified fixed by this work.
|
||||
|
||||
## Account authorization fix (October 5)
|
||||
|
||||
The screenshot's account authorization banner is a login-token issue, not a room
|
||||
CAN_INVITE permission. Native inspection of FNKNJGBLBHO.DKKIJJLCNLH shows a call
|
||||
to BLJANPFJMDG slot 4 (IBDFIOPDFBD.MABOKPPEEMA), which reads the account's Keepsake
|
||||
flag. DAJDMOPMEGG.NOGOHJKFDFC initializes it from the JWT role `keepsake`; its
|
||||
neighboring event-edit flag comes from `livekeepsakeeventroomsaveoverride`.
|
||||
AuthAPI.GenerateToken now issues both when KeepsakeFeature.Enabled is true.
|
||||
It grants neither developer nor moderator access. The separate room co-owner
|
||||
check remains in place. Existing tokens need a fresh login after the server update.
|
||||
|
||||
Validation: 77 authentication, Keepsake, and startup compatibility tests passed,
|
||||
including feature-enabled and feature-disabled JWT role checks.
|
||||
|
||||
The latest available logs (October 4, 23:40) also show PrefabSpawner.Append and
|
||||
PrefabSpawner.Replace null references during CompositeController.OnModelChanged,
|
||||
plus Harmony/IL2CPP startup type-loading warnings. These are not established as
|
||||
fixed by the token change. No generic exception suppression was added. Evidence:
|
||||
artifacts/keepsake-auth-check.txt, keepsake-account-auth-real.txt, and
|
||||
keepsake-auth-roles.txt; full UI stacks are in Unity's Player.log.
|
||||
|
||||
The event is now disabled in the shipped configuration (EventEnabled: false), independently of Keepsake placement. Active-event lookup returns JSON null; room payloads advertise no progression event. Set EventEnabled to true to restore the event. The DynamicUiPrefabRepair client patch fills missing JNHHEBGEAMP mappings using a controller-compatible multi-select float prefab.
|
||||
Reference in New Issue
Block a user