* Multi world WIP - stashing
* Initial work on supporting multiple islands per player
The default allowed number is 5 for now, but will be set to 1 by
default.
Lots more work to do on this!
* More work on multi island. Fixed tests so clean compile.
* Remove unused imports
* Updated island go and homes command to multi island
Updated tests.
* Do not reload addons anymore.
* Add island name when entering or leaving own island
* Remove unused import
* Adds island names to /island go command.
* Enables more homes to be set if player has more than one island
* Switch to using a set for islands and explicit primary boolean in Island
* WIP
* Fix bugs with the go command.
* Be able to delete multiple islands, e.g. when joining a team
This is not fully tested.
* Do not remove all islands when a player does reset.
Players can reset just the island they are on.
* More fixes for go command
* Fix tests
* Fix @NonNull annotation
* Fix home syntax listing reference for IslandDeleteHome
* Fixed deletehome for multiple islands.
* Fix /island command teleport to current island default home.
* Remove deprecated code.
* Fix tag for concurrent island setting in config.yml
* Improve error when trying to make additional islands over limit
* Update config.yml
* Correctly assign invites for islands.
* Switch to canExecute API in prep for multi-island handling
* Prevent players from obtaining more concurrent islands by owner transfer
* Handle leaving and disbanding of teams
* Fix tests
* Fix minor bugs or code smells.
* Restore the quarantine code from deprecation.
This code can stay. It checks if islands can load, and if not puts them
in a trash. It does no harm.
* Remove unneeded eq()'s
* Fix tests
* Implements NMS for pasting and supports older versions of server
* Remove trial code that shouldn't have been committed.
* Remove trial code that shouldn't have been committed.
* Remove 1.19.3 support.
* Use 1.19.4 in POM
This change switches from plain JDBC driver implementation to a HikariCP Pool implementation.
Pool Implementation is complete for PostgreSQL and SQLite, while MariaDB and MySQL implementation still uses JDBC drivers, however with HikariCP pools.
Also, I added extra properties for SQL databases, where users could specify their own datasource properties.
Teleportation via portals for entities was in a mixed state. It was not fully implemented and not fully prevented. Especially when portal linking was enabled.
Now I implemented world settings flag: ENTITY_PORTAL_TELEPORT.
Enabling this flag will allow entities to use portals to switch dimensions.
Fixes#2023 and #966
* Fixes issue when blueprint clipboard was stuck after saving.
The issue was that Map#putIfAbsent still creates a new task, even if object is already in map. The usage requires to use Map#computeIfAbsent.
* Rework blueprint and blueprint bundle names.
There was an issue with using non-english characters in blueprint names. It was not possible, as all chars for names were converted to lower cased english letters. It included display names.
I reworked it a bit and now it should be possible to set non-english names for bundles and blueprints.
Fixes#1954
* Check if unique name contains chars not supported in regex expression
Cannot start, contain, or end with special char, cannot contain any numbers.
Can only contain - for word separation
* Negation fix
* Move to new EngineHub maven repository
* Remove unused WorldEdit dependency
* Use Java 17 in GitHub Actions
* Also change maven-compiler-plugin and maven-javadoc-plugin versions to 17
* Implements new VISITOR_TRIGGER_RAID flag.
This world settings flag allows toggling if visitors can or cannot start a raid on an island they are visiting.
Relates to #1976
* Fixes abuse of Raid Mechanism and Mob Natural Spawn Rules.
Fixes to #1976
* Simplify raid abuse detection.
* Update to Spigot and Paper API 1.19 and Java 17
* Set minimal version to 1.18.
* Add breeding protection for Axolotl and Goats (1.18)
Add breeding protection for Frog and Allay (1.19)
* Clean up switch statement in BlockInteractionListener
* Add chest boat support to BreakBlocksListener.
Part of #1987
* Add powdered snow pickup with bucket protection.
* Add glow ink sac protection on signs.
Switch to SheepDyeWoolEvent as it now contains player variable.
* Clean up Hurting Listener
* Mark 1.16.5, 1.17 and 1.17.1 as incompatible.
Mark 1.18, 1.18.1 and 1.18.2 as supported.
Add 1.19 as compatible.
Part of 1987
* Add ChestBoat inventory protection.
Part of #1987
* Clean up LockAndBanListener
* Add MANGROVE_PRESSURE_PLATE protection.
Part of #1987
* Add Glow Item Frame protection to player interact event.
* Clean up MobSpawnListener
* Clean up ChestDamageListener
* Change from custom method to Tag.PRESSURE_PLATES to detect pressure plates.
Part of #1987
* Implement proper chest boat protection.
Part of #1987
* Move to 1.19 R1 world regenerator.
Part of #1987
* Add allay to the animal entity list.
Part of #1987
* Add axolotl and other fish scooping protection.
Part of #1987
* Fixes Bucket and Glass Bottle filling.
Buckets and bottles were not working since cauldron splitting by type. This change fixes that.
It also protects from filling bottles with water from water sources or waterlogged blocks.
* Remove 1.17.1 compatibility check for biome adapter.
Add cheezee 1.19.1 compatibility version.
* Fixes chest boat interactions.
Part of #1987
* Implement Allay protection.
New flag ALLAY is required to interact with allays.
Part of #1987
* Prevent visitors for being targeted by entities if ENTITY_ATTACK is enabled.
* Implement Sculk Sensor and Shrieker activation protection setting.
Part of #1987
* Add music discs to the LangUtilsHook
Part of #1987
* Fixes failing unit-tests.
The kick command has an unnecessary owner check. As command should be configurable by island owners, then limiting it to an owner is wrong.
Add a code that allows kicking only lower-ranked players.
Add message that shows who kicked from the island.
Add message that shows that rank does not allow to kick.
Add new Protection Flag: CHANGE_SETTINGS. This flag allows set which rank can change island settings. By default, it is set to OWNER rank and minimal value is MEMBER rank.
Fixes#1493
* Adds bonus range elements to Island object.
Admin commands still need to be adjusted or added to support management
of the bonus ranges.
* Changed to mutable class
Fixed bugs.
* add Block Explosion support for TNT_DAMAGE flag
* prevent block explosion from damaging entities
* seperated flags for block explode
* invert and cancel
* pattern instanceof
* delete island one by one
* register before IslandDeletionManager
* optimize imports
* setting
* just some indents
* config
* run synchronously
* a bit reformat before recoding
* proper delete chunks
* comment
* combine the task call
* expose the NMS Handler
* don't have to try-catch this
* we know that this is final
* expose copy chunk data so that it can be overridden
* Don't have to use Vector
* set block from minimum height
* remove NMS and use fallback if not set
* only get the height once
* fix test