blob: 2fa337c95976393c1a13d1ac587c91107b2457f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
module HsBot.Plugins (pluginsTrigger) where
import HsBot.Base.Env
import HsBot.Base.State
import HsBot.Plugins.Base
import HsBot.Plugins.MessageCounter
import HsBot.Plugins.PrintMessages
import HsBot.Plugins.StoreMessages
import HsBot.Plugins.Dummy
registeredPlugins = [
makeMessageCounter,
makePrintMessages,
makeStoreMessages,
makeDummy
]
pluginsTrigger :: String -> SendMessage -> Env -> IO Env
pluginsTrigger str sendMessage env@(Env state _)
| isReady state = pluginsAll registeredPlugins env
| otherwise = do { putStrLn str; return (env) }
where
pluginsAll [] env = return (env)
pluginsAll (plugin:restPlugins) env = do
env' <- (cbFunction plugin) str sendMessage env
pluginsAll restPlugins env'
|