Commit Graph

751 Commits

Author SHA1 Message Date
wizjany
e0814cfe3c Reinstate localized name lookup on BlockType. 2020-05-02 13:26:55 -04:00
Octavia Togami
ba91dff134
Update to use the new runtime rhino JAR 2020-04-24 18:49:11 -07:00
Octavia Togami
9a11c57846
Correct typo in region selector docs 2020-04-24 14:55:07 -07:00
chickeneer
53ac21aa87
Add compatibility handlers for beds and banners for MCEdit Schematics (#561)
* Add compatibility handlers for beds and banners

* IntTag#getValue does not return null so do not check that
2020-04-23 18:08:59 -07:00
Octavia Togami
a02458b757
Allow craftscripts to exit early + cleanly (#1308)
* Allow craftscripts to exit early + cleanly

* Add de-facto standard javadoc tags
2020-04-20 18:15:51 -07:00
wizjany
df3b37363f Move expression source string to the expression class. 2020-04-19 16:12:17 -04:00
wizjany
fa0618d9e3 Add makeShape Expression overload for consistency. 2020-04-19 16:12:17 -04:00
wizjany
cd9a45bd6b Pre-compile the expression used in the deform brush.
This lets the command fail early, rather than throwing wrapped runtime
exceptions on every brush usage.
2020-04-19 16:12:17 -04:00
Octavia Togami
83438644dc
Make the null-result case visible to the user
Fixes #1303.
2020-04-18 13:04:03 -07:00
wizjany
d260185183 Don't suggest default namespaces.
This just ends adding a lot of `minecraft:` to otherwise short commands.
2020-04-16 09:51:29 -04:00
Octavia Togami
8c83fd6223
Limit direction names (#1293)
* Limit direction names

This reduces interference with block arguments, since none of these are
block names now.

* Drop other dir comments
2020-04-11 23:38:44 -07:00
Octavia Togami
dc56b602c0
Update Piston to fix bugs
Closes #1292 via Piston fixes.
2020-04-11 19:38:47 -07:00
Octavia Togami
56d0c6e7fd
Optimize poly region vertex add, fix Edge 2020-04-05 12:53:44 -07:00
Octavia Togami
a600266d41
Properly close all files when dealing with archives (#1274)
* Properly close all files when dealing with archives

* Move file utils to SafeFiles class

* Licenses
2020-04-05 09:17:26 -07:00
wizjany
439d6c811b Re-add block/item localized name methods to registries.
WorldGuard uses these still.
2020-04-01 10:14:57 -04:00
Octavia Togami
bb013aa89b
Use custom radix sort for ordering blocks (#1277)
* Use custom radix sort for ordering blocks

* Licenses :P

* Fix ordering, add test for it

* Grant Gradle more memory (thx Fabric)

* Increase (?) / Specify memory for core tests

* Many attempts at fixing OOM
2020-03-31 18:13:32 -07:00
Octavia Togami
404feef52e
Add height part to expand vert command
Fixes #1275
2020-03-25 16:51:00 -07:00
wizjany
4bbdc059ed Disable snapshot-fs test for now. 2020-03-24 14:08:40 -04:00
wizjany
eb8fcdcd5b Make //size text color consistent. 2020-03-23 18:54:38 -04: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
2f4c44f80c
Validate placed blocks / WNA (#1263)
* Optionally validate placed blocks

This allows re-connection of fences, chests, panes, etc.; removal of
blocks in invalid states; and more!

The Connections side-effect already did this for neighbors, so this is
now renamed to Validation for accuracy, and left on by default.

This also fixes some inconsistencies between the Fabric & Forge
markAndNotifyBlock function.

* Add forge comment to fabric world

* Add WorldNativeAccess common logic

* Add Fabric WNA

* Add Bukkit WNA for adapters

* Fix imports for new Fabric mappings

* Pass raw world ref to Bukkit adapters

* Remove client-only block update call

We always assume a server world.

* Allow WNA impls to inspect side-effects

* Update adapters for WNA

* Licenses

* Fix adapter JAR

* Generify EVENTS side effect

* Update adapters for EVENTS change
2020-03-22 21:02:04 -07:00
Octavia Togami
1c6b1b3848
Merge master 2020-03-22 20:41:03 -07:00
Octavia Togami
e6d5950b59
Nest snapshot test dbs in a root temp folder
Allows us to clean it all up easily.

Closes #558.
2020-03-22 01:12:20 -07:00
wizjany
b4d2db3dee
Allow expand to be used by console. (#1264)
* Allow expand to be used by console.

Also fix direction converter requiring a player.

* Revert exception.
2020-03-20 11:36:54 +10:00
Octavia Togami
1ca94fa244
Correct capitalization on nav wand i18n 2020-03-18 01:42:06 -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
02da42f90b
Fix exponent parsing, remove impossible (?) case 2020-02-25 17:16:00 -08:00
Octavia Togami
b8130eb5dd
Cover even more cases 2020-02-25 17:11:06 -08:00
Octavia Togami
3dbaae79cd
Cover many more ops 2020-02-25 16:35:43 -08:00
Octavia Togami
00c7d3a157
Fix not operator 2020-02-25 16:22:55 -08:00
Octavia Togami
0f787a89b8
Fix pre- and post- ops 2020-02-25 16:20:21 -08:00
Octavia Togami
42e515f435
Remove non-valued return 2020-02-25 16:13:44 -08:00
Octavia Togami
910c89be65
Extract common simple test case method 2020-02-24 00:45:57 -08:00
Octavia Togami
f8be17d362
Fix bug introduced in return-handling refactor 2020-02-24 00:39:22 -08:00
Octavia Togami
cbd686548f
Add more expression test cases, fix bugs
Also added a few more comments + reorganized exceptions that are
invoke-internal.
2020-02-24 00:33:49 -08:00
Octavia Togami
b9ba337f38
Make testEvaluate more compact 2020-02-23 17:40:11 -08:00
Octavia Togami
ae1e68e10f
Do not try crowdin if using offline mode 2020-02-23 17:39:30 -08:00
Matthew Miller
e476be1186
Tick watchdog by default (#555) 2020-02-21 18:18:08 +10:00
Octavia Togami
6bc1d4647c
Expression Goodie Bag (#553)
* Remove async expression eval. Implement timeout inline

* Remove static state from expr functions

* Remove now-unused TL stack

* Rework some expr handles
2020-02-21 18:17:49 +10:00
Matthew Miller
be30a94be5 Replaced the "please report this" message in the legacy schematic loader 2020-02-16 17:49:04 +10:00
Octavia Togami
947775b5e5
Read WE version from manifest ourselves 2020-02-10 17:11:08 -08:00
Octavia Togami
3ed190268c
Lower load factors in BlockMap
We can sacrifice these tiny amounts of memory for large CPU gains.
2020-02-09 15:25:43 -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
Octavia Togami
92eab931ea
[Forge] Include all -core resources, for all langs 2020-02-03 21:26:13 -08:00
Octavia Togami
0324196b5d
[Forge, Fabric] Update to latest 1.15.2
Some bits of the Fabric 1.15.2 update were moved into common code.

This is NOT ready yet, tree features still need to be updated. Mappings
are comitted, just waiting for them to come out.
2020-01-31 14:04:58 -08:00
Octavia Togami
202f98699b
Improve speed of BSIA, clean up Int2BaseBlockMap (#548)
* Improve speed of BSIA, clean up Int2BaseBlock

* Fix some compile errors / bugs
2020-01-30 20:36:49 +10:00
Octavia Togami
7384b69734
Generify BlockMap 2020-01-30 01:05:31 -08:00
Octavia Togami
624b3a449b
Always use UTF-8 for loading translations 2020-01-29 04:31:35 -08:00
Matthew Miller
d7089a65a7 Bump dataversion for WorldEdit CLI, and minify all of the JSON files 2020-01-24 21:10:04 +10:00
wizjany
a398c86d98 Make missing Bukkit impl adapter more user-friendly.
* 100s of "Unknown property" warnings in log aren't useful, only drown
  out the actual adapter warning
* Most people aren't looking at their console anyway, so hijack the old
  Actor#tellVersion to warn of missing adapters.
2020-01-07 18:05:52 -05:00
wizjany
da98b5fe15 Remove unused EditSessionHolder class. 2020-01-07 18:05:35 -05:00
wizjany
993e49b1ab Expose legacy data value. (#542)
Fixes WORLDEDIT-4010.
2020-01-04 16:32:53 +10:00
Matthew Miller
5fb91c6269 Fixed redone translation string 2020-01-04 12:42:13 +10:00
Octavia Togami
39d3ad0e77
Merge pull request #541 from EngineHub/feature/item-registry-enchancements
Add a ItemMaterial for use by CraftBook & CommandBook
2020-01-02 11:08:34 -08:00
Octavia Togami
b0ba9e0952
Move condition to Passthrough constructors 2020-01-02 11:07:43 -08:00
Octavia Togami
7b2f4ea184
Merge pull request #530 from EngineHub/feature/expressions-part-2
Expressions Part 2: Compilation
2020-01-01 11:09:59 -08:00
Octavia Togami
0e37196036
Drop a bunch of static method imports 2020-01-01 10:34:51 -08:00
Wyatt Childers
1c3277648f Add a ItemMaterial for use by CraftBook & CommandBook 2019-12-30 22:48:27 -05:00
Octavia Togami
ad55387a40
Deprecate entire old commands package 2019-12-19 21:59:31 -08:00
Octavia Togami
7039dc8306 Clean up handling of sel/nav wand tool (#540) 2019-12-18 19:11:43 +10:00
wizjany
2fb8bc627f Don't leave 0b files when attempting to save old .schematics.
Also fix messages/error propagation.
2019-12-16 14:06:15 -05: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
Matthew Miller
42cf205311 Added 1.15 bundled data 2019-12-11 21:13:51 +10:00
Octavia Togami
9ede68deb5
Increase expr test timeout to 1 second 2019-12-10 18:35:17 -08:00
wizjany
28dbf19182 Bypass bukkit api for regeneration.
Done in impl adapter now.
2019-12-10 18:21:27 -05:00
Octavia Togami
4360159965
Remove old EvaluatingVisitor 2019-12-09 12:31:32 -08:00
Octavia Togami
b291159cbd
Remove some static imports 2019-12-09 12:20:06 -08:00
Octavia Togami
05db204679
Merge master 2019-12-09 12:13:25 -08:00
Octavia Togami
7831eedff7 Fix some bugs from T9N PR (#538)
* Use printInfo/printError to keep colors right

* Escape quotes before they go in the map
2019-12-09 18:16:40 +10: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
Octavia Togami
d132f08bc4
Merge pull request #536 from enveeed/feature/line-convex-selection
Add //line support for convex polyhedral selections
2019-12-06 23:21:17 -08:00
Octavia Togami
c93fb82da1
Use ImmutableList instead of ArrayList, cleanup logic 2019-12-06 23:09:27 -08:00
Matthew Miller
0354edc145
Use commandblock name as session key (#535)
* Use commandblock name as session key

* Use a UUIDv3 with a given session prefix

* Use a UUIDv3

* Prefix the UUID and use a charset

* Fixed a few issues with using CommandBlocks

* Remove /worldedit:/ workaround
2019-12-07 16:27:04 +10:00
enveeed
275ecb05a5 restored command description to be more close to the original 2019-12-06 20:51:16 +01:00
enveeed
c5a07388a5 added overload to avoid breaking method signature for drawLine() 2019-12-06 18:47:39 +01:00
enveeed
f22f5332aa fixed changes to be within code conventions 2019-12-06 14:34:09 +01:00
enveeed
093902b0c1 added //line support for convex polyhedral selections 2019-12-06 13:29:46 +01:00
MicleBrick
b425649df0 Fix legacy import (#534)
* always use data fixer

* undo reformat

* fixer -> no fixer -> fail

* extract variable
2019-11-27 20:29:30 -08:00
Brokkonaut
89bc664f69 Fix flipping of chests and stairs (#526)
* Fix flipping of chests and stairs

* Check if the new property value is valid before updating

* Only for horizontal flips double chests/stairs should be modified
2019-11-12 21:09:28 +10:00
wizjany
fc5c625f02 Add -n flag to //paste to select without pasting. 2019-11-09 20:58:47 -05:00
wizjany
2b1a7ed943 Make lrbuild tool use history. 2019-11-09 20:58:47 -05:00
wizjany
e5fe051340 Use persistent leaves for garden patch generator (/pumpkins) 2019-11-09 20:58:39 -05:00
wizjany
575463a8e9 Make a few more selection commands usable from console. 2019-11-09 11:31:51 -05:00
Kenzie Togami
cd9414631a
Remove unused asm dependency 2019-11-07 16:33:20 -08:00
Kenzie Togami
d9e74f52dc
Add licenses 2019-11-07 16:31:08 -08:00
Kenzie Togami
1fbb7a70f9
Merge pull request #527 from EngineHub/feature/extended-expressions
Expressions Part 1: ANTLR
2019-11-07 16:23:43 -08:00
Pieter12345
bf3b91aaa7
Fix stack command diagonal shifting with -s flag
Fix `//stack -s [num]` shifting the selection to unexpected places. This fix causes `//stack -s [num]` behavior in diagonal directions to be consistent with the behavior in non-diagonal directions, which means that the last stack will be selected.
2019-10-28 15:02:24 +01:00
Kenzie Togami
a2ec05915b
Remove extra stack trace print 2019-10-27 15:16:38 -07:00
Kenzie Togami
064a38ece5
Write an alternative expression compiler using MethodHandles 2019-10-27 15:16:38 -07:00
Kenzie Togami
257988b149
Add tests for expressions listed on the docs 2019-10-27 15:15:59 -07:00
Kenzie Togami
777b132a04
Catch small edge-case in parser 2019-10-27 12:58:32 -07:00
Kenzie Togami
ae71c2a51b
Clean up formatting on ANTLR grammar 2019-10-26 16:51:13 -07: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
Kenzie Togami
a273e55e7a
Fix gradle build 2019-10-18 22:39:52 -07:00
Kenzie Togami
1ba02c54b7
Completely rewrite the expression parser in ANTLR. 2019-10-18 22:27:31 -07:00
Kenzie Togami
9f1e7cdaaf
Small modifications for better visitors 2019-10-13 02:20:10 -07:00
Kenzie Togami
7d52374fc0
Add initial ANTLR setup + lex/parser 2019-10-13 02:02:47 -07:00
Matt
ffbb25f1ea
Fixed snapshot typo 2019-10-11 13:42:07 -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