Ever wanted to do something crazy with command blocks but the notation seemed too horrendous? Ever wanted to make an adventure map which reacts to events? Ever wanted to write code which uses both Minecraft commands and a server plugin?
If so, Spade may help! Spade is an approachable programming language which can compile down to both mcfunctions, and Java, making it much easier to take total and unquestionable command of all parts of your Minecraft world.
- A simple, unified syntax with similarities to other common languages
- Syntactic sugaring to allow useful tasks to be used by the programmer with minimal effort
- A strict type-system to catch errors before runtime and without affecting performance (better than Java)
- A single language which can be run both on the server and client sides
- A compiler that can run on any common operating system (Windows, MacOS and Linux)
We maintain installers for Windows, MacOS and Linux on our releases page.
If you'd like to build directly from the source code, you will need a number of smaller tools. Whip up the terminal, and make sure the following are installed:
git
distributed version-control systemstack
build tool for Haskellmake
GNU generic build systemalex
Haskell lexical analyser generatorhappy
Haskell parser generatorm4
GNU macro languagestylish-haskell
Haskell code formatterhlint
Haskell linterrefactor
Haskell linter auto fixing
Then, download our code and compile it:
git clone --recurse-submodules https://github.com/SpadeMC/Spade
cd Spade
make
Once this succeeds, the compiler can be run:
./spade
Use ./spade --help
to get more help.
To install, run:
make install
Et voilĂ !
One (custom) version of spade
.
Spade is developed under the MIT license.
Ed and Josh have been playing Minecraft since 2012 and probably need to go outside more. We are both Computer Scientists whose specialisms include formal languages and systems development, compiler design and programming language principles.
We are not affiliated with Mojang AB.