Commit Graph

277 Commits

Author SHA1 Message Date
wizjany
9d9aaac15a Add fungi and chorus plant tree types.
Closes #1411.
2020-07-12 14:34:48 -04:00
Octavia Togami
22acd2b486
Error if loaded in even OLDER versions of Bukkit
Take that, 1.8 servers.
2020-07-11 19:29:50 -07:00
Octavia Togami
f023b46fae
Error + disable if loaded in old MC versions on Bukkit 2020-07-11 19:20:09 -07:00
wizjany
373f86953b Update adapter jar for file deletion fix.
Fixes #1427.
2020-07-09 23:54:33 -04: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
Matthew Miller
9b4bfbed2d
Localise WorldEditException and error handling (#1393)
* Localise the ExceptionConverter

* Further work on localising exceptions

* Everything but input parsing is now localised

* Finish making errors localisable

* Fixed a few notes from review

* Fixed another spot

* More changes

* Specialise parser errors
2020-07-05 14:57:13 +10: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
8aa034c78f
Fix or suppress deprecation warnings in most code (#1404)
Didn't touch commands or some of Sponge
2020-07-01 08:24:42 -07:00
wizjany
410d4c5eee Return correct world folders on Bukkit, used in /delchunks.
Fixes #1365.
2020-06-24 23:56:48 -04:00
wizjany
9e186225bd Update adapter jar. 2020-06-24 23:30:55 -04: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
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
wizjany
57d62b0bf5
Count wandering traders as NPCs for /butcher. (#1359)
* Count wandering traders as NPCs for /butcher.

Fixes #1347.

* Change variable case.
2020-06-14 13:55:14 +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
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
Matthew Miller
7a8c512916 Fixed typo in default disallowed blocks on Bukkit 2020-05-11 20:57:42 +10:00
Octavia Togami
3fdb10ad15
Delay command block active update if needed (#1285)
* Delay command block active update if needed

If we are checking if a command block session is active, and we are not
on the main thread, schedule a task instead to update the active status
eventually, rather than waiting on the main thread.

Fixes #1284.

* What's that? Non-static state, you say?

Just saw we have a field for the plugin here. Might as well use it.

* Check if chunk is loaded for sender before type
2020-04-19 13:08:44 -07:00
Octavia Togami
5ab71109b5
De-dup Bukkit argument rebuilding code 2020-04-04 11:30:22 -07:00
Octavia Togami
7d4563a3ab
Fix onAsyncTabComplete handling of invalid values
This fixes #1281, by just ignoring weird tab completion requests.
2020-04-04 11:05:58 -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
20d630ce5b
Only add adapters to dist jar 2020-03-22 15:00:02 -07:00
ㄗㄠˋ ㄑㄧˊ
47db40f957
use JavaPlugin.getResource() instead of JarFile.getEntry() (#566)
* use JavaPlugin.getResource() instead of JarFile.getEntry()

* use try-with-resources

* fix typo
2020-03-19 13:39:21 -04:00
wizjany
25ec78f355 Update adapters. 2020-03-16 16:31:29 -04: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
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
wizjany
68d48148d3 Revert "Revert "Add Vault as a softdepend to the Bukkit variant to prevent a warning from Spigot""
This reverts commit 376f241b7d.

Spigot bad. Also LP bad. This really shouldn't be necessary but it's
probably safer due to all the weird shit spigot and LP do.
2020-01-31 10:43:40 -05:00
Matthew Miller
0641409830 Bump adapters to fix errors 2020-01-30 20:51:44 +10:00
Matthew Miller
376f241b7d Revert "Add Vault as a softdepend to the Bukkit variant to prevent a warning from Spigot"
This reverts commit 33cf4c080b.
2020-01-30 20:40:20 +10: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
Matthew Miller
33cf4c080b Add Vault as a softdepend to the Bukkit variant to prevent a warning from Spigot 2020-01-27 17:55:11 +10:00
Matthew Miller
8e55131a2f Bump bStats version and update 7.1.0 changelog 2020-01-24 22:38:52 +10:00
wizjany
a27ade54fc Add adapters for 1.15.2. 2020-01-21 18:13:37 -05:00
wizjany
05cc7aa021 Don't send bad packets to the client.
The adapter only can send a structure block change ID, so we shouldn't
attempt to send nbt for other block entities.
2020-01-09 21:16:30 -05: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
Matthew Miller
e198718a1e Fixed the adapt function for Actor -> Bukkit not working for players or command blocks 2020-01-04 16:29:32 +10:00
JOO200
3ed02aa1a8 BukkitAdapter: Add Bukkit CommandSender --> WorldEdit Actor (#539)
* BukkitAdapter: Added Bukkit CommandSender --> WorldEdit Actor

* Add a reverse adapter

Co-authored-by: Matthew Miller <mnmiller1@me.com>
2020-01-04 16:23:59 +10:00
wizjany
79c11c5ee9 Fix GC shenanigans in regen. 2019-12-21 00:20:48 -05:00
wizjany
2ce345b473 Update Bukkit adapter jar.
Fixes world-name shenanigans.
2019-12-20 20:04:05 -05:00
wizjany
07dc63eed3 Finalize adapters for 1.15.1.
No actual mapping changes, just setting the data versions.
2019-12-17 17:36:07 -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
wizjany
47736abbdf Add Bukkit 1.15 adapters. 2019-12-10 20:20:11 -05:00
wizjany
28dbf19182 Bypass bukkit api for regeneration.
Done in impl adapter now.
2019-12-10 18:21:27 -05:00
Octavia Togami
05db204679
Merge master 2019-12-09 12:13:25 -08:00