Fix potential null pointers in DhWorld shutdown
This commit is contained in:
@@ -32,7 +32,6 @@ public class DhClientServerLevel extends DhLevel implements IDhClientLevel, IDhS
|
||||
public final ClientLevelModule clientside;
|
||||
|
||||
private final IServerLevelWrapper serverLevelWrapper;
|
||||
public IClientLevelWrapper clientLevelWrapper;
|
||||
|
||||
|
||||
|
||||
@@ -109,11 +108,7 @@ public class DhClientServerLevel extends DhLevel implements IDhClientLevel, IDhS
|
||||
clientside.startRenderer();
|
||||
}
|
||||
|
||||
public void stopRenderer()
|
||||
{
|
||||
clientside.stopRenderer();
|
||||
clientLevelWrapper = null;
|
||||
}
|
||||
public void stopRenderer() { this.clientside.stopRenderer(); }
|
||||
|
||||
//================//
|
||||
// level handling //
|
||||
|
||||
@@ -144,7 +144,14 @@ public class DhClientServerWorld extends AbstractDhWorld implements IDhClientWor
|
||||
for (DhClientServerLevel level : this.dhLevels)
|
||||
{
|
||||
LOGGER.info("Unloading level " + level.getServerLevelWrapper().getDimensionType().getDimensionName());
|
||||
level.clientLevelWrapper.onUnload();
|
||||
|
||||
// level wrapper shouldn't be null, but just in case
|
||||
IServerLevelWrapper serverLevelWrapper = level.getServerLevelWrapper();
|
||||
if (serverLevelWrapper != null)
|
||||
{
|
||||
serverLevelWrapper.onUnload();
|
||||
}
|
||||
|
||||
level.close();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.seibel.distanthorizons.core.util.objects.EventLoop;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IServerLevelWrapper;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -167,6 +168,14 @@ public class DhClientWorld extends AbstractDhWorld implements IDhClientWorld
|
||||
for (DhClientLevel dhClientLevel : this.levels.values())
|
||||
{
|
||||
LOGGER.info("Unloading level " + dhClientLevel.getLevelWrapper().getDimensionType().getDimensionName());
|
||||
|
||||
// level wrapper shouldn't be null, but just in case
|
||||
IClientLevelWrapper clientLevelWrapper = dhClientLevel.getClientLevelWrapper();
|
||||
if (clientLevelWrapper != null)
|
||||
{
|
||||
clientLevelWrapper.onUnload();
|
||||
}
|
||||
|
||||
dhClientLevel.close();
|
||||
}
|
||||
|
||||
|
||||
@@ -182,6 +182,14 @@ public class DhServerWorld extends AbstractDhWorld implements IDhServerWorld
|
||||
for (DhServerLevel level : this.levels.values())
|
||||
{
|
||||
LOGGER.info("Unloading level " + level.getLevelWrapper().getDimensionType().getDimensionName());
|
||||
|
||||
// level wrapper shouldn't be null, but just in case
|
||||
IServerLevelWrapper serverLevelWrapper = level.getServerLevelWrapper();
|
||||
if (serverLevelWrapper != null)
|
||||
{
|
||||
serverLevelWrapper.onUnload();
|
||||
}
|
||||
|
||||
level.close();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user