(unmaintained) Minecraft Beta multiplayer server
Go Shell
Pull request Compare This branch is 843 commits ahead of stefanha:master.
Failed to load latest commit information.
bin Making the source directory structure more consistent Jun 25, 2011
chunkstore go fmt Jun 3, 2014
cmd go fmt Jun 3, 2014
command Fix mock generation, add mocks to checked in files. Jun 3, 2014
diagrams Adding design doc and diagram. Apr 3, 2011
docs Fixed some formatting in datafiles.md. Sep 26, 2011
entity Correct many references to packages under chunkymonkey. Jun 3, 2014
game go fmt Jun 3, 2014
gamerules Fix gamerules unit test panic. Jun 3, 2014
gamerules_mock Fix mock generation, add mocks to checked in files. Jun 3, 2014
generation Correct references to perlin and game. Jun 3, 2014
logdebug Move packages around. Jun 3, 2014
nbt First pass at fixing tests. Jun 3, 2014
nbtutil go fmt Jun 3, 2014
perlin Move packages around. Jun 3, 2014
permission Move packages around. Jun 3, 2014
physics Fix mock generation, add mocks to checked in files. Jun 3, 2014
player go fmt Jun 3, 2014
proto Correct many references to packages under chunkymonkey. Jun 3, 2014
record Move packages around. Jun 3, 2014
server_auth Move packages around. Jun 3, 2014
shardserver Correct many references to packages under chunkymonkey. Jun 3, 2014
testencoding Move packages around. Jun 3, 2014
testmatcher Move packages around. Jun 3, 2014
types Move packages around. Jun 3, 2014
util Move packages around. Jun 3, 2014
window go fmt Jun 3, 2014
worldstore go fmt Jun 3, 2014
.gitignore Fix mock generation, add mocks to checked in files. Jun 3, 2014
CREDITS.md Modified contributors lists. Jun 21, 2011
DESIGN.md style changes. May 22, 2011
LICENSE Add README and LICENSE Oct 3, 2010
Makefile Fix mock generation, add mocks to checked in files. Jun 3, 2014
README.md Update status section in README.md Jun 3, 2014
blocks.json Added piston extension block. Sep 19, 2011
furnace.json Moved furnace testing to use planks, and removed a dupe furnace data … Jul 17, 2011
groups.json Re-added "login" permission by default (oops). Jul 17, 2011
items.json Adding new blocks in 1.8 (and melon slices). Sep 19, 2011
recipes.json Enabled making torches from charcoal (not just coal). Jul 28, 2011
users.json Put permissions JSON for testing into the unit tests. Jul 17, 2011

README.md

  ___
C(o o)O     C H U N K Y   M O N K E Y
  (.)   \
 w====m==|       minecraft server
        /

Chunky Monkey is a Minecraft Beta multiplayer server. It is licensed under the MIT open source license, please see the LICENSE file for more information.

Website: http://github.com/huin/chunkymonkey

Mailing list: https://groups.google.com/group/chunkymonkey-minecraft

Contact: John Beisley

Status

Chunky Monkey is no longer being maintained by Huin. It does not run anything that could be considered a full game experience.

Worlds generated by Alpha or Beta Notchian clients or servers can be loaded by the server.

Features include:

  • Compatibility with Minecraft Beta clients.
  • Blocks may be dug, items picked up, and blocks placed.
  • Crafting using the 2x2 or 3x3 crafting grids and the furnace.
  • Partial item physics.
  • World persistency.
  • Basic world generation.

Currently missing features include:

  • Block physics.
  • Complete item physics (there is a minimal implementation in place).
  • Mob behaviour.
  • Many block interactions.
  • Decent world generation.

Contributing

Huin is no longer actively developing Chunky Monkey. People are welcome to take it over with a fork.

Requirements

The Go toolchain must be installed. Note that chunkymonkey is developed against the current stable release of the Go toolchain, so might not compile against the weekly releases (gofix might be able to fix such cases).

Building & Testing

Any of the binaries in the cmd subdirectory can be built with the standard go command, for example, the server can be compiles with:

$ go install github.com/huin/chunkymonkey/cmd/chunkymonkey

The mocks can be regenerated with:

$ make clean mocks

The unit tests require GoMock to be installed:

$ go install code.google.com/p/gomock/mockgen

The unit tests can be run with:

$ go test github.com/huin/chunkymonkey/...

Running

Serve up a single player world:

$ chunkymonkey ~/.minecraft/saves/World1
2010/10/03 16:32:13 Listening on  :25565

Record/replay

For debugging it is often useful to record a player's actions and replay them one or more times later. This makes it possible to simulate multiplayer games without having real people logging in.

To record a session, run the intercept proxy:

$ intercept -record player.log localhost:25567 localhost:25565

Which will accept client connections on localhost port 25567 and relay the connection to the server at localhost port 25565. This has the side effect of display packets that pass through to stderr.

Connect your Minecraft client to localhost:25567, and a record of the clients actions will be stored to player.log-1, player.log-2 etc. (one file per client connection).

To replay a session:

$ replay localhost:25565 player.log-1