Method code for $channel_ui.channel_members()

[Turn off line numbering]
  1: arg channel, @full;
  2: var q, members, name, who, line;
  3: 
  4: members = [];
  5: [(full ?= 0)] = full;
  6: if (full) {
  7:     line = "All members of channel " + channel + " ('*'=listening, '!'=not connected):";
  8:     who = $user_db.user_dbrefs();
  9: } else {
 10:     line = "Connected members of channel " + channel + " ('*'=listening):";
 11:     who = $user_db.connected();
 12: }
 13: for q in (who) {
 14:     if (!valid(q))
 15:         continue;
 16:     if (q.channel_member(channel)) {
 17:         if (q.connected())
 18:             name = " " + q.name();
 19:         else
 20:             name = "!" + q.name();
 21:         if (q.listen_channel(channel))
 22:             members += ["*" + name];
 23:         else
 24:             members += [" " + name];
 25:     }
 26: }
 27: return [line] + members.vcolumnize(4, .linelen() - 4).prefix("    ") + ["---"];

// Created 24-Jul-1996 as a part of ColdCore, see: @help Credit

Tlon