From 3e5c46a9ff12103b4cd40df666eac611c40d4d6c Mon Sep 17 00:00:00 2001 From: "jakub.salavec" Date: Mon, 14 Apr 2025 14:51:49 +0200 Subject: [PATCH] Added - tournaments get finished when last player drops --- .../gempukku/lotro/tournament/BaseTournament.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/BaseTournament.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/BaseTournament.java index f00832d15..7bbf74025 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/BaseTournament.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/BaseTournament.java @@ -276,6 +276,14 @@ public abstract class BaseTournament implements Tournament { _tournamentService.recordPlayerTournamentAbandon(_tournamentId, player); _droppedPlayers.add(player); regeneratePlayerList(); + + // if last player dropped, finish the tournament + Set activePlayers = new HashSet<>(_players); + activePlayers.removeAll(_droppedPlayers); + if (activePlayers.size() == 0) { + finishTournament(null); + } + return "You have successfully dropped from the tournament. Thanks for playing!"; } finally { writeLock.unlock(); @@ -300,7 +308,9 @@ public abstract class BaseTournament implements Tournament { protected TournamentProcessAction finishTournament(CollectionsManager collectionsManager) { _tournamentInfo.Stage = Stage.FINISHED; _tournamentService.recordTournamentStage(_tournamentId, getTournamentStage()); - awardPrizes(collectionsManager); + if (collectionsManager != null) { + awardPrizes(collectionsManager); + } Set activePlayers = new HashSet<>(_players); activePlayers.removeAll(_droppedPlayers); return new BroadcastAction("Tournament " + getTournamentName() + " is finished.", activePlayers);