Skip to content

Intro: JMX for Mod Developers

grondag edited this page Jun 15, 2020 · 14 revisions

Mod Developers can use JMX to create enhanced models for modded blocks and items using the same workflow as for vanilla Minecraft models.

Adding JMX to the Dev Environment

Add my maven repo to your build.gradle

repositories {
    maven {
    	name = "grondag"
    	url = "https://grondag-repo.appspot.com"
    	credentials {
            username "guest"
            password ""
	}
    }
}

And add JMX and FREX to your dependencies

dependencies {
  // optional dev env annotation support
  compileOnly "org.apiguardian:apiguardian-api:1.0.0"
  compileOnly "com.google.code.findbugs:jsr305:3.0.2"
  modImplementation ("grondag:jmx-${project.mc_tag}:${project.jmx_version}.+") { transitive = false}
  // remove next line if you want JMX to be an optional dependency 
  include "grondag:jmx-${project.mc_tag}:${project.jmx_version}.+"
}

JMX is built for specific Minecraft versions, indicated by mc_tag. Minecraft 1.15.x has tag mc115.

Consult the gradle.properties file for the latest major.minor version numbers.

Using JMX as an Optional Dependency

If your JSON model files include all attributes necessary for vanilla models, then JMX can be an optional dependency for your mod. (Of course, your models will not have enhanced features unless JMX is present.)

To make JMX optional, implement grondag.jmx.api.JmxInitializer on a class that is not referenced from any code that will run when JMX is absent. Then add that class name as a jmx entry point in your fabric.mod.json file. See the comments on JmxInitializer for more information.

Clone this wiki locally