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