summaryrefslogtreecommitdiff
path: root/Hsbot/IRCPlugin.hs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Hsbot/IRCPlugin.hs13
1 files changed, 12 insertions, 1 deletions
diff --git a/Hsbot/IRCPlugin.hs b/Hsbot/IRCPlugin.hs
index c32d24c..4707ce1 100644
--- a/Hsbot/IRCPlugin.hs
+++ b/Hsbot/IRCPlugin.hs
@@ -1,5 +1,6 @@
module Hsbot.IRCPlugin
- ( readMsg
+ ( answerMsg
+ , readMsg
, sendCommand
, sendCommandWithRequest
, sendRegisterCommand
@@ -9,6 +10,7 @@ module Hsbot.IRCPlugin
import Control.Concurrent.Chan
import Control.Monad.State
+import Data.Maybe(fromMaybe)
import Hsbot.Types
@@ -24,6 +26,15 @@ writeMsg botMsg = do
serverChan <- gets instanceServerChan
liftIO $ writeChan serverChan $ botMsg
+answerMsg :: Maybe IrcMsg -> String -> IrcPlugin ()
+answerMsg request msg = do
+ let incoming = fromMaybe (IrcMsg Nothing "ARGH" []) request
+ chanOrigin = head $ parameters (incoming)
+ sender = takeWhile (/= '!') $ fromMaybe "ARGH" (prefix incoming)
+ case head chanOrigin of
+ '#' -> writeMsg $ OutputMsg $ IrcMsg Nothing "PRIVMSG" [chanOrigin, msg]
+ _ -> writeMsg $ OutputMsg $ IrcMsg Nothing "PRIVMSG" [sender, msg]
+
-- | Commands management
sendCommand :: String -> String -> String -> IrcPlugin ()
sendCommand cmd to params = sendCommandWithRequest cmd to params Nothing