T5 furniture and poses in IMVU rooms (decorations)
CI / build (push) Successful in 44s

Community products are taken out of rooms their owners save and broadcast, kept on the hub per room,
and added back when anyone with T5DE loads the room or gets its owner's broadcast; the hub's decor
notice resends the room with the new ones. Placements are stored with the hub's product ID.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-30 04:03:21 -07:00
1 parent d8332b21a8
commit 0be2cd8f4e
9 files changed
+685 -2

No files matched your search

+8 -2
View File
@@ -180,6 +180,8 @@ type Client struct {
OnConnect func()
// OnRoom, if set, gets the hub's messages about hosted rooms ("room.*"), as sent.
OnRoom func(data []byte)
// OnDecor, if set, hears that an IMVU room's decorations changed (its instance ID).
OnDecor func(room string)
mu sync.Mutex
saved *Saved
@@ -343,8 +345,8 @@ func (c *Client) connect(ctx context.Context) error {
continue
}
var m struct {
Type, Message, Chat string
Avatars []Avatar
Type, Message, Chat, Room string
Avatars []Avatar
}
if json.Unmarshal(data, &m) != nil {
continue
@@ -352,6 +354,10 @@ func (c *Client) connect(ctx context.Context) error {
switch m.Type {
case "error":
c.log.Printf("hub: %s", m.Message)
case "decor":
if c.OnDecor != nil && m.Room != "" {
go c.OnDecor(m.Room)
}
case "library":
if c.OnLibrary != nil {
go c.OnLibrary()