Commit Graph

218 Commits

Author SHA1 Message Date
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
da0ef12239 Add Bukkit watchdog implementation. 2019-09-30 16:47:24 -04:00
8af68fc884 Initial watchdog setup. Bukkit needs adapters, everything needs testing. 2019-09-29 22:09:55 -07:00
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
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
17cfdee347 Update/remove more dead links. 2019-08-06 23:07:26 -04:00
95d5adb30c Update docs links to point to enginehub. 2019-08-06 21:49:43 -04:00
76b608f90b Fix suggestions on Bukkit for good 2019-07-27 23:31:38 -07:00
0f420f02ff Fix some load-order issues probably.
Edge cases might still exist around plugins which use WE for initial
world-gen, or in general plugins that try to access the platform
before it's ready.
2019-07-27 11:45:21 -04:00
2cc6a367c6 Move floatAt logic to AbstractPlayer, add isAllowedToFly and setFlying. 2019-07-23 22:16:26 -04:00
e504c29df6 Fix potential race condition.
I guess.
2019-07-23 21:41:39 -04:00
a65351e43e Don't load old adapters. 2019-07-19 21:19:09 -04:00
7c41949f40 Update bukkit adapters for 1.14.4. 2019-07-19 20:44:39 -04:00
3b157b67c3 Move Bukkit to JUnit 5 2019-07-15 16:38:33 -07:00
429d022752 Move Core to JUnit 5 2019-07-15 16:38:33 -07:00
ab8397e517 Migrate Bukkit to Kotlin DSL 2019-07-12 13:49:45 -07:00
19802e478c Re-write root and libs to Kotlin DSL 2019-07-12 13:49:45 -07:00
a18f26f8af Play nicer with naughty plugins. 2019-07-06 09:44:53 -04:00
625cbe5e3d Make //count take a mask. Also doc updates, perm fixes. 2019-06-30 00:38:17 -04:00
d763ab374c Re-add delchunks command (#481)
The new command now writes a json file to WorldEdit's working directory with instructions on which chunks to delete, which is read by the plugin/mod at startup and calls the ChunkDeleter.
The chunk deleter parses the json and iterates the instructions, backing up .mca files as it goes and overwriting the offset headers with 0 wherever a chunk needs to be deleted.
This allows Minecraft to reclaim the space used for that chunk, as well as forcing it to be generated from scratch next time the area is loaded.
2019-06-22 14:20:14 -04:00
0088fe79b3 Cleanup Bukkit internal id usage. 2019-06-15 17:33:17 +10:00
27c7d488a2 Add perf. improvments for Forge 2019-06-15 17:33:17 +10:00
8c17aab9c5 Clean-up some misc. parts of the code 2019-06-15 17:33:17 +10:00
dc21b4df58 This does something idk. 2019-06-15 17:33:17 +10:00
a3a175ab8c Initial attempt at binding state IDs 2019-06-15 17:33:17 +10:00
e1c191599c Implement item brushes and item NBT for bukkit.
This allows usage of `/br <apply|paint> <shape> item` and the `offhand`
syntax for item parser to use NBT.
2019-06-14 16:37:23 -04:00
213cadf093 Import cleanup, ensure gradle uses https for deps, bump deps. 2019-06-13 09:17:00 -04:00
efb7650d6f Fix some reload issues.
And some unload issues.
2019-06-11 18:02:24 -04:00
3fd661c513 Don't attempt to check unloaded world refs. 2019-06-08 11:25:36 -04:00
e3097dd0fc Use java-library to exclude some deps. 2019-06-03 23:56:34 -04:00
3df2410254 Change chunk loading method.
Behavior of loadChunk changed a lot for the worse in CB 1.14.
2019-06-02 21:56:29 -04:00
1e7c074217 Few misc command fixes. 2019-06-01 09:35:27 -04:00
59447c6ee3 Gradle sucks. 2019-05-31 13:53:28 -04:00
44ee1546b7 Apparently CB uses this. 2019-05-31 11:48:08 -04:00
4e43595c99 Fix builds maybe. 2019-05-31 11:24:38 -04:00
6ad274677f Don't require command for CUI init. 2019-05-29 23:15:06 -04:00
ec3648e521 Wrap and unwrap.
Exceptions are fun.
2019-05-29 23:15:05 -04:00
6962b2e7b6 Add comprehensive suggestions to many commands.
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.
2019-05-28 22:55:20 -04:00
871c25e1cd Initial support for 1.14.2. 2019-05-27 19:52:58 -04:00
48fb669119 Guard against reloads breaking too much. 2019-05-25 18:11:23 -04:00
7b47d9a945 Add /tracemask. (#474)
Allows setting a mask used for block traces. This allows brush tools to
pass through various materials, such as water (e.g. `/tracemask #solid`
or `/tracemask !air,water`) before starting to build.
By default, a null mask is equivalent to #existing (original behavior).

https://gfycat.com/ImmaculateFrayedCockatiel
2019-05-23 21:12:31 -04:00
b0777f6b06 Use DFUs for some additional data fixing.
Legacy mapper now uses the data fixers to upgrade blocks and item types
(e.g. signs, dyes that changed names in 1.14).
The sponge schematic reader can now attempt to use the data fixers to
upgrade blocks, block entities, biomes and entities. This has been
tested with the 1.13 -> 1.14 changes. It is yet to be seen if it will
continue to work because...
The mc edit schematic reader has code for using data fixers, but it is
currently disabled as there seem to be some issues with fixing up older
block entities.
2019-05-20 16:39:58 -04:00
334d5cfaab The "spawner|mobType" syntax once again makes functional mob spawners.
Also fix block parser context not being restricted.
2019-05-18 10:16:08 -04:00
41cfcb6d55 Use a jar for bukkit impl adapters.
120 class files is a bit much.
2019-05-14 18:34:53 -04:00
931b7ee694 Update for 1.14.1 2019-05-14 00:09:21 -04:00
f9d0d340e7 Add DFUs. Currently used by //restore. 2019-05-13 23:07:53 -04:00
5c97418cca Fix NBT list conversion in 1.14. 2019-05-13 18:49:43 -04:00
8a3e6a12b9 Implement suggestions for Bukkit + Sponge 2019-05-05 23:06:20 -07:00
acc0e7d09c Fix logging on Bukkit, align adapter versions 2019-05-05 23:06:20 -07:00
ceff17c4f7 Misc fixes.
Closes a few old youtrack issues which I don't remember because I had
like 30 tabs open, and a few other issues which I found while testing
some of those.
2019-05-05 15:15:03 -04:00