summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-03-28 11:31:45 +0000
committerpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-03-28 11:31:45 +0000
commit3d7e9915c4fab6f91f11b3de66ac8bbcb8b3c0c7 (patch)
tree7b9e58acf61adedef9c9f50600bde91a75e10075
parent80ff91aa5d6cda6adc1c97dc39b950dd7daed9d5 (diff)
git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@51 9f8f72e9-4bf4-416e-b76e-7d4203597157
-rw-r--r--HsBot/Base.hs2
-rw-r--r--HsBot/Base/Env.hs3
-rw-r--r--HsBot/Logics.hs13
-rw-r--r--HsBot/Logics/Dummy.hs10
4 files changed, 24 insertions, 4 deletions
diff --git a/HsBot/Base.hs b/HsBot/Base.hs
index a349fad..f2b1139 100644
--- a/HsBot/Base.hs
+++ b/HsBot/Base.hs
@@ -27,7 +27,7 @@ dispatch msg sendMessage env@(Env state conf) = dispatch' msg
cmdAction state
return (env)
Nothing -> return (env)
- dispatch' _ = logicsRun msg env
+ dispatch' _ = logicsRun msg sendMessage env
commands = [
Cmd "!h" "Prints help" printHelp,
Cmd "!i" "Prints infos" printInfos,
diff --git a/HsBot/Base/Env.hs b/HsBot/Base/Env.hs
index 58b2347..36fafd5 100644
--- a/HsBot/Base/Env.hs
+++ b/HsBot/Base/Env.hs
@@ -3,7 +3,8 @@ module HsBot.Base.Env where
import HsBot.Base.Conf
import HsBot.Base.State
-type Dispatch = String -> (String -> IO ()) -> Env -> IO Env
+type SendMessage = String -> IO ()
+type Dispatch = String -> SendMessage -> Env -> IO Env
data Env = DispatchEnv State Conf Dispatch | Env State Conf
castEnv :: Env -> Env
diff --git a/HsBot/Logics.hs b/HsBot/Logics.hs
index d27c96f..9b98300 100644
--- a/HsBot/Logics.hs
+++ b/HsBot/Logics.hs
@@ -1,6 +1,15 @@
module HsBot.Logics (logicsRun) where
import HsBot.Base.Env
+import HsBot.Logics.Dummy
+
+registeredLogics = [dummyRun]
+
+logicsRun :: String -> SendMessage -> Env -> IO Env
+logicsRun = logicsRun' registeredLogics
+ where
+ logicsRun' [] sendMessage str env = return (env)
+ logicsRun' (logic:ls) sendMessage str env = do
+ env' <- logic sendMessage str env
+ logicsRun' ls sendMessage str env'
-logicsRun :: String -> Env -> IO Env
-logicsRun str env = return (env)
diff --git a/HsBot/Logics/Dummy.hs b/HsBot/Logics/Dummy.hs
new file mode 100644
index 0000000..a873f8a
--- /dev/null
+++ b/HsBot/Logics/Dummy.hs
@@ -0,0 +1,10 @@
+module HsBot.Logics.Dummy (dummyRun) where
+
+import HsBot.Base.Env
+
+dummyRun :: String -> SendMessage -> Env -> IO Env
+dummyRun str sendMessage env = do
+ --sendMessage "Hello World"
+ putStrLn str
+ return (env)
+