rattletrap-2.0.0: source/library/Rattletrap/Message.hs
module Rattletrap.Message where
import Rattletrap.Primitive
import qualified Data.Binary as Binary
data Message = Message
{ messageFrame :: Word32
-- ^ Which frame this message belongs to, starting from 0.
, messageName :: Text
-- ^ The primary player's name.
, messageValue :: Text
-- ^ The content of the message.
} deriving (Eq, Ord, Show)
getMessage :: Binary.Get Message
getMessage = do
frame <- getWord32
name <- getText
value <- getText
pure (Message frame name value)
putMessage :: Message -> Binary.Put
putMessage message = do
putWord32 (messageFrame message)
putText (messageName message)
putText (messageValue message)