* Fix the BlockInfo handling/parsing to support NEID
* Add a `/worldutils region-restore` command
* The command has two modes/options: `check` and `restore`
* It can restore chunks from a region file where the header is broken or missing.
* However it does assume that the chunks are still properly aligned to 4096 byte sectors.
* BlockStats: Disable the "is chunk not loaded" check
* Add NotEnoughIDs mod support to the block replacer (untested!!!)
* Add a `/worldutils blockremapper` command to remap region files with a `level.dat`
* This is intended for example to allow using old worlds as custom dimensions in a new world that has a different block ID map.
* Add more/better exception handling to chunk data handler methods. Fixes GH #6.
* Add command variants to process "external worlds" into the `entities` sub-command
* Add clickable chat links to output dump file names
* **IMPORTANT FIX:** Fixed the `setblock` command using an incorrect chunk location for the chunk data stream
* Added an `inspectblock` command to look at block and TileEntity NBT data that is currently saved in the chunk data on disk
* **WARNING: DO NOT USE THE `setblock` COMMAND IN THIS VERSION!**
* It uses an incorrect location for the Chunk data stream! It has been fixed in version 0.4.2
* Fixed that the new `setblock` command didn't remove old TileEntity data
* **WARNING: DO NOT USE THE `setblock` COMMAND IN THIS VERSION!**
* It uses an incorrect location for the Chunk data stream! It has been fixed in version 0.4.2
* Print the removed entries to the logger/console in the `registry remove-missing-blocks` command
* Added a `/worldutils setblock` command that (only) works in unloaded chunks
* Built against Forge `2489` (compared to the 0.3.2 release, this fixes the crash on game start due to the Forge registry changes a while back)
* Signed the JAR
* **Fix a rather serious bug in the block replace code**
* Technical: The `Add` nibble array was not removed from the chunk data when it became unnecessary (and it doesn't get updated in such cases), which could cause the replaced blocks' IDs to get shuffled, depending on what blocks are in the same chunks with the replaced blocks (i.e. whether the `Add` array became unnecessary due to the replace operation, or not).
* Add a command to run commands from files
* Add block replace sub-commands to add removed blocks (all or from a mod) to the list
* Fix modifier keys getting stuck if opening a GUI while sneaking
* Fix a missed empty ItemStack change
* Only register the input/GUI event handlers if the Chunk Wand is enabled
* **Fix a rather serious bug in the block replace code**
* Technical: The `Add` nibble array was not removed from the chunk data when it became unnecessary (and it doesn't get updated in such cases), which could cause the replaced blocks' IDs to get shuffled, depending on what blocks are in the same chunks with the replaced blocks (i.e. whether the `Add` array became unnecessary due to the replace operation, or not).
* Some Chunk Wand HUD improvements
* Fix modifier keys getting stuck
* Add a command to run commands from files
* Add block replace sub-commands to add removed blocks (all or from a mod) to the list
* Fix a missing task-already-running check in the `tileticks` command
* Fix some command usage help strings
* Move from reflection to MethodHandles, and cache reflected fields
* Added `blockreplace` and `blockreplacepairs` commands to mass-replace blocks in the entire world
* Added commands to remove or rename entities and tileentities
* Added a block registry dump command (similar to TellMe, but has a column 'Missing' indicating whether the block currently exists or is a placeholder dummy air block added by Forge)
* Added a block registry clean-up command (removes non-existing/dummy block registry entries from a `level.dat` file placed inside the `config/worldutils/` directory)
* Added a task scheduler - all commands now use it instead of running in one go
* Added a `Set Biome` mode to the Chunk Wand
* Fix getting the wrong region in certain cases in the `tileticks` removal command, which could cause some ticks to not get removed
* Add `tileticks find-invalid` and `tileticks remove-invalid` command variants