Handle null pointer on server shutdown
This commit is contained in:
+10
-3
@@ -67,14 +67,21 @@ public abstract class AbstractDhServerWorld<TDhServerLevel extends AbstractDhSer
|
||||
@Override
|
||||
public void removePlayer(IServerPlayerWrapper serverPlayer)
|
||||
{
|
||||
IServerLevelWrapper level = serverPlayer.getLevel();
|
||||
if (level == null)
|
||||
IServerLevelWrapper playerLevel = serverPlayer.getLevel();
|
||||
if (playerLevel == null)
|
||||
{
|
||||
// can happen during server shutdown
|
||||
return;
|
||||
}
|
||||
|
||||
this.getLevel(level).removePlayer(serverPlayer);
|
||||
TDhServerLevel serverLevel = this.getLevel(playerLevel);
|
||||
if (serverLevel == null)
|
||||
{
|
||||
// can happen during server shutdown
|
||||
return;
|
||||
}
|
||||
|
||||
serverLevel.removePlayer(serverPlayer);
|
||||
this.serverPlayerStateManager.unregisterLeftPlayer(serverPlayer);
|
||||
|
||||
// If player's left, session is already closed
|
||||
|
||||
@@ -22,6 +22,7 @@ package com.seibel.distanthorizons.core.world;
|
||||
import com.seibel.distanthorizons.core.level.IDhLevel;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -31,6 +32,7 @@ public interface IDhWorld extends Closeable
|
||||
{
|
||||
|
||||
IDhLevel getOrLoadLevel(@NotNull ILevelWrapper levelWrapper);
|
||||
@Nullable
|
||||
IDhLevel getLevel(@NotNull ILevelWrapper wrapper);
|
||||
Iterable<? extends IDhLevel> getAllLoadedLevels();
|
||||
int getLoadedLevelCount();
|
||||
|
||||
Reference in New Issue
Block a user