summaryrefslogtreecommitdiff
path: root/HsBot/Callbacks.hs
diff options
context:
space:
mode:
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'
+