import java.util.*;
import java.io.*;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

/**
  * A text based RMI chat client.
  */
public class ClientImpl  extends UnicastRemoteObject
        implements Client {

	public ClientImpl () throws RemoteException {}
	
        public void whoChanged() throws java.rmi.RemoteException {}

        public void speak(String who, String msg) throws java.rmi.RemoteException
		{
		System.out.println(who + ": " + msg);
		}
	public static void main(String[] args) throws Exception {
		Client c = new ClientImpl();
		Server  s= (Server)Naming.lookup("//savoir.cs.umd.edu/ChatServer");
		Connection conn = s.logon(args[0],c);
		if (conn == null) return;
		BufferedReader in =
			new BufferedReader(new InputStreamReader(System.in));
		String msg = null;
		inputLoop: while ((msg = in.readLine()) != null) {
			directedMsg: if (msg.charAt(0) == '(') {
				int i = msg.indexOf(')'); 
				if (i == -1) break directedMsg;
				String toWho = msg.substring(1,i-1);
				String contents 
				   = msg.substring(i+1,msg.length()-1).trim();
				conn.say(toWho,contents);
				continue inputLoop;
				}
			conn.say(msg);
		}
		conn.logoff();
		}
}
