feat: sync live profile customization

This commit is contained in:
Alexander Sellite 2026-08-15 19:20:14 -04:00
parent d7c887db21
commit a7837c3711
9 changed files with 842 additions and 49 deletions

View file

@ -41,6 +41,21 @@ static func valid_apply_request(data: Variant) -> bool:
)
static func valid_appearance_preview_request(data: Variant) -> bool:
return (
typeof(data) == TYPE_DICTIONARY
and valid_request_id(data.get("request_id"))
and typeof(data.get("session_id")) == TYPE_STRING
and not str(data.get("session_id", "")).is_empty()
and typeof(data.get("appearance")) == TYPE_DICTIONARY
and valid_snapshot(data["appearance"])
and NetworkIdentityCrypto.valid_fingerprint(
data.get("sender_fingerprint")
)
and typeof(data.get("sender_signature")) == TYPE_PACKED_BYTE_ARRAY
)
static func signature_fields(data: Dictionary) -> Array:
var appearance: Dictionary = data.get("appearance", {})
var result: Array = [
@ -54,3 +69,16 @@ static func signature_fields(data: Dictionary) -> Array:
)
result.append(bool(data.get("use_anyway", false)))
return result
static func appearance_preview_signature_fields(data: Dictionary) -> Array:
var appearance: Dictionary = data.get("appearance", {})
var result: Array = [
str(data.get("session_id", "")),
str(data.get("request_id", "")),
str(data.get("sender_fingerprint", "")),
]
result.append_array(
CharacterCustomizationCatalog.appearance_signature_values(appearance)
)
return result