Description
Rhizo
is an updated fork of Rhino, with new features and bugfixes implemented for originally EOL Rhino for 1.16.5.
What's new
- Remapper support!
- This allows accessing Java methods and fields using their recognizable MCP name instead of SRG name like
func_12345_ab_
- E.g.in KubeJS script, accessing
getOpPermissionLevel()
method from MinecraftServer class will require callingfunc_110455_j()
instead, but with Rhizo, you can callgetOpPermissionLevel()
directly. - ProbeJS Legacy provides special support for remapped name in ProbeJS Legacy 3.2.0, so remapped name can be dumped to provide typing support.
- Note that the original SRG name is intentionally hiddened for exposing remapped MCP name, so you might need to edit your script if you used SRG name(like func_12345_ab_) in your script.
- This allows accessing Java methods and fields using their recognizable MCP name instead of SRG name like
- Extended enum support
- enum name and enum indexes can now replace enum itself in
someMethodCall(enum)
andsomeObj.someAttr = enum
, allowing you to use enum without having to import it - special equality check for enum, for example
enum == "some_enum_name"
orenum == 1
(enum index)
- enum name and enum indexes can now replace enum itself in
- Better Java Generics support
- this allows type wrapper to be functional in more cases
- Function Rest Parameter support
- declare function like this:
function a(arg1, arg2, ...restParamHere) {}
works now
- declare function like this:
- you can iterate through Java Iterables (List for example) using JavaScript for..of loop
- Optional Chaining operator (a ?. b)
- Nullish Coalescing operator (a ?? b)
- Rhizo now supports
Object.entries(some_obj)
andObject.values(some_obj)
. - Rhizo will retain its param name when compiling, so that you can see more than just type of parameters when working with Rhizo related types, if you have doc dumped by ProbeJS Legacy.
- Fixed JSON generating for Iterable, so that when using
JSON.stringfy()
on an array or other iterable objects, all elements can be stringfied (instead of only the first one when using Rhino).
Rhizo is licensed under MPL-2.0.