diff --git a/public/ui-config.json.example b/public/ui-config.json.example index caf1533..d5b9243 100644 --- a/public/ui-config.json.example +++ b/public/ui-config.json.example @@ -69,937 +69,1124 @@ "backgroundId": 0, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 1, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 2, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 3, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 4, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 5, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 6, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 7, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 8, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 9, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 10, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 11, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 12, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 13, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 14, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 15, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 16, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 17, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 18, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 19, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 20, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 21, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 22, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 23, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 24, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 25, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 26, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 27, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 28, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 29, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 30, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 31, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 32, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 33, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 34, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 35, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 36, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 37, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 38, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 39, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 40, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 41, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 42, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 43, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 44, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 45, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 46, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 47, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 48, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 49, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 50, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 51, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 52, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 53, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 54, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 55, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 56, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 57, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 58, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 59, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 60, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 61, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 62, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 63, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 64, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 65, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 66, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 67, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 68, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 69, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 70, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 71, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 72, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 73, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 74, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 75, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 76, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 77, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 78, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 79, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 80, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 81, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 82, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 83, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 84, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 85, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 86, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 87, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 88, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 89, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 90, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 91, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 92, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 93, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 94, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 95, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 96, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 97, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 98, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 99, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 100, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 101, "minRank": 2, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 102, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 103, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 104, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 105, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 106, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 107, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 108, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 109, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 110, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 111, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 112, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 113, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 114, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 115, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 116, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 117, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 118, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 119, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 120, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 121, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 122, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 123, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 124, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 125, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 126, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 127, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 128, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 129, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 130, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 131, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 132, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 133, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 134, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 135, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 136, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 137, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 138, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 139, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 140, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 141, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 142, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 143, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 144, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 145, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 146, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 147, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 148, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 149, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 150, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 151, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 152, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 153, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 154, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 155, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 156, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 157, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 158, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 159, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 160, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 161, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 162, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 163, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 164, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 165, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 166, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 167, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 168, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 169, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 170, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 171, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 172, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 173, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 174, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 175, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 176, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 177, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 178, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 179, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 180, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 181, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 182, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 183, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 184, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 185, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 186, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "backgroundId": 187, "minRank": 0, @@ -1011,159 +1198,190 @@ "standId": 0, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 1, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 2, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 3, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 4, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 5, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 6, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 7, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 8, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 9, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 10, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 11, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 12, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 13, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 14, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 15, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 16, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 17, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 18, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 19, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 20, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "standId": 21, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 } ], "overlays.data": [{ "overlayId": 0, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "overlayId": 1, "minRank": 0, "isHcOnly": false, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "overlayId": 2, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "overlayId": 3, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "overlayId": 4, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "overlayId": 5, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 4 }, { "overlayId": 6, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 2 }, { "overlayId": 7, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 2 }, { "overlayId": 8, "minRank": 0, "isHcOnly": true, - "isAmbassadorOnly": false + "isAmbassadorOnly": false, + "AvatarDirection": 2 } ], "hotelview": { @@ -2302,4 +2520,4 @@ "image": "${image.library.url}/album1584/X1517.gif" } } -} +} \ No newline at end of file diff --git a/src/components/backgrounds/BackgroundsView.tsx b/src/components/backgrounds/BackgroundsView.tsx index b0ff1e6..aedd308 100644 --- a/src/components/backgrounds/BackgroundsView.tsx +++ b/src/components/backgrounds/BackgroundsView.tsx @@ -4,12 +4,13 @@ import { useRoom } from '../../hooks'; import { HabboClubLevelEnum } from '@nitrots/nitro-renderer'; import { GetClubMemberLevel, GetConfiguration, GetSessionDataManager } from '../../api'; -interface ItemData { +interface ItemData { id: number; isHcOnly: boolean; minRank: number; isAmbassadorOnly: boolean; selectable: boolean; + AvatarDirection: number; } interface BackgroundsViewProps { @@ -20,6 +21,9 @@ interface BackgroundsViewProps { setSelectedStand: Dispatch>; selectedOverlay: number; setSelectedOverlay: Dispatch>; + setBackgroundDirection: Dispatch>; + setStandDirection: Dispatch>; + setOverlayDirection: Dispatch>; } const TABS = ['backgrounds', 'stands', 'overlays'] as const; @@ -32,11 +36,14 @@ export const BackgroundsView: FC = ({ selectedStand, setSelectedStand, selectedOverlay, - setSelectedOverlay + setSelectedOverlay, + setBackgroundDirection, + setStandDirection, + setOverlayDirection }) => { const [activeTab, setActiveTab] = useState('backgrounds'); const { roomSession } = useRoom(); - + const userData = useMemo(() => ({ isHcMember: GetClubMemberLevel() >= HabboClubLevelEnum.CLUB, securityLevel: GetSessionDataManager().canChangeName, @@ -45,14 +52,19 @@ export const BackgroundsView: FC = ({ const processData = useCallback((configData: any[], dataType: string): ItemData[] => { if (!configData?.length) return []; - + return configData .filter(item => { const meetsRank = userData.securityLevel >= item.minRank; const ambassadorEligible = !item.isAmbassadorOnly || userData.isAmbassador; return item.isHcOnly || (meetsRank && ambassadorEligible); }) - .map(item => ({ id: item[`${dataType}Id`], ...item, selectable: !item.isHcOnly || userData.isHcMember })); + .map(item => ({ + id: item[`${dataType}Id`], + ...item, + selectable: !item.isHcOnly || userData.isHcMember, + AvatarDirection: item.AvatarDirection ?? 4 + })); }, [userData]); const allData = useMemo(() => ({ @@ -64,14 +76,45 @@ export const BackgroundsView: FC = ({ const handleSelection = useCallback((id: number) => { if (!roomSession) return; - const setters = { backgrounds: setSelectedBackground, stands: setSelectedStand, overlays: setSelectedOverlay }; - - const currentValues = { backgrounds: selectedBackground, stands: selectedStand, overlays: selectedOverlay }; + const setters = { + backgrounds: setSelectedBackground, + stands: setSelectedStand, + overlays: setSelectedOverlay + }; + const directionSetters = { + backgrounds: setBackgroundDirection, + stands: setStandDirection, + overlays: setOverlayDirection + }; - setters[activeTab](id); - const newValues = { ...currentValues, [activeTab]: id }; - roomSession.sendBackgroundMessage( newValues.backgrounds, newValues.stands, newValues.overlays ); - }, [activeTab, roomSession, selectedBackground, selectedStand, selectedOverlay, setSelectedBackground, setSelectedStand, setSelectedOverlay]); + const currentValues = { + backgrounds: selectedBackground, + stands: selectedStand, + overlays: selectedOverlay + }; + + const selectedItem = allData[activeTab].find(item => item.id === id); + if (selectedItem) { + setters[activeTab](id); + directionSetters[activeTab](selectedItem.AvatarDirection); + + const newValues = { ...currentValues, [activeTab]: id }; + roomSession.sendBackgroundMessage(newValues.backgrounds, newValues.stands, newValues.overlays); + } + }, [ + activeTab, + roomSession, + selectedBackground, + selectedStand, + selectedOverlay, + setSelectedBackground, + setSelectedStand, + setSelectedOverlay, + setBackgroundDirection, + setStandDirection, + setOverlayDirection, + allData + ]); const renderItem = useCallback((item: ItemData, type: string) => ( >; onClose: () => void; } -export const InfoStandWidgetUserView: FC = props => -{ +export const InfoStandWidgetUserView: FC = props => { const { avatarInfo = null, setAvatarInfo = null, onClose = null } = props; - const [ motto, setMotto ] = useState(null); - const [ isEditingMotto, setIsEditingMotto ] = useState(false); - const [ relationships, setRelationships ] = useState(null); + const [motto, setMotto] = useState(null); + const [isEditingMotto, setIsEditingMotto] = useState(false); + const [relationships, setRelationships] = useState(null); const { roomSession = null } = useRoom(); - const [ backgroundId, setBackgroundId ] = useState(null); - const [ standId, setStandId ] = useState(null); - const [ overlayId, setOverlayId ] = useState(null); - const [ isVisible, setIsVisible ] = useState(false); + const [backgroundId, setBackgroundId] = useState(null); + const [standId, setStandId] = useState(null); + const [overlayId, setOverlayId] = useState(null); + const [backgroundDirection, setBackgroundDirection] = useState(2); + const [standDirection, setStandDirection] = useState(2); + const [overlayDirection, setOverlayDirection] = useState(2); + const [isVisible, setIsVisible] = useState(false); - const infostandBackgroundClass = `background-${ backgroundId }`; - const infostandStandClass = `stand-${ standId }`; - const infostandOverlayClass = `overlay-${ overlayId }`; + const infostandBackgroundClass = `background-${backgroundId}`; + const infostandStandClass = `stand-${standId}`; + const infostandOverlayClass = `overlay-${overlayId}`; - const saveMotto = (motto: string) => - { - if(!isEditingMotto || (motto.length > GetConfiguration('motto.max.length', 38))) return; + // Compute the avatar direction: Overlay > Stand > Background + const avatarDirection = overlayDirection !== null && overlayDirection !== undefined ? overlayDirection : + (standDirection !== null && standDirection !== undefined ? standDirection : backgroundDirection); + + const saveMotto = (motto: string) => { + if (!isEditingMotto || (motto.length > GetConfiguration('motto.max.length', 38))) return; roomSession.sendMottoMessage(motto); setIsEditingMotto(false); - } + }; const onMottoBlur = (event: FocusEvent) => saveMotto(event.target.value); - const onMottoKeyDown = (event: KeyboardEvent) => - { + const onMottoKeyDown = (event: KeyboardEvent) => { event.stopPropagation(); - switch(event.key) - { + switch (event.key) { case 'Enter': saveMotto((event.target as HTMLInputElement).value); return; } - } + }; - useRoomSessionManagerEvent(RoomSessionUserBadgesEvent.RSUBE_BADGES, event => - { - if(!avatarInfo || (avatarInfo.webID !== event.userId)) return; + useRoomSessionManagerEvent(RoomSessionUserBadgesEvent.RSUBE_BADGES, event => { + if (!avatarInfo || (avatarInfo.webID !== event.userId)) return; const oldBadges = avatarInfo.badges.join(''); - if(oldBadges === event.badges.join('')) return; + if (oldBadges === event.badges.join('')) return; - setAvatarInfo(prevValue => - { + setAvatarInfo(prevValue => { const newValue = CloneObject(prevValue); newValue.badges = event.badges; @@ -72,12 +72,10 @@ export const InfoStandWidgetUserView: FC = props = }); }); - useRoomSessionManagerEvent(RoomSessionUserFigureUpdateEvent.USER_FIGURE, event => - { - if(!avatarInfo || (avatarInfo.roomIndex !== event.roomIndex)) return; + useRoomSessionManagerEvent(RoomSessionUserFigureUpdateEvent.USER_FIGURE, event => { + if (!avatarInfo || (avatarInfo.roomIndex !== event.roomIndex)) return; - setAvatarInfo(prevValue => - { + setAvatarInfo(prevValue => { const newValue = CloneObject(prevValue); newValue.figure = event.figure; @@ -89,163 +87,190 @@ export const InfoStandWidgetUserView: FC = props = return newValue; }); + + // Update directions based on the new IDs + const backgrounds = GetConfiguration('backgrounds.data') || []; + const stands = GetConfiguration('stands.data') || []; + const overlays = GetConfiguration('overlays.data') || []; + + const background = backgrounds.find(bg => bg.backgroundId === event.backgroundId); + const stand = stands.find(st => st.standId === event.standId); + const overlay = overlays.find(ov => ov.overlayId === event.overlayId); + + setBackgroundDirection(background ? background.AvatarDirection ?? 2 : 2); + setStandDirection(stand ? stand.AvatarDirection ?? 2 : 2); + setOverlayDirection(overlay ? overlay.AvatarDirection ?? 2 : 2); }); - useRoomSessionManagerEvent(RoomSessionFavoriteGroupUpdateEvent.FAVOURITE_GROUP_UPDATE, event => - { - if(!avatarInfo || (avatarInfo.roomIndex !== event.roomIndex)) return; + useRoomSessionManagerEvent(RoomSessionFavoriteGroupUpdateEvent.FAVOURITE_GROUP_UPDATE, event => { + if (!avatarInfo || (avatarInfo.roomIndex !== event.roomIndex)) return; - setAvatarInfo(prevValue => - { + setAvatarInfo(prevValue => { const newValue = CloneObject(prevValue); const clearGroup = ((event.status === -1) || (event.habboGroupId <= 0)); newValue.groupId = clearGroup ? -1 : event.habboGroupId; - newValue.groupName = clearGroup ? null : event.habboGroupName + newValue.groupName = clearGroup ? null : event.habboGroupName; newValue.groupBadgeId = clearGroup ? null : GetSessionDataManager().getGroupBadge(event.habboGroupId); return newValue; }); }); - useMessageEvent(RelationshipStatusInfoEvent, event => - { + useMessageEvent(RelationshipStatusInfoEvent, event => { const parser = event.getParser(); - if(!avatarInfo || (avatarInfo.webID !== parser.userId)) return; + if (!avatarInfo || (avatarInfo.webID !== parser.userId)) return; setRelationships(parser); }); - useEffect(() => - { + useEffect(() => { setIsEditingMotto(false); setMotto(avatarInfo.motto); setBackgroundId(avatarInfo.backgroundId); setStandId(avatarInfo.standId); setOverlayId(avatarInfo.overlayId); + // Set initial directions based on avatarInfo + const backgrounds = GetConfiguration('backgrounds.data') || []; + const stands = GetConfiguration('stands.data') || []; + const overlays = GetConfiguration('overlays.data') || []; + + const background = backgrounds.find(bg => bg.backgroundId === avatarInfo.backgroundId); + const stand = stands.find(st => st.standId === avatarInfo.standId); + const overlay = overlays.find(ov => ov.overlayId === avatarInfo.overlayId); + + setBackgroundDirection(background ? background.AvatarDirection ?? 2 : 2); + setStandDirection(stand ? stand.AvatarDirection ?? 2 : 2); + setOverlayDirection(overlay ? overlay.AvatarDirection ?? 2 : 2); + SendMessageComposer(new UserRelationshipsComposer(avatarInfo.webID)); - return () => - { + return () => { setIsEditingMotto(false); setMotto(null); setRelationships(null); setBackgroundId(null); setStandId(null); setOverlayId(null); - } - }, [ avatarInfo ]); + setBackgroundDirection(2); + setStandDirection(2); + setOverlayDirection(2); + }; + }, [avatarInfo]); - if(!avatarInfo) return null; + if (!avatarInfo) return null; return ( - - + + - - - { avatarInfo.name } + + + {avatarInfo.name} - +
- - - GetUserProfile(avatarInfo.webID) }> - - - - { avatarInfo.type === AvatarInfoUser.OWN_USER && - - { event.stopPropagation(); setIsVisible(prevValue => !prevValue); } } - /> + + + GetUserProfile(avatarInfo.webID)}> + + + + {avatarInfo.type === AvatarInfoUser.OWN_USER && + { + event.stopPropagation(); + setIsVisible(prevValue => !prevValue); + }} /> } - - + + - { avatarInfo.badges[0] && } + {avatarInfo.badges[0] && } - 0) } className="badge-image" onClick={ event => GetGroupInformation(avatarInfo.groupId) }> - { avatarInfo.groupId > 0 && - } + 0)} className="badge-image" onClick={event => GetGroupInformation(avatarInfo.groupId)}> + {avatarInfo.groupId > 0 && + } - + - { avatarInfo.badges[1] && } + {avatarInfo.badges[1] && } - { avatarInfo.badges[2] && } + {avatarInfo.badges[2] && } - + - { avatarInfo.badges[3] && } + {avatarInfo.badges[3] && } - { avatarInfo.badges[4] && } + {avatarInfo.badges[4] && }
- + - { (avatarInfo.type !== AvatarInfoUser.OWN_USER) && + {(avatarInfo.type !== AvatarInfoUser.OWN_USER) && - { motto } - } - { avatarInfo.type === AvatarInfoUser.OWN_USER && - + {motto} + } + {avatarInfo.type === AvatarInfoUser.OWN_USER && + - { !isEditingMotto && - setIsEditingMotto(true) }>{ motto }  } - { isEditingMotto && - ('motto.max.length', 38) } value={ motto } onChange={ event => setMotto(event.target.value) } onBlur={ onMottoBlur } onKeyDown={ onMottoKeyDown } autoFocus={ true } /> } + {!isEditingMotto && + setIsEditingMotto(true)}>{motto} } + {isEditingMotto && + ('motto.max.length', 38)} value={motto} onChange={event => setMotto(event.target.value)} onBlur={onMottoBlur} onKeyDown={onMottoKeyDown} autoFocus={true} />} - } + }

- + - { LocalizeText('infostand.text.achievement_score') + ' ' + avatarInfo.achievementScore } + {LocalizeText('infostand.text.achievement_score') + ' ' + avatarInfo.achievementScore} - { (avatarInfo.carryItem > 0) && + {(avatarInfo.carryItem > 0) && <>
- { LocalizeText('infostand.text.handitem', [ 'item' ], [ LocalizeText('handitem' + avatarInfo.carryItem) ]) } + {LocalizeText('infostand.text.handitem', ['item'], [LocalizeText('handitem' + avatarInfo.carryItem)])} - } + }
- - + + - { GetConfiguration('user.tags.enabled') && - - + {GetConfiguration('user.tags.enabled') && + + } - { (isVisible && avatarInfo.type === AvatarInfoUser.OWN_USER) && + {(isVisible && avatarInfo.type === AvatarInfoUser.OWN_USER) && - } + setIsVisible={setIsVisible} + selectedBackground={backgroundId} + setSelectedBackground={setBackgroundId} + selectedStand={standId} + setSelectedStand={setStandId} + selectedOverlay={overlayId} + setSelectedOverlay={setOverlayId} // Fixed: Use setOverlayId + setBackgroundDirection={setBackgroundDirection} + setStandDirection={setStandDirection} + setOverlayDirection={setOverlayDirection} + />} ); -} +}; \ No newline at end of file