Hosted rooms: seats, owner-first room IDs, T5 items in their scenes
CI / build (push) Successful in 31s

- The seat chosen on joining, and "*msg SeatAssignment" room seats, go to the hub, so people joining get
  free seats (both stood on seat 1).
- Instance IDs are "<owner>-<2100000000+n>" (the hub's change): the client takes the owner from them, so
  owners can decorate their rooms.
- A hosted room's scene carries community products as the hub's IDs (placements too), turned into local
  IDs by each proxy, instead of being stripped; saved and loaded scenes translate placements too.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-30 05:26:02 -07:00
1 parent 13ee023836
commit c483099558
6 files changed
+192 -31

No files matched your search

+3 -2
View File
@@ -115,10 +115,11 @@ func (p *Products) Ready(id string) {
const HostedOwnerID = 2100000000
// HostedRooms serves T5DE-hosted rooms' IMQ queues: Route answers subscriptions to them, Send takes the client's
// messages to them (reporting whether the queue was one), Closed forgets a connection.
// messages to them (message as for others, original as the client sent it, for the echo; keep: nothing to send
// others), reporting whether the queue was one; Closed forgets a connection.
type HostedRooms interface {
Route(c *proxy.IMQConn, unsubscribe bool, s imq.Subscription) imq.Subscription
Send(queue, mount string, message []byte) bool
Send(queue, mount string, message, original []byte, keep bool) bool
Closed(c *proxy.IMQConn)
}