summaryrefslogtreecommitdiff
path: root/HsBot/Callbacks.hs
diff options
context:
space:
mode:
authorpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-03-28 13:32:02 +0000
committerpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-03-28 13:32:02 +0000
commiteb0ca70a636183fea73d884e20a48ac6120066bc (patch)
tree21ba24da99c38fd58a2758876a9bb39af94dc19c /HsBot/Callbacks.hs
parent4f80cd186f21d9bb6fb3c0ae31e7626c21f531c6 (diff)
git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@54 9f8f72e9-4bf4-416e-b76e-7d4203597157
Diffstat (limited to 'HsBot/Callbacks.hs')
-rw-r--r--HsBot/Callbacks.hs20
1 files changed, 20 insertions, 0 deletions
diff --git a/HsBot/Callbacks.hs b/HsBot/Callbacks.hs
new file mode 100644
index 0000000..d15d89b
--- /dev/null
+++ b/HsBot/Callbacks.hs
@@ -0,0 +1,20 @@
+module HsBot.Callbacks (callbacksRun) where
+
+import HsBot.Base.Env
+import HsBot.Base.State
+
+import HsBot.Callbacks.Dummy
+import HsBot.Callbacks.MessageCounter
+
+registeredCallbacks = [dummy, messageCounter]
+
+callbacksRun :: String -> SendMessage -> Env -> IO Env
+callbacksRun str sendMessage env@(Env state _)
+ | isReady state = callbackAll registeredCallbacks env
+ | otherwise = do { putStrLn str; return (env) }
+ where
+ callbackAll [] env = return (env)
+ callbackAll (callback:restCallbacks) env = do
+ env' <- callback str sendMessage env
+ callbackAll restCallbacks env'
+