diff options
author | Julien Dessaux | 2010-04-25 16:43:01 +0200 |
---|---|---|
committer | Julien Dessaux | 2010-04-25 16:43:01 +0200 |
commit | b6d119cf5b14fd7198552e939d8f49b15307e74e (patch) | |
tree | 1f2188a89b159d6800ff89ed3346437aebfb2782 /Plugins | |
parent | Added an utility function to correctly answer a message we receive (aka /msg) (diff) | |
download | hsbot-b6d119cf5b14fd7198552e939d8f49b15307e74e.tar.gz hsbot-b6d119cf5b14fd7198552e939d8f49b15307e74e.tar.bz2 hsbot-b6d119cf5b14fd7198552e939d8f49b15307e74e.zip |
Some refactoring + cosmetics.
Diffstat (limited to '')
-rw-r--r-- | Plugins/Core.hs | 9 | ||||
-rw-r--r-- | Plugins/Ping.hs | 2 | ||||
-rw-r--r-- | Plugins/Quote.hs | 4 |
3 files changed, 7 insertions, 8 deletions
diff --git a/Plugins/Core.hs b/Plugins/Core.hs index f6bd4ef..f81f4bf 100644 --- a/Plugins/Core.hs +++ b/Plugins/Core.hs @@ -5,7 +5,6 @@ module Plugins.Core import Control.Concurrent.Chan(Chan) import Control.Exception import Control.Monad.State -import Data.Maybe(fromMaybe) import Prelude hiding (catch) import Hsbot.IRCPlugin @@ -15,7 +14,7 @@ import Hsbot.Utils -- | The plugin's main entry point mainCore :: Chan BotMsg -> Chan BotMsg -> IO () mainCore serverChan chan = do - let plugin = PluginInstance "Core" serverChan chan + let plugin = PluginState "Core" serverChan chan evalStateT (mapM_ sendRegisterCommand ["list", "load", "reload", "unload"]) plugin plugin' <- (execStateT run plugin) `catch` (\(_ :: AsyncException) -> return plugin) evalStateT (mapM_ sendUnregisterCommand ["list", "load", "reload", "unload"]) plugin' @@ -36,15 +35,15 @@ run = forever $ do "load" -> loadPlugin $ tail stuff "reload" -> reloadPlugin $ tail stuff "unload" -> unloadPlugin $ tail stuff - _ -> lift $ trace $ show intCmd -- TODO : help message + _ -> lift . trace $ show intCmd -- TODO : help message "ANSWER" -> let stuff = intCmdMsg intCmd in answerMsg request ("Loaded plugins : " ++ stuff) - _ -> lift $ trace $ show intCmd + _ -> lift . trace $ show intCmd eval (InputMsg _) = return () eval _ = return () -- | The list command -listPlugins :: Maybe IrcMsg -> IrcPlugin () +listPlugins :: IrcMsg -> IrcPlugin () listPlugins request = do sendCommandWithRequest "LIST" "CORE" (unwords []) request diff --git a/Plugins/Ping.hs b/Plugins/Ping.hs index f478582..5da3f2f 100644 --- a/Plugins/Ping.hs +++ b/Plugins/Ping.hs @@ -13,7 +13,7 @@ import Hsbot.Types -- | The plugin's main entry point mainPing :: Chan BotMsg -> Chan BotMsg -> IO () mainPing serverChan chan = do - let plugin = PluginInstance "Ping" serverChan chan + let plugin = PluginState "Ping" serverChan chan _ <- (execStateT run plugin) `catch` (\(_ :: AsyncException) -> return plugin) return () diff --git a/Plugins/Quote.hs b/Plugins/Quote.hs index df16006..db473f9 100644 --- a/Plugins/Quote.hs +++ b/Plugins/Quote.hs @@ -29,9 +29,9 @@ type QuoteBot a = StateT QuoteDB IO a -- | The plugin's main entry point mainQuote :: Chan BotMsg -> Chan BotMsg -> IO () mainQuote serverChan chan = do - let plugin = PluginInstance "Quote" serverChan chan + let plugin = PluginState "Quote" serverChan chan evalStateT (mapM_ sendRegisterCommand ["quote"]) plugin - (execStateT run plugin) `catch` (\(ex :: AsyncException) -> return plugin) + _ <- (evalStateT (run quoteBot) plugin) `catch` (\(_ :: AsyncException) -> return quoteBot) evalStateT (mapM_ sendUnregisterCommand ["quote"]) plugin -- | The IrcPlugin monad main function |