Commit Graph

418 Commits

Author SHA1 Message Date
Matthew Miller
5b1573a24e Replace the message system 2019-04-19 23:06:00 +10:00
Matthew Miller
d56cd96282 Fixed builds 2019-04-19 16:38:33 +10:00
Matthew Miller
55348346e9 Shade in Kashike's lib 2019-04-19 14:49:29 +10:00
Kenzie Togami
f481f7d26d
Handle lack of global injected value store 2019-04-18 19:59:53 -07:00
Kenzie Togami
48fcfeed35
Fix licenses 2019-04-18 19:12:09 -07: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
e127bb89e5
Align annotation formatting with brush command methods 2019-04-15 02:03:05 -07:00
Kenzie Togami
e4d8091432
Convert part of the brush commands 2019-04-15 02:01:25 -07:00
Kenzie Togami
2b10128720
Restore Logging for setbiome 2019-04-15 01:25:19 -07:00
Kenzie Togami
267ccf2298
First attempt at integrating Piston as the only command system 2019-04-15 01:21:15 -07:00
Matthew Miller
3e4004ad9e Start work on improving the formatting system. May switch to Kashike's as Bukkit is shit 2019-04-14 19:33:44 +10:00
Kenzie Togami
da35b3c174
Switch to using local maven for Piston 2019-04-14 01:53:04 -07:00
Kenzie Togami
f8c4f23658
Partial work on biome commands, need logging replacement 2019-04-14 01:30:40 -07:00
Jesse Boyd
b5e1f3dbc3 Remove the system property check for uuidOverride (#459)
as it caused a server timeout...
https://pastebin.com/z5ktU8r3
2019-04-10 22:39:56 -04:00
wizjany
ec0422d682 Avoid atan2 in Location cinit.
@kashike
2019-04-06 21:26:52 -04:00
wizjany
dcfb769d96 Fix TrueZip region stores.
I think. Someone tell me if this breaks their setup with truezip, but
it works for me now and didn't before. I'm assuming people using .zip
just used the normal zip store anyway.
2019-04-06 13:22:20 -04:00
wizjany
fa8139f4b3 Transfer Request to evaluation thread for Expressions. 2019-04-05 14:46:56 -04:00
Kenzie Togami
8ab6585815
Patch new cmds system into old system 2019-04-04 16:16:04 -07:00
Kenzie Togami
1966e5a8a2
Initial Piston conversion test. Non-functional. 2019-04-04 15:50:45 -07:00
Jesse Boyd
4de5487c51 Change Vector hash codes (#456)
And add additional unit vectors where needed.
2019-04-04 08:36:19 -04:00
Jesse Boyd
9ba1121592
swap order of checks
since a boolean check is faster than getting inventory item + string
comparison
2019-04-04 10:45:21 +11:00
Jesse Boyd
3d2054aa0a WorldEdit accepts a pattern for these commands
update the message to reflect that.
2019-04-03 19:39:12 -04:00
wizjany
a80420d14b Add biome storage to BlockArrayClipboard. 2019-03-30 00:42:28 -04:00
wizjany
4e66b9a336 Revert 6b3426e1.
Empty base blocks are always immutable. Fuzzy states don't have NBT.
2019-03-30 00:41:47 -04:00
wizjany
42d0d6e79a Use getTag instead of requireTag in a few places. 2019-03-29 23:44:18 -04:00
wizjany
d7d2d03ee8 Clipboard offset pattern is now #copy@[x,y,z].
Since the parsers were changed around, unescaped commas are parsed as
separate blocks now.
2019-03-27 23:36:59 -04:00
wizjany
74bff83e38 Don't let items types be null.
Better fail-fast if registry doesn't load? or why-ever else this happens
2019-03-26 22:30:46 -04:00
wizjany
6b3426e1de BaseBlock is technically mutable so that technically shouldn't use it. 2019-03-26 18:14:35 -04:00
wizjany
2a194b0434 Add pattern that randomly chooses states.
Also works with fuzzy states.

Syntax is `*type`, e.g. `//set *stone_slab` or with states,
`//set *oak_fence[waterlogged=false]`
2019-03-26 18:11:32 -04:00
wizjany
8eccdc7444 Add -f flag to //count to allow fuzzy inputs.
Also re-implement //distr -c. And remove outdated help text on //copy.
2019-03-25 22:38:51 -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
wizjany
1934006d14 Better enforce the Request lifetime.
Previously, the current request would just get a new EditSession when
one was created. Now, a Request is reset before and after:
 - a command is used and
 - an interact is fired with the platform
This means each action taken will get a single, non-reusable Request.

Note that this only applies to actions taken through the platform.
API users will not be using requests anyway, since things like Masks,
etc. will be constructed directly instead of being passed through the
platform's parsers and so on. (e.g. if a plugin loads a schematic into
the world with a mask, they should create the EditSession and mask it
directly, and not use that Mask again for another EditSession in another
World).

Also, get rid of a bunch of (some now-)unnecessary EditSession creation
during command dispatching.

Note that this also fixed the dynamic selection mask, which apparently
has been broken for some unknown amount of time.
2019-03-20 19:13:54 -04:00
wizjany
25631af31c Add RequestExtent to be used when a delayed EditSession is needed.
For example, if you set a mask that takes an extent (many of them),
and then move to another world, the mask will test blocks in the old
world and return bad results.
2019-03-20 19:13:54 -04:00
Matthew Miller
d186cce393 Merge remote-tracking branch 'origin/feature/slf4j-logging' 2019-03-19 20:32:21 +10:00
wizjany
9d2d43f0db Add -f to //schem save to confirm overwriting.
Overwriting existing schematics now checks delete perm.
Also allow delete to be run from console.

Fixes WORLDEDIT-3868.
2019-03-15 17:08:11 -04:00
wizjany
18414fe3b5 Fix symlink detection. 2019-03-15 09:10:51 -04:00
Kenzie Togami
d6804737cf
Switch to SLF4J logging. 2019-03-13 19:51:48 -07:00
wizjany
1c5d3368a0 Defer permissions check when making LocalSession.
Also use Java7 Paths to get rid of some funky logic.
2019-03-11 21:31:43 -04:00
Matthew Miller
a5cec7728d
Merge pull request #452 from EngineHub/forge-1.13
Added support for Forge 1.13
2019-03-11 22:52:30 +10:00
wizjany
a59d994d84 Hook up the biome registry. 2019-03-11 00:15:21 -04:00
wizjany
a22b5535fe Shh checkstyle, I'm a C# dev now. 2019-03-08 16:14:16 -05:00
wizjany
7c89ece96e Few tweaks to schematic loading and error fixes.
* Not all EntityTypes in Bukkit have the correct enum name.
* Don't read entire schematic files to list. Go off file extension only.
   (Reading in files is more accurate, but slow.)
* Enforce extensions. (Due to the above, while you can technically make a
   schematic called 'test.txt', it's better that we save it as
   'test.txt.schem'.)
* Fix a few minor warnings.
2019-03-08 16:00:49 -05: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
Kenzie Togami
4878f38250
Fix platform registration, config setup 2019-03-04 19:36:06 -08:00
wizjany
f84f3c6f85 Fix error when parsing hand/offhand/pos1 as blocks. 2019-03-03 19:51:49 -05:00
wizjany
aafb854e4f More useful names for block ItemTypes. 2019-03-02 12:26:26 -05:00
wizjany
c3ee926a2e Correctness improvement for legacy data in expression generation. 2019-03-02 11:55:03 -05:00
wizjany
e53962dadd Apply source function after source mask in ForwardExtentCopy.
The source function should only get applied to actually copied blocks.
2019-03-01 21:15:21 -05:00
wizjany
f46c70093c Fix the long-range build tool's ability to build mid-air. 2019-03-01 20:10:46 -05:00
wizjany
0656ef1920 Fix LayerVisitor stopping early instead of skipping covered columns. 2019-03-01 19:25:10 -05:00
wizjany
4bd6d73085 Fix some bad copy-pasta in expression environment queries. 2019-02-28 01:03:02 -05:00
wizjany
243d6476ac Re-add smooth filtering via a mask.
Instead of trying to maintain a list of "natural terrain blocks", just
let the user specify a mask of blocks to use for the height map filter.

https://gfycat.com/severaljauntycondor
2019-02-26 23:54:53 -05:00
wizjany
9eeb0acffe Add radius checks to a few more utility commands. 2019-02-25 18:41:20 -05:00
wizjany
2f734d4570 Check radius instead of diameter for clipboard brush.
This brings it more in line with other brushes in terms of allowable size.
2019-02-25 18:41:19 -05:00
Matthew Miller
5de8e0852c Treat categories as empty when missing 2019-02-18 21:17:36 +10:00
Matthew Miller
50a286b070 Update the block/item category registries - this won't build until a Spigot PR is merged though. 2019-02-17 13:30:40 +10:00
Matthew Miller
3683a0438a Use nonNull rather than !isNull 2019-02-16 19:58:06 +10:00
Matthew Miller
db1315e043 Refactor registries to entirely use the platform 2019-02-16 19:35:13 +10:00
Matthew Miller
1b101740fe Use a proper registry for biomes 2019-02-16 17:27:00 +10:00
Matthew Miller
d6bc85ccbe Speed up the BlockState hashCode method by caching (As it's Immutable). Allows some better optimisations in the future by using them as map keys 2019-02-16 12:46:10 +10:00
wizjany
de9d202681
Clear shaped brush material on command.
The initial material is held in the factory, but if a brush was previously bound, that pattern is used.
Now, using `//br set` will clear the previous material, allowing the OperationFactory's material to work.
This can be changed later with `/mat`, which will once again set the fill on the tool, overriding the factory's context.
2019-02-15 14:51:26 -05:00
wizjany
313cd20b14 Make legacy compat layer return straight stairs. 2019-02-14 17:53:30 -05:00
wizjany
88014b18a3 Added a few new things using block states.
* `//set ##*tag` sets all states in the tag (not just default state per type)
* `//set ^type` is a pattern changing block type but copying all valid existing states
* `//set ^[prop=val,...]` sets the property `prop` to `val` wherever the existing block has that property
* `//set ^type[prop=val,...]` does both of the above
Those work anywhere a pattern is taken, of course.

* The mask syntax `^[prop=val]` matches blocks with the property `prop` set to `val`, or blocks that don't have the property at all.
* The mask syntax `^=[prop=val]` only matches blocks that have the property.
Those work anywhere a mask is taken, of course. (`//mask`, `//gmask`, `//replace`, etc)

The `//drain` command now takes `-w` flag that removes the waterlogged state from blocks (in addition to removing water, as before).
2019-02-14 17:21:01 -05:00
wizjany
287be0209c Slight readability and usability improvements.
Also no longer allows trailing strings (e.g. //set #clipboardasdf).
2019-02-12 17:11:57 -05:00
wizjany
19796aa3be Added offset to ClipboardPattern.
Takes input like '//set #clipboard@-1,0,1' which shifts the pattern over.
It also now extends RepeatingExtentPattern, which was previously unused.
2019-02-12 17:11:57 -05:00
Wizjany
76400e533d
Add missing flags to clipboard brush usage. 2019-02-11 12:50:51 -05:00
Matthew Miller
3e988e7ffe Fixed parsing fuzzy blocks failing. 2019-02-11 20:30:42 +10:00
wizjany
6708e8292f Restore generation of hollow shapes.
Unfortunately this is a bit slower than before since we can't cache block
id & data values. However, applying patterns generally isn't too expensive,
and hollow regions were entirely broken before.
2019-02-09 20:30:57 -05:00
wizjany
cdd71178f5 Ensure BlockCategories are initialized.
We should probably have a way to initialize all these catalog classes ahead of time.
2019-02-04 22:34:25 -05:00
wizjany
dddf2b963a Fix long-range build tool.
Blocks were always placed around 0,0,0 since the trace direction was being used as a position.
Also the message was backwards.
2019-02-03 19:27:30 -05:00
Matthew Miller
f3ec5bbdde Added a ##tag parser Pattern. gives a random combination using the blocks from the tag with an equal distribution. 2019-01-31 22:28:04 +10:00
Matthew Miller
2f9c7f19f5 Added support for 'rotation' BlockState values. 2019-01-22 21:59:20 +10:00
Matthew Miller
2e0fa300b7 Actually support disabling chunk loading extent 2019-01-22 21:34:37 +10:00
Brokkonaut
432a201266 Make biome changes undoable 2019-01-21 19:07:29 +01:00
Matthew Miller
871541d8c0 Tweak the last access extent cache to provide better caching 2018-12-29 19:21:45 +10:00
Kenzie Togami
2f8bdccf65
Clarify state when asking for caps with no platforms 2018-12-28 22:20:12 -08:00
Matthew Miller
862b63d43a Can't query the row directly 2018-12-28 18:06:41 +10:00
Matthew Miller
54b6e57186 Few minor improvements to the fuzzy system. 2018-12-28 15:05:05 +10:00
Matthew Miller
b544782f3b Make the base fuzzy cached per block type 2018-12-27 15:33:19 +10:00
Matthew Miller
8da984d9f9 Fuzzier fuzzies 2018-12-27 15:19:58 +10:00
Kenzie Togami
386668d221
Clean up other compiler warnings 2018-12-26 16:50:24 -08:00
Kenzie Togami
3fefcbf971
Remove all raw usages of BSH, improve API generics 2018-12-26 16:39:10 -08:00
Matthew Miller
a88f6b8430 Minor improvements to the server side CUI 2018-12-26 18:15:17 +10:00
Matthew Miller
b75d5149eb Fixed the bundle being directly used outside of the registry system. 2018-12-23 21:43:20 +10:00
Matthew Miller
1d5e9b7d04 Few fixes 2018-12-23 21:24:58 +10:00
Matthew Miller
645fd682b6 Finish porting all the old masks across 2018-12-23 19:10:05 +10:00
Matthew Miller
6312bcecf6 Fixed the item parser not using the ItemRegistry 2018-12-23 19:02:58 +10:00
Matthew Miller
c5d9aadab8 Start work on modularising masks and patterns 2018-12-23 18:56:26 +10:00
Matthew Miller
d6977aeae4 Allow a pattern for the leave-id of //move 2018-12-22 17:26:02 +10:00
Matthew Miller
8d07877463 Pass the exception converter through more. 2018-12-21 17:31:27 +10:00
Matthew Miller
ea30578781 Added a way to get the spawn position of a world 2018-12-21 17:05:30 +10:00
Matthew Miller
c949b07df1 Added a method to teleport entities across worlds. 2018-12-21 16:56:10 +10:00
Matthew Miller
b300c21185 Update draw.js and roof.js 2018-12-20 13:43:01 +10:00
Matthew Miller
5eb9b779d7 Move the pasting system over to WorldEdit, and add a /we report command. Currently only reports system status and the config. Need to add a platform reporter system. 2018-12-18 19:28:55 +10:00
Matthew Miller
8f236afae9 Added a display name to Actors 2018-12-18 17:36:53 +10:00
Matthew Miller
700e41b706 Remove the final stage committer from the MultiStageReorder extent, as it caused issues and no longer appears to be entirely necessary. 2018-12-13 20:30:54 +10:00
Matthew Miller
926f6a6ab8 Flush undo/redo 2018-12-09 16:28:01 +10:00