diff options
author | Julien Dessaux | 2010-05-25 21:54:33 +0200 |
---|---|---|
committer | Julien Dessaux | 2010-05-25 22:07:58 +0200 |
commit | 451564ef5b13302912080d58a9aee6ff0968f70e (patch) | |
tree | 482d14d297d90c2696f98af39cc0cf1712d90bdd /Hsbot/Irc/Command.hs | |
parent | Implemented update message handling in the bot's core. (diff) | |
download | hsbot-451564ef5b13302912080d58a9aee6ff0968f70e.tar.gz hsbot-451564ef5b13302912080d58a9aee6ff0968f70e.tar.bz2 hsbot-451564ef5b13302912080d58a9aee6ff0968f70e.zip |
Cleaned that ugly update message handling and added a reboot command to the ircbot.
Diffstat (limited to '')
-rw-r--r-- | Hsbot/Irc/Command.hs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Hsbot/Irc/Command.hs b/Hsbot/Irc/Command.hs index ef1ef27..242e12d 100644 --- a/Hsbot/Irc/Command.hs +++ b/Hsbot/Irc/Command.hs @@ -34,7 +34,7 @@ unregisterCommand cmd pluginName' = do put $ ircBot { ircBotCommands = newCmds } -- | Processes an internal command -processInternalCommand :: IrcBotMsg -> IrcBot () +processInternalCommand :: IrcBotMsg -> IrcBot (Bool) processInternalCommand (IntIrcCmd ircCmd) | ircCmdTo ircCmd == "CORE" = processCoreCommand ircCmd | otherwise = do @@ -42,21 +42,23 @@ processInternalCommand (IntIrcCmd ircCmd) case M.lookup (ircCmdTo ircCmd) plugins of Just (plugin, _) -> sendToPlugin (IntIrcCmd ircCmd) plugin Nothing -> return () -processInternalCommand _ = return () + return False +processInternalCommand _ = return (False) -- | Processes a core command -processCoreCommand :: IrcCmd -> IrcBot () +processCoreCommand :: IrcCmd -> IrcBot (Bool) processCoreCommand ircCmd = do let command' = ircCmdCmd ircCmd originalRequest = ircCmdBotMsg ircCmd case command' of "LIST" -> listPlugins originalRequest (ircCmdFrom ircCmd) "LOAD" -> loadIrcPlugin $ ircCmdMsg ircCmd - "UNLOAD" -> unloadIrcPlugin $ ircCmdMsg ircCmd - "UPDATE" -> processUpdateCommand ircCmd "REGISTER" -> registerCommand (ircCmdMsg ircCmd) (ircCmdFrom ircCmd) + "UNLOAD" -> unloadIrcPlugin $ ircCmdMsg ircCmd "UNREGISTER" -> unregisterCommand (ircCmdMsg ircCmd) (ircCmdFrom ircCmd) + "UPDATE" -> processUpdateCommand ircCmd _ -> return () + return $ command' == "REBOOT" -- | Process an update command processUpdateCommand :: IrcCmd -> IrcBot () |