8.5 KiB
8.5 KiB
Table of Contents
API
In addition to Minecraft: Pi Edition's builtin API, MCPI-Reborn also implements the RaspberryJuice API. This page documents the API.
The API operates over a TCP socket.
It is typically hosted on port 4711
, but this can be configured.
Compatibility Mode
By default, MCPI-Reborn runs in a "compatibility mode." This makes it completely compatible with RaspberryJuice, but limits functionality.
- Bold text only applies to the compatibility mode.
- Underlined text only applies when it is disabled.
- Text enclosed in curly braces (for instance
{text}
) is meant to be Base64-URL-encoded when the compatibility mode is disabled. - In the compatibility mode, entity type IDs are automatically translated to/from their MC Java equivalents.
Commands
- Commands are formatted like
<command>(<args>)
and may return a response. The responseFail
indicates an error. - All commands are responses end with a newline.
- Arguments surrounded by square brackets (for instance
[abc]
) are optional. - Numbers surrounded by colons (for instance
:a:
) are floating-point, all other numbers are integers. - Lists are delimited by pipes (
|
). For instance:A|B|C
. - Unless otherwise noted, all
player.*(...)
commands are equivalent toentity.*(local_player_id,...)
.
Vanilla
world.setBlock(x,y,z,block_id[,data])
- Description: Set the specified block at the given location.
world.getBlock(x,y,z)
- Description: Retrieve the block ID at the specified location.
- Output:
block_id
world.getBlockWithData(x,y,z)
- Description: Retrieve the block ID and data value at the specified location.
- Output:
block_id,data
world.setBlocks(x0,y0,z0,x1,y1,z1,block_id[,data])
- Description: Fill the given region with the specified block.
world.getHeight(x,z)
- Description: Get the last (from the top-down) non-solid block's Y-coordinate at the given location.
- Output:
max_y
world.getPlayerIds()
- Description: Retrieve the entity IDs of all players.
- Output: List of
entity_id
world.checkpoint.save()
- Description: Save checkpoint.
world.checkpoint.restore()
- Description: Restore saved checkpoint.
player
/world.setting(option,value)
- Description: Set the specified setting to the provided integer value (
0
is false, all other numbers are true). The possible settings are:autojump
nametags_visible
world_immutable
- Description: Set the specified setting to the provided integer value (
entity.setTile(entity_id,x,y,z)
- Description: Move the specified entity to the given position.
entity.setPos(entity_id,:x:,:y:,:z:)
- Description: See above.
entity.getTile(entity_id)
- Description: Retrieve the given entity's position.
- Output:
x,y,z
entity.getPos(entity_id)
- Description: See above.
- Output:
:x:,:y:,:z:
chat.post(message)
- Description: Post the specified message to chat.
camera.mode.setFixed()
- Description: Set the camera to fixed-position mode.
camera.mode.setNormal([entity_id])
- Description: Set the camera to normal mode. The camera will be the specified entity (or the local player if none is provided).
camera.mode.setFollow([entity_id])
- Description: Set the camera to follow mode. The camera will follow the specified entity (or the local player if none is provided).
camera.setPos(:x:,:y:,:z:)
- Description: Move the camera to the given position. The XZ-coordinates are automatically offset by
0.5
.
- Description: Move the camera to the given position. The XZ-coordinates are automatically offset by
events.clear()
- Description: Clear all queued events.
- Note: On RaspberryJuice, this does not clear projectile events. This behavior is maintained only in compatibility mode.
events.block.hits()
- Description: Retrieve all queued block hit events.
- Output: List of
x,y,z,face,entity_id
RaspberryJuice
world.getBlocks(x0,y0,z0,x1,y1,z1)
- Description: Retrieve the blocks in the specified region.
- Output: List of
block_id,data
- In compatibility mode, this list is delimited with commas (
,
).
- In compatibility mode, this list is delimited with commas (
world.getPlayerId({username})
- Description: Retrieve the entity ID of the specified player.
- Output:
entity_id
world.getEntities(entity_type_id)
entity.getEntities(entity_id,distance,entity_type_id)
world.removeEntity(entity_id)
- Description: Remove the specified entity1.
- Output:
number_of_entities_removed
world.removeEntities(entity_type_id)
entity.removeEntities(entity_id,distance,entity_type_id)
world.spawnEntity(:x:,:y:,:z:,entity_type_id)
- Description: Spawn the specified entity at the given position.
- Output:
entity_id
world.getEntityTypes()
- Description: Retrieve all spawnable entity types.
- Output: List of
entity_type_id,{entity_type_name}
world.setSign(x,y,z,id,data[,{line_1}][,{line_2}][,{line_3}][,{line_4}])
- Description: Set the specified block at the given location. If the block is a sign, then also set its contents.
entity.getName(entity_id)
- Description: Retrieve the name of the specified entity. For players, this will be their username.
- Output:
{entity_name}
entity.setDirection(entity_id,:x:,:y:,:z:)
- Description: Set the specified entity's rotation using a unit vector.
entity.getDirection(entity_id)
- Description: Retrieve the specified entity's rotation as a unit vector.
- Output:
:x:,:y:,:z:
entity.setRotation(entity_id,:yaw:)
- Description: Set the specified entity's yaw.
entity.getRotation(entity_id)
- Description: Retrieve the specified entity's yaw.
- Output:
:yaw:
entity.setPitch(entity_id,:pitch:)
- Description: Set the specified entity's pitch.
entity.getPitch(entity_id)
- Description: Retrieve the specified entity's pitch.
- Output:
:pitch:
entity.setAbsPos(entity_id,:x:,:y:,:z:)
3- Description: Move the specified entity to the given absolute4 position.
entity.getAbsPos(entity_id)
3- Description: Retrieve the given entity's absolute4 position.
- Output:
:x:,:y:,:z:
entity.events.block.hits(entity_id)
- Description: Retrieve all queued block hit events produced by the specified entity.
- Output: See
events.block.hits
.
events.chat.posts()
- Description: Retrieve all queued chat events.
- Output: List of
entity_id,{message}
- When compatibility mode is disabled, this will also include non-chat messages denoted with an entity ID of
-1
.
- When compatibility mode is disabled, this will also include non-chat messages denoted with an entity ID of
entity.events.chat.posts(entity_id)
- Description: Retrieve all queued chat events produced by the specified entity.
- Output: See above.
events.projectile.hits()
- Description: Retrieve all queued projectile hit events.
- Output: List of
x,y,z,1,shooter_entity_name,[target_entity_name],shooter_entity_id,target_entity_id
- If the projectile hit a block,
target_entity_id
will be-1
andtarget_entity_name
will be blank.
- If the projectile hit a block,
entity.events.projectile.hits(entity_id)
- Description: Retrieve all queued projectile hit events produced by the specified entity.
- Output: See above.
entity.events.clear(entity_id)
- Description: Clear all queued events produced by the specified entity.
Reborn-Specific
reborn.disableCompatMode()
- Description: Disable the compatibility mode.
- Output:
reborn_version
reborn.enableCompatMode()
- Description: Re-enable the compatibility mode.
world.getSign(x,y,z)
- Description: Retrieve the text of the given sign.
- Output: List of
{line}
entity.getType(entity_id)
- Description: Check the type of the given entity. For special entities like players, this will be
0
. - Output:
entity_type_id
- Description: Check the type of the given entity. For special entities like players, this will be