From 46d9dd301dde46b1f0c4d8fe2aea58312cd9caa5 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Thu, 4 Feb 2010 20:41:22 +0100 Subject: Implemented unregisterCommand. --- Hsbot/Command.hs | 11 +++++++++++ TODO | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Hsbot/Command.hs b/Hsbot/Command.hs index 20e5525..92f304c 100644 --- a/Hsbot/Command.hs +++ b/Hsbot/Command.hs @@ -1,9 +1,11 @@ module Hsbot.Command ( dispatchCommand , registerCommand + , unregisterCommand ) where import Control.Monad.State +import qualified Data.List as L import qualified Data.Map as M import Data.Maybe @@ -39,14 +41,23 @@ registerCommand cmd pluginName' = do bot <- get cmds <- gets botCommands exists <- pluginExists pluginName' + -- TODO : improve this crap and remove at least one if! if exists then let cmds' = if cmd `M.member` cmds then cmds else M.singleton cmd [] + -- TODO : remove duplicates ? newCmds = M.adjust (++ [pluginName']) cmd cmds' in put $ bot { botCommands = newCmds } else traceM $ inColor ("Couldn't register command \"" ++ cmd ++ "\" for plugin \"" ++ pluginName' ++ "\" : plugin does not exists") [31] +unregisterCommand :: String -> String -> IrcBot () +unregisterCommand cmd pluginName' = do + bot <- get + cmds <- gets botCommands + let newCmds = M.adjust (L.delete pluginName') cmd cmds + put $ bot { botCommands = newCmds } + diff --git a/TODO b/TODO index 6b06f7a..e4f6898 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,7 @@ -* implement InternalCommands "register command" -* unregister command, add it to internal commands +* implement InternalCommands "register command" and "unregister command" * kill threads * unload plugin +* part chan * restore \r in IRCParser -- cgit v1.2.3