OverviewFilesCommitsIssuesDocsReleasesPeers

godot-keet commits / 5ffecfe

Detect DM rooms by roomType=2, separate from regular rooms
Rooms from getRecentRooms with roomType=2 are now moved to the DM section instead of appearing in the regular rooms list. Merges with DMs from dm.list to avoid duplicates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5ffecfe9c0586c86cfa3c152b981743ca4384b7e
by plankatron <fleeky@gmail.com> · 2026-02-23T14:58:28.000Z

Changed files (1) +24 -4

scripts/room_list_panel.gd +24 -4
……@@ -452,13 +452,33 @@ func _build_discover_group_rooms() -> void:
452452# --- My Rooms ---
453453
454454func _on_rooms_loaded(rooms: Array) -> void:
455 _rooms = rooms
455 # Split rooms by roomType: type 2 = DM, everything else = regular room
456 _rooms = []
457 var dm_from_rooms: Array = []
458 for r: Variant in rooms:
459 if r is Dictionary:
460 var rt: int = int(r.get("roomType", 0))
461 if rt == 2:
462 dm_from_rooms.append(r)
463 else:
464 _rooms.append(r)
465 # Merge DMs detected by roomType with DMs from dm.list
466 if not dm_from_rooms.is_empty():
467 var existing_ids: Dictionary = {}
468 for dm: Variant in _dm_rooms:
469 if dm is Dictionary:
470 existing_ids[dm.get("roomId", dm.get("id", ""))] = true
471 for dm: Variant in dm_from_rooms:
472 var rid: String = dm.get("roomId", "")
473 if rid != "" and not existing_ids.has(rid):
474 _dm_rooms.append(dm)
475
456476 # Clear joining state for rooms that have appeared in the room list
457477 if not _joining_rooms.is_empty():
458478 var room_ids: Dictionary = {}
459 for r: Variant in rooms:
460 if r is Dictionary:
461 room_ids[r.get("roomId", "")] = true
479 for r2: Variant in rooms:
480 if r2 is Dictionary:
481 room_ids[r2.get("roomId", "")] = true
462482 for jid: String in _joining_rooms.keys():
463483 if room_ids.has(jid):
464484 _joining_rooms.erase(jid)