What is Spoutcraft?
Spoutcraft is the Minecraft client mod system for the Bukkit server plugin, Spout, that exposes new API for other plugins to utilize, in an attempt to bring the Minecraft multiplayer experience to parity with the single-player modding experience.
Copyright (c) 2011-2012, SpoutDev http://www.spout.org
Spoutcraft is licensed under GNU LESSER GENERAL PUBLIC LICENSE Version 3.
Who is SpoutDev?
Spoutcraft requires MCP (Minecraft Coder Pack) for decompiling, deobfuscating, recompiling, and reobfuscating Minecraft's source. There are a lot of steps involved to compile Spoutcraft, so knowing how to use MCP is a good place to start.
- Download and extract the latest compatible version of Minecraft Coder Pack.
- Copy the latest complete, unmodified Minecraft bin directory from your .minecraft directory.
- Place the Minecraft bin directory under MCP's jars directory.
- Checkout or copy the conf directory from the Spoutcraft GitHub repository to MCP's conf directory.
- Run MCP's decompile script (.bat for Windows or .sh for Linux).
- Checkout or copy the lib directory from the Spoutcraft GitHub repository to MCP's lib directory.
- Copy the latest SpoutcraftAPI jar into the lib directory.
- Checkout or copy the latest src directory from the Spoutcraft GitHub repostiory to MCP's src directory.
- Run MCP's recompile and reobfuscate scripts (.bat for Windows or .sh for Linux).
- When tasks are finished, the compiled Spout class files will be located in reobf.
- You'll also need to class files from the jars located in the lib directory on the Spoutcraft GitHub repository to run the client.
NOTE: You will need to copy the Minecraft resources folder to the MCP root in order to launch the game using MCP.
NOTE: You will need to copy the res folder to the minecraft.jar along with the compile Spoutcraft source and contents of the SpoutcraftAPI.jar for those custom resources to show.
Coding and Pull Request Formatting
- Generally follow the Oracle coding standards.
- Use tabs, no spaces.
- No trailing whitespaces.
- No 80 column limit or midstatement newlines.
- Pull requests must compile and work.
- Pull requests must be formatted properly.
- Number of commits in a pull request should be kept to a minimum.
- No merges should be included in pull requests unless the pull request's purpose is a merge.
- If you change a packet or widget's read/write/number of bytes, be sure to increment the version on both the server and client.
- When modifying Notch code (Minecraft vanilla code), include
Please follow the above conventions if you want your pull request(s) accepted.