Releases: ZZZank/ProbeJS-Legacy
4.2.0: "global" resolving & config rewrite
ProbeJS Legacy 4.1.0 -> 4.2.0
"global" resolving & config rewrite
What's new?
- values added to
global
can now be scanned and exported to typings- e.g.
global.jeiRuntime
(when JEI is installed) will now have typings provided - this is enabled by default, you can also disable it in config file
- e.g.
- config system is now rewritten. Now all available configs are written to
probe-settings.json
, allowing you to change them without in-game commands. - new config system will also provide more information in config file:
- current value, with
$value
as its key - default value, with
$default
as its key - comments, with
$comment
as its key
- current value, with
- a new config option for not dumping non-public and not referenced classes, disabled by default
- make event cache smaller by not storaging event id twice
- ProbeJS Legacy will warn players when typing generations failed
- recipe doc now also apply to startup events
- binding
Types
is removed, import$Types
instead - smarter scope wrapping, more in line with how CommonJS in VSCode works
- fix an edge-case bug where
exportXXXX
will cause scope problem - fix
typeRoots
andBaseUrl
in jsconfig.json
Note: ProbeJS Legacy 4 is very different from ProbeJS Legacy 3.x and older versions, old typing files are invalid in 4.x version, see ProbeJS 7 release note and another ProbeJS 7 release note for more details. If you are unable to use 4.x, or just don't like it, 3.11.0
is the only recommended 3.x version of PJS Legacy.
Full Changelog: 4.1.0...4.2.0
4.1.0: Safer class scanning
ProbeJS Legacy 4.0.0 -> 4.1.0
Safer class scanning
What's new?
- Largely eliminates the chance of crashing the whole game due to loading critical classes too early
- Better doc for
java()
function andrequire()
functionjava()
is now marked as deprecated, please userequire()
:)
- And some internal cleanups
Note: ProbeJS Legacy 4 is very different from ProbeJS Legacy 3.x and older versions, old typing files are invalid in 4.x version, see ProbeJS 7 release note and another ProbeJS 7 release note for more details. If you are unable to use 4.x, or just don't like it, 3.11.0
is the only recommended 3.x version of PJS Legacy.
Full Changelog: 4.0.0...4.1.0
4.0.0: ProbeJS Legacy 4
A huge update, see ProbeJS 7 release note and another ProbeJS 7 release note for more details.
But of course PJS Legacy 4 will not be a one to one copy of PJS 7, exact implementations vary a lot, and there can also be differences in features.
Full Changelog: 3.10.0...4.0.0
3.11.0: The last 3.x version
3.11.0 is a patch version that fixes Rhizo remapper compatibility, because Rhizo updated its remapper again after 3.0.
Full Changelog: 3.10.0...3.11.0
3.10.0: Rhizo 3.0 support
ProbeJS Legacy 3.9.9 -> 3.10.0
Rhizo 3.0 support
What's new?
- Use a new way of detecting Remapper, to properly support Rhizo 3.0.
- ProbeJS Legacy will now warn users when Rhizo is not installed.
- not installing Rhizo can lead to problems like broken filtering for methods/fields.
- Comment handling is further improved.
- Excessive setter filtering is now removed, allowing more possible setter to be dumped.
- Methods/fields additions from user docs will now show up at the front.
- this allows manually added methods/fields to have the highest priority when being parsed.
- Internal cleanups for ProbeJS Legacy 4.0.0.
- Doc type parsing for objects and tuples.
NOTE: 4.0.0 is still under development. If you're interested in it, you can see dev note for the overall code structure of 4.0.0
Full Changelog: 3.9.9...3.10.0
3.9.9: tag dumping++ & snippet rework
ProbeJS Legacy 3.2.0 -> 3.9.9
tag dumping++ & snippet rework
What's new?
- all available tag types will now be dumped
- e.g. slurry tag dumping when you have Mekanism installed:
type slurry = "mekanism:dirty"|"mekanism:clean";
- e.g. slurry tag dumping when you have Mekanism installed:
- new snippet format
- e.g.
{some modid}.item.tag
->item_tag
- the usage of
.
in snippet is removed because.
will actually break snippets. - snippet name is now much shorter, and with modid removed. Should be more accessible.
vanillaOrder
config is removed because of this.
- e.g.
- fix multiple reference names for global class only have one applied
- an example:
Vec3d
andVec3
are linked to the same class, and now ProbeJS will provide type alias for them. declare const Vec3d = Vec3
- This was previously done by manually adding alias via raw docs, and was incomplete
- an example:
- better underscore handling for types
- impl jsconfig merging
- config values added to jsconfig will be preserved after jsconfig dumping
- e.g.
"checkJs": true
in"compilerOptions"
scope will not be removed after jsconfig dumping.
- ProbeJS Legacy will now make JS type check targeting ES6 instead of ES5.
- comment improvements
- the format of comments, actually. Comments marks at the front of each line will look much better.
- some more fail-safe for horribly malformed json file
- confusing "hybrid" type is removed
- previously used for FunctionalInterfaces type checking, but we have lambda type alias for it.
- return type of onEvent/onForgeEvent is now explicitly marked as
void
- ProbeJS Legacy will now walk types in constructors
- Some more type docs to support PonderJS better.
NOTE: Most features in this version are initially for 4.0.0, a huge rewrite. If you're interested in it, you can see dev note for the overall code structure of 4.0.0
Full Changelog: 3.2.0...3.9.9
3.2.0: Rhizo(not typo) support
ProbeJS Legacy 3.1.0 -> 3.2.0
Rhizo(not typo) support
What's new?
- Rhizo(not typo) support
- ProbeJS Legacy now supports Rhizo, which adds method/field remapper for 1.16.5
- With Rhizo, you can access methods/fields using readable MCP names like
getOpPermissionLevel()
instead of SRG names likefunc_110455_j()
- ProbeJS Legacy specially supports Rhizo's remapper, and can dump mapped MCP name for typing.
- If you're not using Rhizo, ProbeJS Legacy will automatically skip remapper accessing, so old Rhino is still compatible.
- ProbeJS Legacy will now walk type parameters of superclass/interfaces more completely.
3.1.0: better type recognizing
ProbeJS Legacy 3.0.1 -> 3.1.0
better type recognizing
What's new?
- lambda style type alias for Functional Interface
- recognize any interfaces with one and only one abstract method as Functional Interface
- fix tag snippet compiling
- improve error message, making it red, with links to Github issue page
- OnJavaMixin
- result of calling
java()
will now be touched by ProbeJS, so that next time dumping is triggered, it can be dumped.
- result of calling
- "implements" keyword support for class documents
- better line recognizing for documents
- special assignment of MaterialJS
- e.g.
type MaterialJS_ = "sponge" | "explosive" | "wool" | "ice" | "air" | "vegetable" | "clay" | "slime" | "rock" | "lava" | "leaves" | "web" | "grass" | "coral" | "cake" | "honey" | "plants" | "wood" | "dragon_egg" | "portal" | "organic" | "gourd" | "glass" | "metal" | "dirt" | "water" | "lantern" | "stone" | "sand" | "snow" | "plant" | "earth" | "iron" | "tnt" | "berry_bush" | MaterialJS;
- e.g.
- touch contents of pre-defined constants
- e.g.
global.jeiRuntime
- e.g.
- var arg support for method params
- class touching for generics in superclass/interfaces
- type hint when using PonderJS should be better now
- (try to) add underscore to documented type when possible
- generics in superclass/interfaces will now be formatted
- make method/constructor param typed
Full Changelog: 3.0.1...3.1.0
3.0.1: Fix `Internal.ItemStackJS_`
ProbeJS Legacy 3.0.0 -> 3.0.1
Fix Internal.ItemStackJS_
What's new?
- fix class assignment for ItemStackJS.
- use MCP class name instead of Official mapping class name.
- i hate inconsistent mapping, so much trouble.
- entries in
java.d.ts
are now naturally sorted. - js config is tweaked to avoid triggering probe typing when not in
kubejs/{...}_script
folder.
Full Changelog: 3.0.0...3.0.1
3.0.0: Rich display info dumping
ProbeJS Legacy 2.6.1 -> 3.0.0
Rich display info dumping
What's new?
- ProbeJS Legacy will now dump rich display informations about items, fluids, blocks, tags, and lang keys, providing rich display in VSCode when ProbeJS(VSCode Extension) is installed.
- for items, it can display:
- item id,
- localized name(or lang key if no localization is avaliable),
- whether it's block or item or crop, max stack size, and
- special infomations for tools and foods and etc.
- If you have icons exported via Icon Exporter, icons for such item can also be displayed.
- for fluids, it can display
- id,
- localized name(or lang key if no localization is avaliable),
- whether it has a fluid block, and
- whether it has a fluid bucket item.
- for lang kays, it can display:
- all valid localization under similar locale, and
en_us
- all valid localization under similar locale, and
- it's really hard to name them all, please try it by yourself.
- for items, it can display:
- config "disabled" is now replaced by "enabled", to make ProbeJS VSCode extension happy.
- Old config will be automatically upgraded.
.vscode
now will be generated at.minecraft/
folder, aka game folder, making workspace more useful.- Snippets of registries now support all avaliable registry types, e.g. potion and enchantment
- ProbeJS now fetch registries and tags from Minecraft internals, instead of relying on an external json file.
- This change prevents reloading and exporting data when
/probejs dump
is triggered, which makes dumping much much FASTER, especially on a large modded instance. - Also,
autoExport
config is removed because of this.
- This change prevents reloading and exporting data when
- Use different method filtering approaches for classes and interfaces, so we should be able to filter out duplicated methods more completely.
- Set default values for configs, so that first-time users will not get a all-disabled config
- ProbeJS Legacy now dump registries into
special.d.ts
instead ofregistries.d.ts
- More datas, including tags and platform data, will be dumped into
special.d.ts
- dumping messages are improved now, roughly showing stages of dumping.
- class
DamageSource
will now show accepted assginments in its type. E.g.type DamageSource_ = "inFire"|"lightningBolt"|"onFire"|"lava"|"hotFloor"|"inWall"|"cramming"|"drown"|"starve"|"cactus"|"fall"|"flyIntoWall"|"outOfWorld"|"generic"|"magic"|"wither"|"anvil"|"fallingBlock"|"dragonBreath"|"dryout"|"sweetBerryBush"|DamageSource;
Commit history: 2.6.1...3.0.0