diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/IRC.hs | 13 | ||||
-rw-r--r-- | src/Plugin/Help.hs | 1 |
2 files changed, 12 insertions, 2 deletions
@@ -13,6 +13,7 @@ import qualified Network.IRC.Client as IRC import Message import Plugin (matchPlugin, performPlugin) +import Plugin.Base (queryOnly) connectIRC :: B.ByteString -> Int -> T.Text -> IO () connectIRC host port nick = do @@ -62,10 +63,14 @@ privmsgFromPlugin message = do response <- liftIO $ performPlugin plugin message return $ case response of Left err -> Just $ - [IRC.send $ IRC.Privmsg (channel message) (Right err)] + [IRC.send $ IRC.Privmsg + (toChannel plugin message) + (Right err)] Right r -> Just $ map (\r -> - IRC.send $ IRC.Privmsg (channel message) (Right r) ) + IRC.send $ IRC.Privmsg + (toChannel plugin message) + (Right r) ) (splitAtNewlines $ splitLongLines r) where -- IRC only permits 512 bytes per line. Use less to allow for protocol @@ -73,3 +78,7 @@ privmsgFromPlugin message = do splitLongLines txt = T.chunksOf 400 txt splitAtNewlines lst = foldr (\s acc -> (T.lines s) ++ acc) [] lst + + toChannel plugin message = case queryOnly plugin of + False -> channel message + True -> nick message diff --git a/src/Plugin/Help.hs b/src/Plugin/Help.hs index 258a80a..63143b1 100644 --- a/src/Plugin/Help.hs +++ b/src/Plugin/Help.hs @@ -14,6 +14,7 @@ help = defaultPlugin , perform = helpAction , command = "help" , description = "Show a list of available bot commands." + , queryOnly = True } helpAction :: PluginAction |