Client Message SEnding
authorJoachim Breitner <mail@joachim-breitner.de>
Fri, 4 Jul 2008 22:32:39 +0000 (22:32 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Fri, 4 Jul 2008 22:32:39 +0000 (22:32 +0000)
Partty.hs

index 6e0a326..ab68a75 100644 (file)
--- a/Partty.hs
+++ b/Partty.hs
@@ -149,7 +149,7 @@ runner h dcb ncb = fix $ \loop ps d -> do
        (e,ps') <- getNextUserMessage h ps
        d' <- case e of
                Left dm  -> do (client_messages, d') <- callDayCallback dcb ps' d dm
-                              undefined -- send_client_messages client_messages
+                              mapM_ (sendClientMessage h) client_messages
                               return d'
                Right nm -> callNightCallback ncb ps' d nm
        loop ps' d'
@@ -167,6 +167,15 @@ getNextUserMessage h ps = do
 parseIncomingMessage :: String -> IncomingMessage
 parseIncomingMessage = undefined
 
+sendClientMessage :: Handle -> ClientMessage -> IO ()
+sendClientMessage h msg = hPutStrLn h (toString msg)
+  where toString (Goto place)                    = unwords ["goto", show place]
+        toString (Tell player (PartyAt place))   = unwords ["party",    show player, show place]
+        toString (Tell player (NoPartyAt place)) = unwords ["no_party", show player, show place]
+        toString (Tell player (Liar other))      = unwords ["liar",     show player, show other]
+        toString (Tell player (NoLiar other))    = unwords ["recommand",show player, show other]
+
+
 -- Convenience functions for accessing the state
 
 whoIsHere :: (MonadReader ParttyState m) => m [Player]