Tags
Creators
Details
v2.3.0-prerelease.1+1.20.1
Compatibility
Required content
Changes
JCM v2.3.0-prerelease.1 for MTR 4.0.5 has been released!
This release contains breaking changes to JCM's internal codebase. Common addons have been tested against, however some addon depending on JCM may break.
This is a prerelease, some QOL changes for scripting has been introduced.
General
- Fix Forge crashing on launch
Technical
Scripting
- Compiled scripts are now re-used during parsing stage, which may improve loading time during parsing time for large packs.
- When passing in JS objects in
print()orconsolefunctions, they will now output the corresponding JSON string instead of[object Object]. - When encountering a runtime error, only the JS stacktrace will be logged in the console to reduce clutter.
- For convenience, all non-deprecated methods with an
Identifierargument now also has a correspondingStringvariant. Thus you can pass in a string like"mtr:font"instead of wrapping it withResources.id().- For
Resources.idr(), simply prepend your string with./. - Note: Relative path can still only be used during parsing stage.
- For
StateTracker.setState()now returns a boolean on whether the state is changed or not, instead of needing a separate check.- Added the
Javautil class- Allows creation of native java array via
Java.newArray, or converting from a listJava.toArray - A global
asJavaArrayfunction is added for interoperability with ANTE. However scripts targeting JCM should useJava.toArrayinstead.
- Allows creation of native java array via
- Slightly improved ANTE backward compatibility support, including read-only custom config.
Translations
Translations for JCM is now hosted on ZiYue's Weblate
Download:
You can download this release on Modrinth, CurseForge or GitHub
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:lQqKCDhg:SFFUt5OU"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:lQqKCDhg:SFFUt5OU"
}

