mcpi-0.0.0.2: src/Data/MineCraft/Pi/Other.hs
{-# LANGUAGE RecordWildCards #-}
--------------------------------------------------------------------------------
-- |
-- Module : Other
-- License : Public Domain
--
-- Maintainer : Douglas Burke
-- Stability : experimental
-- Portability : RecordWildCards
--
-- A mixture of routines.
--
--------------------------------------------------------------------------------
module Data.MineCraft.Pi.Other
(
-- * Queries
getHeight
-- * Commands
, chatPost
) where
import Control.Monad (liftM)
import Data.MineCraft.Pi.Types
import Network.MineCraft.Pi.Client
import Network.MineCraft.Pi.Client.Internal
-- | Send a message to MineCraft for it to display.
--
-- There is no attempt to remove or replace invalid characters. The
-- MineCraft server API uses ASCII and it is likely that new lines
-- are not allowed in the message, although this is not specified.
--
chatPost :: String -> MCPI ()
chatPost msg = command "chat.post" [msg]
-- | Return the height of the world at this position. The spec says
-- that the input uses the @(x,z)@ coordinates, but I am assuming this
-- is a typo and am using @(x,y)@ instead.
--
-- It would be easy to test.
getHeight :: IPos -> MCPI Int
getHeight Pos {..} = fromMC `liftM` query "world.getHeight" [toMC _x, toMC _y]