Author: bdonlan
Date: 2005-01-05 23:36:53 -0500 (Wed, 05 Jan 2005)
New Revision: 527

Removed:
   trunk/misc/javer/src/javer/HaverException.java
Modified:
   /
   trunk/misc/javer/src/javer/HaverClient.java
   trunk/misc/javer/src/javer/JaverUIPanel.java
Log:
 [EMAIL PROTECTED]:  bdonlan | 2005-01-06T04:36:27.231719Z
 Lots more work on Javer. The library should be almost complete enough for a 
simple client now.



Property changes on: 
___________________________________________________________________
Name: svk:merge
   - 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local:11195
   + 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local:11199

Modified: trunk/misc/javer/src/javer/HaverClient.java
===================================================================
--- trunk/misc/javer/src/javer/HaverClient.java 2005-01-06 03:27:23 UTC (rev 
526)
+++ trunk/misc/javer/src/javer/HaverClient.java 2005-01-06 04:36:53 UTC (rev 
527)
@@ -126,20 +126,53 @@
         });
         serverevents.put("JOIN", new ServerHandler() {
             public void trigger(String[] args) {
-                if (args.length == 2) {
-                    eventChannelJoined(args[1]);
-                } else if (args.length == 3) {
+                if (args[2].equals(uid)) {
+                    eventChannelJoin(args[1]);
+                } else {
                     eventChannelJoin(args[1], args[2]);
                 }
             }
         });
+        serverevents.put("PART", new ServerHandler() {
+            public void trigger(String[] args) {
+                if (args[2].equals(uid)) {
+                    eventChannelPart(args[1]);
+                } else {
+                    eventChannelPart(args[1], args[2]);
+                }
+            }
+        });
+        serverevents.put("QUIT", new ServerHandler() {
+            public void trigger(String[] args) {
+                eventQuit(args[1], args[2]);
+            }
+        });
+        serverevents.put("LIST", new ServerHandler() {
+            public void trigger(String[] args) {
+                Set s = new HashSet();
+                if (!args[2].equals("user")) {
+                    /* we only know how to list for users right now */
+                    return;
+                }
+                for (int i = 3; i < args.length; i++) {
+                    s.add(args[i]);
+                }
+                eventChannelList(args[1], s);
+            }
+        });
     }
 
     private void dispatchCommand(String s) throws java.io.IOException {
         String[] parts = s.split("\t");
         ServerHandler h = (ServerHandler) serverevents.get(parts[0]);
         if (h != null) {
-            h.trigger(parts);
+            try {
+                h.trigger(parts);
+            } catch(IOException e) {
+                /* we should probably do something here */
+            } catch(Exception e) {
+                /* and here */
+            }
         }
     }
     
@@ -155,13 +188,25 @@
         /* STUB */
     }
 
-    public void eventChannelJoined(String where) {
+    public void eventChannelJoin(String where) {
         /* STUB */
     }
 
     public void eventChannelJoin(String where, String who) {
         /* STUB */
     }
+    
+    public void eventChannelPart(String where) {
+        /* STUB */
+    }
+    
+    public void eventChannelPart(String where, String who) {
+        /* STUB */
+    }
+    
+    public void eventQuit(String who, String why) {
+        /* STUB */
+    }
 
     public void eventMessage(String where, String who, String type, String[] 
args) {
         if (type.equals("\"")) {
@@ -177,6 +222,10 @@
     public void eventAction(String where, String who, String arg) {
         /* STUB */
     }
+    
+    public void eventChannelList(String where, Set names) {
+        /* STUB */
+    }
 
     public final String[] subStringArray(String[] array, int start, int end) {
         if (start > end) {
@@ -212,4 +261,8 @@
     public void eventIdenting() {
         /* STUB */
     }
+
+    public void listChannel(String channel) throws IOException {
+        send("LIST\t" + channel + "\tuser");
+    }
 }

Deleted: trunk/misc/javer/src/javer/HaverException.java
===================================================================
--- trunk/misc/javer/src/javer/HaverException.java      2005-01-06 03:27:23 UTC 
(rev 526)
+++ trunk/misc/javer/src/javer/HaverException.java      2005-01-06 04:36:53 UTC 
(rev 527)
@@ -1,20 +0,0 @@
-/*
- * HaverException.java
- *
- * Created on January 5, 2005, 8:17 PM
- */
-
-package javer;
-
-/**
- *
- * @author  bdonlan
- */
-public class HaverException extends Exception {
-    
-    /** Creates a new instance of HaverException */
-    public HaverException() {
-        super();
-    }
-    
-}

Modified: trunk/misc/javer/src/javer/JaverUIPanel.java
===================================================================
--- trunk/misc/javer/src/javer/JaverUIPanel.java        2005-01-06 03:27:23 UTC 
(rev 526)
+++ trunk/misc/javer/src/javer/JaverUIPanel.java        2005-01-06 04:36:53 UTC 
(rev 527)
@@ -6,6 +6,7 @@
 
 package javer;
 import java.io.*;
+import java.util.*;
 
 /**
  *
@@ -14,6 +15,7 @@
 public class JaverUIPanel extends java.awt.Panel {
     
     Client cli;
+    Set names = new HashSet();
     
     /** Creates new form JaverUIPanel */
     public JaverUIPanel() {
@@ -34,7 +36,7 @@
         }
 
         public void eventIdentAccepted() {
-            putLine("Ident accepted.");
+            putLine("--- Logged in.");
             try {
                 cli.join("lobby");
             } catch (IOException e) {
@@ -43,9 +45,14 @@
             super.eventIdentAccepted();
         }
 
-        public void eventChannelJoined(String where) {
-            putLine("Joined " + where);
-            super.eventChannelJoined(where);
+        public void eventChannelJoin(String where) {
+            putLine("--- You have now joined: " + where);
+            try {
+                listChannel(where);
+            } catch (IOException e) {
+                /* XXX */
+            }
+            super.eventChannelJoin(where);
         }
 
         public void eventMessage(String where, String who, String type, 
String[] args) {
@@ -63,15 +70,63 @@
         }
 
         public void eventChannelJoin(String where, String who) {
-            putLine(where + ": Joined: " + who);
+            putLine("--- " + where + ": Joined: " + who);
+            names.add(who);
+            userList.setListData(names.toArray());
             super.eventChannelJoin(where, who);
         }
 
         public void eventIdenting() {
-            putLine("Identing to server...");
+            putLine("--- Logging in...");
             super.eventIdenting();
         }
 
+        public void eventChannelPart(String where) {
+            putLine("--- You have now left channel " + where);
+            super.eventChannelPart(where);
+        }
+
+        public void eventChannelList(String where, java.util.Set newnames) {
+            int i;
+            names = newnames;
+            Iterator iter = names.iterator();
+            String line = "--- ";
+            userList.setListData(names.toArray());
+            putLine("--- Users for " + where + ": ");
+            i = 0;
+            while(iter.hasNext()) {
+                String nick = (String) iter.next();
+                if (i != 0) {
+                    line = line + " - ";
+                }
+                line = line + nick;
+                i++;
+                if (i == 4) {
+                    putLine(line);
+                    line = "--- ";
+                    i = 0;
+                }
+            }
+            if (i != 0) {
+                putLine(line);
+            }
+            super.eventChannelList(where, names);
+        }
+
+        public void eventQuit(String who, String why) {
+            names.remove(who);
+            userList.setListData(names.toArray());
+            putLine("--- " + who + " has quit: " + why);
+            super.eventQuit(who, why);
+        }
+
+        public void eventChannelPart(String where, String who) {
+            putLine("--- " + who + " has left " + where);
+            names.remove(who);
+            userList.setListData(names.toArray());
+            super.eventChannelPart(where, who);
+        }
+
     }
 
     public void putLine(String s) {


Reply via email to