ForgeEssentials

ForgeEssentials

339k Downloads

[1.10 - Build 1350] Crash when creating a Multiworld

Diamssword opened this issue ยท 38 comments

commented

Hello, when I try to do /mw create, the server freeze a bit until the world is generated, sand me on the new world the crash:

---- Minecraft Crash Report ----

WARNING: coremods are present:
Contact their authors BEFORE contacting forge

// Uh... Did I do that?

Time: 11/09/16 10:46
Description: Exception ticking world

java.lang.NullPointerException: Exception ticking world
    at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:225)
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:690)
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:344)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481)
    at java.lang.Thread.run(Unknown Source)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
    at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:225)

-- Affected level --
Details:
    Level name: world
    All players: 0 total; []
    Chunk stats: ServerChunkCache: 0 Drop: 0
    Level seed: 2766425225834290840
    Level generator: ID 00 - default, ver 1. Features enabled: true
    Level generator options: 
    Level spawn location: 258,00,64,00,213,00 - World: (258,64,213), Chunk: (at 2,4,5 in 16,13; contains blocks 256,0,208 to 271,255,223), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
    Level time: 25635 game time, 14310 day time
    Level dimension: 0
    Level storage version: 0x04ABD - Anvil
    Level weather: Rain time: 115919 (now: false), thunder time: 142097 (now: false)
    Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false
Stacktrace:
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:690)
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:344)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481)
    at java.lang.Thread.run(Unknown Source)

-- System Details --
Details:
    Minecraft Version: 1.8.9
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.8.0_101, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 554095336 bytes (528 MB) / 780140544 bytes (744 MB) up to 1883242496 bytes (1796 MB)
    JVM Flags: 0 total; 
    IntCache: cache: 11, tcache: 0, allocated: 13, tallocated: 95
    FML: MCP 9.19 Powered by Forge 11.15.1.1902 5 mods loaded, 5 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCHIJAAAA   mcp{9.19} [Minecraft Coder Pack] (minecraft.jar) 
    UCHIJAAAA   FML{8.0.99.99} [Forge Mod Loader] (forge-1.8.9-11.15.1.1902-1.8.9-universal.jar) 
    UCHIJAAAA   Forge{11.15.1.1902} [Minecraft Forge] (forge-1.8.9-11.15.1.1902-1.8.9-universal.jar) 
    UCHIJAAAA   ForgeEssentials{1.8.5} [Forge Essentials] (forgeessentials-1.8.9-1.8.5.101-server.jar) 
    UCHIJAAAA   worldedit{6.1.1} [WorldEdit] (worldedit-forge-mc1.8.9-6.1.1-SNAPSHOT-dist.jar) 
    Loaded coremods (and transformers): 
    ForgeEssentials: Running ForgeEssentials 1.8.5.101 (bf0886e). Modules loaded: Afterlife, Backups, Chat, Commands, Economy, JScripting, Multiworld, Permissions, PlayerLogger, Protection, Remote, SignTools, Teleport, Tickets, WEIntegrationTools, WorldBorder, factions, mapper
    Profiler Position: N/A (disabled)
    Player Count: 0 / 20; []
    Is Modded: Definitely; Server brand changed to 'fml,forge'
    Type: Dedicated Server (map_server.txt)

I have tried to gneerate a multiworld both with my other mods and whith ForgeEssentials only.

commented

Closing since 1.10 is no longer supported. Chances are we fixed this on 1.12 since I had to rewrite a bunch of multiworld code.

commented

Is this on 1.7.10 or another version?

commented

1.8.9, sorry I've forgot to clarify

commented

Same here, you forgot to init the world server, even then it only creates clones of the over world so you need to fix both the init and the creation

addworldServer.init();here
https://github.com/ForgeEssentials/ForgeEssentials/blob/18/develop/src/main/java/com/forgeessentials/multiworld/MultiworldManager.java#L275

and instead of this https://github.com/ForgeEssentials/ForgeEssentials/blob/18/develop/src/main/java/com/forgeessentials/multiworld/MultiworldManager.java#L271

WorldSettings settings = new WorldSettings(world.seed, mcServer.getGameType(), mcServer.canStructuresSpawn(), mcServer.isHardcore(), WorldType.parseWorldType(world.worldType));

WorldInfo info = new WorldInfo(settings, world.name);

WorldServer worldServer = new WorldServerMultiworld(mcServer, savehandler, info, world.dimensionId, overworld, mcServer.theProfiler, world);

it works for me when doing flat amplified etc

commented

Thanks you, I'm not familiar with java compiling, what should I use to modify thes files?

commented

thats more a note for the developers ๐Ÿ˜†

if you want just download the repo, edit the file with the changes I pointed out and then all you have to do is run the command
gradlew build
it might take a bit but it should compile. Since you are using windows just shift right click and you will see on the menu it says open command window here (when in the system explorer) make sure you are in the folder with gradlew in it and thats basically it.

commented

Can confirm this occurs on 1.8.9. Same error.

Any news of a fix in the works?
Tried to do what you've suggested @DomAmato but I'm terrible at using gradle. Says repository not found and I'm not sure how to just add the folder I'm using and google isn't helping much. Just getting responses that aren't really working lol.

commented

@Haigen make sure you download the proper branch from here
https://github.com/ForgeEssentials/ForgeEssentials/tree/18/develop

on the right side you will see clone or download, you can just download it I think because with cloning you need a git client. Unzip the archive and navigate to the java file and open it with a text editor or whatever you use to edit code with and make the changes I commented above. Save it and then run gradlew build if you are on Windows and ./gradlew build if you are on OSX or Linux. The command has to be run in the command prompt or terminal environment from the folder you extracted the files to.

commented

@DomAmato Yup, followed those steps exactly. This happens:

C:\ForgeEssentials-18-develop>gradlew build
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\ForgeEssentials-18-develop\build.gradle' line: 62
* What went wrong:
A problem occurred evaluating root project 'ForgeEssentials-18-develop'.
> repository not found: C:\ForgeEssentials-18-develop
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 13.504 secs
commented

I feared that was the case, it is looking for a git hash to create a build number from.
int the gradle.build file open it and delete these lines:

line 60-63

// Get commit hash
import org.ajoberstar.grgit.Grgit
def repo = Grgit.open(project.file("."))
ext.gitCommitHash = repo.log().find().abbreviatedId

and on line 87
"BuildID": gitCommitHash,
replace gitCommitHash with a number, i just use 0

commented

also in the multiworld manager you need to import a few files by adding:

import net.minecraft.world.WorldSettings;
import net.minecraft.world.storage.WorldInfo;

to the top of the file

commented

if you are still having problems I just compiled a patched release on my own repo...
https://github.com/CityOfLearning/ForgeEssentials/releases/tag/1.8.9-patch

commented

@DomAmato Awesome, thanks. If this build doesn't work I'll download yours. Cheers for the help.

commented

no problem let me know if that patch doesn't work it has been working fine for me and addresses an issue not even in this that was happening where the new worlds were just clones of the overworld. ๐Ÿ‘

commented

Patch is working fine, cheers again.

Now I just need to work out how to make a separate spawn, separate pixelmon config and add my current world to the list of multiworlds :P

commented

@DomAmato was your PR rejected?

commented

no my fork is super wonky, i just posted the suggested fix in this issue since its only 1 file and a few lines. I could probably rebase and create PR later tonight if thats easier

commented

Sure, that would help greatly. Thanks!

commented

I can help you with a little bit there. You can change the server spawn to any dimension with a command I think its /setserverspawn here, and then if you want them to respawn in that world if they die and not at server spawn I think you can do like /spawnpoint here but it needs to be in a zone or done via a command block.

Pixelmon config is something I have no experience with.

Adding your world is actually really easy, make sure you create a new multiworld with the same type of world generation as your old world (if its a flat world etc) then stop your server and replace the files in your world/FEMultiworld/ folder with the old world files (data, region, level.dat etc...) restart the server and goto the new world and viola, your old world is there now

commented

So no way to add the base world as something other than '0'? lol

commented

What do you mean by base world? if you mean dimension 0 or the normal overworld you can replace those files but you can't remap the dimension ID, though really its just arbitrary

commented

Yeah like the default server you load. The one that the multiworld files sit in. Default set to "world" in servers.
Just wondering if it's possible to add that to the mw list.

commented

if you want you could never even use the overworld if you change the server spawn to one of the other multiworlds. Its still accessible like if you do /mwtp WORLD_0 ... thats the world your referring to. I use that world as the hubworld on my server so that people load there by default and then can choose where to teleport to. Like I said its mostly arbitrary except I think nether portals might take you back to that world... I havent actually checked that since they are disabled on my server

commented

thx for the build!

commented

Wow, Dom? I'm giving you the biggest virtual hug right now. I'm using your build to fix my world gen crash problem. Discovered this thread when I was about ready to give up with ForgeEssentials, and was ready to head back to Sponge and piece-meal it all together. Wish I could code! Thank you so much for the fix. I really hope I don't run into any other probs, here.
Cheers!
Anna

commented

No problem, there are some features missing from my build as I have adapted it to fit my needs and I really do need to submit this fix for the master repo here... glad it helped someone though!

commented

Oh OK! I should check ... as long as you have that freeze command (bubble?) and the perms are still built in, I think I'm OK? But still lots to test and work with before our server is released ..

commented

The main difference is the playerlogger feature was removed in mine. There are a ton of dependencies it requires and it was eating up too much CPU for my tastes. Other than that the new scripting component that that master branch has been working on has not been updated. It includes other patches for a lot of minor features but it should be quite stable. We use it for our server in our study and my only word of advice is that its easier to deny permissions and grant them where necessary. We had a lot more success using that strategy than having each zone and area try to juggle a bunch of different permissions, it became really hard to tell which zone had conflicting issues.

commented

OK. You left /rb in, correct? I just tested that.
I am working on an EDU server that will be released in a few months time. I have always worked with CoreProtect and it has allowed me to see who has broken what, and roll things back. That's a big issue for the little kids ... and what gives them the confidence to come back and continue to play/learn/build after something has been griefed. Hum ...

commented

I have never actually used that command so if it works... but my hunch is that it would not be still in there since the database that records all of those interactions would be removed. I'll finally make the pull request tonight so that the patch will work with the fully featured forge essentials

commented

Oh yes I see that now ... ran it once and it worked, second time it didn't.
OMgosh, really? That would be amazing! I was just thinking I had to go back to the drawing board so-to-speak. We are working on a server that will be intro'd to the world before July 1st for Canada150 celebrations. We're rendering Canada at 1:95 scale, and while content will be predominantly EDU based, I do want kids to stay, learn and build. http://www.minecampkids.com/canada-in-minecraft!.html

commented

Sounds cool, I will keep my eye on the project ๐Ÿ˜„ I submitted the patch though its upto the devs here to make the final call.

commented

https://github.com/CityOfLearning/ForgeEssentials/releases/tag/1.8.9-mwpatch

I created a release with the patch from the vanilla branch, I have to warn you this is totally untested so you should back up everything before trying it out since the patch I released was only tested for my version of FE. If you find any bugs (related to multiworld) you can always message me and ill see what I can do.

commented

Thanks so much, Dom! So far, so good ... we'll test it this week at our after (and before) school clubs.
Anna

commented

Confirmed on 1.10 build 1350
Crashlog: https://pastebin.com/raw/DT8r7HVY

commented

tried with no luck:

  1. using much more powerful CPU
  2. removing all mods one by one except forgeessentials-1.10.2-10.2.1356-server.jar+worldedit-forge-mc1.10.2-6.1.4-dist.jar
    3.different provider/types for /mw create

not to mention that it crashes with another error until u manually create multiworld save folder for each world u want to create :( currently im unable to add any new world at all

commented

still happening on forgeessentials-1.10.2-10.2.1356-server when creating normal flat world seed 1513

crashlog/details: https://pastebin.com/vVMyupEz

commented

This is probably still relevant so I am leaving this issue open.