Commit Graph

302 Commits

Author SHA1 Message Date
Matthew Miller
26d8306833
Fixed snow being placed through slabs (#1541)
* Added a method to check whether a block can be placed at a location

* Make the snow system only place at locations that it can by game logic

* Make canPlaceAt a default method

* Fixed PR comments

* Use a World field

* Just throw directly

* IAE makes more sense

* Remove unused import

* Check for editsession without a world
2020-10-02 16:53:05 +10:00
Octavia Togami
8e53aa0891
[Fabric, Forge] Update build files for 1.16.3
No actual changes, beta 4 is functional, but this was to ensure it
compiled.
2020-09-10 16:15:48 -07:00
Octavia Togami
15467e9453
Add one to max point to match our regions better
Fixes #1522.
2020-09-07 11:11:05 -07:00
Octavia Togami
3996998c5f Deprecate BlockQuirkExtent, handle lower down
Ice is no longer turning into water since before 1.7.10, so that part has been
removed entirely.
2020-08-28 20:57:10 -07:00
Octavia Togami
5cf6750f8c
[Forge] Update to 1.16.2
haha bad mapping system go func_318237_brrrrrrrr
2020-08-13 23:00:29 -07:00
Octavia Togami
f2ce020da0 Officially propagate GPL downwards to all files 2020-08-13 21:06:39 -07:00
Matthew Miller
0a9fa869c9
Fixed an issue where upwards resolved schematics would break schem list (#1481)
* Fixed an issue where upwards resolved schematics would break schem list

* Missed diff

* PR changes

* Further fixes

* Improve sorting logic

* Pass in comparator rather than using sort type

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
2020-08-13 18:01:37 +10:00
Matthew Miller
94ce464f34 Fixed the Forge platform not exposing events, and added a comment about PoI 2020-08-09 22:44:44 +10:00
Octavia Togami
4c050f25ac
[Forge] Update dependencies, mark as GPL 2020-07-27 19:04:46 -07:00
dordsor21
c4abc9a247 Allow regeneration to accept Extents instead of EditSessions.
Allows for custom Extents to be parsed to regen, and for clipboard regeneration, etc whilst still allowing EditSessions
2020-07-26 13:22:26 +10:00
Octavia Togami
c1fb43cc36
Drop unused reference card PNG 2020-07-16 18:27:46 -07:00
Octavia Togami
1b568ded67 Use BiomeQuirkExtent instead of spotty handling 2020-07-15 20:10:25 -07:00
Octavia Togami
5803cb10b5 Fix 3D biome support testing
3D biomes always work on dedicated servers, at least as far as the
client knows. This is so terrible though. Mojang why.
2020-07-15 20:10:25 -07:00
Octavia Togami
7134ff4494
Remove all compile deps, use api/impl as appropriate 2020-07-15 18:48:47 -07:00
wizjany
9d9aaac15a Add fungi and chorus plant tree types.
Closes #1411.
2020-07-12 14:34:48 -04:00
Octavia Togami
93e386a5c1
Remove ShutdownHook / onExit handling
This didn't work right, and if we fail to cleanup, it's unlikely it
would succeed at exit.
2020-07-09 20:16:48 -07:00
Octavia Togami
81f6e3e7cf Cleanup some javac warnings 2020-07-07 20:38:57 -07:00
Octavia Togami
eb52afa296 Create a brand new checkstyle config
And also apply it!
2020-07-07 20:38:57 -07:00
Octavia Togami
781abd511d Add final to many fields 2020-07-07 20:38:57 -07:00
Octavia Togami
176418bad1
Add force-deletion utilities for cleaning up dirs
Windows sucks.
2020-07-07 14:46:29 -07:00
Octavia Togami
bf6cd1ea08
Regeneration Options (#1415)
* Add RegenOptions to the API

* Integerate regen options into //regen

* Rename isRegenBiomes to shouldRegenBiomes

* Go through the EditSession for setting biomes

* Respect 3D biome support in regen

* Add RegenOptions implementation for 1.16 Bukkit adapter.

Co-authored-by: wizjany <wizjany@gmail.com>
2020-07-03 22:17:34 -07:00
Octavia Togami
71e104bcb1
Replace setPosition with trySetPosition (#1403)
Allows cancellation information to be fed back into the ascend/descend
algorithms.
2020-07-01 08:24:58 -07:00
Octavia Togami
732c11cb7c
Use interface for ServerWorldProps/Info
Fixes #1397
2020-06-29 13:24:46 -07:00
Octavia Togami
87de87edf2
Update build dependencies 2020-06-29 12:17:23 -07:00
Matthew Miller
89b3d910e2 Update Forge version for language fix 2020-06-27 13:19:49 +10:00
Octavia Togami
6a8d97683c
[Forge] Update to 1.16.1 2020-06-25 19:06:56 -07:00
Octavia Togami
f44c4403f5
Add LongArrayTag NBT support
Apparently this has been missing for a while.
2020-06-25 11:13:06 -07:00
Octavia Togami
6513513b3e
Mojang AB and the Column Biome Fuzzer (#1376)
* Allow API detection of the biome fuzzer in use

This allows us to warn, fix, or optimize biome edits to the overworld.

* Drop edits to Y = 0 for biomes in overworld

* Re-work ArbitraryBiomeShape to simplify logic

Also fixes not being able to use THE_VOID with it
2020-06-23 23:33:20 -07:00
Octavia Togami
6412383636
Fabric 1.16 (#1362)
* [Fabric] Test port to 1.16-pre5

* [Fabric] Fix/improve regen implementation

* Cleanup properly in regen

* Cleanup unused interfaces/methods from porting

* Add licenses to new classes

* Allow packages from refactor in checkstyle

* Remove unused imports from WorldGenListener

* Remap the access widener in the dist jar

* [Fabric] Update to 1.16-pre6 (recursion limit)

Requires an update in the Bukkit Adapters later.

* [Fabric] Update to 1.16

May or may not build, depending on how cached everything is.
2020-06-23 11:55:49 -07:00
Matthew Miller
f5e36ed8a8
Add 3D biomes support (Adds #1358) (#1361)
* Initial work on 3D biomes. Not implemented for Bukkit, and history is unfinished

* Further implement 3D Biomes. It's now usable on Forge/Fabric

* Fix a few cases of apply. Gotta fix the deprecated methods at some point

* Add Bukkit support

* Add clipboard support. Schematics are still not great, but the Sponge schem format doesn't support this yet.

* Fix the last of the issues

* Fixed up review comments

* Fixed review notes

* Simplify

* max is inclusive

* Standardize non-abstract compatibility handling

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
2020-06-22 09:25:49 +10:00
Matthew Miller
495ac44f5c
feat(tool): added stack tool (#1338)
* feat(tool): added stack tool

* Implement review comments

* Don't register an alias for stacker

* Apply suggestions

* Fixed /stacker alias

* Indent

* Update worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>

* Update worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>

* Remove unused imports

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
2020-06-13 14:25:37 +10:00
Octavia Togami
e755acddc0
Don't mark Forge WorldEdit as required on client
Fixes #1343.
2020-06-03 15:03:22 -07:00
Octavia Togami
6b918e671e Fix Biome math on Forge and Fabric 2020-05-18 16:19:11 -07:00
Matthew Miller
267fe1ffe0
feat(i18n): use a translation loader to allow CB/WG to use WorldEdit's TranslationManager (#1327)
* feat(i18n): use a translation loader to allow CB/WG to use WorldEdit's TranslationManager

* Replace the old ResourceLoader with the new one

* Make ResourceLoader per-platform

* Update worldedit-core/src/main/java/com/sk89q/worldedit/util/io/WorldEditResourceLoader.java

* Improve the impl to allow a default

* Update based on review suggestions

* Local resource should be pathName too

* Delegate to getRootResource, and prevent pathName from starting with /

* HTML

* Format javadoc a little better

Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
2020-05-14 17:40:11 +10:00
Octavia Togami
ba91dff134
Update to use the new runtime rhino JAR 2020-04-24 18:49:11 -07: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
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
e69246208c
[Forge] Require MC between current + next major version 2020-03-22 01:42:53 -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
TheMolkaPL
a06b8342d3 Remove no-double-slash option from configs 2020-03-03 09:06:51 -05:00
Octavia Togami
947775b5e5
Read WE version from manifest ourselves 2020-02-10 17:11:08 -08:00
Octavia Togami
92eab931ea
[Forge] Include all -core resources, for all langs 2020-02-03 21:26:13 -08:00
Octavia Togami
38f3f8e667
[Forge] Fix loading legacy/lang in dev 2020-02-03 21:17:33 -08:00
Matthew Miller
48cc31c137 Bump mappings and implement trees for Forge 2020-02-02 16:11:40 +10: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
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
Octavia Togami
05db204679
Merge master 2019-12-09 12:13:25 -08: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
Kenzie Togami
91a78f725a
Some shading fixes 2019-10-19 00:48:49 -07: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
8af68fc884
Initial watchdog setup. Bukkit needs adapters, everything needs testing. 2019-09-29 22:09:55 -07:00
Kenzie Togami
23ca70e49a
[Forge] Update to Recommended Forge, newer mappings 2019-09-14 01:06:49 -07:00
Kenzie Togami
0898adac99
Add defaultVerticalHeight to other configurations 2019-09-09 03:47:32 -07:00
Barteks2x
3fdc1d1ab6
Better support for very tall worlds and negative heights
Avoid iterating the world top to bottom/bottom to top for very tall worlds
2019-09-09 03:20:38 -07:00
Kenzie Togami
fa364dd738
[Forge] Update FG + Forge 2019-09-07 21:59:13 -07: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
wizjany
17cfdee347 Update/remove more dead links. 2019-08-06 23:07:26 -04:00
Kenzie Togami
8880385878
[Forge] Switch off of deprecated getEntityPlayer 2019-08-05 14:21:18 -07:00
Kenzie Togami
35edd95c87
[Forge] Update to 28.0.45 for package rename 2019-08-05 14:17:56 -07:00
Kenzie Togami
5f5c067081
[Forge] Mark chunks for save after editing biomes 2019-08-02 20:39:34 -07:00
Kenzie Togami
7d31ac6dea
Update to Forge 28.0.34 for PlayerInteract fix 2019-08-02 14:03:06 -07:00
Kenzie Togami
50cea37439
Fix other minor suggestion bugs 2019-07-27 23:49:11 -07:00
Kenzie Togami
c8cf0d8ba6
[Forge] Update to 1.14.4, pending Forge bugfixes 2019-07-25 19:19:03 -07:00
wizjany
2cc6a367c6 Move floatAt logic to AbstractPlayer, add isAllowedToFly and setFlying. 2019-07-23 22:16:26 -04: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
Kenzie Togami
8975347703
Fix Forge regen, by retaining the world reference. Also close the world. 2019-07-17 18:02:45 -07:00
Kenzie Togami
5277f99bf2
Minor fixes for craftscripts in Forge 2019-07-12 13:49:45 -07:00
Kenzie Togami
5a14693aa9
Migrate Sponge, Libs to Kotlin DSL 2019-07-12 13:49:45 -07:00
Kenzie Togami
3bdc1c1cf2
Fixup after shade rhino merge 2019-07-12 13:49:45 -07:00
Kenzie Togami
3d4025c757
Migrate Forge to Kotlin DSL 2019-07-12 13:49:45 -07:00
Kenzie Togami
19802e478c
Re-write root and libs to Kotlin DSL 2019-07-12 13:49:45 -07:00
Kenzie Togami
59c2a15cda
Further minor cleanup from Gradle 5 change 2019-07-12 13:49:45 -07:00
Kenzie Togami
5a464142ae
Shade Rhino and truezip into Forge dist 2019-07-08 20:21:31 -07:00
wizjany
f0c0eedde7 Fix handling CUI on Forge server.
Probably.
2019-07-05 17:08:18 -04:00
Matthew Miller
aa8d34c913
feature(fabric): added fabric support (#491)
* Initial work towards Fabric compat. This does not compile yet

* Further updates - should compile but Gradle is being weird.

* Remove useless buildscript extras

* Added mixins to buildscript classpath to fix Loom crash

* Make it compile

* Got it building and added interaction

* Fixed review comments

* Use ServerPlayerEntity for FakePlayer

* Use method references for nicer names

* Fixed remaining comments and added networking for CUI

* Output as dist.jar

* Added mixins for left click air

* Use regex for cleanliness
2019-06-27 22:25:02 +10:00
Kenzie Togami
255f016df3
[Forge] Update to 1.14.3 2019-06-26 19:44:42 -07:00
wizjany
2347fdff62 [Forge] Use IClearable to clear containers. 2019-06-24 22:44:45 -04:00
Kenzie Togami
7879be157e
[Forge] Update to newer 1.14.2 forge, mappings 2019-06-22 12:42:20 -07: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
078d6f6440 Update to Forge 1.14. 2019-06-15 20:47:48 -04:00
Kenzie Togami
27c7d488a2 Add perf. improvments for Forge 2019-06-15 17:33:17 +10:00
Kenzie Togami
8c17aab9c5 Clean-up some misc. parts of the code 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
wizjany
e69ba31d6b Bring FakePlayer cache to Forge. 2019-06-14 18:09:21 -04:00
wizjany
213cadf093 Import cleanup, ensure gradle uses https for deps, bump deps. 2019-06-13 09:17:00 -04:00
wizjany
c361da11f1 Various fixes and improvements for Forge WE 1.13. 2019-06-09 20:45:24 -04:00
wizjany
1e7c074217 Few misc command fixes. 2019-06-01 09:35:27 -04:00
wizjany
6ad274677f Don't require command for CUI init. 2019-05-29 23:15:06 -04:00
Kenzie Togami
3b2b7f2c68 Initial attempt at restoring regen functionality (#475) 2019-05-26 20:00:45 -04:00
wizjany
feed5173ec Add Forge DataFixer.
Unsure how useful this will be, but eh.
2019-05-20 16:39:58 -04:00
Kenzie Togami
389671b43b
Apply eclipse plugin to prevent crash in FG 2019-05-10 03:39:29 -07:00
Kenzie Togami
067a570df0 Implement basic Forge suggestions 2019-05-05 23:06:20 -07:00
Kenzie Togami
8a3e6a12b9 Implement suggestions for Bukkit + Sponge 2019-05-05 23:06:20 -07:00
Kenzie Togami
acc0e7d09c Fix logging on Bukkit, align adapter versions 2019-05-05 23:06:20 -07:00
Matthew Miller
62353a46db Added a pagination box and use it in Biome List and Chunk List 2019-04-27 21:57:45 +10:00
Kenzie Togami
7ff537138a
Merge master again 2019-04-26 01:25:42 -07:00