Mcaselector Versions Save

A tool to select chunks from Minecraft worlds for deletion or export.

2.4

3 weeks ago

This release adds 1.20.5 support and fixes some bugs.

Details:

  • Updated to Java 21. The Windows Installer will download the correct version for you, but Mac and Linux users will need to download the correct JDK / JRE. The Download and Installation section in the Wiki has been updated accordingly.
  • Updated mappings for Minecraft 1.20.5 and the current 1.21 Experimental Features.
  • Added support for lz4 compressed chunks.
  • Added support for item components when reloacting chunks containing a lodestone compass.
  • Default to user home dir when no other directory exists when the "Open World" dialog is created.
  • Fixed a bug where the last directory a world was opened from was not remembered.
  • Fixed a bug where entire chunks would fail to replace blocks if they contained a section without any block data #470.
  • Fixed a bug where Sniffer's memorized locations would not be updated when relocating chunks containing Sniffers.
  • Changed the visuals of the NBT Editor to show lines instead of arrows.
  • Updated some dependencies.

2.3

3 months ago

This release adds script editors. And fixes bugs.

Details:

  • Added simple script editors for chunk filters and nbt changer.
    • Script language is Groovy.
    • Chunk filter:
      • 3 functions: before(), after(), filter(ChunkData).
      • before() and after() are executed once before and after filtering.
      • filter(ChunkData) returns a boolean to indicate whether the chunk should be selected, deleted or exported.
    • NBT Changer:
      • 3 functions: before(), after(), apply(ChunkData).
      • before() and after() are executed once before and after applying data.
      • apply(ChunkData) can apply any data to the region, poi and entity data.
  • Fixed compatibility with 1.20 chunk status filter and field changer. When filtering for a Status, both the version with the minecraft: namespace and without the namespace will be considered.
  • Fixed biome filters returning too early when palette in a section is empty.
  • Refined DeleteEntities field: now checking for the entities' DataVersion when the region doesn't exist.
  • Fixed wrong Tag access when retrieving list of entities.
  • Added "Sum selection", see https://github.com/Querz/mcaselector/pull/444. The values from an overlay can be summed based on a selection.
  • Added an update button to the menu bar that appears when a new update is available.
  • Updated 1.20 / 1.21 mappings. This also fixes a bug where grass would render as black dots (see https://github.com/Querz/mcaselector/issues/453).
  • Fixed Chunk editor rows having the wrong height, cutting off the lower pixels of the font (making underscores invisible).
  • Fixed incorrectly calculated number of selected chunks after inverting selected regions.
  • Updated licenses.
  • Updated Italian translation, see https://github.com/Querz/mcaselector/pull/427.
  • Added Hungarian translation, see https://github.com/Querz/mcaselector/pull/442.
  • Added Ukrainian translation, see https://github.com/Querz/mcaselector/pull/449.
  • Updated Chinese translation, see https://github.com/Querz/mcaselector/pull/452.

2.2.2

11 months ago

This release fixes a critical issue.

Details:

  • Fixed a critical issue that would cause MCA Selector to crash on startup when loading some overlays.

2.2.1

11 months ago

This release fixes some bugs.

Details:

  • Fixed a bug where calculating the source and target regions for swapping chunks would be wrong (see #407).
  • Fixed a bug that would cause chunks with a lot of data outside the selection to be deleted when deleting chunks based on a selection (see #416).
  • Updated supported versions in Readme.

2.2

11 months ago

This release adds some menus to make it more convenitent to open worlds, adds a new Heightmap filter and fixes a bunch of bugs.

Details:

  • Added an Open Dimension menu. This will list all dimensions of the currently opened world.
  • Added an Open recent World menu that shows recently opened worlds (in order).
  • Added a Selection filter. The parameter is a file path to a selection .csv file.
  • Added a FixHeightmaps fields for the NBT changer. This will recalculate all Heightmaps of a chunk.
  • Heightmaps are now automatically recalculated when:
    • Importing chunks with a Y-offset or a section range
    • Replacing blocks with the ReplaceBlocks field
    • Deleting sections with the DeleteSections field
  • Updated mappings for Minecraft 1.19 and 1.20.
  • It is now possible to drag-and drop a file into the text fields of the Selection, PlayerLocation and PlayerSpawn filters.
  • Switched to AWT from PNGJ to save when exporting a selection as an image. This greatly improves speed (see #388).
  • Updated Traditional Chinese translation (see #345).
  • Fixed a bug in CLI where the --fields option wasn't available (see #401).
  • Added an option in the CLI to parse command parameters in MCA Selector instead of relying on the JVM. This should fix an issue occurring with Pterodactyl where MCA Selector would fail to parse commands with quoted parameters that contained spaces. The option is --use-alternative-command-parsing and it is not recommended to use it unless you encounter this specific problem.
  • Rewrote all config code. There are now 3 tiers of configuration:
    • Global config: All Global and Processing settings
    • World config: All settings related to this world (render settings)
    • Overlays: Overlays are stored separately alongside the global config
  • All configs are now stored in json.
  • Switched to google's gson library from json.org.
  • Updated all licenses.
  • Updated the NBT library dependency.
  • Fixed a bug where min/max calculation for selection was broken in z-direction. This bug could be noticed when exporting a selection as an image.
  • Fixed a bug where the chunk filter would throw an exception when adding a new filter after deleting all filters via an empty query string.

2.1

1 year ago

This release fixes some bugs, changes custom filters and improves the height slider.

Details:

  • Changed the custom filter and the custom field changer to use Groovy instead of JavaScript to be closer to Java.
  • The input field next to the height slider now allows values up to 2047 for worlds with custom data packs that increase the maximum build height.
  • Added debugs to log what program arguments were passed to MCA Selector and how MCA Selector parsed them.
  • Fixed a bug where filters were not applied to chunks that had entities or poi data, but no region data.
  • Fixed and improved the structure filter. It now detects all kinds of combinations of Minecraft's internal structure names as vanilla structure names, with or without the minecraft: namespace.
  • Fixed a bug where chunk sections were not merged correctly (#360).
  • Removed the wiki files from the main repository and moved them to their own repository for more independent contribution.

2.0.2

1 year ago

Fixing some critical bugs and adding custom filters.

Details:

  • Added a Custom filter. This filter is basically the content of a JavaScript function returning either true or false, indicating whether the chunk should be selected or not. All chunk data can be accessed. The value region contains all region data, poi all POI data and entities all entity data. The chunk data structure is a Java CompoundTag Object of the NBT library. Example: return region.getString("Status") == "full" will be a custom version of the Status = "full" filter.
  • Added a Custom field for the NBT Changer. This works similar to the Custom filter, except that the JavaScript function doesn't have any return value. However, all changes made to the NBT structure in region, poi, and entities will be saved. Example: region.putString("Status", "empty") will be a custom version of the Status = "empty" field change.
  • (Most likely) fixed a problem where Minecraft 1.19 would freeze any world generation and saving after attempting to generate lighting in a protochunk that is adjacent to a full chunk where MCA Selector deleted some sections. MCA Selector will now reset the chunk's Status field back to features after deleting sections to force Minecraft to recalculate any lighting data in that chunk.
  • Added error handlers for all multithreaded jobs to make sure that the progress bar doesn't get stuck and to catch any uncaught exceptions.
  • Added the Wiki to this repository so people can edit it and create pull requests. The Wiki files in this folder will be synced with the wiki repository on every push to this repository.
  • Fixed a bug where CLI mode would skip saving files and then freeze the progress bar.

2.0.1

1 year ago

This update fixes some bugs.

If you encounter a bug please let me know by creating a bug report issue Here or ping me on Discord.

Changes:

  • Fixed a bug where adding a radius to a selection was throwing an NPE if the selection contained a fully selected region.
  • Fixed warning message when running CLI: WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance..
  • Fixed an issue with the --output parameter when forcing cache generation using --mode cache.
  • Added support for omitting the --zoom-level parameter in CLI cache mode. It will now generate all zoom levels when this parameter is omitted.
  • Made sure that the CLI progress bar stops when skipping the maximum.
  • Made circles and radiuses in selections more "circle-like".

2.0

1 year ago

Big update with a lot of technical changes. Also: 2.0!

If you encounter a bug please let me know by creating a bug report issue Here or ping me on Discord.

Changes:

  • Fixed a bug where entire regions would be imported when importing chunks without an offset.
  • Fixed a bug where the coordinates in the status bar would be off by one when hovering over blocks with negative coordinates.
  • Added mappings for Minecraft 1.19.
  • ReplaceBlocks now supports regular expressions to select blocks. Regular expressions need to be in single quotes. As an example, here is how to replace all blocks in a chunk with air: '.+'=minecraft:air.
  • SkyLight and BlockLight data will now be deleted when using ReplaceBlocks in the hope Minecraft recalculates those values.
  • Added an option in the long array editor to view 32-bit values.
  • Added invalid biome mapping. This "biome" can be used in Minecraft versions that still use numeric biome IDs to set the biome id to -1 which will force Minecraft to regenerate the biomes (no the terrain!).
  • The chunk editor will now automatically expand the root tag for convenience.
  • Removed File --> Open Region so people avoid the mistake of omitting the poi and entities folders when manipulating their world. The poi and entities folders can still be manually changed through the File --> Settings --> World dialog.
  • Added a dialog to choose between overwriting and merging when importing a selection.
  • Added an error message for when saving or loading a selection failed.
  • Added a flag to keep track of whether a selection has just been saved.
  • Rephrased the confirmation dialog that appears when quitting with an unsaved selection and made this dialog appear when opening a new world if necessary.
  • Clearing the cache no longer clears the selection.
  • Added more options to render images in CLI image mode.
  • Added more options to render overlays in CLI image mode.
  • Removed unused translations.
  • Implemented a new selection model that uses way less memory and should be unnoticeably faster. This should fix some bugs with inverted selections as well, such as applying a filter to an inverted selection removing the wrong chunks from the selection.
  • Switched to a new and better, more cache oriented version of the NBT library.
  • Replaced the old logging / debug system, with log4J2. The log files are now persistent and roll over into a new log file on start-up. The Print debug messages option in the Settings now enables logging of DEBUG level for the log file. Warnings and errors will always be logged to the log file. Only errors will be logged to the console.
  • Reworked the CLI code, it now uses commons-cli to validate command line arguments. Also added a --help command that prints out a manual page.
  • When specifying world folders in CLI mode, a new parameter --world (or --source-world, or --output-world, depending on the context) is now required. This option automatically searches in the provided folder for a region, poi and entities folder, while having a region folder is mandatory. Those folders can be overwritten manually by using the old --region, --poi and --entities (or --source-region, --source-poi, etc.) parameters, but they should generally not be used except in very specific use cases.
  • Changed the CLI to show an actual progress bar.
  • Switched CI from Travis to GitHub Actions. Release assets are now automatically created and uploaded to the release.
  • Cleaned up build.gradle and moved scripts to external script files.
  • Updated version to 2.0 so people don't confuse the MCA Selector version with the Minecraft version (lol). JK, there have been a LOT of changes in the background.

1.17.3

2 years ago

This update adds some new features and fixes bugs.

Details:

  • Added ForceBlend feature to the NBT Changer. This sets some values to a chunk that forces a chunk generated in 1.18 to blend with other 1.18 chunks.
  • Added PreventRetrogen field in the NBT Changer to block below zero retrogen after upgrading a world to 1.18.
  • Added an option in View to show coordinates in the map view.
  • Updated dependencies and improved build.gradle (see #306).
  • Fixed a bug where it would throw an Exception when a version file was missing in the cache (see #305).
  • Fixed a concurrency issue with the ImagePool where it would throw an ArrayIndexOutOfBoundsException.
  • Changed the text of the Import selection and Export selection to Import selection from .csv and Export selection as .csv for more clarity.
  • Fixed a bug where the biome filter and the biome field would not accept valid numeric minecraft ids anymore.
  • Decreased minimum zoom level to allow zooming in further.
  • Changed the redner height slider to be inclusive (when showing 319 it now also shows layer 319).
  • Fixed a bug where selections without a biome palette would fail to render.
  • Improved rendering by only getting a block's biome when actually needed.
  • Added debug to measure duration of image generation.
  • Fixed occasional FileNotFOundException when reading a regions last modified date (see #320).
  • Added the option to selection chunks and regions in a paint brush mode by holding the Shift key while draggin the mouse to select (see #321).
  • Fixed an error when reloading the view before selecting a world (see #322).
  • Speeded up world loading when opening large worlds and added a progress bar (see #323).
  • Fixed rare NullPointerException when filtering chunks (see #324).
  • Added a hard limit of 4 to the default value of Process threads in the settings.
  • Changed the loading animation icon in the bottom right corner to use a scheduled executor instead of busy waiting (see #336).
  • Region files that do not contain a region file header will no longer be attempted to load (see #337).
  • Fixed a resource leak if reading a config file fails (see #334).