]> git.cworth.org Git - ttt/blobdiff - PROTOCOL
2005-12-03 Richard D. Worth <richard@theworths.org>
[ttt] / PROTOCOL
index d855cdf348780bc1edecce3e10e5ddb93d36d471..be0f04d04a6b2a5640215c4622d366c672145c9b 100644 (file)
--- a/PROTOCOL
+++ b/PROTOCOL
@@ -31,11 +31,11 @@ Document Conventions
        <response> is one of:
 
        <command> <args>
-       ERROR <message>
+       ERROR <error-code>
 
 1. Requests
 
-1.1 Connection setup
+1.1. Connection setup
 
     The TTTP server has no well defined port; agreement on which port to
     use must be done through some external mechanism.  Once connected,
@@ -47,23 +47,37 @@ Document Conventions
     
     HELO <username> <server-addr> <server-port>
 
-    Possible errors: INVALIDNAME
+    Possible errors: INVALID_NAME
 
 1.2. Global commands
 
-    1.2.1 Listing available users
+    1.2.1. Listing available users
 
        WHO
 
        ->
 
-       WHO <username1> <games1> <username2> <games2> ...
+       WHO <username1> <username2> ...
 
-       Lists connected users and the number of games they've won.
+       Lists connected users.
 
-       Possible errors: NONAMESET
+       Possible errors: NO_NAME_SET
 
-    1.2.2. Message
+    1.2.2. STATISTICS
+
+       STATISTICS <username>
+
+       ->
+
+       STATISTICS <username> "
+       TICTACTOE WINS <wins>
+       "
+
+       Lists the statistics for the specified user.
+
+       Possible errors: NO_NAME_SET, NO_USER
+
+    1.2.3. Message
 
        MESSAGE <text>
 
@@ -75,17 +89,23 @@ Document Conventions
        single token. Use a quoted-string to include spaces in the
        message text.
 
-       Possible errors: NONAMESET
+       Possible errors: NO_NAME_SET
 
-    1.2.3. Help
+    1.2.4. Help
 
        HELP { <command> }
 
+       ->
+
+       HELP { <command> } "
+       <overview or detailed help>
+       "
+
        Displays help.  If <command> is provided, displays more
        detailed help on a specific command, otherwise displays an
        overview of all commands.
 
-    1.2.4. Quit
+    1.2.5. Quit
 
        QUIT
 
@@ -95,7 +115,7 @@ Document Conventions
 
        Disconnects the client from the server.
 
-    1.2.5. Version
+    1.2.6. Version
 
        VERSION <client-version-number>
 
@@ -119,7 +139,7 @@ Document Conventions
 
        INVITE
 
-       Possible errors: NOUSER, BUSY, NONAMESET
+       Possible errors: NO_USER, BUSY, NO_NAME_SET
 
     1.3.2. Accepting an invitation
 
@@ -129,7 +149,7 @@ Document Conventions
 
        ACCEPT
 
-       Possible errors: NONAMESET
+       Possible errors: NO_NAME_SET
 
 1.4. In-game commands
 
@@ -158,7 +178,7 @@ Document Conventions
         _|X|_
         X|O|O"
     
-       Possible errors: NOTINGAME, NONAMESET
+       Possible errors: NOT_IN_GAME, NO_NAME_SET
     
     1.4.2. Part
     
@@ -170,7 +190,7 @@ Document Conventions
     
        Departs the current game
 
-       Possible errors: NOTINGAME, NONAMESET
+       Possible errors: NOT_IN_GAME, NO_NAME_SET
     
     1.4.3. Making a move
 
@@ -187,7 +207,7 @@ Document Conventions
        3|4|5
        6|7|8
     
-       Possible errors: NOTINGAME, NOTYOURMOVE, NOTGRID, NONAMESET
+       Possible errors: NOT_IN_GAME, NOT_YOUR_MOVE, NOT_GRID, NO_NAME_SET
     
 2. Asynchronous notification.  
 
@@ -226,6 +246,8 @@ Document Conventions
 
        NOTICE MESSAGE <username> <text>
 
+       where <text> is a quoted-string. Quotes escaped with '\"'
+
 2.2. Game notices
 
     These notices are sent to all players and watchers in
@@ -243,7 +265,7 @@ Document Conventions
 
            NOTICE GAMEOVER <outcome> <username>
 
-           <outcame> is either WON in which case <username> indicates
+           <outcome> is either WON in which case <username> indicates
            the winner or CATSGAME in which case <username> is "".
 
     2.2.2. Move notices
@@ -262,7 +284,7 @@ Document Conventions
 
     3.1.1. No name set
     
-       ERROR NONAMESET
+       ERROR NO_NAME_SET
     
        'helo' must be sent before any command other than 'help',
        'version', 'quit'.
@@ -271,7 +293,7 @@ Document Conventions
     
     3.1.2. Invalid name
     
-       ERROR INVALIDNAME
+       ERROR INVALID_NAME
     
        All names must be of non-zero length and must be unique.
 
@@ -295,13 +317,13 @@ Document Conventions
     
     3.2.3. Not number
     
-       ERROR NOTNUMBER
+       ERROR NOT_NUMBER
     
        A non-numeric value was supplied where a number was required
        
     3.2.4. Not a grid number
     
-       ERROR NOTGRID
+       ERROR NOT_GRID
     
        The number specified in the command was not a valid grid number
     
@@ -315,7 +337,7 @@ Document Conventions
     
     3.4.1. No such game
        
-       ERROR NOGAME
+       ERROR NO_GAME
        
        A game name was provided that does not exist.
        
@@ -323,7 +345,7 @@ Document Conventions
 
     3.5.1. No such user
     
-       ERROR NOUSER
+       ERROR NO_USER
 
        A user name was provided that does not exist.
 
@@ -333,7 +355,7 @@ Document Conventions
     
        3.6.1.1. Not in game
     
-           ERROR NOTINGAME
+           ERROR NOT_IN_GAME
     
            A game playing command was made, but the user is not a
            particpant of any game.
@@ -342,7 +364,7 @@ Document Conventions
 
        3.6.1.2. Not playing
 
-           ERROR NOTPLAYING
+           ERROR NOT_PLAYING
 
            A command was executed by a watching user that is
            permitted only to players
@@ -351,7 +373,7 @@ Document Conventions
     
        3.6.2.1. Not your turn
 
-           ERROR NOTYOURTURN
+           ERROR NOT_YOUR_TURN
     
            A move was submitted during the other player's turn