Populate readme file. To be improved later on
This commit is contained in:
108
readme.md
108
readme.md
@@ -1,3 +1,109 @@
|
||||
## ModFusioner
|
||||
|
||||
// TODO
|
||||
ModFusioner is a gradle plugin that allow you to merge multiple mod jars into a single jar. It's intended to be used by multi-loader projects created with Architectury, MultiLoader Template or unimined.
|
||||
|
||||
This plugin is based on, and contains code from [Forgix](https://github.com/PacifistMC/Forgix), but with massive optimizations, additional features and bug fixes.
|
||||
|
||||
***
|
||||
|
||||
### Usage
|
||||
|
||||
To use this plugin inside your project, first you have to add our maven.
|
||||
|
||||
To does this, open up settings.gradle and add the following:
|
||||
|
||||
```groovy
|
||||
pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
maven {
|
||||
url "https://maven.firstdarkdev.xyz/releases"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Next, in your ROOT `build.gradle` add:
|
||||
|
||||

|
||||
|
||||
```groovy
|
||||
plugins {
|
||||
id "com.hypherionmc.modutils.modfusioner" version "1.0.+"
|
||||
}
|
||||
```
|
||||
|
||||
Finally, add the following to your ROOT `build.gradle` file:
|
||||
|
||||
```groovy
|
||||
fusioner {
|
||||
packageGroup = project.group // Package group of the merged jar. For example com.mymod.awesome
|
||||
mergedJarName = "MyModMerged-combo-1.20.2" // The name of the output jar
|
||||
outputDirectory = "artifacts/fused" // Where the merged jar will be stored. Defaults to artifacts/fused
|
||||
jarVersion = final_version // The version of the mod/jar
|
||||
|
||||
// Forge Project
|
||||
forge {
|
||||
projectName = "Forge" // The name of the project that contains the forge code
|
||||
inputTaskName = "jar" // The name of the build task for the forge project
|
||||
// OR
|
||||
// inputFile = "Forge/build/libs/MyMod-1.0.jar" // Use a custom jar input
|
||||
|
||||
// Mixin configuration files
|
||||
// Only required if the plugin doesn't detect it directly
|
||||
mixin "${mod_id}.mixins.json"
|
||||
mixin "${mod_id}-forge.mixins.json"
|
||||
|
||||
// Packages that need to be relocated to the specific platform
|
||||
addRelocate "me.hypherionmc.mcdiscordformatter", "forge.me.hypherionmc.mcdiscordformatter"
|
||||
}
|
||||
|
||||
// Fabric Project
|
||||
fabric {
|
||||
projectName = "Fabric" // The name of the project that contains the fabric code
|
||||
inputTaskName = "remapJar" // The name of the build task for the forge project
|
||||
// OR
|
||||
// inputFile = "Fabric/build/libs/MyMod-Fabric-1.0.jar" // Use a custom jar input
|
||||
|
||||
// Packages that need to be relocated to the specific platform
|
||||
addRelocate "me.hypherionmc.mcdiscordformatter", "fabric.me.hypherionmc.mcdiscordformatter"
|
||||
}
|
||||
|
||||
// Quilt Project
|
||||
fabric {
|
||||
projectName = "Quilt" // The name of the project that contains the quilt code
|
||||
inputTaskName = "remapJar" // The name of the build task for the forge project
|
||||
// OR
|
||||
// inputFile = "Quilt/build/libs/MyMod-Quilt-1.0.jar" // Use a custom jar input
|
||||
|
||||
// Packages that need to be relocated to the specific platform
|
||||
addRelocate "me.hypherionmc.mcdiscordformatter", "fabric.me.hypherionmc.mcdiscordformatter"
|
||||
}
|
||||
|
||||
// For "custom", the "projectName" is a required value.
|
||||
custom {
|
||||
projectName = "sponge" // This is the name of the project. This is a required field.
|
||||
inputTaskName = "jar" // The name of the build task for the forge project
|
||||
// OR
|
||||
// inputFile = "sponge/build/libs/MyMod-Sponge-1.0.jar" // Use a custom jar input
|
||||
|
||||
additionalRelocate "org.my.lib" "sponge.org.my.lib" // This is an important one to know. This is how you can remap additional packages such as libraries and stuff.
|
||||
additionalRelocate "org.my.lib.another" "sponge.org.my.lib.another"
|
||||
}
|
||||
|
||||
// Remove duplicate libraries or packages. Useful if you have shaded libraries in your mod
|
||||
relocateDuplicate "com.hypherionmc.sdlink.shaded"
|
||||
}
|
||||
```
|
||||
|
||||
Most values are optional, so you can only configure what you need. You need at least 2 projects in order for this plugin to work.
|
||||
|
||||
For additional help, please visit our [Discord Server](https://discord.firstdark.dev)
|
||||
|
||||
***
|
||||
|
||||
#### Credits & Licenses
|
||||
|
||||
Thanks to the Forgix authors for making the original plugin. It's an amazing plugin!
|
||||
|
||||
Plugin code is licensed under LGPL-2.1, which is the same as the original code it's based on
|
Reference in New Issue
Block a user