Decorations: keep them through IMVU's own room updates
CI / build (push) Successful in 33s

After the owner saves, IMVU's server sends everyone the saved room ({"command": "SetRoomState"} from
admin on the chat's control mount), which has no decorations: the proxy now adds them to it, and takes
community products out of any outgoing one. A change notice from the hub also no longer empties the
remembered decorations while the new ones are asked for (a broadcast arriving meanwhile went through
without them).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-30 05:00:11 -07:00
1 parent 0be2cd8f4e
commit 13ee023836
4 files changed
+159 -9

No files matched your search

+7
View File
@@ -146,6 +146,13 @@ func userOf(userID string) int64 {
// Incoming implements proxy.IMQWatcher: a T5DE user's whole outfit gets their community products added.
func (p *Products) Incoming(c *proxy.IMQConn, m imq.Delivered) []byte {
chat := chatOf(m.Queue)
if chat != "" && m.Mount == "control" {
// IMVU's server sends everyone a room its owner saved (as IMVU has it: without decorations).
if out, changed := p.incomingControlScene(m.Message); changed {
return out
}
return m.Message
}
if chat == "" || m.Mount != "messages" {
return m.Message
}