/** (C) Game Page Network, Inc., Confidential, All Rights Reserved */
// WhoCommand.java
// --paul@gamepage.net, 21jul97

import java.util.*;

public class WhoCommand extends Command {
  WhoCommand() {
    super("who", -1, null,
          "Query the member database, for all tables, or "+
	  "just for TABLE or MEMBER. See also: tables.");
    anonymous = true;
  }
  public void process(StringTokenizer args, Client c) {
    int argc = args.countTokens();
    if (argc>1) {
      c.send("? who");
      return;
    }
    if (args.hasMoreTokens()) {
      String name = args.nextToken();

      // 1. Show everyone at this TABLE?
      Table table = Table.find(name);
      if (table!=null) {	
	table.showWho(c);
	return;
      }

      // 2. Show current member?
      if (name.equals("*")) {
	StringBuffer buf = new StringBuffer(128);
	Member.showMember(c.getMember(),buf,true);
	c.send(buf);
	return;
      }
      
      // 3. Show just this MEMBER?
      Member member = Member.findMember(name);
      if (member!=null) {
	StringBuffer buf = new StringBuffer(128);
	Member.showMember(member,buf,true);
	c.send(buf);		// extra blank line, boohoo
	return;
      }

      // name specified, but no table or member:
      c.send("! who "+name+": No table or member.");
      return;
    }

    // 4. Show everyone logged in now!
    Member.showWho(c);
  }
}

