BentoBoxWorld / BentoBox

Expandable Minecraft server plugin for island-type games like SkyBlock or AcidIsland.

Home Page:https://bentobox.world

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Residence incompatibility

tastybento opened this issue · comments

Expected behavior

Residences load when the server starts.

Observed/Actual behavior

With BentoBox 1.24.1, the residences don't load because the worlds are not loaded. This error is shown in the log on startup:

[12:29:25 INFO]: Server version: v1_20_R2 - 1.20.2 - paper
[12:29:25 INFO]: Updated (EN) language file. Took 12ms
[12:29:25 INFO]: [Residence] Enabling Residence v5.1.4.0
[12:29:25 INFO]: [Residence] Can't find world with (oneblock_world_the_end) name
[12:29:25 INFO]: [Residence] Can't find world with (acidisland_world_nether) name
[12:29:25 INFO]: [Residence] Can't find world with (oneblock_world) name
[12:29:25 INFO]: [Residence] Can't find world with (bskyblock_world) name
[12:29:25 INFO]: [Residence] Can't find world with (oneblock_world_nether) name
[12:29:25 INFO]: [Residence] Can't find world with (bskyblock_world_nether) name
[12:29:25 INFO]: [Residence] Can't find world with (acidisland_world_the_end) name
[12:29:25 INFO]: [Residence] Can't find world with (acidisland_world) name
[12:29:25 INFO]: [Residence] Can't find world with (bskyblock_world_the_end) name
[12:29:25 INFO]: [Residence] Loaded (2) groups
[12:29:25 INFO]: [Residence] Found Vault, but Vault reported no usable permissions system...
[12:29:25 INFO]: [Residence] Permissions plugin NOT FOUND!
[12:29:25 INFO]: [Residence] Scanning for economy systems...
[12:29:25 INFO]: [Residence] Found Vault using economy: Essentials Economy
[12:29:25 INFO]: [Residence] Loaded world data into memory. (0 ms) -> 0 residences
[12:29:25 INFO]: [Residence] Loaded world_the_end data into memory. (0 ms) -> 0 residences
[12:29:25 INFO]: [Residence] Loaded acidisland_world/bentobox data into memory. (0 ms) -> 0 residences
[12:29:25 INFO]: [Residence] Loaded acidisland_world_nether/bentobox data into memory. (0 ms) -> 0 residences
[12:29:25 INFO]: [Residence] Loaded world_nether data into memory. (0 ms) -> 0 residences
[12:29:25 INFO]: [Residence] Loaded acidisland_world_the_end/bentobox data into memory. (0 ms) -> 0 residences
[12:29:25 INFO]: [Residence] Enabled! Version 5.1.4.0 by Zrips

However, with BentoBox 2.0.0-SNAPSHOT and Mutiverse, the residences load fine:

[12:29:02 INFO]: Server version: v1_20_R2 - 1.20.2 - paper
[12:29:03 INFO]: Updated (EN) language file. Took 23ms
[12:29:03 INFO]: [Residence] Enabling Residence v5.1.4.0
[12:29:03 INFO]: [Residence] Loaded (2) groups
[12:29:03 INFO]: [Residence] Found Vault, but Vault reported no usable permissions system...
[12:29:03 INFO]: [Residence] Permissions plugin NOT FOUND!
[12:29:03 INFO]: [Residence] Scanning for economy systems...
[12:29:03 INFO]: [Residence] Found Vault using economy: Essentials Economy
[12:29:03 INFO]: [Residence] Loaded acidisland_world/bentobox data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded bskyblock_world_nether data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded acidisland_world_the_end data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded bskyblock_world_the_end data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded oneblock_world_nether data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded acidisland_world_the_end/bentobox data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded world data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded world_the_end data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded acidisland_world data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded oneblock_world_the_end data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded oneblock_world data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded acidisland_world_nether/bentobox data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded world_nether data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded acidisland_world_nether data into memory. (0 ms) -> 0 residences
[12:29:03 INFO]: [Residence] Loaded bskyblock_world data into memory. (8 ms) -> 1 residences
[12:29:03 INFO]: [Residence] Enabled! Version 5.1.4.0 by Zrips

See the Residence in bskyblock_world.

Steps/models to reproduce

  1. Download Residence plugin and install with CMILib1.4.2.1.
  2. Download and install EssentialsX for economy and Vault
  3. Download and installed Multiverse-Core v4.3.12
  4. Use BentoBox 1.24.1 (latest release)
  5. Start an island, /is
  6. Use a wooden hoe to set the corners of your residence
  7. Give yourselve money /eco set <name> 10000
  8. Create the residence, /res create <name>
  9. Stop the server
  10. Start the server - see the errors

BentoBox version

> bbox v
[12:33:35 INFO]: Running PAPER Invalid.
[12:33:35 INFO]: BentoBox version: 1.24.1
[12:33:35 INFO]: Database: JSON
[12:33:35 INFO]: Loaded Game Worlds:
[12:33:35 INFO]: acidisland_world (AcidIsland): Overworld, Nether, The End
[12:33:35 INFO]: bskyblock_world (BSkyBlock): Overworld, Nether, The End
[12:33:35 INFO]: oneblock_world (OneBlock): Overworld, Nether*, The End*
[12:33:35 INFO]: Loaded Addons:
[12:33:35 INFO]: AcidIsland 1.18.1-SNAPSHOT-b999 (ENABLED)
[12:33:35 INFO]: AOneBlock 1.14.2 (ENABLED)
[12:33:35 INFO]: Bank 1.7.0 (ENABLED)
[12:33:35 INFO]: Biomes 2.1.1 (ENABLED)
[12:33:35 INFO]: Border 4.1.1 (ENABLED)
[12:33:35 INFO]: BSkyBlock 1.16.1 (ENABLED)
[12:33:35 INFO]: CauldronWitchery 2.0.1 (ENABLED)
[12:33:35 INFO]: Challenges 1.2.0 (ENABLED)
[12:33:35 INFO]: Chat 1.1.4 (ENABLED)
[12:33:35 INFO]: CheckMeOut 1.1.1 (ENABLED)
[12:33:35 INFO]: DimensionalTrees 1.6.0 (ENABLED)
[12:33:35 INFO]: ExtraMobs 1.12 (ENABLED)
[12:33:35 INFO]: Greenhouses 1.7.3 (ENABLED)
[12:33:35 INFO]: InvSwitcher 1.11.0 (ENABLED)
[12:33:35 INFO]: IslandFly 1.11.0 (ENABLED)
[12:33:35 INFO]: Level 2.11.0 (ENABLED)
[12:33:35 INFO]: Likes 2.3.1 (ENABLED)
[12:33:35 INFO]: Limits 1.19.2-SNAPSHOT-LOCAL (ENABLED)
[12:33:35 INFO]: MagicCobblestoneGenerator 2.5.1 (ENABLED)
[12:33:35 INFO]: TwerkingForTrees 1.4.3 (ENABLED)
[12:33:35 INFO]: Visit 1.6.0 (ENABLED)
[12:33:35 INFO]: VoidPortals 1.5.0.0 (ENABLED)
[12:33:35 INFO]: Warps 1.13.0 (ENABLED)

Plugin list

> plugins
[12:33:58 INFO]: Server Plugins (22):
[12:33:58 INFO]: Bukkit Plugins:
[12:33:58 INFO]:  - BentoBox, BentoBox-AcidIsland, BentoBox-AOneBlock, BentoBox-Bank, BentoBox-Biomes, BentoBox-BSkyBlock, BentoBox-CauldronWitchery, BentoBox-Challenges, BentoBox-CheckMeOut, BentoBox-Greenhouses
[12:33:58 INFO]:  BentoBox-IslandFly, BentoBox-Level, BentoBox-Likes, BentoBox-Limits, BentoBox-MagicCobblestoneGenerator, BentoBox-Visit, BentoBox-Warps, CMILib, Essentials, Multiverse-Core
[12:33:58 INFO]:  Residence, Vault

Other

No response

Residences loads before the BentoBox worlds are loaded, so they do not "know" about them and cannot load. However, if Multiverse is installed, and the server has run at least once with 2.0.0, then the worlds will be known because MV has them, and Residences depends on MV. With 1.24.1, BentoBox had a work around for an MV bug where we would remove the worlds from MV on shutdown, thus MV would not know about them.

Although BentoBox does load before Residence, BentoBox does not load worlds during that phase. It waits for 1 tick, and then loads worlds. This is because it loads at STARTUP, and creating additional worlds at that point causes a problem.

So, the possible solutions/workarounds are:

  1. Use BentoBox 2.0.0 and Multiverse - this seems to work fine. Note - if you don't use Multiverse, then Residence still doesn't work.
  2. The Residence author could wait to check worlds until BentoBox is ready (via the event) - this is not really an option and I don't expect it.
  3. BentoBox changes its loading approach. i.e, don't load at STARTUP and remove the 1 tick delay.

I have experimented with option 3, and it seems to work. But I am not sure whether not loading at Startup will cause a problem. I think we should pursue this approach and see if it is a root cause fix to this issue.

Note: this change was reverted because it prevents admins from running start-alone BentoBox worlds. The result of this is that MV has to be run if Residence compatibility is required.