Commit Graph

457 Commits

Author SHA1 Message Date
Kenzie Togami
e4d8091432
Convert part of the brush commands 2019-04-15 02:01:25 -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
f8c4f23658
Partial work on biome commands, need logging replacement 2019-04-14 01:30:40 -07:00
Jesse Boyd
99c4c2f35d
Add option to disable commands 2019-04-12 10:51:18 +10:00
NotMyFault
dcfa436c64 Minors
- Make disallowed-blocks translatable
- Add more trnslatable messages
- Update WorldEdit messages missing a prefix
2019-04-11 19:49:09 +02:00
NotMyFault
d49be8047c Fix missing prefixes 2019-04-11 15:13:15 +02:00
Jesse Boyd
6996a97027
various minor
CFI works without PlotSquared
tab completion
biome tweaks
WIP on anvil
document disallowed-blocks in legacy config
2019-04-11 21:32:32 +10:00
Jesse Boyd
24590199c8
Fix disallowedBlocks 2019-04-11 14:05:29 +10:00
Jesse Boyd
2e1b7676eb
Just use instanceof 2019-04-11 02:17:45 +10:00
Jesse Boyd
b24ebaf6f2
Delay command setup 2019-04-10 22:03:10 +10:00
Jesse Boyd
1529c187d2
Merge branch 'breaking' of https://github.com/IntellectualSites/FastAsyncWorldEdit-1.13 into breaking 2019-04-07 17:41:51 +10:00
Jesse Boyd
c8529b0609
. 2019-04-07 10:52:30 +10:00
NotMyFault
ab3394c35e Add prefixes and make FAWE more translatable 2019-04-07 01:13:23 +02:00
Jesse Boyd
ee797219b4
Fix findFreePos 2019-04-06 06:13:15 +11:00
Jesse Boyd
501992dd20
Fix setPosition 2019-04-06 05:51:18 +11:00
Jesse Boyd
144215c813
Don't construct new BaseBlock 2019-04-06 01:12:57 +11:00
Jesse Boyd
be5541b61b
revert some changes 2019-04-05 15:48:41 +11:00
Jesse Boyd
94d5d8df8e
Merge branch 'master' into breaking 2019-04-05 15:47:04 +11:00
Kenzie Togami
8ab6585815
Patch new cmds system into old system 2019-04-04 16:16:04 -07:00
Jesse Boyd
33f5322fda
WIP merge (i'll finish this later) 2019-04-05 01:24:47 +11:00
Jesse Boyd
1beea3cd22
Some more upstream merge 2019-04-04 21:28:41 +11: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
8897109dc4
wip upstream merge 2019-04-04 00:25:16 +11:00
Jesse Boyd
7086eb8b3e
continue with merge 2019-04-03 22:28:57 +11:00
Jesse Boyd
4cd8d08134
merge with upstream (broken) 2019-04-03 16:53:58 +11:00
Jesse Boyd
f361619037
Merge remote-tracking branch 'upstream/master' into breaking 2019-04-03 16:53:34 +11:00
matt
122236f6c7 Too lazy to write a commit message 2019-04-02 23:36:32 -04:00
matt
29692f3fbe Migrate to SLF4J 2019-04-02 18:21:02 -04:00
Jesse Boyd
92a7bd5e44
minor tweak for mutable vectors 2019-04-01 03:09:20 +11:00
matt
699783ba72 Another selective merge 2019-03-28 15:02:37 -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
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
matt
0d88a6bce2 Merging upstream changes 2019-03-26 13:27:09 -04: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
IronApollo
3236bdd78e Changes to NBT-handling in operations and extents, changes to match the widely supported setBlock functionality, minor code cleanup 2019-03-25 13:42: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
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
wizjany
f84f3c6f85 Fix error when parsing hand/offhand/pos1 as blocks. 2019-03-03 19:51:49 -05:00
IronApollo
3ffb5ff00d Changes to fix some PlotSquared compatibility issues, plus fix block Mask parsing 2019-02-27 08:09:04 -05:00
Matthew Miller
5de8e0852c Treat categories as empty when missing 2019-02-18 21:17:36 +10:00
Matthew Miller
1b101740fe Use a proper registry for biomes 2019-02-16 17:27:00 +10: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
Matthew Miller
3e988e7ffe Fixed parsing fuzzy blocks failing. 2019-02-11 20:30:42 +10: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
IronApollo
0e5847e1ce Various fixes 2019-02-03 09:22:10 -05:00
IronApollo
2d586ff53e Registry changes & additions 2019-02-03 08:53:04 -05:00
Matthew Miller
4a8931a55a Added a ##tag parser Pattern. gives a random combination using the blocks from the tag with an equal distribution. 2019-02-03 07:59:06 -05:00
Kenzie Togami
8f11d0469b Clarify state when asking for caps with no platforms (+ fuzzy system changes) 2019-02-03 07:30:18 -05:00
Matthew Miller
7d7da78dbc Fuzzier fuzzies 2019-02-03 07:13:21 -05:00
Kenzie Togami
590b7e23a9 Remove all raw usages of BSH, improve API generics 2019-02-03 05:01:39 -05:00
gamerforEA
ea0ca470f1 Fix Metrics injection 2019-02-03 03:51:15 -05:00
Matthew Miller
26d4ea101e Fixed the bundle being directly used outside of the registry system. 2019-02-03 03:44:10 -05:00
Matthew Miller
53308416ff Start work on modularising masks and patterns 2019-02-03 03:33:52 -05:00
Matthew Miller
c935e381b7 Added a method to teleport entities across worlds. 2019-02-02 11:23:02 -05:00
Matthew Miller
54142c8669 Added a display name to Actors 2019-02-02 09:37:14 -05:00
Matthew Miller
f3c633582e Finish removal of PlayerDirection, and partially added diagonal support back to commands. (Other minor changes to WorldEdit-Sponge and FAVS) 2019-02-02 08:43:57 -05:00
IronApollo
e53535319d Plenty of changes to core block behavior to become more compatible with upstream WorldEdit (still more to be done!) 2019-01-31 10:08:58 -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
IronApollo
f74381b93f Merge remote-tracking branch 'refs/remotes/isfawe/new-vector-system' into new-vector-system 2019-01-13 02:00:14 -05:00
Matthew Miller
628c9cc0b7 Make BaseBlock more memory efficient, and make it clear in the API that it's not intended to be used for every single block. 2019-01-10 09:54:21 -05:00
Kenzie Togami
4d6045813c Move vectors to static creators, for caching 2019-01-10 07:17:04 -05:00
Byron Marohn
ab6aed703d Merge current FAWE master (227d6d91) into new-vector-system
Signed-off-by: Byron Marohn <combustible@live.com>
2019-01-09 22:35:26 -08:00
IronApollo
842b1307c7 Current Progress #3 2019-01-09 02:13:44 -05:00
Kenzie Togami
2f8bdccf65
Clarify state when asking for caps with no platforms 2018-12-28 22:20:12 -08:00
Matthew Miller
8da984d9f9 Fuzzier fuzzies 2018-12-27 15:19:58 +10:00
Kenzie Togami
3fefcbf971
Remove all raw usages of BSH, improve API generics 2018-12-26 16:39:10 -08:00
IronApollo
d4157b7e0e Current progress with update 2018-12-23 11:19:33 -05: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
Byron Marohn
dab9e9a799 Fix imports - build working again
Signed-off-by: Byron Marohn <combustible@live.com>
2018-12-21 08:09:58 -08:00
Matthew Miller
c949b07df1 Added a method to teleport entities across worlds. 2018-12-21 16:56:10 +10:00
Byron Marohn
c0fa1602ad Restore the formatting of many things to upstream WorldEdit - no code changes
This patch touches many files but changes absolutely no functionality.
The goal here is to make future merges with worldedit produce fewer
conflicts that have to be resolved.

This patch was made by painstakingly diff'ing files and copying changes
over from the last upstream merge commit (02c6f11b) into this codebase.

Signed-off-by: Byron Marohn <combustible@live.com>
2018-12-20 11:33:56 -08:00
Matthew Miller
8f236afae9 Added a display name to Actors 2018-12-18 17:36:53 +10:00
Matthew Miller
24800a662a Finish removal of PlayerDirection, and partially added diagonal support back to commands. 2018-11-12 12:38:13 +10:00
Kenzie Togami
2c8b2fe089
Move vectors to static creators, for caching 2018-11-03 23:00:24 -07:00
Kenzie Togami
399e0ad5fa
Refactor vector system to be cleaner
- Move Vector, etc. into `.math` package
- Drop many methods that will be auto-promoted anyways, eg. with
`divide(int)` and `divide(double)` the first is now gone.
- Take Block vectors into their own class hierarchy
- Make it clear throughout the API what takes blockvectors
- many more improvements
2018-11-03 23:00:23 -07:00
IronApollo
767607ea68 Fix for '//mask ?' resulting in pattern error 2018-10-29 06:39:40 -04:00
Kenzie Togami
1fa1ff895b
Flush or disable buffers in tools 2018-10-20 19:47:17 -07:00
NotMyFault
2d8a2fc9c7 Minors
- Typo fixes
- updated jenkins download link
2018-10-16 22:15:45 +02:00
Jesse Boyd
1a12c065a1
Various minor fixes
Fix drain
Fix some messages lacking prefix
Fix non persistent brushes
2018-10-13 15:15:38 +11:00
BuildTools
6a3177f4e7 Fixed DefaultBlockParser incorrectly referencing disallowedBlocks 2018-10-02 07:32:24 -04:00
Jesse Boyd
277ff8f787
Fix command confirmation session 2018-09-08 09:10:36 +10:00
Jesse Boyd
82ede1d42b
freebuild region restrictions 2018-09-05 05:10:15 +10:00
Matthew Miller
fdc3cd56f7 Add a mask for block categories. Eg, you can now do //replace ##wool minecraft:sand to replace all wool with sand 2018-08-30 14:51:38 +10:00
Jesse Boyd
abd886acd7
some hasty refactoring 2018-08-28 02:56:28 +10:00
Jesse Boyd
a61c856adc
Allow certain commands to bypass queuing 2018-08-24 19:33:52 +10:00
Jesse Boyd
dbd31ea347
Fixes boy0001/FastAsyncWorldedit#1090 2018-08-24 01:22:30 +10:00
Jesse Boyd
c55353e5b1
Various command (use es6 if java9 + nashorn) 2018-08-22 03:22:37 +10:00
Matthew Miller
d3b3d57041
Merge pull request #420 from sk89q/server-side-cui
Added a server side version of WorldEditCUI with limited functionality
2018-08-20 14:46:08 +10:00
Matthew Miller
7b83f97c35 Fixed NotABlockException not getting thrown 2018-08-19 14:41:09 +10:00
Matthew Miller
7f419618cc Switch to using fake blocks, no more world pollution 2018-08-18 15:22:49 +10:00
Jesse Boyd
5d47d1bce6
Rethrow input parse in mask parser 2018-08-17 23:07:41 +10:00
Jesse Boyd
36ede1b27d
Fixes boy0001/FastAsyncWorldedit#1078 2018-08-17 18:27:48 +10:00
Jesse Boyd
ebd27781a7
Catch pattern syntax 2018-08-16 23:38:56 +10:00
Matthew Miller
bc5609114b Add a material to check if air is air, because there are now 3 types of air. 2018-08-16 15:42:11 +10:00
Jesse Boyd
8de1fff263
Fix block parse NPE 2018-08-16 00:34:20 +10:00
Jesse Boyd
a67441bbff
Merge remote-tracking branch 'refs/remotes/sk89q/master'
# Conflicts:

#	worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java
#	worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java
#	worldedit-core/src/main/java/com/sk89q/worldedit/world/NullWorld.java
2018-08-15 14:02:51 +10:00
Jesse Boyd
55d34343dd
Fix some api compatibility issues 2018-08-14 17:18:49 +10:00
Jesse Boyd
1740c845d2
What are the dud BlockCategories? 2018-08-14 11:00:44 +10:00
Jesse Boyd
1601ea07a8
Clear the command/method map after registration 2018-08-14 00:39:19 +10:00
Jesse Boyd
0632a9ce96
Fix some merge issues 2018-08-14 00:38:33 +10:00
Jesse Boyd
7fb3899bb7
Use BlockState for player inventory getBlock 2018-08-13 03:31:26 +10:00
Jesse Boyd
e7c27b08bf
Remove stub injector methods 2018-08-13 02:36:39 +10:00
Jesse Boyd
a629d15c74
Copy paste/merge FAWE classes to this WorldEdit fork
- so certain people can look at the diff and complain about my sloppy code :(

Signed-off-by: Jesse Boyd <jessepaleg@gmail.com>
2018-08-13 00:03:07 +10:00
Matthew Miller
f54d6afb65 Make BaseBlock more memory efficient, and make it clear in the API that it's not intended to be used for every single block. 2018-08-10 20:29:06 +10:00
Matthew Miller
5f4cc3e694 Cleanup a little bit more code. 2018-08-06 19:08:15 +10:00
Matthew Miller
b2769befdb Added a few utility methods. 2018-08-04 11:43:42 +10:00
Matthew Miller
c05c33cab0 Make a lot of progress on legacy conversions. 2018-08-04 11:43:42 +10:00
Matthew Miller
1480606b52 Fixed a few more issues found looking over the changeset. 2018-08-04 11:43:42 +10:00
Matthew Miller
1090c44a2e Parser must use lowercase. 2018-08-04 11:43:41 +10:00
Matthew Miller
965e977411 Fixed a few more errors, and added legacy support to the item parser. 2018-08-04 11:43:41 +10:00
Matthew Miller
9f9fda72b7 Re-add legacy support to block parser, and fix query tool. 2018-08-04 11:43:41 +10:00
Matthew Miller
663dd1f4d8 Added an entity, weathertype, and gamemode registry. 2018-08-04 11:43:41 +10:00
Matthew Miller
572bf04482 Cleanup the bukkit implementation, and update to the 1.13 release items/blocks. 2018-08-04 11:43:41 +10:00
Matthew Miller
c3d832c3fd State system is done. It works. Finally. Still a few rough edges that need fixing however. 2018-08-04 11:43:41 +10:00
Matthew Miller
6b5f218809 Basically finish the state system. Just 1 more bug that I'm encountering. 2018-08-04 11:43:41 +10:00
Matthew Miller
4938f419ad Almost finished the state system. Just got to have it actually load in the values. 2018-08-04 11:43:41 +10:00
Matthew Miller
724661d903 Fixed DefaultBlockParser not working for things with _ 2018-08-04 11:43:40 +10:00
kashike
ee6af8ee76 state stuff 2018-08-04 11:43:40 +10:00
kashike
40a665a509 package move 2018-08-04 11:43:40 +10:00
kashike
d33e2e98aa registry changes 2018-08-04 11:43:40 +10:00
kashike
a48c319e7e package move 2018-08-04 11:43:40 +10:00
Matthew Miller
93b225ca3c Expose a way of switching between ItemType and BlockType for ItemBlocks. 2018-08-04 11:43:39 +10:00
Matthew Miller
b06937d1c8 Setup a legacy mapper system. The file does not exist yet. 2018-08-04 11:43:39 +10:00
Matthew Miller
8e09eb3dbe Re-added wool colours to block parser 2018-08-04 11:43:39 +10:00
Matthew Miller
416480c16d Separated out fluids and blocks - they're different now 2018-08-04 11:43:39 +10:00
Matthew Miller
70aceb3837 Use default state a bit more. 2018-08-04 11:43:39 +10:00
Matthew Miller
282eca7663 Added a category system and refactored registries 2018-08-04 11:43:39 +10:00
Matthew Miller
484687a49d Further work on BlockState transition 2018-08-04 11:43:39 +10:00
Matthew Miller
e99190225e Further BaseBlock modernisation 2018-08-04 11:43:39 +10:00
Matthew Miller
811f1d4433 Rewrote block parsing, and further switch to BlockState 2018-08-04 11:43:39 +10:00
Matthew Miller
5f5a1797ad Remove legacy ServerInterface 2018-08-04 11:43:39 +10:00
Matthew Miller
e2608bc0c9 Further modernise and remove legacy item classes 2018-08-04 11:43:39 +10:00
Matthew Miller
aaaf2d5678 More deprecation removal 2018-08-04 11:43:38 +10:00
Matthew Miller
20bf6e079b Continue the great purge 2018-08-04 11:43:38 +10:00
Matthew Miller
1cc735e359 Further work on items 2018-08-04 11:43:38 +10:00
Qveshn
f680635ded Added customizable command log format (Date+Time are now available)
Added the option format to config files (config.yml + worldedit.properties). By default, current date and time are displayed.
The formatting function is implemented by analogy with the class java.util.logging.SimpleFormatter
2018-05-19 18:47:45 +03:00
Wyatt Childers
a091853385 Made the CommandManager responsible for exception converters as apposed to individual dispatchers
Previously some exceptions were being handled only in the ParametricCallable, which lead to other dispatchers throwing the exception, and requesting that users report them.

Fixes WORLDEDIT-3386
2016-06-28 19:37:10 -04:00
Kenzie Togami
e42107557e [Forge] Make DefaultBlockParser behave more like vanilla. 2016-06-17 16:59:41 -07:00
wizjany
2cd4412b5d Make mask parser create world-aware expression masks.
This allows things like //gmask =queryRel(...) to work.
Also the query* functions now allow -1 as a wildcard for either id or data.
2016-01-13 17:34:58 -05:00
sk89q
0e200df5be Replace //set with new command version. 2015-10-29 18:20:27 -07:00
Albert Pham
86c6de7105 Add shortcut forest brush. 2015-10-29 13:16:22 -07:00
Albert Pham
fdfc3cdb33 Reorganize and further unify the new commands. 2015-10-29 13:05:04 -07:00
Albert Pham
cba32732a3 Add /br raise and /br lower as shortcuts for /br deform. 2015-10-28 13:50:07 -07:00
Albert Pham
f4bb5272e1 Update new commands with suggestion and help support. 2015-10-27 13:51:45 -07:00
sk89q
935de4c93d Add some experimental brush commands.
/br set <shape> <radius> <pattern>
/br deform <shape> <expression>
/br scatter <shape> <density> <generator>
/br apply <shape> <generator>

<shape> can be: cuboid, cyl[inder], sphere

<density> is 0-100

<generator> can be:
forest|tree <type>
item <item>[:<data>] (ONLY WORKS ON FORGE)

Examples:

/br deform cuboid 5 y-=0.2
/br scatter sphere 5 100 minecraft:dye:15
2015-10-26 23:14:30 -07:00
sk89q
052addbc05 [Forge] Add creative use mode and cheat mode and fix config overwrite. 2014-11-14 18:23:43 -08:00
sk89q
3bee2d4c02 Handle mod:name as a way to specify blocks in the Forge mod. 2014-11-14 17:45:30 -08:00
sk89q
7192780251 Switch to Gradle. Use git log --follow for history.
This converts the project into a multi-module Gradle build.

By default, Git does not show history past a rename, so use git log
--follow to see further history.
2014-11-14 11:27:39 -08:00