Developing
This is a guide for add-on developers. This is not a Java tutorial nor a "how to make a mod" tutorial. Basic knowledge is required. The guide is made for the Forge version of Advanced Netherite, Fabric add-ons are currently not supported.
- Basic knowledge of the Java programming language + experience with the Forge Modding API
- IDE (Integrated Development Environment), preferably IntelliJ IDEA
- JDK (Java Development Kit)
- JDK 17 (1.18+)
- JDK 16 (1.17.x)
- JDK 8 (1.16.x)
First, download a new MDK from te Forge website.
Extract the .zip file and import it as a project into your IDE.
There are countless methods to add Advanced Netherite to your development environment, but I will cover two of them.
| Pros | Cons | |
|---|---|---|
| Jitpack.io | Includes javadocs | More work to add |
| CurseMaven | Works with every mod on CurseForge | Does not include javadocs |
It is recommended for add-on developers to use Jitpack.io. Both methods are explained below.
Add the code below to your build.gradle:
/* This block goes at the top of your buildscript! */
buildscript {
repositories {
/* MinecraftForge repository here */
maven { url = "" }
/* MavenCentral repository here */
}
/* ForgeGradle dependency here */
}
/* This block should be above the dependencies {} block (as seen below) */
repositories {
maven {
url = ""
}
}
dependencies {
/* Minecraft dependency here! */
implementation fg.deobf('com.github.Autovw:AdvancedNetherite:<version_tag>')
}You can find all the existing version tags here!
The CurseMaven method. Use the Jitpack.io method if you are creating an add-on.
First, we will need to add some code to the build.gradle:
/* This block should be above the dependencies {} block (as seen below) */
repositories {
maven {
url = ""
}
}
// <file_id>
// 1.11.1-1.18.2: 3780624
// 1.10.2-1.18.1: 3670770
// 1.10.2-1.17.1: 3670769
// 1.11.0-1.16.5: 3772641
dependencies {
/* Minecraft dependency here! */
implementation fg.deobf('curse.maven:advancednetherite-495336:<file_id>')
}More information about adding a Cursemaven project to the build.gradle can be found here!
A full list of Advanced Netherite versions can be found here!
When creating an add-on for Advanced Netherite you will also need to add some code to your mods.toml which will tell Forge that your mod requires Advanced Netherite.
# Minecraft and Forge dependency should be above here!
dependencies.your_mod_id
modId="advancednetherite"
mandatory=true #or false if this mod is not required on the user end.
versionRange="[1.10.2,)"
ordering="NONE"
side="BOTH"More information about the mods.toml can be found here!
The development of an add-on will be similar to that of making a standalone mod, but with some additional features that will make the development easier.
Do's and Dont's
- Try to avoid using classes from
com.autovw.advancednetherite.content.*as they are meant for internal usage, feel free to use them as an example, however. Instead it is recommended to use/extend the classes fromcom.autovw.advancednetherite.common.*instead. - You can create a simple translatable tooltip using the
Tooltipsclass, located inside theapipackage. Deprecated in 1.12.0, replaced byTooltipBuilder -
Creating new tools and/or armor? It is recommended to create your own
enumcontaining the tiers/materials instead of using the internal ones from Advanced Netherite. -
Use data generators! You don't need to write item models, blockstates, recipes etc. yourself, you can just use a data generator which does that for you!
Take a look at the classes inside
com.autovw.advancednetherite.datagen.*for examples/providers! - Extending classes from the
commonpackage? Avoid overriding methods marked as@Internal, instead use the alternative linked in the javadoc. This way you'll still keep compatibility with special, configurable, features from Advanced Netherite. - Want to add perks from the mod to armor without extending one of the classes provided by the mod? Implement
IAdvancedHooks. (v1.12.0 and above)
Read the code/javadocs for more documentation!