diff options
Diffstat (limited to 'HsBot/Callbacks.hs')
| -rw-r--r-- | HsBot/Callbacks.hs | 20 |
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' + |
