diff options
Diffstat (limited to 'HsBot/Logics.hs')
| -rw-r--r-- | HsBot/Logics.hs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/HsBot/Logics.hs b/HsBot/Logics.hs index 9b98300..e66a238 100644 --- a/HsBot/Logics.hs +++ b/HsBot/Logics.hs @@ -1,15 +1,18 @@ -module HsBot.Logics (logicsRun) where +module HsBot.Callbacks (logicsRun) where import HsBot.Base.Env -import HsBot.Logics.Dummy +import HsBot.Base.State +import HsBot.Callbacks.Dummy -registeredLogics = [dummyRun] +registeredCallbacks = [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 str sendMessage env@(Env state _) + | isReady state = logicsRun' registeredCallbacks env + | otherwise = do { putStrLn str; return (env) } + where + logicsRun' [] env = return (env) + logicsRun' (logic:rest) env = do + env' <- logic str sendMessage env + logicsRun' rest env' |
