Bringing clarity to metadata resolution.
Mod authors often omit details from their manifest files (mcmod.info, mods.toml, etc). In Forge's case, this is legal. The only option to pull correct metadata is directly off the bytecode. This is what Claritas aims to do.
- Java 8
Claritas requires three arguments.
--absoluteJarPaths
A comma separated list of jar files to process. As the name suggests, these paths must be absolute.--libraryType
The library that the specified jar files target.--mcVersion
The minecraft version of the software. The patch version is not required.
Optional arguments.
--outputFile
The path to store the JSON output. Can be relative to the cwd.- Default:
./output.json
- Default:
--previewOutput
Will print a preview of the JSON output to stdout. This may contain incomplete data.- Default:
false
- Default:
Example
java -jar Claritas-1.0.0-dist.jar --absoluteJarPaths "C:/MyMod1.jar,C:/MyMod2.jar" --libraryType FORGE --mcVersion 1.12
The analysis results will be stored in the file provided by --outputFile
option. Sample result below.
{
"C:/MyMod1.jar": {
"id": "modid1",
"group": "com.mod1",
"version": "3.4.2",
"modType": "MOD"
},
"C:/MyMod2.jar": {
"id": "modid2",
"group": "org.mod2",
"version": "1.0.0",
"name": "My Mod (note, name not always available)",
"modType": "MOD"
}
}
id
The mod id.- Present on ForgeMods (1.7-1.12) of type MOD.
- Possibly present on ForgeMods (1.7-1.12) of type CORE_MOD and TWEAKER.
- Always present on ForgeMods 1.13+.
- Never present in all other circumstances.
group
The mod group.- Never present on ForgeMods (1.7-1.12) of type UNKNOWN.
- Present in all other circumstances.
version
The mod version.- Possibly present on ForgeMods (1.7-1.12).
- Never present in all other circumstances.
name
The mod name.- Possibly present on ForgeMods (1.7-1.12).
- Never present in all other circumstances.
modType
The mod type (MOD, CORE_MOD, TWEAKER, or UNKNOWN).- Always present on ForgeMods (1.7-1.12).
- Never present in all other circumstances.
Only id and group can be resolved on 1.13+.
If your argument length exceed the command line limit, you can store them in an argFile and pass the path to that file as a VM option. Each option should be separated by a new line.
-Dclaritas.argFile="./argFile.txt"
File content (abbreviated)
--libraryType
FORGE
--mcVersion
1.12
--outputFile
./output.json
--previewOutput
true
Recall, VM options are passed before -jar
. Ex. java [VM options] -jar [jarfile] [Program Arguments]
- FORGE
Note: If bytecode analysis is possible, but not required, to resolve metadata for a particular library, support may not be added.