* WIP - See FlagListener.java for changes
Makes declaring the player mandatory for checkIsland method so it cannot
be forgotten and will be fresh every check.
See BlockInteractionListener for how it will look.
* Update src/main/java/world/bentobox/bentobox/api/flags/FlagListener.java
Co-Authored-By: tastybento <tastybento@users.noreply.github.com>
* Update src/main/java/world/bentobox/bentobox/api/flags/FlagListener.java
Co-Authored-By: tastybento <tastybento@users.noreply.github.com>
* Adjusted all the flags to new API
Island members were not being cleared from the island properly. It
should be done via IslandManager and not directly on the island object
because the island manager holds a number of ownership maps. Also the
player needs to have their island home locations cleared. Further, any
members of the island also need to be completely cleared from the
island.
Finally, as this is similar to unregistering the player from the island,
the event should be fired so that any addons know the island is no
longer owned and the owner no longer owns an island.
This could cause problems with threads because runnable should not be
run like this (effectively async). It should only be run inside a Bukkit
scheduled task to run on the main thread.
https://github.com/BentoBoxWorld/BentoBox/issues/535
due to race conditions with task timers and incorrectly shared field
variables, islands would not paste completely if pasted every tick.
Now pasting is handled in its own class with a new instance created with
each paste.
In Spigot (and Bukkit) the end exit portal frame and first dragon is generated after Ender Dragon Legacy check.
This check tries to find if in world exist Exit Portal, and if it does not find it, it generates everything from scratch.
So, to trick legacy check, it is enough to place 1 End Portal somewhere in (0.0) chunk, and portal will not be generated.
When a world is not loaded it becomes null in Bukkit so that any
references to that world will be null. If an admin removes a game mode,
then the island data was instantly becoming useless and quarantined.
This change leaves the files as-is so that if the game mode is put back,
the world is still viable.
As for home locations that are stored in the Player object, they are
removed so they do not cause errors.