Minecraft API

Classes

Methods

Description

Usage

Minecraft

"Main class for interacting with the Minecraft world, includes functions for creating a connection, modifying players and blocks and capturing events"

.create(address, port,name)

"Create connection to Minecraft (address, port) => Minecraft object"

mc = minecraft.Minecraft.create("10.10.0.21", 4711, "login name")

.getBlock(x,y,z)

retrieves the block type for the block at x,y,z

blockType = mc.getBlock(0,0,0)

.getBlocks(x0,y0,z0,x1,y1,z1)

get the block id's in a cuboid

blocks = mc.getBlocks(-1,-1,-1,1,1,1)

for block in blocks:

print block

.getBlockWithData(x,y,z)

retrieves a block object for the block at x,y,z

blockObj = mc.getBlockWithData(0,0,0)

.setBlock(x,y,z)

sets a block at an x, y, z co-ordinate to a particular type

mc.setBlock(0,0,0,block.DIRT.id)

sets a block to a particular type and 'subtype'

mc.setblock(0,0,0,block.WOOD.id, 1)

.setBlocks(x0,y0,z0,x1,y1,z1,blockType, blockData)

sets many blocks at a time, filling the gap between 2 sets of x, y, z co-ordinates

mc.setBlocks(-1, -1, -1, 1, 1, 1, block.STONE.id)

.getHeight(x,z)

find the y (vertical) of an x, z co-ordinate which represents the 'highest' (non-air) block

y = mc.getHeight(0,0)

.getPlayerEntityIds()

get the entity id's of the players connected to the game

entityIds = mc.getPlayerEntityIds()

for entityId in entityIds:

print entityId

.saveCheckpoint()

Save a checkpoint that can be used for restoring the world

mc.saveCheckpoint()

.restoreCheckpoint()

Restore the world state to the checkpoint

mc.restoreCheckpoint()

.postToChat(message)

Post a message to the game chat

mc.postToChat("Hello Minecraft World")

Minecraft.player

Actions players can do, can be done to them, or data retrieved about them

.getPos()

Gets the player's position in the world as a Vec3 of floats (decimal numbers), if the player is in the middle of a block x.5 is returned

playerPos = mc.player.getPos()

.setPos(x,y,z)

Moves the player to a position in the world by passing co-ordinates ([x,y,z])

mc.player.setPos(0.0,0.0,0.0)

.getTilePos()

Gets the position of the 'tile' the player is currently on.

playerTile = mc.player.getTilePos()

.setTilePos(x,y,z)

Move the player to a tile position in the world by passing co-ordinates ([x,y,z])

mc.player.setTilePos(0,0,0)

Minecraft.entity

The entity functions are used in conjunction with the .getPlayerEntityIds() function to interact with the entity (or players) in a game. Entity functions are useful for multiplayer games.

entityIds = mc.getPlayerEntityIds()

1stEntityId = entityIds[0]

2ndEntityId = entityIds[1]

.getPos(entityId)

Gets an entities position in the world as a Vec3 of floats (decimal numbers), if the entity is in the middle of a block x.5 is returned

entityPos = mc.entity.getPos(entityId)

.setPos(entityId,x,y,z)

Moves the entity to a position in the world by passing co-ordinates ([x,y,z])

mc.player.setPos(entityId,0.0,0.0,0.0)

.getTilePos(entityId)

Gets the position of the 'tile' the entity is currently on.

entityTile = mc.entity.getTilePos(entityId)

.setTilePos(entityId, x,y,z)

Move the entity to a tile position in the world by passing co-ordinates ([x,y,z])

mc.player.setTilePos(entityId,0,0,0)

Minecraft.camera

.setNormal(entityId)

Set camera mode to normal Minecraft view ([entityId])

mc.camera.setNormal(entityId)

.setFixed()

Set camera mode to fixed view

mc.camera.setFixed()

.setFollow(entityId)

Set camera mode to follow an entity ([entityId])

mc.camera.setFollow(entityId)

.setPos(x,y,z)

set camera position to a specific position of x, y, z

mc.camera.setPos(0,0,0)

Minecraft.events

.pollBlockHits()

Block Hits (Only triggered by sword) => [BlockEvent]

blockEvents = mc.events.pollBlockHits()

for blockEvent in blockEvents:

print blockEvent

.clearAll()

clear all events that have happened since the events where last got

mc.events.clearAll()

Block

The definition of a Block in Minecraft, used to describe a block type and (if applicable) its data; also contains constants for the blocks type id's, e.g. BLOCK.AIR.id

blockObj = block.Block(id)

create block of a specific type

blockObj = block.Block(id, data)

create a block of a specific type and apply a data value

.id

The id (or type) of block

AIR = Block(0)

STONE = Block(1)

GRASS = Block(2)

DIRT = Block(3)

COBBLESTONE = Block(4)

WOOD_PLANKS = Block(5)

SAPLING = Block(6)

BEDROCK = Block(7)

WATER_FLOWING = Block(8)

WATER = WATER_FLOWING

WATER_STATIONARY = Block(9)

LAVA_FLOWING = Block(10)

LAVA = LAVA_FLOWING

LAVA_STATIONARY = Block(11)

SAND = Block(12)

GRAVEL = Block(13)

GOLD_ORE = Block(14)

IRON_ORE = Block(15)

COAL_ORE = Block(16)

WOOD = Block(17)

LEAVES = Block(18)

GLASS = Block(20)

LAPIS_LAZULI_ORE = Block(21)

LAPIS_LAZULI_BLOCK = Block(22)

SANDSTONE = Block(24)

BED = Block(26)

COBWEB = Block(30)

GRASS_TALL = Block(31)

WOOL = Block(35)

FLOWER_YELLOW = Block(37)

FLOWER_CYAN = Block(38)

MUSHROOM_BROWN = Block(39)

MUSHROOM_RED = Block(40)

GOLD_BLOCK = Block(41)

IRON_BLOCK = Block(42)

STONE_SLAB_DOUBLE = Block(43)

STONE_SLAB = Block(44)

BRICK_BLOCK = Block(45)

TNT = Block(46)

BOOKSHELF = Block(47)

MOSS_STONE = Block(48)

OBSIDIAN = Block(49)

TORCH = Block(50)

FIRE = Block(51)

STAIRS_WOOD = Block(53)

CHEST = Block(54)

DIAMOND_ORE = Block(56)

DIAMOND_BLOCK = Block(57)

CRAFTING_TABLE = Block(58)

FARMLAND = Block(60)

FURNACE_INACTIVE = Block(61)

FURNACE_ACTIVE = Block(62)

DOOR_WOOD = Block(64)

LADDER = Block(65)

STAIRS_COBBLESTONE = Block(67)

DOOR_IRON = Block(71)

REDSTONE_ORE = Block(73)

SNOW = Block(78)

ICE = Block(79)

SNOW_BLOCK = Block(80)

CACTUS = Block(81)

CLAY = Block(82)

SUGAR_CANE = Block(83)

FENCE = Block(85)

GLOWSTONE_BLOCK = Block(89)

BEDROCK_INVISIBLE = Block(95)

STONE_BRICK = Block(98)

GLASS_PANE = Block(102)

MELON = Block(103)

FENCE_GATE = Block(107)

GLOWING_OBSIDIAN = Block(246)

NETHER_REACTOR_CORE = Block(247)

.data

The data (or sub-type) of a block

Data Values of blocks:

WOOL:

0: White

1: Orange

2: Magenta

3: Light Blue

4: Yellow

5: Lime

6: Pink

7: Grey

8: Light grey

9: Cyan

10: Purple

11: Blue

12: Brown

13: Green

14: Red

15:Black


WOOD:

0: Oak (up/down)

1: Spruce (up/down)

2: Birch (up/down)


SAPLING:

0: Oak

1: Spruce

2: Birch


GRASS_TALL:

0: Shrub

1: Grass

2: Fern

3: Grass (color affected by biome) (Not on Pi)


TORCH:

1: Pointing east

2: Pointing west

3: Pointing south

4: Pointing north

5: Facing up


STONE_BRICK:

0: Stone brick

1: Mossy stone brick

2: Cracked stone brick

3: Chiseled stone brick


STONE_SLAB / STONE_SLAB_DOUBLE:

0: Stone

1: Sandstone

2: Wooden

3: Cobblestone

4: Brick

5: Stone Brick


TNT:

0: Inactive

1: Ready to explode


LEAVES:

1: Oak leaves

2: Spruce leaves

3: Birch leaves


SANDSTONE:

0: Sandstone

1: Chiseled sandstone

2: Smooth sandstone


STAIRS_[COBBLESTONE, WOOD]:

0: Ascending east

1: Ascending west

2: Ascending south

3: Ascending north

4: Ascending east (upside down)

5: Ascending west (upside down)

6: Ascending south (upside down)

7: Ascending north (upside down)


LADDERS, CHESTS, FURNACES, FENCE_GATE:

2: Facing north

3: Facing south

4: Facing west

5: Facing east


[WATER, LAVA]_STATIONARY:

0-7: Level of the water, 0 being the highest, 7 the lowest


NETHER_REACTOR_CORE:

0: Unused

1: Active

2: Stopped / used up

BlockEvent

The definition of a BlockEvent in Minecraft, used to describe an event in Minecraft affecting blocks; returned by the Minecraft.events.pollBlockHits() method.

blockEvent = mc.events.pollBlockHits()

.type

Type of block event; there is only 1 event currently implemented BlockEvent.HIT

blockEventType = blockEvent.type

.pos

The position of the block where the event occurred, i.e. the block which was hit. .pos returns a Vec3 object of x,y,z co-ordinates

blockEventPos = BlockEvent.pos

.face

The face of the block where the event occurred

blockEventFace = BlockEvent.face

.entityId

entityId of the player who caused the block event, i.e. the player who hit the block

blockEventPlayer - BlockEvent.entityId

Vec3

The definition of a 3 part vector in Minecraft, i.e. a set of x, y, z co-ordinates; x and z are the horizontal positions, y the vertical

position = vec3.Vec(0,0,0)

.x

x position

xPos = position.x

.y

y position

yPos = position.y

.z

z position

zPos = position.z