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 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Hsbot/Command.hs') 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 } + -- cgit v1.2.3