- Supported versions: 1.14.4 or
>=
19w36a (1.15+)
- Basic example for commandline/shell:
Aves.exe -v 1.14.4
Description: Creates source code for 1.14.4 (by default: client only)
.
├─── javgent-standalone.jar # Deobfuscator → see https://github.com/BaseMC/javgent
├─── vineflower.jar # Decompiler → see https://github.com/Vineflower/vineflower
├─── jre # Embedded Java Runtime Environment → see https://adoptopenjdk.net/
├─── logs # Generated log files (if enabled)
└─┬─ workingDir # Main Working Directory
├─── version_manifest.json # Version Manifest (Lookup for all versions)
└─┬─ 1.14.4 # <version> Version Working Directory (here: 1.14.4)
├─┬─ raw # Raw files
│ ├─── package.json # Version-Manifest (looked up from version_manifest.json)
│ └─┬─ client # <variant> variant (here: client)
│ └── client.jar # Executable jar file (looked up from package.json)
├─┬─ mappings # Mapping files
│ └─┬─ client
│ └── client.txt # Client-Mappings (looked up from package.json)
├─┬─ patch # Generated patch files
│ └─┬─ client
│ ├── *.json # PatchFiles (generated from mapping-file: client.txt)
├─┬─ deof # Deobfuscated files
│ └─┬─ client
│ └── client.jar # Deobfuscated file (Obfuscated names, fixed stuff like: avm → Zombie)
└─┬─ output # human-readable Source-Code
└─┬─ client
├── * # SourceFiles; unzipped disassmebled source.jar (client.jar)
👉 --help
Argument | Meaning | Example |
---|---|---|
-l --logfile |
logs additionally to a logfile generated under logs |
-l |
--version |
Shows the current Aves version and does nothing else | --version Example output: Aves 1.0.7364.40087 Format: <Name> <MainVersion>.<SubVersion>.<DaysSince2000>.<SecondsSinceMidnight/2> → see also |
--genconf <value> |
only generates a json-Config file value = JSON-Config file to generate |
--genconf config.json |
-c <value> --conf <value> |
load a json-Config file value = JSON-Config file (see below) |
-c config.json (uses a file called config.json for configuration) |
-v --mcversion |
Required (if using no json file for configuration) Version that should be downloaded |
-v 1.14.4 (generates files for 1.14.4)-v LATEST (generates files for latest version) |
-j --java |
Path to java.exe (Java21+)default: path to included jre experimental: If not set, will be automatically searched in either the Environment-Variable %JAVA_HOME% (Windows) / $JAVA_HOME (Linux/Mac) or over the command where java (Windows, Linux, Mac) |
-j "C:\Program Files\Java\openjdk-21.0.2\bin\java.exe" |
-p --profiles |
Given profiles/variants, that should be used Overrides the Enabled -property in the json |
-p client server -p client |
To get more customizable profiles or templates you can use a json file as configuration.
If you want to generate a config file, use --genconf <Path> <optional:additionalParameters>
.
It's also possible to combine it with some parameters from above, e.g. -j
or -v
.
auto-generated file with --genconf config.json
{
"ResolveOverNetwork": true,
"RemoteManifestJsonURL": "https://launchermeta.mojang.com/mc/game/version_manifest.json",
"SuppressManifestDownload": "00:05:00",
"ManifestJsonFilePath": "version_manifest.json",
"TryKeepExisting": true,
"NetworkIncludeClientLibs": false,
"NetworkIncludeLogging": false,
"Version": null, // if null: must be set manually over CLI when running it next time
"VersionSrcJson": "package.json",
"VariantConfigs": [
{
"Enabled": true,
"Name": "client",
"Key": "client",
"SrcJar": "client.jar",
"MappingKey": "client_mappings",
"MappingFile": "client.txt",
"PatchFile": "client.txt",
"ExcludedComponents": [
"net/minecraft/gametest/"
],
"DeObfuscatedFile": "client.jar",
"DecompiledFile": "client.jar",
"OutputFilesDirFolder": "client"
},
{
"Enabled": false,
"Name": "server",
"Key": "server",
"SrcJar": "server.jar",
"MappingKey": "server_mappings",
"MappingFile": "server.txt",
"PatchFile": "server.txt",
"ExcludedComponents": [
"net/minecraft/gametest/",
"com/google/",
"io/netty",
"it/unimi/",
"javax/",
"joptsimple/",
"org/apache"
],
"DeObfuscatedFile": "server.jar",
"DecompiledFile": "server.jar",
"OutputFilesDirFolder": "server"
}
],
"MakeJavaCompatible": true,
"JavaExePath": "jre\\bin\\java.exe",
"Deobfuscator": null,
"DeobfuscatorTimeout": "00:05:00",
"BaseDeobfuscatorCommand": "-jar \"{Deobfuscator}\" -s \"{SrcJar}\" -m \"{PatchFile}\" -o \"{DeObfuscatedFile}\"",
"Decompiler": null,
"DecompilerTimeout": "00:30:00",
"BaseDecompilerCommand": "-jar \"{Decompiler}\" -dgs=1 -rsy=1 -lit=1 -mpm=60 \"{SrcFile}\" \"{TargetDir}\"",
"WorkingDirectory": "workingDir",
"VersionWorkingDirectory": null,
"RawDirectory": "raw",
"MappingFilesDir": "mappings",
"PatchFilesDir": "patch",
"DeObfuscatedDirectory": "deof",
"OutputDirectory": "output",
"OutputDirectoryMetaFiles": "output-meta",
"OutputDirLibs": "libs",
"OutputDirLogging": "logging"
}
If you also want to set server
to enabled (by default it isn't), use --genconf ... -p client server
👉 For more detailed description of the configuration options take a look at the documentation of the corresponding source files
You can also use a json-Configuration with some commandline arguments, e.g. if you like to use a different version.
Note that only the variants
in the .json
-file are used
Example using the json from above:
-c config.json -v 19w36a