aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/IRC.hs19
-rw-r--r--src/Plugin/Help.hs4
2 files changed, 12 insertions, 11 deletions
diff --git a/src/IRC.hs b/src/IRC.hs
index d086511..259772c 100644
--- a/src/IRC.hs
+++ b/src/IRC.hs
@@ -4,6 +4,7 @@ module IRC
( connectIRC
) where
+import Control.Monad (sequence_)
import Control.Monad.IO.Class (liftIO)
import qualified Data.ByteString as B
import qualified Data.Text as T
@@ -40,7 +41,7 @@ handlePrivmsg = IRC.EventHandler
response <- liftIO $ privmsgFromPlugin message
case response of
Nothing -> return ()
- Just r -> r
+ Just r -> sequence_ r
dispatchEvent (IRC.Event
_ (IRC.Channel chan nick) (IRC.Privmsg _ (Right msg))) = do
let message = Message
@@ -51,18 +52,18 @@ handlePrivmsg = IRC.EventHandler
response <- liftIO $ privmsgFromPlugin message
case response of
Nothing -> return ()
- Just r -> r
+ Just r -> sequence_ r
-privmsgFromPlugin :: Message -> IO (Maybe (IRC.StatefulIRC s ()))
+privmsgFromPlugin :: Message -> IO (Maybe [IRC.StatefulIRC s ()])
privmsgFromPlugin message = do
case matchPlugin message of
Nothing -> return Nothing
Just plugin -> do
response <- liftIO $ performPlugin plugin message
return $ case response of
- Left err -> Just $ IRC.send $ IRC.Privmsg
- (channel message)
- (Right err)
- Right r -> Just $ IRC.send $ IRC.Privmsg
- (channel message)
- (Right r)
+ Left err -> Just $
+ [IRC.send $ IRC.Privmsg (channel message) (Right err)]
+ Right r -> Just $
+ map (\r ->
+ IRC.send $ IRC.Privmsg (channel message) (Right r) )
+ (T.lines r)
diff --git a/src/Plugin/Help.hs b/src/Plugin/Help.hs
index 57e106d..470dd33 100644
--- a/src/Plugin/Help.hs
+++ b/src/Plugin/Help.hs
@@ -18,8 +18,8 @@ help = Plugin
helpAction :: PluginAction
helpAction _ = do
- return $ Right $ T.concat
- [command p `T.append` "\t" `T.append` description p | p <- plugins]
+ return $ Right $ T.intercalate "\n"
+ [command p `T.append` " – " `T.append` description p | p <- plugins]
plugins :: [Plugin]
plugins = PL.plugins ++ [help]