Commit Graph

198 Commits

Author SHA1 Message Date
Jesse Boyd
52a502a1c6
Refactor confirmation 2019-11-21 06:50:37 +00:00
Jesse Boyd
144ea2ef34
Lazy tags + get / set tiles
Lazy tags means tiles/ents are not translated into the nms NBTBase until it is needed. Should be faster in cases where getFullBlock is called, but nbt is not always needed.
Commands like Copy and Paste, where the input/output are both nms worlds, can entirely bypass WorldEdit translating to and from the WorldEdit JNBT classes.
2019-11-20 03:40:52 +00:00
Jesse Boyd
60759934a3
Fix some merge issues 2019-11-20 00:11:54 +00:00
Jesse Boyd
2c9f192baf
Merge remote-tracking branch 'upstream/master' into merge 2019-11-19 21:23:47 +00:00
Kenzie Togami
fa42e40281
Limit expression thread count to processor count. 2019-10-26 16:44:23 -07:00
Kenzie Togami
b0528f157a
Improve timeout tracking for expressions 2019-10-26 16:18:59 -07:00
Jesse Boyd
d904270a3d
Update CommandUtil.java 2019-10-23 05:31:26 +01:00
Kenzie Togami
1ba02c54b7
Completely rewrite the expression parser in ANTLR. 2019-10-18 22:27:31 -07:00
MattBDev
ccd8f2c2a9 Attempt to fix command execution. 2019-10-09 20:43:28 -04:00
Kenzie Togami
0767f56711 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

(cherry picked from commit 03c0cce53e)
2019-10-07 12:57:47 -04: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
1832d08d92
Merge pull request #520 from EngineHub/feature/tool-command
Add /tool back, deprecate global tool commands
2019-09-22 13:27:43 -07:00
MattBDev
8b96cdc9a5 *
A tribute to Jesse
2019-09-20 21:52:35 -04:00
wizjany
44dc926c49 Fix console command usage. 2019-09-19 20:53:47 -04:00
MattBDev
3bcfcd3008 Fixed bug with wands and updated tests 2019-09-18 15:09:04 -04:00
MattBDev
14ed3f1d9c Remove FawePlayer and API modifications 2019-09-13 23:05:16 -04:00
Kenzie Togami
0e9fee3b60
Add /tool back, deprecate global tool commands 2019-09-08 17:46:29 -07:00
MattBDev
cafb4120ef More upstream compatibility fixes 2019-09-03 15:21:53 -04:00
Jesse Boyd
4e49d16505
fix dependencies 2019-08-26 05:45:03 +01: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
MattBDev
cbbe8b5dfa upstream changes 2019-08-15 15:24:18 -04: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
61bc012f6f
Fix source masks using EditSession instead of clipboard. (#515) 2019-08-10 11:54:22 -04:00
Kenzie Togami
f83de2a703
Fix bug with spaces at end of suggestions. 2019-08-08 16:28:00 -07:00
Kenzie Togami
f848d3114f
Re-load internal state IDs when WORLD_EDITING cap is re-loaded 2019-08-02 15:47:29 -07:00
MattBDev
ca54f8c371 Work on CLI and I forget what else 2019-07-29 10:57:28 -04:00
Kenzie Togami
76b608f90b
Fix suggestions on Bukkit for good 2019-07-27 23:31:38 -07:00
Kenzie Togami
3a5170a0e8
Potenially fix quoted string completion 2019-07-27 18:12:18 -07:00
Kenzie Togami
d134820bcb
Merge branch 'master' into fix/quoted 2019-07-27 17:41:44 -07: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
Jesse Boyd
c05d425f64
couple more compilation issues 2019-07-23 06:58:18 +10:00
Jesse Boyd
07283af614
some bindings 2019-07-22 16:02:51 +10:00
Jesse Boyd
85ebee7da7
brush settings 2019-07-20 01:29:49 +10:00
Jesse Boyd
f500b5e056
CommandContext + Confirmation
Use InjectedValueAccess instead
Fix command confirmation
2019-07-19 06:03:27 +10:00
Jesse Boyd
6e13b44f84
resolve issues with 2e67425d8131a2b1eb7ff752335bccf371801b8b 2019-07-18 20:12:23 +10:00
Jesse Boyd
68ea3d6e99
revert some changes 2019-07-17 20:50:54 +10:00
MattBDev
8108d0a936 Major command changes that don't work yet. 2019-07-16 23:44:34 -04:00
wizjany
96e2b6c5af First attempt at fixing quoted string oddities. 2019-07-04 22:01:55 -04:00
MattBDev
ffc2092d93 toggles and timeouts 2019-06-30 14:56:32 -04:00
Brokkonaut
096a9e4f9f Paintings are very special (#492)
Fixes WORLDEDIT-3429
2019-06-28 16:11:24 -04:00
wizjany
542f87b8f7 Fix infinite loop re-sizing block state internal ID array. 2019-06-28 15:18:53 -04:00
MattBDev
d0a31691e1 Small changes 2019-06-26 20:14:00 -04:00
MattBDev
a69b239848 Upstream 2019-06-25 13:07:47 -04:00
wizjany
8fcc22c21d Cleanup multiple batch usage for chunk deletion. 2019-06-22 15:01:00 -04:00
wizjany
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
wizjany
61fd44fa8c Save some RAM.
Vanilla only needs 12k~ states right now, 32k is unnecessary.
2019-06-15 20:24:47 -04:00
wizjany
0088fe79b3 Cleanup Bukkit internal id usage. 2019-06-15 17:33:17 +10:00
Kenzie Togami
27c7d488a2 Add perf. improvments for Forge 2019-06-15 17:33:17 +10:00
Matthew Miller
2571efb5c3 Few fixes for worldedit changes 2019-06-15 17:33:17 +10:00
Kenzie Togami
a3a175ab8c Initial attempt at binding state IDs 2019-06-15 17:33:17 +10:00
MattBDev
7f3c4c4828 A lot of removals, upstream merges, and maybe more. 2019-06-07 20:58:48 -04:00
MattBDev
229182aa63 Remove CUI and other cleaning 2019-06-06 18:39:51 -04:00
Kenzie Togami
d46cd78e14
Port doc printer to Kotlin, heavily improve 2019-06-05 23:26:57 -07:00
wizjany
e69aedf059 Allow clean shutdown.
Rearrange command tables.
2019-06-05 14:57:44 -04:00
wizjany
e767dd9888 Missing perm. 2019-06-05 12:31:12 -04:00
wizjany
22157f0864 Write entire perms file for easier gen.
Also fix some format issues.
2019-06-05 11:27:16 -04:00
wizjany
b7e329bc1b Better spacing for section headers. 2019-06-05 10:39:10 -04:00
wizjany
34020f7bd2 Less ugly. Makes tables for all commands and subcommands. 2019-06-05 10:23:41 -04:00
wizjany
dc380b1fb3 Ugly but working generator for rst commands. 2019-06-05 10:21:35 -04:00
wizjany
9099a17fe5 Some command refactoring. Switch usages of page args to -p flag. 2019-06-01 07:04:07 -04:00
wizjany
ec3648e521 Wrap and unwrap.
Exceptions are fun.
2019-05-29 23:15:05 -04:00
wizjany
ab1e09fdaf Give factories a default parser.
Later registered parsers will always come before the default, ensuring
that the default parser is used when no other parser can match the input,
and that errors may be thrown by it to signify the end of the line.
2019-05-28 22:55:20 -04:00
wizjany
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
Matthew Miller
4804fe64e3 Don't use a no-op suggester 2019-05-24 21:31:29 +10:00
Matthew Miller
a3ffb91917 Added suggestions to a lot of factory-related commands 2019-05-24 21:31:29 +10:00
Kenzie Togami
3173e26109
Fix //expand, improve //help 2019-05-17 22:24:31 -07:00
Kenzie Togami
e7613dd879
Stop using IAE to communicate parameter mis-use 2019-05-14 17:57:05 -07:00
Kenzie Togami
a2b67f8ddb
Re-write EventBus to be faster 2019-05-10 05:01:01 -07:00
Kenzie Togami
8a3e6a12b9 Implement suggestions for Bukkit + Sponge 2019-05-05 23:06:20 -07:00
wizjany
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
Kenzie Togami
fb4fb980e0
Condense some command packages 2019-04-30 15:03:18 -07:00
Kenzie Togami
743d7f08ab
Purge intake-like command system 2019-04-30 14:59:45 -07:00
Kenzie Togami
6255ccce38
Minor bug fixes 2019-04-28 17:27:33 -07:00
Kenzie Togami
0960f70e6b
Update to latest Piston changes 2019-04-27 03:35:44 -07:00
Kenzie Togami
7ff537138a
Merge master again 2019-04-26 01:25:42 -07:00
wizjany
526b3366b5 Add more schematic compat, cleanup. 2019-04-26 16:41:39 +10:00
Kenzie Togami
efc4ebe309 Fix 1.13 entity direction code, port old schematics 2019-04-26 16:41:39 +10:00
Kenzie Togami
853bfab022
Merge master, update to texts 2019-04-25 22:11:46 -07:00
Kenzie Togami
e07e0d10b0
Port selection commands 2019-04-23 22:58:30 -07:00
Kenzie Togami
f81ffdde0c
Port region commands 2019-04-23 18:46:46 -07:00
Kenzie Togami
31486cd473
Port generation commands 2019-04-23 10:11:54 -07:00
NotMyFault
43fec813b8 Moving some commands 2019-04-21 19:01:49 +02:00
Kenzie Togami
ac03de89cc
Work on adding converters for some arguments 2019-04-18 19:11:57 -07:00
Kenzie Togami
37c993be16
Port ClipboardCommands, update to new Key 2019-04-18 12:34:57 -07:00
Kenzie Togami
f33140b327
Port ChunkCommands, fix up injection, simplify registration 2019-04-16 23:02:23 -07:00
Kenzie Togami
267ccf2298
First attempt at integrating Piston as the only command system 2019-04-15 01:21:15 -07:00
wizjany
fa8139f4b3 Transfer Request to evaluation thread for Expressions. 2019-04-05 14:46:56 -04:00
Jesse Boyd
144215c813
Don't construct new BaseBlock 2019-04-06 01:12:57 +11:00
Jesse Boyd
7086eb8b3e
continue with merge 2019-04-03 22:28:57 +11:00
Jesse Boyd
f361619037
Merge remote-tracking branch 'upstream/master' into breaking 2019-04-03 16:53:34 +11:00
Jesse Boyd
ff67f6343f
Binding improvements
WIP towards deprecating parsers and unifying the command bindings
Allow registering dynamic bindings
- Supports nesting bindings
2019-04-01 21:35:55 +11:00
Jesse Boyd
92a7bd5e44
minor tweak for mutable vectors 2019-04-01 03:09:20 +11:00
matt
85bfd16d7c Code cleaning
Most notable change: Remove redundant type parameters and replaced with <>. This is a small step to bring us closer to upstream parity.
2019-03-25 19:55:32 -04:00
wizjany
692ba6fda3 Checkstyle. 2019-03-22 14:03:43 -04:00
wizjany
9b473cecbd Fixes and changes to forest/forestgen.
* Sync up implementations of the two commands.
* Fix generating trees in spots with replaceable blocks.
* Make message when you mistype tree-type arg more correct.

Fixes WORLDEDIT-3869.
2019-03-20 21:05:11 -04:00
Kenzie Togami
d6804737cf
Switch to SLF4J logging. 2019-03-13 19:51:48 -07:00
wizjany
de08c8b8c7
Add better control over expression timeouts. (#451)
Add better control over expression timeouts.
* //timeout command can be used to change player's current timeout.
* Config now also has a max timeout, can be bypassed with permission
* Timeout of < 0 will let expressions run indefinitely.
* Said expressions won't run on a separate thread, slightly reducing the
  overhead from context switching. For large //gen commands, for example,
  this can actually increase speed.
2019-03-06 19:58:32 -05:00
Matthew Miller
1b101740fe Use a proper registry for biomes 2019-02-16 17:27:00 +10:00
Kenzie Togami
590b7e23a9 Remove all raw usages of BSH, improve API generics 2019-02-03 05:01:39 -05:00
Matthew Miller
53308416ff Start work on modularising masks and patterns 2019-02-03 03:33:52 -05:00