RaspberryJuice
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.
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:
Further examples can be found at http:www.stuffaboutcode.com/p/minecraft.html
Thanks to you awesome sir, I've been able to make self-building structures:
(Video of self building house)
And gifs that animate in minecraft:
(Video of not 100% sfw gif, definitely 12+ sfw though)
I got a player id from getPlayerEntityIds() (by the way, I had to fix the getPlayerEntityIds with a [:-1] at the end since my unsplit ids variable had a "|" at the end of the string) and tried: but that failed with the following messages:
@n0trub
No, you can't send console commands through chat, as it would pose a security risk.
This plugin implements the Minecraft Pi protocol, so you can use the Minecraft Pi apis to connect to it: see http://pi.minecraft.net for details.
Oh god you stole my idea :P
This works so easily, what an awesome plugin!
I have it working through a raw Putty connection, but how do I send commands by script, like your example posted above? Also, is it possible to issue server commands through the chat.post()? Because that would make this plugin OP.
Thanks for your work!
me want