Multiverse / Multiverse-Core

The original Bukkit Multi-World Plugin!
BSD 3-Clause "New" or "Revised" License
962 stars 299 forks source link

Mulitverse core wont load spawn area (Running 4.1.0 on a 1.16.1 Spigot version) #2303

Closed MoulderUtes closed 4 years ago

MoulderUtes commented 4 years ago

Just want to say yes I know multiverse has not been tested with 1.16.1 so what was I expecting but I want to make the issue known rn. When I created my server I logged in through mine craft everything worked. I then shut down the server and installed multiverse core 4.1.0. I then setup my separate worlds (Lobby, Creative, Survival, Survival Nether, Survival End, Survival Resource, Survival Nether Resource, Survival End Resource). Everything worked great so props to the devs. I changed some of the configs for the worlds (gamemode, pvp, dificulty, etc). Everything is great but when I closed my server and restarted it it wont load the spawn areas and just shuts down the server. Any ideas how to fix this or is it an issue with running 4.1.0 on a 1.16.1 spigot.

Console Cant load spawn area.txt

benwoo1110 commented 4 years ago

Hi, may I ask how exactly you are changing/setting gamemode, pvp, dificulty etc...?

MoulderUtes commented 4 years ago

Sorry just realized its in the wrong section in multiverse inventories not core

but to answer you question im going though the world.yml

worlds yml but in txt.txt

benwoo1110 commented 4 years ago

One thing to add, ddi you force updated your world/server from older version of Minecraft to 1.16.1? or is the world generate on 1.16.1?

MoulderUtes commented 4 years ago

It is a fresh install of spigot 1.16.1 and the worlds were all generated in 1.16.1

MoulderUtes commented 4 years ago

So just to rule out some more variables

I created a new directory copy and pasted the spigot.jar and the start.bat Started up the server/automatically stopped because of Eula Accepted eula and started back up Server created the world and started up great joined from client worked great opped myself in console closed down server added multiverse-core-4.1.0.jar to plugin folder started back up the server joined and did /mvc lobby normal -t flat did /mvtp lobby disconnected and shut down server Made sure server shutdown all the way and saved the chunks started back up the server and got the same error

server test 2 multiverse.txt

P.S. Becasue I wanted to make sure I did it exactly as written I followed step for step once again and got the exact same thing

MoulderUtes commented 4 years ago

Turns out I was wrong and it slowly went back(Edited)

Figured It Partly

you guys for you have done. Hexic Pyth in my email had commented but it's now showing up in the website.

I believe the issue is with how Multiverse generates the world.

How I Fixed It

It's pretty simple, all you do is take the worlds generated by multiverse, and move them to the regular minecraft saves directory (single player mine craft). You then just open the new world in single player, load it, change one block. Then just move it back and replace the old file with the new one. IF THE WORLD IN SINGLEPLAYER SELECTOR GOES COLORFUL IT WORKED IF ITS STILL GRAY IT DIDNT WORK

If you guys want to see the world files before and after just ask as its not super easy but I can do it._

Cethoric commented 4 years ago

what about the multiverse worlds that are in the void or a odd setup like plot worlds? is there any other way to fix this error on the server threads?

MoulderUtes commented 4 years ago

I don't really know whats going on when i do this. So if i do a nether world and i go into the nether it works but things like plot world idk. You could try creating a backup of your plot world. Opening it up in single player and seeing what it does. It will spawn you in as survival and no cheats but you can open to lan to enable cheets. I'm curious what it would do. Would it rewrite the world or keep it the same?

MoulderUtes commented 4 years ago

It would be great to get a dev looking at this so they could tell us whats going on more. Im just a noob who started messing with is yesterday. But I have Gmod and fivem server experiance.

HexicPyth commented 4 years ago

Figured It Partly

you guys for you have done. Hexic Pyth in my email had commented but it's now showing up in the website.

Sorry I had deleted my comment because the OP said they had tried starting their server from scratch and /mvc-ing the new worlds and it wasn't working, so I thought i had an unrelated issue.

My original comment was something along the lines of:

I encountered the same issue. I found that by deleting my spawn world directory and restarting the server, bukkit would recreate the spawn world(as a 1.16.1 world) and then the server stopped immediately crashing upon startup. After I got the server starting without crashing I imported the old spawn world and //copy-ed the structures I needed from it into the new one, and it works now. This workaround might not work for everyone though if you cant restore your spawnroom structures by //copy :)

MoulderUtes commented 4 years ago

This is getting even more interesting so after doing the whole processes and eventual getting everything to "work" my lobby world(flat normal) changed from a flat world. So I /mvremove d it and make a new world and did the whole process again for the new lobby world created with /mvc. But now when I started the server only certain worlds would prepare the spawn area. When I tried to connect the server crashed. The server tried to load the spawn area of a different world that was working before.

HexicPyth commented 4 years ago

This is getting even more interesting so after doing the whole processes and eventual getting everything to "work" my lobby world(flat normal) changed from a flat world. So I /mvremove d it and make a new world and did the whole process again for the new lobby world created with /mvc. But now when I started the server only certain worlds would prepare the spawn area. When I tried to connect the server crashed. The server tried to load the spawn area of a different world that was working before.

I saw in the description of the issue you made a bunch of separate worlds with /mvc. Did you also do the workaround for your spawn world too? (its called whatever the value of level-name is in server.properties) That one has to load every time a player joins, because by default players join in that world.

MoulderUtes commented 4 years ago

Yeah I did my method for every world and it worked for the one time but when I restarted it again it didn't work.

MoulderUtes commented 4 years ago

If someone else wants to try and recreate it its just 1.16.1 spigot from https://getbukkit.org/download/spigot 4.1.0 Multiverse-Core from https://dev.bukkit.org/projects/multiverse-core/files start up the server and install the plugin create a world with /mvc shut down server and it wont be able to fully restart

HexicPyth commented 4 years ago

So on the discord someone else had the same problem and we figured out that (make a backup first) deleting the world directory for the world which causes mv to crash seems to solve the problem.

In your logs you should see something like this when it crashes:

[18:23:31] [Server thread/INFO]: Preparing start region for dimension minecraft:pvparena
[18:23:31] [Server thread/INFO]: Preparing spawn area: 0%
[18:23:31] [Server thread/INFO]: Preparing spawn area: 0%
[18:23:31] [Worker-Main-11/FATAL]: Failed to schedule load callback for chunk [6, -12]

Remove(or move) whichever world causes it to crash(in this case pvparena), then try to start it again. Does it work then?

Obviously this isn't an ideal workaround but it doesn't hurt to try :)

MoulderUtes commented 4 years ago

Yeah it does but the issue is all of the worlds are doing it except world world nether and world end. And all of those are the spigot generated worlds. So yes it works but I wouldn’t have any multiverse worlds

MoulderUtes commented 4 years ago

I should say I can load like 3 multiverse worlds out of 4 but when I delete the 4th another ones goes crazy

HexicPyth commented 4 years ago

I can recreate that too, when I try to import my (1.15) spawnroom, I get this

[18:45:33] [Server thread/INFO]: CONSOLE: Starting import of world 'spawnroom2'...
[18:45:33] [Server thread/INFO]: [Multiverse-Core] Loading World & Settings - 'spawnroom2' - Env: NORMAL - Type: null
[18:45:33] [Server thread/WARN]: java.nio.channels.OverlappingFileLockException
[18:45:33] [Server thread/WARN]:        at java.base/sun.nio.ch.FileLockTable.checkList(FileLockTable.java:229)
[18:45:33] [Server thread/WARN]:        at java.base/sun.nio.ch.FileLockTable.add(FileLockTable.java:123)
[18:45:33] [Server thread/WARN]:        at java.base/sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1154)
[18:45:33] [Server thread/WARN]:        at java.base/java.nio.channels.FileChannel.tryLock(FileChannel.java:1165)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.SessionLock.a(SourceFile:42)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.Convertable$ConversionSession.<init>(Convertable.java:198)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.Convertable.c(Convertable.java:180)
[18:45:33] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_16_R1.CraftServer.createWorld(CraftServer.java:986)
[18:45:33] [Server thread/WARN]:        at org.bukkit.Bukkit.createWorld(Bukkit.java:502)
[18:45:33] [Server thread/WARN]:        at org.bukkit.WorldCreator.createWorld(WorldCreator.java:320)
[18:45:33] [Server thread/WARN]:        at com.onarandombox.MultiverseCore.utils.WorldManager.doLoad(WorldManager.java:467)
[18:45:33] [Server thread/WARN]:        at com.onarandombox.MultiverseCore.utils.WorldManager.addWorld(WorldManager.java:269)
[18:45:33] [Server thread/WARN]:        at com.onarandombox.MultiverseCore.commands.ImportCommand.runCommand(ImportCommand.java:165)
[18:45:33] [Server thread/WARN]:        at com.onarandombox.commandhandler.CommandHandler.checkAndRunCommand(CommandHandler.java:296)
[18:45:33] [Server thread/WARN]:        at com.onarandombox.commandhandler.CommandHandler.processFoundCommands(CommandHandler.java:143)
[18:45:33] [Server thread/WARN]:        at com.onarandombox.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:93)
[18:45:33] [Server thread/WARN]:        at com.onarandombox.MultiverseCore.MultiverseCore.onCommand(MultiverseCore.java:912)
[18:45:33] [Server thread/WARN]:        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
[18:45:33] [Server thread/WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149)
[18:45:33] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_16_R1.CraftServer.dispatchCommand(CraftServer.java:747)
[18:45:33] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_16_R1.CraftServer.dispatchServerCommand(CraftServer.java:732)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:386)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.DedicatedServer.b(DedicatedServer.java:355)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.MinecraftServer.a(MinecraftServer.java:1007)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:846)
[18:45:33] [Server thread/WARN]:        at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164)
[18:45:33] [Server thread/WARN]:        at java.base/java.lang.Thread.run(Thread.java:834)
[18:45:33] [Server thread/ERROR]: [Multiverse-Core] The world 'spawnroom2' could NOT be loaded because it contains errors and is probably corrupt!
[18:45:33] [Server thread/ERROR]: [Multiverse-Core] Try using Minecraft Region Fixer to repair your world! 'spawnroom2'
[18:45:33] [Server thread/ERROR]: [Multiverse-Core] https://github.com/Fenixin/Minecraft-Region-Fixer
[18:45:33] [Server thread/ERROR]: [Multiverse-Core] Failed to Create/Load the world 'spawnroom2'
[18:45:33] [Server thread/INFO]: CONSOLE: Failed!

Which is presumably what causes the error which makes the server crash if you force it to load one of the "broken"(1.15) worlds

MoulderUtes commented 4 years ago

Yes that's the case for you but I'm not trying to load 1.15 world i'm creating worlds in 1.16 for 1.16 I am in the 1.16 server using /mvc so the worlds are all 1.16

MoulderUtes commented 4 years ago

The only change between 1.15 and 1.16 for world saves is

WORLD SAVE FORMAT Saving level.dat now uses randomly-named temporary files (instead of using level.dat_new every time) player/*.dat are now saved in a way similar to level.dat (including leaving .dat_old files)

https://www.minecraft.net/en-us/article/nether-update-java

I don't know what these mean but hopefully someone else does. But from what i can

MoulderUtes commented 4 years ago

So if you import a world created inside minecraft singleplayer 1.16 it will work. This and the fact that if you load the multiverse worlds in to 1.16 singleplayer they kind of work, makes me think that 1.16 worlds are different and minecraft can convert older worlds but multiverse cannot make new worlds and does not convert old worlds(as shown by hexic pyth when he tired to load a older 1.15 world). So because of this I am going to stop trying to figure it out. I would love to hear if the dev/creator has any plans of updating multiverse and if so thank you and good luck.

benwoo1110 commented 4 years ago

So just to rule out some more variables

I created a new directory copy and pasted the spigot.jar and the start.bat Started up the server/automatically stopped because of Eula Accepted eula and started back up Server created the world and started up great joined from client worked great opped myself in console closed down server added multiverse-core-4.1.0.jar to plugin folder started back up the server joined and did /mvc lobby normal -t flat did /mvtp lobby disconnected and shut down server Made sure server shutdown all the way and saved the chunks started back up the server and got the same error

I was able to reproduce the issue:

Created a world: https://bytebin.lucko.me/S2e3GTnEhi Restarted and crashed: https://bytebin.lucko.me/MbE1na3w5h

MoulderUtes commented 4 years ago

I Might try to get a dev version and try it out form https://github.com/Multiverse/Multiverse-Core But i need to compile it and I don't have any of the stuff to do it rn but if I get it i will say what happens. If anyone wants to compile it and post it I would be very grateful.

benwoo1110 commented 4 years ago

Update: upon updating the latest build of spigot 1.16.1, the issue seems to be fixed. I updated by running the latest BuildTools.jar from spigot. https://www.spigotmc.org/wiki/buildtools/

Before update, it crashed: https://bytebin.lucko.me/Ada6L7DRog After update started up: https://bytebin.lucko.me/lM2nSRxEKS

MoulderUtes commented 4 years ago

Thank you to everyone who helped figure this out

I can confirm that what @benwoo1110 said works. I'm going to close this issue thread now but once again thank you to everyone who helped.