Overlord mod causes a server crash

(I’m русский, excuse my english)

Hi,

I run a server forge with spongeforge-1.11.2-2201-6.0.0-BETA-2061, but it seems to not be compatible with the mod Overlord.
About Overlord: https://mods.curse.com/mc-mods/minecraft/251732-overlord

here the crash report:

[11:50:26] [Server thread/INFO]: Starting minecraft server version 1.11.2
[11:50:26] [Server thread/WARN]: To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
[11:51:29] [Server thread/INFO]: Loading properties
[11:51:29] [Server thread/INFO]: Default game type: SURVIVAL
[11:51:29] [Server thread/INFO]: Generating keypair
[11:51:29] [Server thread/INFO]: Starting Minecraft server on *:25565
[11:51:29] [Server thread/INFO]: Using default channel type
[11:51:31] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
[11:51:31] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
[11:51:31] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
[11:51:31] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.
[11:51:33] [Server thread/ERROR]: Encountered an unexpected exception
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Overlord (overlord)

Caused by: java.lang.ExceptionInInitializerError
	at the_fireplace.overlord.Overlord.init(Overlord.java:171) ~[Overlord.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
	at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:641) ~[forge-1.11.2-13.20.0.2224-universal.jar:?]
	at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.11.2.jar:?]
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:246) ~[LoadController.class:?]
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:224) ~[LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.11.2.jar:?]
	at net.minecraftforge.fml.common.LoadController.redirect$onPost$zzd000(LoadController.java:553) ~[LoadController.class:?]
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147) ~[LoadController.class:?]
	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:809) ~[Loader.class:?]
	at net.minecraftforge.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:109) ~[FMLServerHandler.class:?]
	at net.minecraftforge.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:336) ~[FMLCommonHandler.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:215) ~[lh.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442) [MinecraftServer.class:?]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
Caused by: java.lang.NullPointerException
	at java.io.File.<init>(Unknown Source) ~[?:1.8.0_101]
	at net.minecraft.world.storage.SaveHandler.<init>(SaveHandler.java:37) ~[bbt.class:?]
	at net.minecraft.world.chunk.storage.AnvilSaveHandler.<init>(AnvilSaveHandler.java:18) ~[bbq.class:?]
	at net.minecraft.world.chunk.storage.AnvilSaveConverter.func_75804_a(SourceFile:84) ~[bbr.class:?]
	at org.spongepowered.common.world.WorldManager.getCurrentSavesDirectory(WorldManager.java:1330) ~[WorldManager.class:1.11.2-2201-6.0.0-BETA-2061]
	at net.minecraftforge.common.DimensionManager.getCurrentSaveRootDirectory(DimensionManager.java:773) ~[DimensionManager.class:?]
	at the_fireplace.overlord.tools.Alliances.<clinit>(Alliances.java:17) ~[Alliances.class:?]
	at the_fireplace.overlord.Overlord.init(Overlord.java:171) ~[Overlord.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
	at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:641) ~[forge-1.11.2-13.20.0.2224-universal.jar:?]
	at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.11.2.jar:?]
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:246) ~[LoadController.class:?]
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:224) ~[LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.11.2.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.11.2.jar:?]
	at net.minecraftforge.fml.common.LoadController.redirect$onPost$zzd000(LoadController.java:553) ~[LoadController.class:?]
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147) ~[LoadController.class:?]
	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:809) ~[Loader.class:?]
	at net.minecraftforge.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:109) ~[FMLServerHandler.class:?]
	at net.minecraftforge.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:336) ~[FMLCommonHandler.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:215) ~[lh.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442) ~[MinecraftServer.class:?]
	at java.lang.Thread.run(Unknown Source) ~[?:1.8.0_101]
[11:51:33] [Server thread/ERROR]: This crash report has been saved to: C:\Users\Ноутбук\Documents\SMS_1.0\.\crash-reports\crash-2017-01-26_11.51.33-server.txt
[11:51:33] [Server thread/INFO]: Stopping server

Does it possible to solve this problem ?

Thank you in advance for your help.

P.S. My English is poor, because I use the “ctrl+c” and “ctrl+v”. If you want to chat, I can without it :slight_smile:

This seems to be because one of the Overlord classes is trying to get the world save dir during initialisation but I guess Sponge hasn’t initialised the worlds yet so the getCurrentSavesDirectory is returning an empty Optional which the mixin converts silently back to null. Really we should probably throw an error here instead when a mod is trying to access stuff to early, though the original contract of the method can return null so the mod should be checking the return value really.

You should open an issue on SpongeForge for this. It might also be worth opening one on the Overlord issue tracker too. The forums aren’t the best place for dealing with issues like this.

3 Likes

Thank! This mod is too good to give up. I hope it’s will be fixed. :smirk:

This should be fixed in the latest SpongeForge.