This is a fork of Paper tailored for the use at GommeHD.net
- Clone this repository
- Open a shell (e.g. using Git Bash on Windows)
- On Windows, make sure that
git config core.longpaths true
is set for this project - Run
./gradlew applyPatches
to apply the patches - Run
./gradlew createMojmapBundlerJar
to create the final jar file - The final jar file can be found in
build/libs/cheetah-1.21.3-bundler-1.21.3-R0.1-SNAPSHOT-reobf.jar
Currently, it is not possible to add a dependency containing NMS code, the API, and dependencies to the classpath. The current solution is to use the cheetah API combined with the normal Spigot NMS. Thus, changes to the NMS code will not be reflected to plugins using it.
- Run
./gradlew publishToMavenLocal
(The API artifacts are published to GommeHD.net internal repositories as well) - Add the following maven dependency:
<dependency>
<groupId>net.gommehd.cheetah</groupId>
<artifactId>cheetah-api</artifactId>
<version>1.21.3-R0.1-SNAPSHOT</version>
</dependency>
- First apply the patches using
./gradlew applyPatches
- Perform the changes to the code
- If you are a missing file, you can import it from NMS. For this, add a new line to
build-data/dev-imports.txt
, e.g.minecraft net.minecraft.world.level.entity.LevelEntityGetterAdapter
to import the LevelEntityGetterAdapter. Then apply the patches again (./gradlew applyPatches
). Keep in mind that all uncommited changes to the code will get LOST by this! - Once all changes have been applied, switch to the subproject in your shell (
cd cheetah-server
orcd cheetah-api
) and rungit add .
. Then, commit your changes usinggit commit -m "NAME OF PATCH"
- Switch back to the project root and rebuild the patches:
./gradlew rebuildPatches
- Commit the changed patch files the
patches/
folder to the root git repository
- Make sure all changes are committed and patches have been rebuilt
- Identify the latest commit in https://github.com/PaperMC/Paper/commits/master and copy its hash. Update
paperRef
ingradle.properties
accordingly. - Run
./gradlew applyPatches
- Fix potential conflicts during merges and update your code to the latest version
- Run
./gradlew rebuildPatches
- Validate that everything works and commit your changes
Only pull requests of the GommeHD.net dev team members are accepted. If you want to add a patch others could benefit from as well, consider submitting it to the upstream (https://github.com/PaperMC/Paper).