]> Pileus Git - ~andy/rhawk/blobdiff - test.awk
Save game after flipping the table
[~andy/rhawk] / test.awk
index 821062678418c814c00c2ac4fdd461eb0b4311ab..7cdc96b5bc596f26bde40e077facf27e8cf578f8 100644 (file)
--- a/test.awk
+++ b/test.awk
@@ -1,7 +1,12 @@
 # Functions
 function say(who, msg)
 {
-       print ":" who "! PRIVMSG #rhtest :" msg
+       print ":" who"!u@h PRIVMSG #rhtest :" msg
+}
+
+function auth(user, nick)
+{
+       print ":" nick "!u@c ACCOUNT " user
 }
 
 function error(msg)
@@ -14,20 +19,25 @@ function debug(msg)
        print msg > "/dev/stderr"
 }
 
-function command(who, cmd)
+function command(who, cmd, i)
 {
        arg=cmd
-       gsub(/\<[nbp]|[+-]/, "", arg)
+       gsub(/\<[nbpYNS]|[+-]/, "", arg)
        if      (cmd ~ /^\./)     0 # nop
        else if (cmd ~ /^n/)      say(who, ".newgame " arg)
        else if (cmd ~ /^e/)      say(who, ".endgame ")
        else if (cmd ~ /^j/)      say(who, ".join")
+       else if (cmd ~ /^Y/)      say(who, ".allow " arg)
+       else if (cmd ~ /^N/)      say(who, ".deny " arg)
+       else if (cmd ~ /^S/)      say(who, ".show ")
+       else if (cmd ~ /^o/)      say("andy753421", ".order " who " " i)
        else if (cmd ~ /^d/)      say("andy753421", ".deal " who " " hand[who])
        else if (cmd ~ /^l/)      say(who, ".look")
        else if (cmd ~ /^b/)      say(who, ".bid "  arg)
        else if (cmd ~ /^s/)      say(who, ".score")
        else if (cmd ~ /^B/)      say(who, ".bids")
        else if (cmd ~ /^t/)      say(who, ".tricks")
+       else if (cmd ~ /^T/)      say(who, ".turn")
        else if (cmd ~ /^p/)      say(who, ".pass " arg)
        else if (arg ~ /[shdc]$/) say(who, ".play " arg)
        else                      error("unknown cmd '" cmd "'")
@@ -41,28 +51,39 @@ function reset()
 }
 
 # Rules
-BEGIN { reset() }
+BEGIN { 
+       auth("andy753421", "andy753421")
+       reset()
+}
 
 //  { gsub(/#.*/, "") }
 
 /^[^ ]+:/ {
-       gsub(/:/, "")
+       gsub(/:/, " ")
+       split($1, parts, "/");
        pi = length(players)
        if (NF-2 > nturns)
                nturns = NF-1
        for (i=2; i<=NF; i++)
                turns[pi][i-2] = $i
-       players[pi] = $1
-       hand[$1]    = $0
-       gsub(/^\w*|[nbp-]\w+|\<[nejlbsBtpd]\>|[.+]/, "", hand[$1])
-       gsub(/^ */, "", hand[$1])
-       print $1 ": " hand[$1] > "/dev/stderr"
-       say($1, "unicode :(")
+       who         = parts[1]
+       players[pi] = parts[1]
+       auths[pi]   = parts[2]
+       hand[who]   = $0
+       gsub(/^\w*(\/\w*)?|[nbpYN-]\w+|\<[nejadowlbsBtpdS]\>|[.+]/, "", hand[who])
+       gsub(/^ *| *$/, "", hand[who])
+       gsub(/  */, " ", hand[who])
+       print who ": " hand[who] > "/dev/stderr"
+       say(who, "unicode :(")
+       say(who, "colors :(")
 }
 
 /^\s*$/ {
+       for (pi=0; pi<length(players); pi++)
+               if (auths[pi])
+                       auth(auths[pi], players[pi])
        for (ti=0; ti<nturns; ti++)
                for (pi=0; pi<length(players); pi++)
-                       command(players[pi], turns[pi][ti])
+                       command(players[pi], turns[pi][ti], pi)
        reset()
 }