RaspberryJuice

30.7k Downloads

Want to try to program with the Minecraft Pi API but with the full version of Minecraft? RaspberryJuice implements the Minecraft Pi modding API for Bukkit servers.

The plugin listens on port 4711, and accept most of the Minecraft Pi commands, which are documented at http://wiki.vg/Minecraft_Pi_Protocol .

The plugin supports the majority of the api's supplied with the Pi edition and most examples will work.

Minecraft Forums thread

Currently implemented commands:
world.getBlock
world.getBlockWithData
world.setBlock
world.setBlocks
world.getPlayerIds
chat.post
events.clear
events.block.hits
player.getTile
player.setTile
player.getPos
player.setPos
world.getHeight
entity.getTile
entity.setTile
entity.getPos
entity.setPos

Extra features(^):

getBlocks(x1,y1,z1,x2,y2,z2) has been implemented
getDirection, getRotation, getPitch functions - get the 'direction' players and entities are facing
getPlayerId(playerName) - get the entity of a player by name
pollChatPosts() - get events back for posts to the chat
 

Config (in config.yml):
- port: 4711 - the default tcp port can be changed in config.yml
- location: RELATIVE - determine whether locations are RELATIVE to the spawn point (default like pi) or ABSOLUTE

-  hitclick: RIGHT - determine whether hit events are triggered by LEFT clicks, RIGHT clicks or BOTH

^ to use the extra features an modded version of the java and python libraries that were originally supplied by Mojang with the Pi is required, https:github.com/zhuowei/RaspberryJuice/tree/master/src/main/resources/mcpi. You only need the modded libraries to use the extra features, the original libraries still work, you just wont be able to use the extra features

Example:

This Python script builds a rainbow near the spawn. Place this example in the api/python directory of the Minecraft Pi prerelease, start the server on the same computer, and run python name.py to run, replacing name.py with the actual name of the script.

import mcpi.minecraft as minecraft
import mcpi.block as block
from math import *

colors = [14, 1, 4, 5, 3, 11, 10]

mc = minecraft.Minecraft.create()
height = 60

mc.setBlocks(-64,0,0,64,height + len(colors),0,0)
for x in range(0, 128):
        for colourindex in range(0, len(colors)):
                y = sin((x / 128.0) * pi) * height + colourindex
                mc.setBlock(x - 64, y, 0, block.WOOL.id, colors[len(colors) - 1 - colourindex])

Result: http://i.imgur.com/3SFrE.png

Further examples can be found at http:www.stuffaboutcode.com/p/minecraft.html