From e439488acb7e8a71703f8cb3d4e70340652359d3 Mon Sep 17 00:00:00 2001 From: pb Date: Tue, 16 Mar 2010 20:54:13 +0000 Subject: git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@33 9f8f72e9-4bf4-416e-b76e-7d4203597157 --- Env.hs | 2 +- IRC.hs | 9 +++++---- Main.hs | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Env.hs b/Env.hs index 29963b3..30c005d 100644 --- a/Env.hs +++ b/Env.hs @@ -4,7 +4,7 @@ import Conf import State type Dispatch = String -> (String -> IO ()) -> Env -> IO () -data Env = Env State Conf Dispatch +data Env = Env State Conf Dispatch | EnvWoDispatch State Conf envGetInt :: String -> Env -> Int envGetInt key (Env _ conf _) = getUnwrappedInt key conf diff --git a/IRC.hs b/IRC.hs index 4a402c7..fc32d9b 100644 --- a/IRC.hs +++ b/IRC.hs @@ -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 diff --git a/Main.hs b/Main.hs index d515037..58a7ca4 100644 --- a/Main.hs +++ b/Main.hs @@ -22,7 +22,7 @@ r :: IO () r = main dispatch :: Dispatch -dispatch cmd sendMessage env@(Env state conf _) = +dispatch cmd sendMessage env@(EnvWoDispatch state conf) = let commands = [ Cmd "!h" "Prints help" printHelp, Cmd "!i" "Prints infos" printInfos, -- cgit v1.2.3