Difference between revisions of "Minecraft Pi Protocol"
m (Added possible deprecation notice.) |
(No difference)
|
Latest revision as of 20:46, 15 April 2015
Warning!
|
This page documents the Minecraft Pi API Protocol. The multiplayer protocol for Minecraft Pi is based on Minecraft PE's protocol.
Parts of this documentation is based on the official Mojang documentation, which were released for free use. Other parts are based on the Desktop Protocol specification.
The Minecraft Pi client listens to TCP port 4711 by default.
Definition | |
Player | When used in the singular, Player always refers to the client connected to the server |
Entity | Entity refers to any item, player, or mob in the world. This definition is subject to change as Mojang extends the protocol |
EID | An EID - or Entity ID - is a unique 4-byte integer used to identify a specific entity |
XYZ | In this document, the axis names are the same as those used by the official protocol documentation. Y points upwards, X points South, and Z points West. |
A command in the Pi protocol consists of an ASCII line terminated with an LF character. The general format of a command is of the form
package.command(param1,param2,param3)
Commands are sent by the client to the server. No authentication is required before sending commands.
Some commands may have return values: they are also in ASCII, and terminate with an LF character.
Locations in the Minecraft Pi protocol are relative to the spawn point of the world.
The official Mojang documentation specifies conventions for specifying parameters:
- x,y,z -- vector of three integers.
- xf,yf,zf -- vector of three floats.
- blockTypeId -- integer 0-108. 0 is air.
- blockData -- integer 0-15. Block data beyond the type, for example wool color.
Contents
- 1 Packages
- 1.1 world package
- 1.1.1 world.getBlock(x,y,z)
- 1.1.2 world.getBlockWithData(x,y,z)
- 1.1.3 world.setBlock(x,y,z,blockTypeId,[blockData])
- 1.1.4 world.setBlocks(x1,y1,z1,x2,y2,z2,blockTypeId,[blockData])
- 1.1.5 world.getHeight(x,z)
- 1.1.6 world.getPlayerIds()
- 1.1.7 world.setting(key,value)
- 1.1.8 world.checkpoint.save()
- 1.1.9 world.checkpoint.restore()
- 1.2 chat package
- 1.3 player package
- 1.4 entity package
- 1.5 camera package
- 1.6 events package
- 1.1 world package
Packages
world package
Contains methods that modify the world and terrain.
world.getBlock(x,y,z)
Gets the ID of a block in the world.
x, y, z: coordinates of the block relative to spawn
Returns: an integer of type blockTypeId, corresponding to a block type in Minecraft Pi.
world.getBlockWithData(x,y,z)
Gets the ID and Optional Parameter for a block in the world.
x, y, z: coordinates of the block relative to spawn
Returns: a block object corresponding toa block type in Minecraft Pi.
world.setBlock(x,y,z,blockTypeId,[blockData])
Sets the ID of a block in the world. The data parameter is optional.
x, y, z: coordinates of the block relative to spawn
blockTypeId: ID of the block
blockData: metadata of the block
world.setBlocks(x1,y1,z1,x2,y2,z2,blockTypeId,[blockData])
Sets all blocks in a cuboid defined by two points to a speficied type. The blockData parameter is optional.
x1, y1, z1: coordinates of the first selection point relative to spawn
x2, y2, z2: coordinates of the second selection point relative to spawn
blockTypeId: ID of the block
blockData: metadata of the block
world.getHeight(x,z)
Returns the Y coordinate of the last block that isn't solid from top-down.
x, z: coordinates of a column
Returns: an integer containing the Y coordinate
world.getPlayerIds()
Gets the Entity IDs of all connected players.
Returns: A list of Entity IDs, seperated by the character |
world.setting(key,value)
Sets a world parameter (similar to GameRules on the Desktop Edition)
key: the name of the setting:
- world_immutable
- nametags_visible
value: a Boolean value: either 0 or 1
world.checkpoint.save()
Save a checkpoint that can be used for restoring the world.
world.checkpoint.restore()
Restores the world to the last checkpoint.
chat package
Contains methods to post messages to the chat display.
chat.post(message)
message: the message to be sent.
player package
Contains methods that modify the host player.
player.getTile()
Gets the position of the host player, to the nearest block.
Returns: The x, y, and z coordinates of the player, separated by commas.
player.setTile(x,y,z)
Sets the position of the host player to the specified block coordinates.
x, y, z: the coordinates that the player is to be moved to.
player.getPos()
Returns the precise position of the host player.
Returns: the x, y, and z coordinates of the player as floats, separated by commas.
player.setPos(xf,yf,zf)
Sets the position of the host player to the specified coordinates.
xf, yf, zf: the coordinates that the player is to be moved to. Decimals are allowed.
player.setting(key,value)
Sets a property on the host player.
key: the property to be set.
- autojump: enable or disable autojump.
value: a Boolean value: either 1 for on or 0 for off.