SpongeForge: Server crash with Sponge dealing with dimensions
Forge: 1.10.2-12.18.3.2272 Sponge: 1.10.2-2254-5.2.0-BETA-2272 Galacticraft: 1.10.2-4.0.0.58-BETA
When launching my server with just forge and Galacticraft things work well, however when adding Sponge it crashes with Dimension errors. I believe I saw this with Sponge issue #1360 however that was for 1.8.9 so you understandably weren’t supporting it you told @radfast. This is with supported 1.10.2, so hopefully you can see if the dimension issues with Sponge have a possible resolution?
Thanks!
Silent
Full Log: https://pastebin.com/vtETxR0K
Relevant Section of Crash Log :
[00:29:25] [Server thread/ERROR] [galacticraftplanets/]: Skipping event FMLPostInitializationEvent and marking errored mod galacticraftplanets since required dependency galacticraftcore has errored
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: PostInitialization - Galacticraft Planets took 0.000s
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Finished: PostInitialization took 0.064s
[00:29:25] [Server thread/ERROR] [FML/]: Fatal errors were detected during the transition from POSTINITIALIZATION to AVAILABLE. Loading cannot continue
[00:29:25] [Server thread/ERROR] [FML/]:
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJ mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
UCHIJ FML{8.0.99.99} [Forge Mod Loader] (forge-1.10.2-12.18.3.2272-universal.jar)
UCHIJ Forge{12.18.3.2272} [Minecraft Forge] (forge-1.10.2-12.18.3.2272-universal.jar)
UCHIJ Micdoodlecore{} [Micdoodle8 Core] (minecraft.jar)
UCHIJ spongeapi{5.2.0-SNAPSHOT-a3257a0} [SpongeAPI] (minecraft.jar)
UCHIJ sponge{1.10.2-2254-5.2.0-BETA-2272} [SpongeForge] (spongeforge-1.10.2-2254-5.2.0-BETA-2272.jar)
UCHIE galacticraftcore{4.0.0} [Galacticraft Core] (GalacticraftCore-1.10.2-4.0.0.58-BETA.jar)
UCHIE galacticraftplanets{4.0.0} [Galacticraft Planets] (Galacticraft-Planets-1.10.2-4.0.0.58-BETA.jar)
[00:29:25] [Server thread/ERROR] [FML/]: The following problems were captured during this phase
[00:29:25] [Server thread/ERROR] [FML/]: Caught exception from Galacticraft Core (galacticraftcore)
java.lang.IllegalArgumentException: Invalid dimension id -28
at net.minecraft.world.DimensionType.lambda$getById$0(DimensionType.java:636) ~[atm.class:?]
at java.util.Optional.orElseThrow(Optional.java:290) ~[?:1.8.0_111]
at net.minecraft.world.DimensionType.func_186069_a(DimensionType.java:636) ~[atm.class:?]
at micdoodle8.mods.galacticraft.core.GalacticraftCore.postInit(GalacticraftCore.java:372) ~[GalacticraftCore.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_111]
at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:616) ~[forge-1.10.2-12.18.3.2272-universal.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_111]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.10.2.jar:?]
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:243) ~[LoadController.class:?]
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:221) ~[LoadController.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_111]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.10.2.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.10.2.jar:?]
at net.minecraftforge.fml.common.LoadController.redirect$onPost$zzb000(LoadController.java:552) ~[LoadController.class:?]
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:145) [LoadController.class:?]
at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:810) [Loader.class:?]
at net.minecraftforge.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:108) [FMLServerHandler.class:?]
at net.minecraftforge.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:333) [FMLCommonHandler.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:214) [ld.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:431) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
[00:29:25] [Server thread/WARN] [FML/]: Can't revert to frozen GameData state without freezing first.
[00:29:25] [Server thread/TRACE] [mcp/mcp]: Sending event FMLServerStoppedEvent to mod mcp
[00:29:25] [Server thread/TRACE] [mcp/mcp]: Sent event FMLServerStoppedEvent to mod mcp
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - Minecraft Coder Pack took 0.000s
[00:29:25] [Server thread/TRACE] [FML/FML]: Sending event FMLServerStoppedEvent to mod FML
[00:29:25] [Server thread/TRACE] [FML/FML]: Sent event FMLServerStoppedEvent to mod FML
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - Forge Mod Loader took 0.000s
[00:29:25] [Server thread/TRACE] [Forge/Forge]: Sending event FMLServerStoppedEvent to mod Forge
[00:29:25] [Server thread/TRACE] [Forge/Forge]: Sent event FMLServerStoppedEvent to mod Forge
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - Minecraft Forge took 0.000s
[00:29:25] [Server thread/TRACE] [Micdoodlecore/Micdoodlecore]: Sending event FMLServerStoppedEvent to mod Micdoodlecore
[00:29:25] [Server thread/TRACE] [Micdoodlecore/Micdoodlecore]: Sent event FMLServerStoppedEvent to mod Micdoodlecore
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - Micdoodle8 Core took 0.000s
[00:29:25] [Server thread/TRACE] [spongeapi/spongeapi]: Sending event FMLServerStoppedEvent to mod spongeapi
[00:29:25] [Server thread/TRACE] [spongeapi/spongeapi]: Sent event FMLServerStoppedEvent to mod spongeapi
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - SpongeAPI took 0.000s
[00:29:25] [Server thread/TRACE] [sponge/sponge]: Sending event FMLServerStoppedEvent to mod sponge
[00:29:25] [Server thread/TRACE] [sponge/sponge]: Sent event FMLServerStoppedEvent to mod sponge
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - SpongeForge took 0.005s
[00:29:25] [Server thread/TRACE] [galacticraftcore/galacticraftcore]: Sending event FMLServerStoppedEvent to mod galacticraftcore
[00:29:25] [Server thread/TRACE] [galacticraftcore/galacticraftcore]: Sent event FMLServerStoppedEvent to mod galacticraftcore
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - Galacticraft Core took 0.009s
[00:29:25] [Server thread/ERROR] [galacticraftplanets/]: Skipping event FMLServerStoppedEvent and marking errored mod galacticraftplanets since required dependency galacticraftcore has errored
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Step: ServerStopped - Galacticraft Planets took 0.000s
[00:29:25] [Server thread/DEBUG] [FML/]: Bar Finished: ServerStopped took 0.016s
[00:29:25] [Server thread/INFO] [FML/]: The state engine was in incorrect state ERRORED and forced into state SERVER_STOPPED. Errors may have been discarded.
[00:29:25] [Server thread/INFO] [FML/]: The state engine was in incorrect state ERRORED and forced into state AVAILABLE. Errors may have been discarded.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 1
- Comments: 44 (13 by maintainers)
@gabizou My guess is that Sponge is not doing anything special when the vanilla method
net.minecraft.world.DimensionType.register()is called by Forge mods. If so then SpongeWorldManagerregisters only the 3 vanillaDimensionType. It’s likely that would then cause all of a Forge mod’s DimensionManager dimension registration calls to fail, if attempting to use any DimensionType except the vanilla 3.To test this, on Galacticraft’s side I have inserted, by reflection, a call to
org.spongepowered.common.world.WorldManager.registerDimensionType(id, type)at the same time that we callDimensionType.register(). If these server owners can kindly test now that build 68 for us, then we will know if it works…@phit No problem i will do, i wasn’t clear over
make a new issue, that log is completely different from what was reported herebut now you have explained it in details i totally agree thank you for your messages@radfast The reason I’ve been commenting on a closed ticket thread, is I believe it’s going to follow us to 1.12
Until that can be proven though, it’s going to remain closed as per the Sponge teams support policy regarding our support period of 1.10 / 1.11
Other parts of the Sponge implementation have undergone fundamental changes, and we really do need all hands on deck making sure that is running smoothly on 1.12
That said, we will accept PR’s and this is on my personal TODO list to do some investigation that would aid a PR.
I know the issue status doesn’t reflect this, but we seriously do value contributions, we are just in a crunch point with 1.12 and the amount of time the team has currently.
If you wern’t aware, Phit and myself are ‘merely’ issue managers in this project, bar some small support / moderation duties. Occasionally we will PR something, but they tend to be minor fixes.
It seems that https://github.com/SpongePowered/SpongeCommon/blob/8e3fc2f6a4c04d955aad7a83d9e5defe4220b0d2/src/main/java/org/spongepowered/common/world/WorldManager.java#L958 isnt the cause of my pain, it seems to be later on than this method is called. as it seems to return all correct dimension types
@gabizou
I found what looks like a bug in Sponge:
https://github.com/SpongePowered/SpongeCommon/blob/bleeding/src/main/java/org/spongepowered/common/mixin/core/world/MixinDimensionType.java#L135-L137
https://github.com/SpongePowered/SpongeCommon/blob/bleeding/src/main/java/org/spongepowered/common/world/WorldManager.java#L232-L250
I think it should be coded like this in
MixinDimensionType:and in
WorldManagera new method:I didn’t make a PR for this because I’m not sure which branch(es) you want this on. I suggest this is needed on every branch which has DimensionType, but that’s up to you 😃
@silent-mobious @VOiDProXy I am attempting a workaround for this in our next Galacticraft 1.10.2 build 67
Should be available in about 30 minutes from now. No promise that it will fix the Sponge problem, but I hope it will.
Please can you guys take any further discussion of Galacticraft-specific to this issue discussion, not here.
I am happy to continue to help the Sponge guys find a more general solution to this which will work for all Forge mods, but let’s get a working solution in Galacticraft first.
@VOiDProXy you are running a server, or you are part of the SpongeForge development team?
The de-obfuscated Galacticraft I posted is only for Java programmers to use in a de-obfuscated development environment. It’s not going to work on a server!!
A de-obfuscated distribution version of Galacticraft for Minecraft 1.10.2 is now available. You can download it directly from our Jenkins You need three .jars, GalacticraftCore, Galacticraft-Planets and MicdoodleCore, but not the API.
Access Transformers require the Forge workspace to be re-setup before they take effect. Maybe you haven’t used those before? If you already have a Forge workspace, then it is a quick process to run
gradle decompworkspacewith some access transformers in src/main/resources. It has the effect of changing the access of specified vanilla (or Forge) private fields and methods to public as required. It doesn’t damage anything else, but if you don’t like the sound of that then I guess you’d need to duplicate or backup your whole Forge workspace before doing this!You can skip step 1 if you don’t actually want to build the mod: but if you want to build and run de-obfuscated Galacticraft in an IDE, you will need to do step 1.
We do not have a de-obfuscated distribution of the mod in 1.10.2 at this time. I’ll ask @micdoodle8 if it’s possible to make one, but that could take a few days, the build gradle and Jenkins are not currently set up for that in 1.10.2.