BentoBoxWorld / BentoBox

Expandable Minecraft server plugin for island-type games like SkyBlock or AcidIsland.
https://bentobox.world
Eclipse Public License 2.0
337 stars 140 forks source link

Unowned islands / players can't create new islands #1147

Closed x1p closed 4 years ago

x1p commented 4 years ago

Description

Describe the bug

At some random moment, the plugin decided to register free islands space as uninhabited (unowned) islands until it reached the world border. This leads to a full world or at least skipping some space. I traced the uninhabited islands creation date back to a certain moment using an Epoch converter. At that particular time nothing was changed to the server, not even a restart.

Steps to reproduce the behavior

Uncertain unfortunately

Expected behavior

Screenshots and videos (Optional)

Environment

BentoBox Version (Mandatory)
Running PAPER 1.15.1.
BentoBox version: 1.10.0
Database: JSON
Loaded Game Worlds:
bskyblock_world (BSkyBlock): Overworld, Nether, End
Loaded Addons:
Biomes 1.6.0.1-SNAPSHOT-b149 (ENABLED)
BSkyBlock 1.10.0 (ENABLED)
Challenges 0.9.0-SNAPSHOT-b396 (ENABLED)
Level 1.9.1-SNAPSHOT-b332 (ENABLED)
Limits 1.9.0-SNAPSHOT-b179 (ENABLED)
MagicCobblestoneGenerator 1.9.0-SNAPSHOT-b92 (ENABLED)
Warps 1.8.2-SNAPSHOT-b201 (ENABLED)

Plugins (Optional)

BentoBox, ChestShop, dynmap*, LuckPerms, mcMMO, PlaceholderAPI*, PlugMan, Vault, WorldBorder, WorldEdit, WorldGuard

Additional context (Optional)

I'm sorry that I can't give you any more details. You can close this ticket if you wish.

Tina-King commented 4 years ago

Ive also noticed this issue, but still yet to find out why I keep finding unowned islands. They dont even have a blueprint but they have just the 1 piece of bedrock and a worldborder.

x1p commented 4 years ago

I've purged all >400 "unowned islands". I am 100% sure that there are no blocks in neither worlds. Still the plugin refuses to make islands on empty spots.

When I go to an empty spot, the first free spot is unowned again!! Aarhgh I can register an island there which works. But the island is not made. Player can't teleport because it's not safe. (There is no island, no bedrock, nothing) I have to delete the island manually, then wait (which seems like forever) and then register an island again. Then it works.

I can't manually make islands for every player who joins. So I hope there is a quick solution for this.

x1p commented 4 years ago

I will purge again all 144 unowned island. Note that this is less then the previous batch. There are definitely free islands as I have checked so not all islands are made unowned again. I have received confirmation of a player that there was no free space for him to make a new island. But if there are free islands, then a new player should have received an island. But some how it still fails to do so.

x1p commented 4 years ago

Checked this morning. There are no unowned islands left to purge. Still.. a player can not make an island. This appears on the console:

[BentoBox] Could not find a free spot for islands! Is this world empty?
[BentoBox] Blocks around center locations: 20 max 20
[BentoBox] Known islands: 186 max unlimited.
[BentoBox] Failed to make island - no unoccupied spot found.
[BentoBox] If the world was imported, try multiple times until all unowned islands are known.
[BentoBox] Could not create island for player. commands.island.create.cannot-create-island

After a restart, there are 83 unowned islands. This means that there are definitely some real free spots. But still a player is not allowed to create an island. Not on a free spot, not on an unowned spot.

Poslovitch commented 4 years ago

@tastybento Could you please have a look at that ? it seems to be a quite serious bug.

tastybento commented 4 years ago

Yes, I'll look at it. I suspect that there are islands left to be deleted in the deleted island database table. These are ignored when trying to find a spot because they are technically still being deleted. I recommend clearing that table from the database (move or delete the IslandDeletion folder). Let me know if there are records in that folder because that will confirm the theory.

x1p commented 4 years ago

At this very moment, there are 0 island which are able to be purged. (Found 0 islands) The IslandDeletion folder is empty. There are a total of 183 island files out of the max of 441 island places till border. When a player want to create an island, this notice appears on the console:

[18:58:55 ERROR]: [BentoBox] Could not find a free spot for islands! Is this world empty?
[18:58:55 ERROR]: [BentoBox] Blocks around center locations: 20 max 20
[18:58:55 ERROR]: [BentoBox] Known islands: 159 max unlimited.
[18:58:55 ERROR]: [BentoBox] Failed to make island - no unoccupied spot found.
[18:58:55 ERROR]: [BentoBox] If the world was imported, try multiple times until all unowned islands are known.
[18:58:55 ERROR]: [BentoBox] Could not create island for player. commands.island.create.cannot-create-island

BTW: The last translation line entry exists and works for the player. Not sure why it looks like it doesn't work.

tastybento commented 4 years ago

Thanks, that helps.

tastybento commented 4 years ago

Found the bug. Yes, this will cause runaway island reservation for all prior used empty spots. i.e., a bedrock block will be placed there.

x1p commented 4 years ago

Ok. Well my world is certainly not full of bedrock blocks. I have a lot of void spaces where /bsb info says that I'm not on an island, but still it refuses to place an island there. Looking forward to a solution.

tastybento commented 4 years ago

Noted. Please try this latest build and confirm if that fixes the situation for you. If not, then I'll need further info, probably your island database folder zipped up.

x1p commented 4 years ago

Quick test showed it worked. (It's purging again another 21 islands.) I'll keep an eye on it if it happens again. Feel free to close this issue. If anything strange happens, I'll contact again.