Commit Graph

1358 Commits

Author SHA1 Message Date
Florian CUNY
0f253c35ef Renamed IslandDeleteManager to IslandDeletionManager 2019-01-13 10:09:35 +01:00
tastybento
7854187448 Added async saving to YAML and MYSQL
Both seem to work fine, but probably need more real-world testing.
2019-01-12 18:18:22 -08:00
tastybento
501c3257ed Island delete enhancements
Island deletion is done a few chunks at a time per tick. Current speed
is 5 chunks per tick per world (e.g., 15 chunks per tick if nether and
end islands are used).

Chunks are deleted based on the all-time maximum protection range of the
island. This is because the protection range can grow bigger or smaller
over the island's lifetime. To ensure all possible chunks are erased,
the largest every protection range is remembered and used.

Very large protection ranges will take a long time to fully delete.

Info on islands that are being deleted is stored in the database. If the
server shuts down mid-deletion, deletion will restart when the server
restarts.

While an island is being deleted, new islands cannot occupy that spot
and the spot cannot be reserved by the admin.

In addition, async approaches to island saving and player saving were
removed. Async will be implemented another way.

Now, instead of saving the full island or player database, individual
database entries are saved instead to be more efficient.
2019-01-12 17:12:30 -08:00
tastybento
7a4ca8b48d Fixed JavaDoc error 2019-01-12 17:04:53 -08:00
tastybento
7c1e195eaf Switch to timer-based chunk deletion 2019-01-12 10:31:25 -08:00
tastybento
b51178518a Fixes admin setowner and info commands for team members
https://github.com/BentoBoxWorld/BentoBox/issues/452
2019-01-07 21:37:37 -08:00
tastybento
cd4f0c2561 Fixes Invincible Visitors Settings GUI bug
https://github.com/BentoBoxWorld/BentoBox/issues/450

Added enhanced test to this class too.
2019-01-07 21:03:02 -08:00
tastybento
8a63bf80f9 Added defensive code to avoid infinite loop
CleanSuperFlat can infinite loop if the generator isn't working.
2019-01-07 20:43:37 -08:00
tastybento
dc8b672286 Added check against duplicate Island UUIDs
May relate to https://github.com/BentoBoxWorld/BentoBox/issues/447
2019-01-07 08:03:38 -08:00
tastybento
acb6cd5650 Added defensive null checking code to DB
Relates to https://github.com/BentoBoxWorld/BentoBox/issues/447
2019-01-07 07:46:59 -08:00
Florian CUNY
9eec14ffb3
Merge pull request #445 from BONNe/patch-1
Unnecessary getPermissionPrefix()
2019-01-07 06:25:57 +01:00
BONNe
dbbfdaea7f
Unnecessary getPermissionPrefix()
Kryniowesegryderiusz <3 in Support noticed that Admin tp command has double bskyblock.bskyblock, and I found reason in code.
This getPermissionPrefix() is not necessary, as setPermission() will also add prefix.
2019-01-06 23:32:15 +02:00
Florian CUNY
fe101a6e01 Added "UNOWNED" log to Island 2019-01-06 11:46:25 +01:00
Florian CUNY
d7fbfdb784 Added Island#setRank(UUID, int) 2019-01-06 11:28:37 +01:00
Florian CUNY
55afa166cd Added some defensive code in some Island's methods 2019-01-06 11:03:32 +01:00
Florian CUNY
8da1dc1590 Ignoring IslandBan- & IslandUnbanCommand tests for now
I could not get them to work again
2019-01-05 10:58:32 +01:00
Florian CUNY
9387f65dbf Added IslandBanEvent and IslandUnbanEvent (cancellable) 2019-01-05 10:23:53 +01:00
Florian CUNY
e3574e5ee3 Added AdminSetspawnCommand
#441
2019-01-04 21:33:17 +01:00
Florian CUNY
85fac3112f Improved IslandsManager#setSpawn(Island) + Javadoc
Added some checks to improve the handling.
2019-01-04 21:33:02 +01:00
Florian CUNY
185082f261 Improved Island#isSpawn() and Island#setSpawn() Javadoc + improved handling of Island#setSpawn() and added logging to the Island history 2019-01-04 21:32:21 +01:00
Florian CUNY
f75de015a2 Started working on AddonsManagerTest 2019-01-04 21:31:22 +01:00
Florian CUNY
c78efb8736 Fixed and improved error handling when loading addons
Fixes #440

* Added Addon#getState()
* Added LOADED in Addon.State
* Added AddonsManager#getLoadedAddons() and AddonsManager#getEnabledAddons()
* Improved the loading addons "workflow"
2019-01-04 11:33:35 +01:00
Florian CUNY
37f509ea56 Version 1.1 (develop) 2019-01-03 20:59:02 +01:00
Florian CUNY
2b0ccb4099 Release 1.0 ( 🎉 ) 2019-01-03 20:53:18 +01:00
Florian CUNY
967ebccae1 Fixed 'banCooldown' config comment 2019-01-03 20:47:54 +01:00
Florian CUNY
ef96a01fc8 Fixed bug with the YAML Database when saving config containing hidden ConfigEntry 2019-01-03 20:45:51 +01:00
Florian CUNY
74a28963b4 Improved the "aborting bentobox enabling" message 2019-01-03 20:35:51 +01:00
Florian CUNY
d2f10d883d Set enableAutoOwnershipTransfer to false 2019-01-03 20:26:26 +01:00
Florian CUNY
81435c57f5 Delete GameWorld.puml 2019-01-03 20:26:10 +01:00
tastybento
d13ae470d5 Removed unused imports. 2019-01-03 10:25:03 -08:00
tastybento
2713f58ac5 Fix to fire Island events after an island is created.
Events were firing too early before the island had been fully pasted
async.
2019-01-03 10:24:50 -08:00
tastybento
8452a080f7 Merge branch 'develop' of https://github.com/BentoBoxWorld/bentobox.git into develop 2019-01-03 09:47:04 -08:00
tastybento
5351b162c5 Moved obsidian scooping to be a world flag in settings 2019-01-03 09:46:56 -08:00
Florian CUNY
000d556c7f Improved the "successfully-loaded" message 2019-01-03 18:12:32 +01:00
Florian CUNY
4b4ee1646e Added '@a' to AdminResetsResetCommand so that we can reset everyone 2019-01-03 17:43:00 +01:00
Florian CUNY
9545c74833 Removed since Javadoc tags 2019-01-03 17:28:18 +01:00
Florian CUNY
a5831947c2 Made automated ownership transfer settings hidden for now 2019-01-03 17:22:20 +01:00
Florian CUNY
4a6a109fa4 Added ConfigEntry#hidden() 2019-01-03 17:22:05 +01:00
Florian CUNY
9f676636e0 Fixed some code smells 2019-01-03 17:09:27 +01:00
Florian CUNY
160749c065 Merge branch 'develop' into 167-automated-island-ownership-transfer 2019-01-03 16:59:13 +01:00
Florian CUNY
2e2c7c69de Removed deprecated classes 2019-01-03 16:51:57 +01:00
Florian CUNY
bde91b7784 Fixed commands being registered with their main label as fallbackPrefix
This has been replaced by "bentobox" or the addon's name.
2019-01-03 16:40:51 +01:00
Florian CUNY
708c014d14 Moved allowObsidianScooping to WorldSettings and renamed ObsidianToLava to ObsidianScoopingListener
#432
2019-01-03 16:30:36 +01:00
Florian CUNY
915cd6f293 Made 'general.rank-command' experimental in config
#432
2019-01-03 16:19:08 +01:00
Florian CUNY
c549d969a4 Removed 'island.custom-ranks' from config
#432
2019-01-03 16:17:01 +01:00
Florian CUNY
369600e4d5 Renamed Island#addToBanList() and Island#removeFromBanList() + added log in them
They respectively got renamed to Island#ban() and Island#unban(). They now require the UUID of an issuer (which can be null, but it's better to provide one)
2019-01-03 15:59:24 +01:00
Florian CUNY
fa3dbc5519 Made LogEntry use the Builder pattern 2019-01-03 13:51:46 +01:00
Florian CUNY
245062b36e Removed the offline message "TODO" in User
Most of it will be handled by the Island history
2019-01-03 13:37:54 +01:00
Florian CUNY
0b62c7cf76 Made LogEntry#data a Map<String, Object> 2019-01-03 13:33:46 +01:00
Florian CUNY
265afaf345 Added history to island and Island#log(LogEntry) 2019-01-03 13:26:20 +01:00