iChunUtil

iChunUtil

93M Downloads

iChunUtil

Rebuilt mostly from scratch and some salvage from the 1.18 partial port.

Completely revamped workspace to allow Fabric, Forge and NeoForge versions to be built from one project. (That took too much time to figure out)

Allows for a specific all composite build to be in the same parent folder as iChunUtil to pull in all projects in the folder (see settings.gradle)

Building The Mod

On Windows: Run build.cmd.

On other OSes: Gradle command line. Subprojects with output: fabric, forge, neoforge. Subproject common also exists and is compiled against Fabric, and the srcDirs are pulled in on modloader-based build. The Gradle workspace also sets up an api subproject if that exists.

If the build fails due to ReobfJar/SignJar (Forge) or OverlappingFileLock (NeoForge), just attempt the build again, it'll work eventually.

Building Mods Dependent on iChunUtil that were made by iChun

Just make sure the two (or however many) projects share the same parent folder. iChunUtil and dependent mods share the same Gradle workspace setup.

Build as above.

The other project will pull in iChunUtil as an included build:

Parent Folder 
|--- All (optional - I do my development in this project. See below for more info)
|--- Dependent Mod - eg Better Than Bunnies
|--- Dependent Mod - eg Ding
|--- iChunUtil - automatically included by Dependent Mods
\--- Temp - Any folder starting with "Temp" will be ignored by the "all" project

Depending on iChunUtil

My advice: Have iChunUtil in the same parent folder as your project and include it as a dependent build. If possible, use the same gradle workspace as iChunUtil, otherwise, reassign iChunUtil's subprojects to project(":<modloader>"). See settings.gradle to see how it's done or look up Composite Builds.

Alternatively: Build iChunUtil and publish to maven local and depend on that. iChunUtil is published under: me.ichun.mods:ichunutil:<mc version>-<modloader>-<mod version>

The "All" Project

I spent way too much time figuring out Gradle and setting it up so I can open up a project and have the dependencies all set up properly against one another. Thus came the all project.

The all project is made out of iChunUtil's entire gradle workspace with no source files in any of the subprojects and an empty build-conventions-variations.gradle.

In gradle.properties, change the mod_id, mod_name and archive_base_name properties to all and open up the gradle project in IntelliJ IDEA.

IDEA will automatically import all folders in the same parent folder that have a build.gradle and build.cmd file, with exception to any folder starting with temp.

NeoForge is not included as I do my development against Fabric. Forge is included because the workspace breaks without it.

Builds are likely to fail initially because of NeoForge being set up in other projects - Overlapping File Lock. Just keep re-running build until it all passes.

When running: DO NOT RUN WITH GRADLE - IT WILL FAIL. Run with the IDE. Be sure to generate the fabric dependencies override task - found in iChunUtil under the fabric subproject.