Skip to content

Paul1365972/Ibento

Repository files navigation

Ibento

GitHub-CI Workflow Status CodeMC-CI Build Status

Ibento is the example fork of Ilblu. It contains all patches I could find, that add upon the event api. If you find more or want to add your own just create an issue or pull request!

Get Ibento

Download

Plugin API

[WIP]

Maven

<repository>
    <id>codemc-snapshots</id>
    <url>https://repo.codemc.io/repository/maven-snapshots/</url>
</repository>

<dependency>
    <groupId>io.github.paul1365972</groupId>
    <artifactId>ibento-api</artifactId>
    <version>1.15.2-R0.1-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>

Gradle

repositories {
    maven {
        url "https://repo.codemc.io/repository/maven-snapshots/"
    }
}

dependencies {
    compileOnly "io.github.paul1365972:ibento-api:1.15.2-R0.1-SNAPSHOT"
}

This also includes the Paper-, Spigot- and Bukkit-API

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.