Skip to content

Changelog

platz1de edited this page Jun 1, 2023 · 18 revisions

Changelogs

v1.0

Released on 16 May 2021

Initial release!

v1.0.1

Released on 23 May 2021

  • Fix selections being active in different levels
    • this produced problems when loading chunks
  • Fix undo in non-default levels
  • Fix move on chunk borders
  • Fix crash when editing levels depending on ItemFactory

v1.1

Released on 25 Jul 2021

New Features:

  • cylinders
    • hollow cylinders
    • cylinder brushes
  • dynamic blocks (ignore Meta if used in block comparisons)
  • center pattern
  • wall pattern
  • sides pattern

Commands:

  • Implement count command
  • Implement extinguish command
  • Implement walls command
  • Implement sides command
  • Implement status command
  • Implement cancel command
  • Implement benchmark command
  • Position commands now accept coordinates
    • Send selected coordinates with message

Bug Fixes:

  • Fix brushes activating when breaking blocks
  • Fix various problems when pasting
  • Fix problems causing a crash when undoing
  • Fix a lot of edge-cases creating problems when copying & pasting
  • Fix stacked cube being mirrored when stacking in negative direction
  • Fix stacked cube crashing when crossing chunk borders
  • Move double chests correctly

Performance Optimizations:

  • Custom serialisation
  • Implement selection splitting to more selection types
    • spheres & hollow spheres
    • cylinder & hollow cylinders
    • undo & redo
    • paste & insert
  • Wait a tick before some actions to allow the server to tick normally
  • Inject chunks directly without loading old ones first
    • decreases needed time to set Chunks by about 90%
  • Only save edited chunks & pass necessary ones between treads
    • decreases saved chunks per operation from 25 to 9

v2.0

Released on 06 Dec 2021

API4 support

Note: The syntax and function of patterns has changed, please refer to the documentation

New Features:

  • Improved Patterns
  • Support for percentage notation
  • differentiation between logical and classical patterns
  • Schematics
  • McEdit Format (until Java 1.12.2)
  • Sponge Format (Java 1.13+)
  • Block translations, converting blocks from java to bedrock
  • “hand” argument, representing the current held block
  • revert actions of other players (//undo <target>; deactivatable via config)

Commands:

  • Clipboard:
  • //loadschematic (//load) command, loading schematics from “schematics” directory in plugin_data directory
  • //saveschematic (//save) command, saving current clipboard
  • //rotate command
  • //flip command
  • //cut command
  • //noise command
  • //blockinfo command
  • //istack command

Utility Improvements:

  • New blockparser allowing use of string ids like “red_wool”
  • Legacy numeric ids are still supported
  • Inserting now ignores the same blocks as smoothing does (configurable via config)
  • Proper permission naming system
  • More tolerant pattern parser, allow use of spaces in most commands
  • //status command now shows memory consumption of edit thread
  • World generation is no longer handled differently, this allows support for custom generators depending on special properties
  • Patterns now report wrong usage directly
  • //center command is now async & undoable
  • Parameters like radius or thickness now allow use of floating point numbers

Bug Fixes:

  • Selection axe now works properly on mobile devices
  • Fix some potential data loss when passing chunk data
  • Fix some rounding faults causing selections to have unexpected behavior
  • Fix some crashes when trying to exceed world height limitations
  • Fix selection level being ignored in some cases

Performance Optimizations:

  • Clipboard & History is now saved on the editing Thread directly, saving cost of transferring data
  • Add selection contexts, reducing checked blocks for commands like //center drastically
  • A ton of other tiny improvements
  • Tiles of selections now get split into pieces like blocks do

Internal Changes:

  • Complete rewrite of task structure, switching to a request-based thread
  • Allows for way more customization of features
  • Gave Config & Message files updating scripts allowing to update to newer versions without loosing settings
  • Tracking read & written block count for edits

v2.0.1

Released on 1 Jan 2022

  • Fixed a crash occurring when switching into a previously unloaded world

v2.0.2

Released on 26 Jan 2022

  • Fixed a bug causing spheres & cylinders being cut off at bigger diameters
  • Fixed sponge (or custom saved) schematics not being offset
  • Selected area is now displayed correctly when rejoining the server

v2.0.3

Released on 25 Feb 2022

  • Fixed deletion of tiles around big editing tasks
  • Fixed some pattern usage messages not being sent

v2.1

Released on 18 Jun 2022

New Features:

  • Tile support for schematics
    • Containers including items with custom names/lores
    • Support for mobheads & shulker boxes
    • Works with java world edit
  • Flicker-free setting
    • only for smaller selections
  • Added a translation system
    • Currently supports English, German & Japanese (~ yuko fuyutsuki)
    • Help translate

Minor Features:

  • Support for plugins adding new blocks (if properly registered to pmmp)
  • Option to remap commands autocompleted by minecraft (start with thee slashes..)
  • Implemented gravity pattern
    • gravity option for brushes
  • Implemented a paste brush
  • Added a horizontal pattern
  • Implemented an embed pattern
  • Improved smoothing
    • better handling of floating objects
    • not creating any floating nature elements
    • no air pockets underwater
    • NOTE: Normal smooth pattern was removed
  • stacking / moving now gets split like all other tasks

Commands:

  • //fill command
  • //drain command
  • //overlay command
  • //line command
    • Direct line to given coordinates
    • //line find command
  • //view command
  • //builderrod command
  • //commands command
  • //pastestates command (pastes everything)
  • //wand command
    • default wooden axe still works

Utility Improvements:

  • All blocks can now be made static using # (static blocks are not counted as a group)
  • Added a center argument to //copy command
  • //replace now replaces all solid blocks by default
  • Implemented support for relative & directional coordinates (~ ~10 ~ / ^ ^10 ^)
  • Brushes now work through water & underwater
  • Leaves no longer decay when set
  • Most commands now accept directional arguments ("up", "north"...)
    • if none is given facing direction will be used
  • Brushes now save whichever item was in the hand when creating them
  • Task progress is now a lot more accurate
  • Tool cooldown can now be configured

Bug Fixes:

  • Benchmarks now actually set a 3d-checkers pattern
  • Fix a rare occasion where the thread would freeze the server
  • Fixed crashes when data couldn't be loaded
  • Hand pattern now works with all items
  • Fix crash when using non-numeric weight or weight without a pattern
  • Fixed crash when using patterns with insufficient arguments
  • Fixed wall pattern missing a side of cubes
  • Fixed thread waiting for already sent data ~ JavierLeon9966
  • Fixed a bug causing thread to repeatedly crash
  • Patterns without closing brackets now throw an error
  • Fix brushes crashing the server when created with invalid patterns
  • Fixed schematics generating with duplicate palette entries
  • Deleting the data directory now doesn't crash the server
  • Fix crash when raycasting fails

Internal Changes:

  • datafiles are now shipped with the plugin
    • full usage without an internet connection
    • downloaded files are cached to save bandwidth
  • chunks now get cached instead of being loaded repeatedly
  • Improved chunk handling by a lot
  • Most magic arguments were changed to actual parameters, improving error handling

v2.1.1

Released on 05 Aug 2022

  • Tiles are now properly removed when their blocks are replaced
  • Fixed a crash related to smoothing near world limitations

v3.0

Released on 01 Jun 2023 API5 support

New Features:

  • Improved block parser
    • Now accepts block states (full or partial, auto-completion included)
    • Full support for java block states
  • Block tags
    • Allows to affect a group of similar blocks (e.g. all logs)
    • Can be used to set random variants (//set #wool)
  • Command Flags
    • Allows to specify more options for commands (see the command usages for more information)

Minor Features:

  • Added movement related commands
    • //thru command
    • //unstuck command
    • //up command
  • Added more pasting options
    • //merge command
    • //rpaste command
    • flag for options above
  • Added generation commands for cubes
    • //cube command
    • //hcube command
  • Improved support for java <-> bedrock conversion
    • Data files are now specific for your pocketmine version
    • Improved handling of unknown blocks to allow partial conversion
    • Implemented item conversion
      • Also converts display properties (name, lore, enchantments)
    • Added support for new tile data:
      • Bells
      • Note Blocks & Jukeboxes
      • Flower Pots
      • Beds & Banners
  • New Languages
    • Vietnamese ~NhanAZ
    • Indonesian ~Kylan1940

Utility Improvements:

  • Execution Time now includes all time spent on the task
    • previously it only included the time spent setting blocks
  • Cancelling someones task now notifies them
  • Improved error handling
    • Server no longer crashes due to a world being invalid
    • Detect broken block states in config
  • All commands now accept parameters case-insensitive
  • Improved handling of utility blocks
    • Selection outlines should now show way more reliably
    • Selection outlines now show up after teleporting
    • //view block now automatically disappears when moving
  • Added option for count command to show block states
    • Use -d flag to show block states
  • Improved benchmarks
    • Added option to keep benchmarked world after completing (use -keep flag)
    • Increased benchmark size
    • Allow cancelling benchmarks

Removed features relying on old chunk loading system

  • around & horizontal pattern
  • embed pattern

Bug Fixes:

  • Fixed random patterns not working
  • Fixed brush cooldown affecting all players
  • Fixed crash when pasting tiles outside of world boundaries
  • Fixed undo of expanding tasks not being complete
  • Task results now properly report all the time (even when cancelled)
  • Fixed minor synchronization issues
  • Fixed crash when moving blocks outside of world boundaries
  • Requesting unknown blocks no longer causes invalid blocks to be placed
  • Fixed some cases where an internal EasyEdit crash would affect the main thread
  • Fix tiles being written multiple times when pasting
  • Fixed possibility for edit thread to enter a crash loop
  • Report invalid player names in commands instead of crashing
  • Fixed crash when using line command without specifying a mode
  • Fixed crash when using an empty legacy pattern
  • Fixed wall pattern being offset by two blocks in southern direction

Performance Improvements:

  • Chunks are now loaded on the fly
    • This drastically reduces the amount of time tasks take to execute
    • Allowed chunks to be executed in any order
  • Only actual needed chunks are loaded
    • e.g. when setting a large sphere, chunks outside of the sphere are no longer loaded
  • Huge improvements to performance of some specialized tasks
    • moving and stacking tasks now load chunks in a much more efficient order
    • Line tasks no longer save all blocks to be set in a list
    • Pasting now ignores empty chunks altogether
    • Cutting is now executed in a single step (Chunks no longer need to be loaded twice)
    • Loading schematics has an about 90% reduced memory footprint
      • Only the compressed schematic is loaded into memory and decompressed on the fly
  • Added some caches for frequent calculations
    • All needed block states are being loaded from the main thread on server startup
    • Loading McEdit schematics no longer loads block states every time
  • Undoing data is no longer copied for every edited piece

Internal Changes:

  • Switched to a promise based task system
    • Allows third party plugins to easily hook into task execution
  • Implemented own vector system
    • This allows for more flexibility and reliability when working around world boundaries
  • Api is now independent from player instances
  • Chunks are now edited on a one by one basis instead of splitting the selection into smaller parts