summaryrefslogtreecommitdiff
path: root/HsBot/Plugins.hs
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'