CraftBukkit modifications and Bukkit API additions that fix bugs, add new features, and improve the quality of life
NOTE: This repository is no longer maintained, but a popular fork is still active. If you are looking to also support Minecraft 1.8, a new project called SportPaper has that additional functionality.
SportBukkit is a fork of CraftBukkit, starting from the submodules in the base
folder.
The differences between CraftBukkit and SportBukkit are represented by the sequential patches in the Bukkit
and CraftBukkit
folders.
Conceptually, these differences are divided into fixes and features.
Fixes are relatively small and have the potential to change or go away with future upstream changes. Every patch except the final one in each list contains a fix.
Feature changes are improvements and extensions to the Bukkit API, intended to be permanent. These are contained entirely in a single patch at the end of each sequence, called simply "SportBukkit".
For readability purposes, a copy of the final patched SportBukkit source code is stored in the snapshot
folder.
This code is updated automatically by scripts, and should not be manually edited or compiled.
To build SportBukkit, the following will need to be installed and available from your shell:
To build on Windows you'll need to use the git bash console.
See all available tasks: rake -T
Build everything: rake
The SportBukkit binary will be located in build/CraftBukkit/target
Generate patched SportBukkit source code: rake apply
Generated source will be in build/Bukkit and build/CraftBukkit
Compile SportBukkit from source: rake compile
Rebuild SportBukkit patches from source: rake generate
Remove all intermediate files: rake clean
This is roughly the process used to rebase SportBukkit to an updated upstream CraftBukkit.
rebase-(version)
e.g. rebase-1.2.3
.upstream
branch of build/Bukkit
and build/CraftBukkit
and ensure they have clean work trees.work
folder.builddata
, base/Bukkit
, and base/CraftBukkit
to the latest upstream master.version.rb
, update NMS_VERSION
and NMS_MD5
to the latest values (running rake deobf
with the wrong MD5 will show you the right one).rake deobf
, rake decompile
, and rake craftbukkit
, in that order. These should all run without any conflicts.version.rb
changes.rake apply
. This will attempt to apply the SportBukkit patches in the Bukkit
and CraftBukkit
folders to the new CraftBukkit.
Assuming there have been upstream changes, many of these patches will fail and you will need to resolve the conflicts.build/Bukkit
or build/CraftBukkit
will be in a git am
session, waiting on conflict resolution.
Use the standard git merge process to resolve the conflict, and type git am --continue
to continue applying patches.rake generate
to capture your progress in the patch files.rake apply
again to continue with the CraftBukkit patches.work/nms-src
to build/CraftBukkit/src/main/java
. This patch should always be updated, even if there are no merge conflicts.