You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RPCharacters' /plushie <character> [1|2|3] needs a saved wardrobe outfit without changing the character's wardrobe. Add authenticated GET /characters/plugin/wardrobe/{player_uuid}/{character_id}/slots/{slot} for base, extra_1 and extra_2.
The lookup checks owner and slot access, returns only the selected signed texture, and does not reconcile limits, equip an outfit or acknowledge pending applies. Empty or unsigned outfits return no texture; locked and masked slots are refused. Existing wardrobe and worn-skin routes keep their behavior.
Validation: 31 tests passed across the route, wardrobe face, entitlement and masked-slot suites. The tests also compare roster rows, slot rows and skin files before/after reads. No schema or frontend changes. Deploy the site before activating the companion RPCharacters build.
No actionable comments were generated in the recent review. 🎉
ℹ️ Recent review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Advanced
Run ID: 9ae56544-6b33-4269-bac1-1e9c2e591148
📥 Commits
Reviewing files that changed from the base of the PR and between 99dc9f6 and cacf292.
📒 Files selected for processing: 3
backend/src/api/characters_routes.py
backend/src/api/test_plugin_worn_skin_route.py
backend/src/characters/wardrobe.py
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
📝 Summary
Summary by CodeRabbit
New Features
Plugins can retrieve the texture for a specific unlocked outfit slot, provided the player and character match.
The response only includes that slot’s own texture when valid; it does not substitute another skin when the slot has no usable texture.
Requests for locked or invalid slots receive an appropriate error.
Adds a plugin-key-authenticated endpoint to retrieve the signed texture for a specified wardrobe slot. The lookup checks player and character ownership, slot validity, and unlock status.
Adds wardrobe_slot_texture. It returns signed texture fields only when the slot has a PNG and both signed values. Invalid slots return 400, and locked slots return 403.
Plugin route and validation backend/src/api/characters_routes.py, backend/src/api/test_plugin_worn_skin_route.py
Adds a plugin-key-authenticated route and tests for successful lookup, error responses, missing or unsigned textures, authentication, and ownership. Tests check that requests do not change wardrobe state.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RPCharacters'
/plushie <character> [1|2|3]needs a saved wardrobe outfit without changing the character's wardrobe. Add authenticatedGET /characters/plugin/wardrobe/{player_uuid}/{character_id}/slots/{slot}forbase,extra_1andextra_2.The lookup checks owner and slot access, returns only the selected signed texture, and does not reconcile limits, equip an outfit or acknowledge pending applies. Empty or unsigned outfits return no texture; locked and masked slots are refused. Existing wardrobe and worn-skin routes keep their behavior.
Validation: 31 tests passed across the route, wardrobe face, entitlement and masked-slot suites. The tests also compare roster rows, slot rows and skin files before/after reads. No schema or frontend changes. Deploy the site before activating the companion RPCharacters build.
Related: RPCharacters #124, Docs #288.