This version was a long time in the making, in part due to issues with the Haxe compiler itself; now, most of those are resolved. Fabric 1.16.5-1.20.2 (+ snapshots!) as well as Forge 1.18.2-1.20.2 are now fully supported and have working builds, and the tools for developing for both have greatly improved.
Added
- Updated JVM target to be functional, and to be the default mode (to allow for improved code generation from Haxe).
- In this mode, Pickhaxe will now generate an unmapped "dev" JAR rather than a set of Java source files.
- Added the
pickhaxe runClient
commmand.- Specify a Minecraft mod loader and game version, and the game will
- Added the
pickhaxe template
command.- This acts as an alternative to the
pickhaxe init
command, allowing you to download a sample project and get started with PickHaxe immediately. - Use
pickhaxe template --list
to peruse the list of official sample projects andpickhaxe template <id>
to download one.
- This acts as an alternative to the
- Added the
--shading
and--no-shading
arguments to the Build command.- These are used to enable and disable Shading, which is a tool to relocate core classes which would otherwise have shared classpaths. Without Shading, two PickHaxe mods for Forge would conflict with each other.
- Added the
--make
argument to the Build command.- This will automatically call
pickhaxe make
with your chosen settings.
- This will automatically call
- PickHaxe project files now have the
mod-authors
andmod-contributors
tags. - Calling
trace
in Haxe now properly usesslf4j
to output a debug log.
Changed
- PickHaxe is now dependant on Haxe
5.0.0-alpha
. This is due to a long list of recent fixes made to the JVM target that enable PickHaxe to function.- Easiest way to handle this is to modify
.vscode/settings.json
and changeterminal.integrated.env.windows
to add
- Easiest way to handle this is to modify
- The
pickhaxe build
command has been improved; it now cleanly handles multiple versions of Minecraft, and runs way faster on repeat builds for the same version. - The
pickhaxe init
command now includes the.vscode/settings.json
and.gitignore
files. - Call stacks for error messages now only display with
--verbose
turned on. - Error messages for the PickHaxe tool now display an error code (
[EXCEPTION ###]
) to assist with diagnosis, and for the most part better convey the issue.
Fixed
- A large range of fixes to ensure projects generate functioning builds for Fabric and Forge.
- I am summarizing this in one line but really this is what took months of work, on-and-off.
- Fixed an issue where mod icons were not displaying. Make sure the icon is located at
resources/assets/<modid>_icon.png
so it works. - Fixed an issue where certain metadata wasn't getting put into the mod manifest.
- Fixed a bug where the wrong Parchment version would be used when using
build --make
. - Fixed an issue where builds would fail if optional tags were not included in
project.xml
.
Removed
- Removed the mapping macros, which were never used (Gradle is now used to obfuscate output instead).
Known Issues
- Any time you use a functional interface (i.e. you pass a function as an argument to another function), all parameters must be properly typed or Java will crash.