Fixed More Bugs

Fixed more bugs. Now it's possible to generate a world without crashing.
Unfortunately, it's clear that there is a packet-sending loop going on.
I'll have to add a check to prevent integrated servers from spamming
themselves.
This commit is contained in:
SenseiKiwi 2013-09-03 18:28:42 -04:00
parent 77bc0e833f
commit 8bfe9dc22e
3 changed files with 13 additions and 3 deletions

View file

@ -36,7 +36,18 @@ public class EventHookContainer
@ForgeSubscribe
public void onWorldLoad(WorldEvent.Load event)
{
RiftRegenerator.regenerateRiftsInAllWorlds();
// We need to initialize PocketManager here because onServerAboutToStart fires before we can
// use DimensionManager and onServerStarting fires after the game tries to generate terrain.
// If a gateway tries to generate before PocketManager has initialized, we get a crash.
if (!PocketManager.isLoaded())
{
PocketManager.load();
}
if (PocketManager.isLoaded())
{
RiftRegenerator.regenerateRiftsInAllWorlds();
}
}
@ForgeSubscribe

View file

@ -127,7 +127,7 @@ public abstract class NewDimData
IUpdateWatcher<Point4D> linkWatcher)
{
// The isPocket flag is redundant. It's meant as an integrity safeguard.
if (isPocket == (parent != null))
if (isPocket != (parent != null))
{
throw new NullPointerException("Dimensions can be pocket dimensions if and only if they have a parent dimension.");
}

View file

@ -384,6 +384,5 @@ public class mod_pocketDim
CommandCreatePocket.instance().register(event);
CommandTeleportPlayer.instance().register(event);
*/
PocketManager.load();
}
}