23 lines
549 B
Haskell
23 lines
549 B
Haskell
module Hsbot.Plugin
|
|
( Plugin
|
|
, PluginState (..)
|
|
) where
|
|
|
|
import Control.Concurrent
|
|
import Control.Concurrent.Chan ()
|
|
import Control.Monad.State
|
|
import qualified Data.Map as M
|
|
import IO (Handle)
|
|
|
|
import Hsbot.Message
|
|
|
|
-- | The Plugin monad
|
|
type Plugin = StateT PluginState IO
|
|
|
|
-- | A plugin state
|
|
data PluginState = PluginState
|
|
{ pluginName :: String -- The plugin's name
|
|
, pluginChan :: Chan BotMsg -- The plugin chan
|
|
, pluginHandles :: M.Map String Handle -- the plugins's handles
|
|
}
|
|
|