diff options
| author | pb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157> | 2010-03-16 20:54:13 +0000 |
|---|---|---|
| committer | pb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157> | 2010-03-16 20:54:13 +0000 |
| commit | e439488acb7e8a71703f8cb3d4e70340652359d3 (patch) | |
| tree | 9921fb8a419f47b269f6ef1c1a56a157c939639a /IRC.hs | |
| parent | d3dc3957e68ea83e348897b3b9d6fe3e280b5d11 (diff) | |
git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@33 9f8f72e9-4bf4-416e-b76e-7d4203597157
Diffstat (limited to 'IRC.hs')
| -rw-r--r-- | IRC.hs | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -26,7 +26,7 @@ ircWrite h s t = do hPrintf h "%s %s\r\n" s t ircPrivMsg :: Handle -> IrcMessage -> Env -> String -> IO () -ircPrivMsg h msg (Env state conf _) s = do +ircPrivMsg h msg (EnvWoDispatch state conf) s = do if isMultiline s then ircPrivMsg' (lines s) else ircPrivMsg' [s] @@ -85,13 +85,14 @@ ircEvalLoop h env = forever $ do pong x = ircWrite h "PONG" (':' : drop 6 x) ircEval :: Handle -> IrcMessage -> Env -> IO () -ircEval h msg env@(Env state _ dispatch) = +ircEval h msg env@(Env state conf dispatch) = case isCommand (clean msg) of - Just cmd -> dispatch cmd sendReplyMsg env + Just cmd -> dispatch cmd sendReplyMsg envWoDispatch Nothing -> evalServerMessage (clean msg) where + envWoDispatch = (EnvWoDispatch state conf) isCommand ('!':xs) = Just xs isCommand _ = Nothing evalServerMessage "+x" = ircWrite h "JOIN" (currentChannel state) evalServerMessage _ = putStrLn $ show msg - sendReplyMsg = ircPrivMsg h msg env + sendReplyMsg = ircPrivMsg h msg envWoDispatch |
