fix: fixed null pointer exception at getting participant from null-valued EntityID

This commit is contained in:
Yannik Bretschneider 2021-06-07 17:10:30 +02:00
parent 5e6745ee23
commit 6122c55025

View File

@ -1,6 +1,7 @@
package uulm.teamname.marvelous.server.lobby;
import org.tinylog.Logger;
import uulm.teamname.marvelous.gamelibrary.entities.EntityID;
import uulm.teamname.marvelous.gamelibrary.entities.EntityType;
import uulm.teamname.marvelous.gamelibrary.events.Event;
import uulm.teamname.marvelous.gamelibrary.events.EventBuilder;
@ -159,7 +160,7 @@ public class Lobby {
*/
void updateTurnTimer() {
var currentlyActiveParticipant =
getParticipantForEntityType(game.state.getActiveCharacter().type);
getParticipantForEntityType(game.state.getActiveCharacter());
Logger.trace("Updating turnTimer...");
if (pauseSegment.isPaused()) {
Logger.trace("Game is paused, clearing turnTimer");
@ -180,11 +181,19 @@ public class Lobby {
* Returns an {@link Optional} of the {@link Participant} for the given {@link EntityType}, or an empty {@link
* Optional} if it was an NPC
*/
Optional<Participant> getParticipantForEntityType(EntityID entityID) {
if (entityID == null) {
Logger.trace("cannot get participant for empty EntityType, returning empty Optional");
return Optional.empty();
} else {
return getParticipantForEntityType(entityID.type);
}
}
Optional<Participant> getParticipantForEntityType(EntityType type) {
if (type == EntityType.P1) {
return Optional.of(connection.getPlayer1());
} else if (type == EntityType.P2) {
Logger.trace("Scheduling turnTimer for Player2");
return Optional.of(connection.getPlayer2());
} else {
return Optional.empty();