Commit Graph
100 Commits
Author SHA1 Message Date
wizjany 213cadf093 Import cleanup, ensure gradle uses https for deps, bump deps. 2019-06-13 09:17:00 -04:00
wizjany 6f7927bc5a Skip poi folders for snapshot restores.
New to 1.14, Mojang stores .mca files which don't contain chunks in the
poi folder.

Note: we explicitly filter *out* the poi folder, instead of filtering
*to* the regions folder, since old versions of minecraft had regions
directly in the world folder (instead of a regions subfolder).
2019-06-12 21:51:22 -04:00
wizjany efb7650d6f Fix some reload issues.
And some unload issues.
2019-06-11 18:02:24 -04:00
wizjany fd1178a3d0 Fix item interact event. 2019-06-11 18:02:24 -04:00
wizjany c361da11f1 Various fixes and improvements for Forge WE 1.13. 2019-06-09 20:45:24 -04:00
wizjany f2f9c26602 Expanded the scope of item brushes (/br apply item, /br paint item).
They now additionally take a direction in which the simulated item usage
should be facing.
Also allow the item parser to parse "hand" and "offhand" as items, to
allow platforms with NBT item support return items with NBT (since
parsing is a slightly more complex task).
2019-06-09 20:44:30 -04:00
wizjany 3fd661c513 Don't attempt to check unloaded world refs. 2019-06-08 11:25:36 -04:00
wizjany 8022d8e911 Use ItemInteract for item right clicks in Sponge.
They don't fire for InteractBlock.

# Conflicts:
#	worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java
2019-06-06 13:22:18 -04:00
wizjany 351fd6771a Restore ability to restore old MCRegion files. 2019-06-06 10:34:12 -04: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 d7c11cbb69 Handle sub-commands without permissions. 2019-06-04 22:13:16 -04:00
wizjany a904ff9fb9 Check sub-command permissions.
This ensures root commands aren't sent to the client/suggested unless
a player has at least one subcommand available to them.
2019-06-04 22:13:16 -04:00
wizjany 2ef7cfd038 Update readme links. 2019-06-04 18:31:19 -04:00
wizjany e3097dd0fc Use java-library to exclude some deps. 2019-06-03 23:56:34 -04:00
wizjany 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
wizjany 3a6b3dc75c Fix restore for 1.14 chunk format.
Top-most chunk can now have lighting without have a palette or blocks.
2019-06-02 21:56:29 -04:00
wizjany a3afd9d5b3 Make suggestions more robust.
And fix potential errors in the ^[] pattern parser.
2019-06-01 12:39:24 -04:00
wizjany a3ca670a32 Fix sponge perms too.
Untested tho cuz 1.13 lol
2019-06-01 09:48:45 -04:00
wizjany 1e7c074217 Few misc command fixes. 2019-06-01 09:35:27 -04:00
wizjany 9099a17fe5 Some command refactoring. Switch usages of page args to -p flag. 2019-06-01 07:04:07 -04:00
wizjanyandGitHub 59447c6ee3 Gradle sucks. 2019-05-31 13:53:28 -04:00
wizjanyandGitHub 44ee1546b7 Apparently CB uses this. 2019-05-31 11:48:08 -04:00
wizjanyandGitHub 4e43595c99 Fix builds maybe. 2019-05-31 11:24:38 -04:00
wizjany 6ad274677f Don't require command for CUI init. 2019-05-29 23:15:06 -04:00
wizjany ec3648e521 Wrap and unwrap.
Exceptions are fun.
2019-05-29 23:15:05 -04:00
wizjany 27b58f4e85 Add suggestions for items. 2019-05-28 22:55:20 -04:00
wizjany 5e857b3547 Improve parsing from registries.
If multiple namespaces are present, suggestions will first suggest a
namespace, then once a namespace is selected, keys within that namespace.

Starting an argument with ":" will instead search across all namespaces
for matching keys.
2019-05-28 22:55:20 -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
wizjany 871c25e1cd Initial support for 1.14.2. 2019-05-27 19:52:58 -04:00
wizjany 48fb669119 Guard against reloads breaking too much. 2019-05-25 18:11:23 -04:00
wizjany 4b15439e03 Don't attempt to update empty or invalid flower pots. 2019-05-25 00:35:12 -04:00
wizjanyandGitHub 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
wizjany d0ef56326a Remove oudated and unused html readme.
Closes #471. (see comment)
2019-05-20 16:40:56 -04:00
wizjany feed5173ec Add Forge DataFixer.
Unsure how useful this will be, but eh.
2019-05-20 16:39:58 -04:00
wizjany 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
wizjany 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
wizjany 41cfcb6d55 Use a jar for bukkit impl adapters.
120 class files is a bit much.
2019-05-14 18:34:53 -04:00
wizjany 931b7ee694 Update for 1.14.1 2019-05-14 00:09:21 -04:00
wizjany f9d0d340e7 Add DFUs. Currently used by //restore. 2019-05-13 23:07:53 -04:00
wizjany 10f7fb6a26 Add //br and //brush as aliases. 2019-05-13 18:49:43 -04:00
wizjany 5c97418cca Fix NBT list conversion in 1.14. 2019-05-13 18:49:43 -04:00
wizjany 9a913a93f6 Fix throwing uncaught exceptions in AsyncCommandBuilder. 2019-05-13 18:49:43 -04:00
wizjany 7b170d8193 Run schematic-file I/O in a task. 2019-05-12 16:01:22 -04:00
wizjany fab21c3eea Add AsyncCommandBuilder as replacement for AsyncCommandHelper.
See full explanation at https://github.com/EngineHub/WorldGuard/pull/408
2019-05-12 14:36:57 -04:00
wizjany aed25fce7c Add license. 2019-05-11 21:36:13 -04:00
wizjany 56908a7d62 Update to final Sponge schem v2 spec.
Read lenient, write strict.
2019-05-09 16:59:06 -04:00
wizjany e2e903ca5e Pass service to brush sub-commands too. 2019-05-09 11:14:10 -04:00
wizjany c169d8f258 Re-use command manager service. 2019-05-09 10:28:08 -04:00
wizjany 31d4daf474 Don't compare null BlockStates. 2019-05-06 19:59:58 -04:00
wizjanyandGitHub db98cdad0b Update text-adapters to 3.0.1
Should fix shading issues.
2019-05-06 09:11:15 -04: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
wizjany bc8e477b1c Fix error message with invalid //expand args. 2019-05-04 22:48:49 -04:00
wizjany ac66ab66c3 Remove mentions of setupDecompWorkspace in COMPILING.md.
This task is no longer needed or used.
Fixes WORLDEDIT-3886.
2019-05-04 21:00:00 -04:00
wizjany f279907616 Create CommandManagerService directly instead of service loading it. 2019-05-04 17:06:19 -04:00
wizjany 018b6bead8 Tweak removeabove/removebelow commands.
Fix misplaced negative.
Layer 0 will always be the current layer, plus <height> layers
above/below. No longer adds 1 arbitrarily to height.
2019-05-02 19:01:28 -04:00
wizjany 57c161a602 Actually initialize GameModes and WeatherTypes. 2019-05-02 00:08:19 -04:00
wizjany 5e81dd1c4c Make registries Keyed. 2019-05-01 20:12:35 -04:00
wizjanyandGitHub b47c70025e Merge pull request #464 from EngineHub/feature/piston-commands
Piston command system.
2019-05-01 00:33:43 -04:00
wizjany 3c04a83852 Add nicer error when using player commands as console.
Also fix slash counts for Bukkit.
2019-04-29 17:39:30 -04:00
wizjany 8baf221c95 Hide help buttons in //sel selector box. 2019-04-29 17:38:26 -04:00
wizjany d48702aad6 Fix schematic id conversion for entities with multiple renames. 2019-04-28 10:56:34 -04:00
wizjany b3053f19ce Pagination changes and cleanup.
Refactored PaginationBox to be abstract. Implementations can generate individual components as needed now.
Add lots of Component usage to schematic list, help listings, etc.
Fix a few schematic and file resolution issues.
2019-04-28 01:12:05 -04:00
wizjany b7ea46db2f Re-add 1.13 entity renames.
Accidentally replaced the new ones with the old ones.
This is why we need DFUs.
2019-04-26 21:48:03 -04:00
wizjany 07ff4e97c1 Add logo to source. 2019-04-26 15:08:50 -04:00
wizjanyandMatthew Miller 648ecf2153 Add entity, biome, and mask flags to clipboard brush. 2019-04-26 16:41:39 +10:00
wizjanyandMatthew Miller 31a8328fb5 Add data version to BukkitImplAdapter.
Also throttle unknown-block warning when loading MCEdit schematics.
2019-04-26 16:41:39 +10:00
wizjanyandMatthew Miller f0587354be Cleanup, make copy/paste flags consistent, add status messages. 2019-04-26 16:41:39 +10:00
wizjanyandMatthew Miller 17fba54305 Update SpongeSchematic format to version 2.
Allows saving and loading entities and biomes.
2019-04-26 16:41:39 +10:00
wizjanyandMatthew Miller af1af43ac1 Allow copy/pasting biomes.
Copy takes a -b flag to copy biomes.
Paste takes a -b flag to paste biomes (if available).
This allows flexibility to create/load schematics with/without biomes
(when schematic biome support is added).

Also added a -m mask flag to paste to set a source mask, and a -e flag
to skip pasting entities if they are loaded.
2019-04-26 16:41:39 +10:00
wizjanyandMatthew Miller 26511bcc25 Add licenses. 2019-04-26 16:41:39 +10:00
wizjanyandMatthew Miller fcb42f05cf Add skull handler. 2019-04-26 16:41:39 +10:00
wizjanyandMatthew Miller 526b3366b5 Add more schematic compat, cleanup. 2019-04-26 16:41:39 +10:00
wizjany a9926328f1 Stop trying to redo when history runs out. 2019-04-20 12:14:11 -04:00
wizjany 99da55dc94 Fix building above bounds. 2019-04-15 20:44:02 -04:00
wizjany 2a1fdf470f Implement getMaxY for ForgeWorld.
Should play nicer with things like CubicChunks. Note that there is no
way to get the min point in Minecraft itself, so this only supports
going up, not down.
2019-04-14 11:16:49 -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
wizjany 961da1b93f Add BukkitPlayer constructor without plugin.
tbh I don't know why we even need to keep the plugin object around.
2019-03-30 17:32:10 -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
wizjany d1c2a029bf Move some platform stuff to load, put enable back to postworld. 2019-03-15 23:43:57 -04:00
wizjany 678a78a982 Update adapters.
Don't update unchanged blocks, do change NBT, no need to light.

Also clean up the forge side a bit.
2019-03-15 20:56:49 -04:00
wizjany c885f70c7b Load Bukkit plugin at startup.
This should allow plugins that use WorldEdit to do things on world load.
2019-03-15 18:38:06 -04:00