Skip to content

Releases: ZZZank/ProbeJS-Legacy

4.4.2: Registry Object Filter

07 Dec 03:17
Compare
Choose a tag to compare

ProbeJS Legacy 4.4.1 -> 4.4.2

registry objects filter

  • Registry Object Filter
    • a string regex used for filtering registry objects.
      Registry objects whose id matches this pattern will always be dumped by ProbeJS Legacy
    • by default it's set to only dump minecraft registry objects for performance
    • but noted that registry object classes might already be cached by our class cache file,
      you might need to delete .probe/classes.txt to actually see its effects
  • added brackets to JSLambdaType to prevent TS syntax error
  • mod performance threshold is decreased from 300 to 200
  • add config path hint in some messages

Full Changelog: 4.4.1...4.4.2

4.4.1: fix config

04 Dec 16:16
Compare
Choose a tag to compare

ProbeJS Legacy 4.4.0 -> 4.4.1

fix config

  • fix config value set by user cannot be read by config
  • builtin plugins are now always registered before any other plugins
  • better function formatting in global
  • reorganized file writing, it's now probably faster by reusing writer
  • the values in GLOBAL_CLASSES are now again typeof XXX only, instead a new utility type AttachJClass is added to attach JClass to result of java(...), this has no effect for users
  • primitive types charseq and character will not create redundant codes (namespace, static class) now
  • config parser for old config format is removed
  • config fullScan is replaced by Class Scanner allowing you to choose class scanner

Full Changelog: 4.4.0...4.4.1

4.2.0: "global" resolving & config rewrite

29 Aug 08:36
Compare
Choose a tag to compare

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
  • 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
  • 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 and BaseUrl 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

14 Aug 09:34
Compare
Choose a tag to compare

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 and require() function
    • java() is now marked as deprecated, please use require() :)
  • 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

07 Aug 08:42
Compare
Choose a tag to compare

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

07 Aug 08:35
ebf6d34
Compare
Choose a tag to compare

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

03 Jun 13:16
Compare
Choose a tag to compare

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

12 May 05:04
Compare
Choose a tag to compare

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";
  • 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.
  • fix multiple reference names for global class only have one applied
    • an example: Vec3d and Vec3 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
  • 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

14 Apr 13:07
Compare
Choose a tag to compare

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 like func_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

10 Apr 11:58
Compare
Choose a tag to compare

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.
  • "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;
  • touch contents of pre-defined constants
    • e.g. global.jeiRuntime
  • 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