This fixes the issue where masks other than SimpleBlock masks (like Offset mask or negate mask) would not work.
The issue was caused by parseFromListInput() who would throw SuggestInputParseException if the input was not a valid block definition.
But as the parser was catching NoMatchException only, this was causing an error and the MaskFactory was broken.
Add regen
Add //history [find|restore|rollback|summary|clear]
- history commands are interactable
- inspect brush info is interactable
Commands are now logged to a searchable database
Fix some cases of id/ordinal mismatch
Should remain backwards compatible with 1.13. Removed blocks/items will
be forwarded to the "replacement" block/item. (e.g. BlockTypes.SIGN will
find OAK_SIGN on 1.14.)
They now additionally take a direction in which the simulated item usage
should be facing.
Also allow the item parser to parse "hand" and "offhand" as items, to
allow platforms with NBT item support return items with NBT (since
parsing is a slightly more complex task).
If multiple namespaces are present, suggestions will first suggest a
namespace, then once a namespace is selected, keys within that namespace.
Starting an argument with ":" will instead search across all namespaces
for matching keys.
Later registered parsers will always come before the default, ensuring
that the default parser is used when no other parser can match the input,
and that errors may be thrown by it to signify the end of the line.
All patterns now have suggestions, including recursive patterns.
Suggestions will suggest blocks and block states.
All masks now have suggestions, though mask intersections are not
yet supported due to issues with quotes strings.
EntityRemover and ItemFactory now also have completions, as well
as all RegistryConverters (though I am unsure how many are actually
used).
Also use paper's AsyncTabComplete event, if available.