satoshinm / WebSandboxMC

Bukkit plugin providing a web-based interface with an interactive WebGL 3D preview or glimpse of your server 🕷⏳📦 ⛺
https://www.spigotmc.org/resources/websandboxmc.39415/
MIT License
19 stars 5 forks source link

It can't load world #29

Closed ss7332337 closed 7 years ago

ss7332337 commented 7 years ago

[WebSandboxMC] Enabling WebSandboxMC v0.7 [00:07:25] [Server thread/ERROR]: Error occurred while enabling WebSandboxMC v0.7 (Is it up to date?) java.lang.IllegalArgumentException: World not found: b at io.github.satoshinm.WebSandboxMC.bridge.BlockBridge.(BlockBridge.java:44) ~[?:?] at io.github.satoshinm.WebSandboxMC.WebSandboxPlugin.onEnable(WebSandboxPlugin.java:114) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) ~[spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at org.bukkit.craftbukkit.v1_9_R2.CraftServer.loadPlugin(CraftServer.java:362) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at org.bukkit.craftbukkit.v1_9_R2.CraftServer.enablePlugins(CraftServer.java:322) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at net.minecraft.server.v1_9_R2.MinecraftServer.t(MinecraftServer.java:416) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at net.minecraft.server.v1_9_R2.MinecraftServer.l(MinecraftServer.java:381) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at net.minecraft.server.v1_9_R2.MinecraftServer.a(MinecraftServer.java:336) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at net.minecraft.server.v1_9_R2.DedicatedServer.init(DedicatedServer.java:268) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:532) [spigot-1.9.4.jar:git-Spigot-798f32d-0cd0397] at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]

satoshinm commented 7 years ago

@hj7332337 Can you post your plugins/WebSandboxMC/config.yml file, it is trying to find a world named "b", can you confirm you have a world of this name?

ss7332337 commented 7 years ago

@satoshinm This is my config, and i'm sure the world b has been load by Multiverse Core. I tried to delete the single quotes around the b, it still didn't work.

http://paste.ubuntu.com/24403863/

http:
  port: 4081
  external_address: localhost
  external_port: 4081
mc:
  entity: Sheep
  entity_custom_names: true
  entity_disable_gravity: true
  entity_move_sandbox: true
  world: 'b'
  x_center: 1547
  y_center: 25
  z_center: 561
  radius: 16
nc:
  y_offset: 20
  allow_break_place_blocks: false
  allow_signs: true
  allow_chatting: true
  see_chat: true
  see_players: true

Here is the log of loading the world

http://paste.ubuntu.com/24403859/

[00:07:39] [Server thread/INFO]: -------- World Settings For [b] --------
[00:07:39] [Server thread/INFO]: Item Despawn Rate: 6000
[00:07:39] [Server thread/INFO]: Item Merge Radius: 3.0
[00:07:39] [Server thread/INFO]: Arrow Despawn Rate: 1200
[00:07:39] [Server thread/INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[00:07:39] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
[00:07:39] [Server thread/INFO]: Random Lighting Updates: false
[00:07:39] [Server thread/INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
[00:07:39] [Server thread/INFO]: Mob Spawn Range: 3
[00:07:39] [Server thread/INFO]: Cactus Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: Cane Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: Melon Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: Mushroom Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: Pumpkin Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: Sapling Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: Wheat Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: NetherWart Growth Modifier: 100%
[00:07:39] [Server thread/INFO]: Entity Activation Range: An 10 / Mo 20 / Mi 2
[00:07:39] [Server thread/INFO]: Structure Info Saving: true
[00:07:39] [Server thread/INFO]: Hopper Transfer: 8 Hopper Check: 8 Hopper Amount: 1
[00:07:39] [Server thread/INFO]: Max TNT Explosions: 25
[00:07:39] [Server thread/INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[00:07:39] [Server thread/INFO]: Experience Merge Radius: 6.0
[00:07:39] [Server thread/INFO]: View Distance: 6
[00:07:39] [Server thread/INFO]: Zombie Aggressive Towards Villager: false
[00:07:39] [Server thread/INFO]: Max Entity Collisions: 2
[00:07:39] [Server thread/INFO]: Custom Map Seeds:  Village: 10387312 Feature: 14357617
[00:07:39] [Server thread/INFO]: Preparing start region for level 4 (Seed: -7612649819147149926)
satoshinm commented 7 years ago

Thanks for the logs, I'll have to look into this..

satoshinm commented 7 years ago

Alright I tested and was able to replicate the issue, my notes:

https://www.spigotmc.org/resources/myworlds.39594/ 1.11.2-v1 with https://www.spigotmc.org/resources/bkcommonlib.39590/ 1.11.2-v1

>world create b
[21:16:31 INFO]: Creating world 'b' (this can take a while) ...
...
>world list
[21:16:52 INFO]: Available worlds:
[21:16:52 INFO]:     b [Loaded]
[21:16:52 INFO]:     world [Loaded]
[21:16:52 INFO]:     world_nether [Loaded]
[21:16:52 INFO]:     world_the_end [Loaded]
plugins/WebSandboxMC/config.yml
  world: 'b'

Then it fails:

[21:19:00 INFO]: [WebSandboxMC] Enabling WebSandboxMC v0.8
[21:19:00 ERROR]: Error occurred while enabling WebSandboxMC v0.8 (Is it up to date?)
java.lang.IllegalArgumentException: World not found: b
    at io.github.satoshinm.WebSandboxMC.bridge.BlockBridge.<init>(BlockBridge.java:44) ~[?:?]
    at io.github.satoshinm.WebSandboxMC.WebSandboxPlugin.onEnable(WebSandboxPlugin.java:114) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:271) ~[spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugin(CraftServer.java:376) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugins(CraftServer.java:326) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at net.minecraft.server.v1_11_R1.MinecraftServer.t(MinecraftServer.java:421) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at net.minecraft.server.v1_11_R1.MinecraftServer.l(MinecraftServer.java:382) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at net.minecraft.server.v1_11_R1.MinecraftServer.a(MinecraftServer.java:337) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at net.minecraft.server.v1_11_R1.DedicatedServer.init(DedicatedServer.java:272) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:544) [spigot-1.11.2.jar:git-Spigot-d276ab1-d219213]
    at java.lang.Thread.run(Thread.java:724) [?:1.8.0-ea]
[21:19:00 INFO]: [My_Worlds] Enabling My_Worlds v1.11.2-v1
[21:19:00 INFO]: [My_Worlds] Loading world 'b'
[21:19:00 INFO]: -------- World Settings For [b] --------

The problem appears to be WebSandboxMC loading before the additional worlds are loaded (My_Worlds).

satoshinm commented 7 years ago

Found this: https://bukkit.org/threads/doing-something-after-all-worlds-have-loaded.323325/ - says to use load: POSTWORLD, but then http://bukkit.gamepedia.com/Plugin_YAML says that's the default and load: STARTUP can be used to override to load on startup instead.


Sure enough, even with load: POSTWORLD, no difference: My_Worlds still loads after my plugin.


Dinnerbone in https://bukkit.org/threads/execute-something-when-all-worlds-are-loaded.5692/ recommends checking after the world is loaded and matching against it. Worlds can be loaded or unloaded at any time, so you can't know when all worlds are loaded indefinitely, but practically someone shouldn't specify the a non-existent world in WebSandboxMC's configuration. The problem is when you want to use a normal world which hasn't loaded yet, but is normally always loaded after startup.

https://bukkit.org/threads/solved-run-code-after-all-plugins-enable.16283/ suggests adding a scheduleSyncDelayedTask() in onEnable(), with no delay. (though https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/scheduler/BukkitScheduler.html says scheduleSyncDelayedTask is deprecated in favor of BukkitTask runTask: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/scheduler/BukkitRunnable.html#runTask(org.bukkit.plugin.Plugin)).

satoshinm commented 7 years ago

@hj7332337 can you test v0.9 from https://www.spigotmc.org/resources/websandboxmc.39415/, released an update I believe should fix this: