Attribute modifiers' optional "name" and "uuid" keys have been replaced with a namespaced key under "id". Old attribute modifiers will use the UUID to generate a namespaced key. (commit: 5b137ff)
Bump braces in /src/main/resources/apps.methodscript.com (#1383)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3. - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)
Villager professions, cat types, and frog types were changed from enums to interfaces. If built against these changes, they break backwards binary compatibility when invoking their methods. So reflection was needed. Used Registry where possible, but until 1.20.4 Cat.Type didn't extend Keyed and wasn't added to the Registry. (commit: 04ec9ef)
Fix byte_array endianness reset when byte_array allocates more memory
Occurred first when a `byte_array` grows to size 1024, required calling `ba_set_little_endian(true)` again after more memory was allocated as a workaround. With this commit, the endianness is preserved correctly. (commit: bf2a6fe)
Remove optional minus sign in hex/bin/oct/dec number regexes
Minus signs in front of these literals in code are handled elsewhere. Cases where this optional minus sign are present will always return in a `NumberFormatException` due to the substring calls not accounting for it. This only seems to affect `xml_ready()`, which calls the method directly. Fixes errors in core by for example: `xml_read('<a>-0xFF</a>', 'a')`. (commit: cf2aa81)
Support max hex/oct/bin literals + Fix their uncaught exceptions
- Support max 64-bit hex/oct/bin value literals, rather than only up to 63 bits. - Fix uncaught exceptions when supplying hex/oct/bin literals that do not fit 63 bits (64 bits with the above mentioned change). - Add tests for these number formats. (commit: 1190377)
Fix procedure as argument in sprintf() and lsprintf() not resolving
Fix procedure as second and third argument in `sprintf()` and `lsprintf()` respectively causing a compile error when trying to resolve the procedure during optimization.
Fixes: ``` :proc _a() { return 123; } msg(sprintf('%x', _a())); COMPILE ERROR: The function "_a" does not exist in the Java Interpreter at :Interpreter:1.45 ``` (commit: adfe452)
Fix core error creating item with non-item material
Until recently, creating an item stack with a material that is not an item type would work but act like an empty item stack when added to an inventory. Paper now validates if it's an item type on creation. This makes CH throw an exception on invalid item types, but continues to convert legacy block-only items to air. material_info() can now be used to check if a material "isItem". (commit: 8d1b498)
Fix inconsistency getting an item from a player slot
Previously when getting the item in hand, it would return an empty item stack instead of null. This was inconsistent with all other slot values, resulting in unexpected behavior and core errors in some item meta functions. To fix this inconsistent function behavior, I decided to return empty values where that would have already been a handled output, avoiding breaking any scripts where possible. This also matches the previous behavior of the most common use cases. (commit: daf8c53)
Bug affected the Persistence Network when it was configured to use a file data source (yml, json, ini, csv, xml). If a recompile is followed by garbage collection, a thread leak may occur. Setting corePoolSize to zero allows the thread to timeout, and ultimately the whole pool to be garbage collected. (commit: 300752c)