https://github.com/paul1365972/ilblu
Exploring the deepest depths of forking
https://github.com/paul1365972/ilblu
bukkit craftbukkit gradle ilblu java minecraft minecraft-server paper paper-fork spigot spigot-fork
Last synced: 8 months ago
JSON representation
Exploring the deepest depths of forking
- Host: GitHub
- URL: https://github.com/paul1365972/ilblu
- Owner: Paul1365972
- License: mit
- Created: 2020-04-09T02:57:28.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-01T12:32:51.000Z (about 6 years ago)
- Last Synced: 2025-01-31T17:39:37.704Z (over 1 year ago)
- Topics: bukkit, craftbukkit, gradle, ilblu, java, minecraft, minecraft-server, paper, paper-fork, spigot, spigot-fork
- Language: Shell
- Homepage:
- Size: 240 KB
- Stars: 12
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ilblu
[](https://github.com/Paul1365972/Ilblu/actions?query=workflow%3A%22Build%22)
[](https://ci.codemc.io/job/Paul1365972/job/Ilblu/)
[](https://github.com/PaperMC/Paper)
[](https://github.com/Paul1365972/Ilblu/network/members)
Ilblu is a fork of the Minecraft Server Software [Paper](https://github.com/PaperMC/Paper), it should support all Spigot plugins.
This project improves on the framework by [byof](https://github.com/electronicboy/byof) and [EMC](https://github.com/starlis/empirecraft). Also includes many small changes from [Tuinity](https://github.com/Spottedleaf/Tuinity), [Purpur](https://github.com/pl3xgaming/Purpur), [YAPFA](https://github.com/tr7zw/YAPFA), [Draco](https://github.com/Draycia/Draco) and [Akarin](https://github.com/Akarin-project/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](https://github.com/Paul1365972/Ibento) - Adds many new Events
## Get Ilblu
### Download
- [**Github Actions**](https://github.com/Paul1365972/Ilblu/actions?query=workflow%3A%22Build%22)
- [**CodeMC Jenkins**](https://ci.codemc.io/job/Paul1365972/job/Ilblu/lastSuccessfulBuild)
*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:
```sh
./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](https://github.com/PaperMC/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](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/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 `/-API` or `/-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 `/-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](https://github.com/Paul1365972/Ibento).
Creating and editing patches is explained in great detail over at [PaperMC](https://github.com/PaperMC/Paper/blob/master/CONTRIBUTING.md).
*Side note: Rebasing will be one of your best friends when creating patches, be sure to understand it well.*
## LICENSE
See [LICENSE](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.