Network corruption in RFTools dimensions
ouroborus opened this issue ยท 6 comments
Seems like there's some issue with load ordering between Integrated Dynamics and RFTools dimensions. During server load, my server generates these logs:
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:22] [Server thread/WARN] [Integrated Dynamics]: Skipped loading part from a network at the invalid dimension id 3.
[14:14:23] [Server thread/INFO] [mcjty.lib.varia.Logging]: RFTools: server is starting
[14:14:23] [Server thread/INFO] [mcjty.lib.varia.Logging]: Registering RFTools dimensions: 3 4
The result is a corrupt network in the particular RFTools dimension. Breaking the wires and replacing them fixes it until the next time the server is rebooted.
Integrated Dynamics 1.12-0.9.3
IntegratedDynamics-Compat 1.0.0
Integrated Tunnels 1.12-1.3.3
@McJty It looks like you are registering dimensions on FMLServerStartedEvent
: https://github.com/McJty/RFToolsDimensions/blob/3bea596e01b90cf249959204de911e46f254c7e3/src/main/java/mcjty/rftoolsdim/RFToolsDim.java#L144
Any reason why you are doing this here, and not in FMLServerStartingEvent
? The logging message seems to indicate that this should occur in the latter event.
If there is no particular reason to use that specific event, would it be possible to call if from the other event? That would solve this issue, as there is no such thing as a FMLServerStartedPostEvent
ID could subscribe to instead.
@McJty As far as I can see, that part of your code only handles the registration of dimension IDs inside DimensionManager
, and AFAIK, this does not depend on the world being loaded. So I think this could even be moved all the way up to preInit (but don't take my word for it).
That code uses:
RfToolsDimensionManager dimensionManager = RfToolsDimensionManager.getDimensionManager(world);
And that code needs world.getMapStorage() to be ready and working as there is where I store the dimension ID's