191 Commits
Author SHA1 Message Date
Lignium 716ce64194 Update WorldEdit for Sponge to API 9 (1.18.2) (#2217)
* Update WorldEdit for Sponge to API 9 (1.18.2)

* Fix SpongeTransmogrifier, switch to use native Property API

* Minor style fixes
2023-06-08 21:15:59 +10:00
Lignium b2475c7ca4 Fix some exceptions from SpongeWorld (#2218)
* Fix exception when calling SpongeWorld#setBlock with present block entity

* Fix missing block entity metadata in SpongeWorld#getFullBlock
2022-12-27 21:49:15 +10:00
Yeregorix ba8e4036e4 Fix tasks not being scheduled on Sponge (#2155) 2022-07-25 21:05:07 +10:00
Yeregorix 8fee9bdd2c Fix Sponge rotation adapter 2022-07-14 09:49:43 -07:00
Maddy Miller c515eb5f26 Cache properties to reduce startup memory (#2103)
* Cache properties to reduce startup memory

* Apply PR review notes

* Remove import
2022-06-04 16:30:23 +10:00
Maddy Miller c83f6ecd88 Play around with SpongeForge (#2107) 2022-06-04 16:10:50 +10:00
Octavia Togami 8ddd31797c Fix fastutil on sponge (#2099)
VG excludes the wrong version, PR has been made
2022-05-22 17:02:35 +10:00
wizjany 027a6078f9 Revert "Fix sponge."
This reverts commit 677ce55a92.
2022-03-18 09:00:57 -04:00
wizjany 677ce55a92 Fix sponge. 2022-03-18 08:33:48 -04:00
wizjanyandRed_Epicness e715ccc3b4 Fix passenger entity saving and loading (#2058)
* Fix incorrect saving and subsequent loading of passenger entities in vehicles.

Originally from https://github.com/EngineHub/WorldEdit/issues/1763#issuecomment-1062429891.

Co-authored-by: wizjany <wizjany@gmail.com>

* Port to Fabric/Forge.

Rewrite in Sponge to use EntityArchetype.
Sponge is untested because WE doesn't properly build/run on it right now apparently?

* NBT Constants.

Co-authored-by: Red_Epicness <red.epicness@icloud.com>
2022-03-18 14:33:35 +10:00
Maddy Miller 30e1601489 Apply update flag on later change (#2037)
* Apply update flag on later change

* Checkstyle

* Move entry point for UPDATE
2022-03-05 03:32:03 +00:00
Octavia TogamiandMadeline Miller fb50324767 Update worldedit-sponge to API 8 (#1771)
* Sponge 8 work

Remove text adapter

Debugging the bugs out

* Resolve compiling for latest Sponge

* Update for latest SpongeAPI 8 snapshots

* Fixed a few issues with Sponge8 WorldEdit. Command completions are still broken.

* Resolve completions

* Bump to Sponge API 8 release

* Remove VALIDATION as a supported SideEffect on Sponge for now.

* Append Sponge API version to archive name

* Implement regeneration on Sponge; currently hangs due to a Sponge bug.

* Fixed typo

* Fix commands without permissions and version handling

* Make changes from PR comments and re-add bStats

Co-authored-by: Madeline Miller <mnmiller1@me.com>
2022-01-29 18:02:42 +00:00
wizjany 20c42b51c8 Extract log4j version to Versions.kt.
Also bump to match underlying platform versions to resolve runtime
version mismatches.
2021-12-12 18:49:32 -05:00
Octavia Togami bf78034628 Drop enforcedPlatform to platform 2021-06-11 14:01:04 -07:00
Octavia Togami 7676a2d54c [Fabric] Update to 1.17 (#1772) 2021-06-08 19:18:24 -07:00
Octavia Togami 95160027d9 Register platforms and commands in a more proper way (#1766)
* Register platforms and commands in a more proper way

Platforms are now register "on load"/initialize/etc., and preferreds are
chosen just prior to command registration events. This allows us to
properly hook in to reload. Additionally, we now have the capability to
reload data with /minecraft:reload, though this is not yet implemented.

* Correct javadocs on queryCapability

* Flatten BukkitImplAdapter Lifecycled
2021-06-04 17:12:23 -07:00
Octavia Togami 609c7b8cc4 Scrapped Logging Framework 4 Java (#1715)
* The scramble is complete

* Fix version decl for Bukkit Log4J

* Swap out to a compatibility layer for LogManager

Slightly slower, but compatible across all Java versions

* Piston released with SL4JF removal

* Clean up declarations a bit
2021-03-28 20:35:48 -07:00
Matthew MillerandOctavia Togami d3810865c8 Show a message with install instructions when running the jar file (#1682)
* Show a message with install instructions when running the jar file

* Typo

* Fixed checkstyle issue

* Slightly modify message to adapt to the type of install

* Clean up the display code a lot

* Allow line breaks before semi

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
2021-02-22 22:05:23 -08:00
Octavia Togami 9534a9cfce Update so many dependencies, merge Forge/Fabric for final jar (#1651)
* Update so many dependencies, merge Forge/Fabric for final

* Clean up contrib docs for Gradle change

* Fix setting compat flags while using toolchain

* Fix deprecation in doc printer

* Restore proper forge JAR name

* Add dist classifier for mod jar

* Properly relocate new bStats

* Fix jar used from fabric

* Fix fabric bom

* Dup the shaded classes for consistency

* Sync Forge/Fabric log4j versions, de-dup

* Downgrade both log4j. This will work

* Update some plugins as well

* Drop the fabric force stuff

* Use duplicate strategy to directly merge jar
2021-01-25 02:14:09 -08:00
zml 0036e06f89 Alter the CUI lifecycle to be more consistent and reliable (#1633)
* Alter the CUI lifecycle to be more consistent

This handling reduces the platform-specific behaviour of CUI handshakes,
and ensures that the appropriate state is maintained when a client
connection ends but a LocalSession remains cached.

* Apply review suggestions

* fabric: Update to new networking API

* session: Correct field grouping for cui attempts
2021-01-16 13:07:29 +10:00
Octavia Togami 4999018f36 Lower-case wand items on retrival from the config 2020-11-09 18:57:54 -08:00
Octavia Togami bc64990e7e Move to packaged translations (#1555)
* Move to packaged translations

* License that file

* Fix some checkstyle too

* Support reloading translation files

* Add missing dash for unpack directory

* Mark unpacked zips as owner-only
2020-10-08 17:42:23 -07:00
Lewis B beb784e0ff Add -w flag to butcher for water mobs (#1548)
* Add -w flag to butcher for water mobs

* PR feedback
2020-10-05 13:50:20 +10:00
Matthew Miller 26d8306833 Fixed snow being placed through slabs (#1541)
* Added a method to check whether a block can be placed at a location

* Make the snow system only place at locations that it can by game logic

* Make canPlaceAt a default method

* Fixed PR comments

* Use a World field

* Just throw directly

* IAE makes more sense

* Remove unused import

* Check for editsession without a world
2020-10-02 16:53:05 +10:00
Octavia Togami f2ce020da0 Officially propagate GPL downwards to all files 2020-08-13 21:06:39 -07:00
Matthew MillerandOctavia Togami 0a9fa869c9 Fixed an issue where upwards resolved schematics would break schem list (#1481)
* Fixed an issue where upwards resolved schematics would break schem list

* Missed diff

* PR changes

* Further fixes

* Improve sorting logic

* Pass in comparator rather than using sort type

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
2020-08-13 18:01:37 +10:00
dordsor21 c4abc9a247 Allow regeneration to accept Extents instead of EditSessions.
Allows for custom Extents to be parsed to regen, and for clipboard regeneration, etc whilst still allowing EditSessions
2020-07-26 13:22:26 +10:00
Octavia Togami eb52afa296 Create a brand new checkstyle config
And also apply it!
2020-07-07 20:38:57 -07:00
Octavia Togami 781abd511d Add final to many fields 2020-07-07 20:38:57 -07:00
Matthew Miller 9b4bfbed2d Localise WorldEditException and error handling (#1393)
* Localise the ExceptionConverter

* Further work on localising exceptions

* Everything but input parsing is now localised

* Finish making errors localisable

* Fixed a few notes from review

* Fixed another spot

* More changes

* Specialise parser errors
2020-07-05 14:57:13 +10:00
Octavia Togamiandwizjany bf6cd1ea08 Regeneration Options (#1415)
* Add RegenOptions to the API

* Integerate regen options into //regen

* Rename isRegenBiomes to shouldRegenBiomes

* Go through the EditSession for setting biomes

* Respect 3D biome support in regen

* Add RegenOptions implementation for 1.16 Bukkit adapter.

Co-authored-by: wizjany <wizjany@gmail.com>
2020-07-03 22:17:34 -07:00
Octavia Togami 71e104bcb1 Replace setPosition with trySetPosition (#1403)
Allows cancellation information to be fed back into the ascend/descend
algorithms.
2020-07-01 08:24:58 -07:00
Octavia Togami 8aa034c78f Fix or suppress deprecation warnings in most code (#1404)
Didn't touch commands or some of Sponge
2020-07-01 08:24:42 -07:00
Matthew MillerandOctavia Togami f5e36ed8a8 Add 3D biomes support (Adds #1358) (#1361)
* Initial work on 3D biomes. Not implemented for Bukkit, and history is unfinished

* Further implement 3D Biomes. It's now usable on Forge/Fabric

* Fix a few cases of apply. Gotta fix the deprecated methods at some point

* Add Bukkit support

* Add clipboard support. Schematics are still not great, but the Sponge schem format doesn't support this yet.

* Fix the last of the issues

* Fixed up review comments

* Fixed review notes

* Simplify

* max is inclusive

* Standardize non-abstract compatibility handling

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
2020-06-22 09:25:49 +10:00
Octavia Togami cfd26253b6 Names via Translation (#1268)
* Deprecate BiomeRegistry, etc.

* Update some libraries, e.g. text

* Move to new translation renderer

* Revert "Deprecate BiomeRegistry, etc."

This reverts commit 59a5d6c92aec52739a8dc68ac3d23898af7593dd.

This was not a good idea for potential mod shenanigans.

* Move BiomeData#getName to BiomeRegistry, use i18n

* Use getRichName instead of getName

* Implement getRichName for NullBiomeRegistry

* Add getRichName for blocks

* Relocate net.kyori.minecraft

* Update adapters for getRichBlockName

* Add getRichName for items

* Update adapters for getRichItemName

* Update adapters JAR for merge
2020-03-23 15:47:27 -07:00
Octavia Togami 1c6b1b3848 Merge master 2020-03-22 20:41:03 -07:00
Matthew Miller 865c3a24d2 Replace fast mode with a side effect system, with fine-grained control (#547)
* Speed up initial change buffering by removing streams and optional wrapping

* Bump the adapters for an experimental performance boost (Purely Bukkit 1.15.2)

* Bump adapters for fixes

* Bump adapters for further performance boosts

* Migrate fast mode to a BlockUpdates section, allowing fine-grained control

* Rename to SideEffect and clean up usage of the set

* Implement a 'usable' state

* Add a test command to demonstrate SideEffects. This is non-final

* Move //sideeffect into //fast

* Improve the box for //fast

* Switch to a system that includes "delayed" as a mode

* Remove the concept of configurable side effects, all are configurable. And each platform specifies what it supports.

* Implement side effects on other platforms (and spigot versions)

* Only use the side effects from the world editing platform

* Update from review

* Rename WorldApplyingExtent to SideEffectExtent

* More review fixes

* Update the World#applySideEffects return type to return the applied side effects

* Fixed requested changes

* Fixed checkstyle

* Improve setBlock javadocs

* Further improve

* Switch parameter name

* Fixed typo in translation key

* Temporarily remove DELAYED

* static final

* Side Effects = 7.2.0 snapshot
2020-03-08 16:09:36 +10:00
Octavia Togami 947775b5e5 Read WE version from manifest ourselves 2020-02-10 17:11:08 -08:00
Matthew Miller f111f6bfce Significantly improve performance in ChunkBatchingExtent and other buffering extents (#550)
* Re-apply non-adapter performance boosts in separate PR

* Improved deprecation handling

* Move TODO
2020-02-07 20:28:14 +10:00
Matthew Miller 8e55131a2f Bump bStats version and update 7.1.0 changelog 2020-01-24 22:38:52 +10:00
Octavia Togami 18a55bc14e Add new experimental snapshot API (#524)
* Add new experimental snapshot API

This API intends to replace the existing snapshot API in WorldEdit 8.

It is currently experimental, and the old API is soft-deprecated. Once
it is determined to be stable, the old API will be removed and replaced
with this new one.

It uses TrueVFS instead of TrueZIP, due to the latter's status as
matinence-only, and the face that TrueVFS is NIO-FileSystem compatible,
allowing us to integrate it with NIO's native zipfs. The TrueVFS system
does encompass multiple modules, but users and download + install
truevfs-profile-default as a fatjar. We depend on that profile to show
this as the intended solution.

* Port commands to experimental snapshots. Legacy ones are in sibling classes.

* Add many tests, fix bugs

* Clean up imports

* Verify sorting behaviors, fix bugs

* Add license to test

* Add support for DIM region folders

* Fix tests for Windows paths

* Rewrite tests for even more coverage, fix bugs

* Clean up naming on tests

* Add test for legacy format

* Stop trying to abuse `file://`, use `snapfs:` instead

* Simplify iterPaths

* Use File.separator in FS snap tests

* Fix some bugs from T9N PR (#538)

* Use printInfo/printError to keep colors right

* Escape quotes before they go in the map

* I18N-ify new snapshot code
2019-12-16 21:00:12 +10:00
Octavia Togami 05db204679 Merge master 2019-12-09 12:13:25 -08:00
Matthew Miller 679b00bde6 feat(i18n): add support for translatable text replacement (#478)
* Rebase translation work for easier rebasing

* Fixed gradle setup

* Further translations

* Add a few more strings

* Remove support for pluralisation to match Minecraft and alleviate issues with over-complexity

* Further translations

* Added a tonne more translations

* Added the remaining translation nodes

* When custom files are found, use the base files for default values.

* Only download translations if a key is provided

* Fixed typo in brush radius too large

* Allow translation files to be missing entries, and use the english version in place.

* Fixed issues brought up in review

* Reverse translation order (#533)

* Fix a lot of PR comments

* Add JD to the Operation warned field due to no private fields in J8

* Only warn when there are messages
2019-12-09 12:46:18 +10:00
Kenzie Togami 03c0cce53e Update to Piston 0.5.2 + Doctools/Deprecation improvements (#523)
* Update to Piston 0.5.2

* [Doctools] Fix output, be verbose about deprecations

* Improve deprecation system, doctools output
2019-10-05 19:06:18 +10:00
Kenzie Togami 0898adac99 Add defaultVerticalHeight to other configurations 2019-09-09 03:47:32 -07:00
Matthew Miller 0620478763 feature(cli): Added a CLI version of WorldEdit, and allowed most commands to be run from console (#508)
* Re-do commits to avoid awful rebase

* You can load and save a schematic file now. Still gotta setup ability to use commands as a console actor.

* Add a world override concept to LocalSession, and allow a lot more commands to be performed by actors.

* Fixed commands, and set the loaded schematic as the world override in CLI

* Properly load tags

* Added 1.14.4 data values

* Allow a majority of commands to be performed by the console.

* Fixed a lot of PR requested changes

* Added a Locatable interface and use that for getting the location of the player in commands.

* Added script support. Currently requires a newline at the end of the script.

* Shade everything to allow this to run locally - should probably minimize this to an extent later.

* Actually hook up the version

* Added a //world command to set the override

* Fixed a missed checkstyle issue

* Added CommandBlock support to Bukkit

* Make command block support configurable

* Minor cleanup and implementing a few of the final functions

* Fixed most issues from PR

* Improve UX, saving is now automatic and unknown command messages show

* Better save docs and support any clipboard format

* Include the entire formats list

* Arrays.copyOf

* Clear the world override if the selector is called on another world.

* Update logging extent to allow basic logging with non-player actors
2019-08-25 19:58:28 +10:00
Kenzie Togami f472c20bfb Memory optimizations (#505)
* Remove LocatedBlock overhead in LBL map

* Add new space-efficient block map, with thourough testing

* Drop ordering property, add full insertion test

* Add licenses

* Fix mocked platform conflicts

* Disable full block map testing for faster builds

* Re-implement BlockMap with fastutil maps

* Re-write chunk batching to be memory efficient

* Make MultiStageReorder use BlockMap

* Increase LBL load factor, fix long-pack limit detection

* Fix infinite loop in chunk batching

* Save memory in history by cleaning up MSR

* Re-implement LocatedBlockList in BlockMap

* Fix data race with BlockType lazy fields

* Make IDs ALWAYS present, only runtime-consistent. Use for memory efficiency in BlockMap

* Remap inner structure of BlockMap for smaller maps

* Remove containedBlocks fields, not very efficient

* Fix minor de-optimizing bug in stage reorder

* Make long packed y signed

* Add extended Y limit configuration option

* Add licenses

* Store 3 ints for unoptimized BV list

* Add final to BitMath

* Correct int-cast for long-packing
2019-08-12 22:06:40 +10:00
wizjany 2cc6a367c6 Move floatAt logic to AbstractPlayer, add isAllowedToFly and setFlying. 2019-07-23 22:16:26 -04:00
wizjany 8545417b3a Fix error in /up when used out of bounds.
Also reduce calls to Entity#getLocation() all over since it's
more expensive than it needs to be (adapts world/vector every time).
2019-07-23 22:16:26 -04:00
Kenzie Togami 5a14693aa9 Migrate Sponge, Libs to Kotlin DSL 2019-07-12 13:49:45 -07:00