/Ilblu

Exploring the deepest depths of forking

Primary LanguageShellMIT LicenseMIT

Ilblu

GitHub-CI Workflow Status CodeMC-CI Build Status Paper Behind By Forks

Ilblu is a fork of the Minecraft Server Software Paper, it should support all Spigot plugins.

This project improves on the framework by byof and EMC. Also includes many small changes from Tuinity, Purpur, YAPFA, Draco and Akarin.

The main goal of this project is creating a better framework for forks of paper and in turn also their forks!

Example projects

Small showcase of all current forks of Ilblu:

  • Ibento - Adds many new Events

Get Ilblu

Download

Downloading Ilblu isnt really useful as it doesnt add any features. This project is meant to be forked!

Build

Requirements

  • Java (JDK) 8 or above
  • Git, with a configured user name and email. On windows you need to run from git bash.

Optionally

  • Maven 3+ (Will be installed locally if not present)
  • Gradle 6+ (Uses gradle wrapper anyway)

Compile

If all you want is a paperclip server jar, just run:

./gradlew ilbluInitApply
./gradlew ilbluPaperclip

Fork

Creating a fork via Ilblu has several advantages:

  • Modular inclusion of other forks
  • More modern framework for developing than older solutions (E.g byof)
  • Incremental building

Getting started

  1. Fork this project
  2. Edit gradle.properties to your likings
  3. Add your fork name to the end of /patches/apply
  4. Run ./gradlew ilbluInitApply ilbluRebuildPatches
  5. (Edit the README.md)

Add patch modules

Create a new folder/symlink in /patches containing the api and server subdirectories

Now add the name of the path to the patches folder above your fork in /patches/apply.

Only use valid folder names; no dots, slashes, asterisks etc.

Keep in sync

Since Ilblu is patched frequently to stay up to date with Paper, keeping your fork in sync is important to get any new features as soon as they come out. Choose any way you prefer:

  • Sync Ilblu (Recommended): ./gradlew ilbluSync

  • Only update Paper: ./gradlew ilbluMergeUp

  • Do it by manually. Not sure how? GitHub Help - Syncing a Fork

Developing

To get started clone this repository and run ./gradlew ilbluInitApply or ./ilblu patch init to setup your workspace.

Creating patches

  • Make changes to /<NAME>-API or /<NAME>-Server and commit them
  • Run ./gradlew ilbluRebuildPatches or ./ilblu rebuild to create the patch files
  • Finish by committing and pushing the changes made to the patch files

Testing

Important: Test jars contain copyrighted material and should be distributed under no circumstances

To build your test server jar just run ./gradlew shadowJar, output in /<NAME>-Server/build/libs

Deploying

To get a distributable server jar (paperclip), just run ./gradlew ilbluPaperclip, output in main directory

Still confused?

Just head over to the example project Ibento.

Creating and editing patches is explained in great detail over at PaperMC.

Side note: Rebasing will be one of your best friends when creating patches, be sure to understand it well.

LICENSE

See LICENSE

Everything in this repository is free to be used in your own fork, except when noted otherwise.

See list above for the license of material used/modified by this project.