From a27889f058f911be68b31575e9c92da5ce1384da Mon Sep 17 00:00:00 2001 From: "jakub.salavec" Date: Thu, 17 Apr 2025 13:27:11 +0200 Subject: [PATCH] Fixed - sealed tournament no longer depends on (removed) db query to issue starting material --- .../gempukku/lotro/tournament/SealedTournament.java | 12 +++++++++++- .../lotro/tournament/SoloDraftTournament.java | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SealedTournament.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SealedTournament.java index 9dcc466be..c9e7fd361 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SealedTournament.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SealedTournament.java @@ -25,6 +25,8 @@ public class SealedTournament extends BaseTournament implements Tournament { private SealedTournamentInfo _sealedInfo; private ZonedDateTime nextRoundStart = null; + private boolean collectionsCreated = false; + public SealedTournament(TournamentService tournamentService, CollectionsManager collectionsManager, ProductLibrary productLibrary, LotroFormatLibrary formatLibrary, SoloDraftDefinitions soloDraftDefinitions, TableDraftDefinitions tableDraftDefinitions, TableHolder tables, String tournamentId) { super(tournamentService, collectionsManager, productLibrary, formatLibrary, soloDraftDefinitions, tableDraftDefinitions, tables, tournamentId); @@ -90,7 +92,11 @@ public class SealedTournament extends BaseTournament implements Tournament { _collectionsManager.addPlayerCollection(true, "Sealed tournament product", player, collDef, newCollection); } - public void createAndPopulateCollections() { + private void createAndPopulateCollections() { + if (collectionsCreated) { + return; + } + var collDef = _sealedInfo.generateCollectionInfo(); var collections = _collectionsManager.getPlayersCollection(collDef.getCode()); var sealedDef = _sealedInfo.SealedDefinition; @@ -107,6 +113,8 @@ public class SealedTournament extends BaseTournament implements Tournament { _collectionsManager.addPlayerCollection(true, "Sealed tournament product", playerName, collDef, newCollection); } + + collectionsCreated = true; } public void disqualifyUnregisteredPlayers() { @@ -170,6 +178,8 @@ public class SealedTournament extends BaseTournament implements Tournament { _tournamentInfo.Stage = Stage.DECK_BUILDING; _tournamentService.recordTournamentStage(_tournamentId, getTournamentStage()); + createAndPopulateCollections(); + String duration = DateUtils.HumanDuration(_sealedInfo.DeckbuildingDuration); result.add(new BroadcastAction("Sealed product has been issued for tournament " + getTournamentName() + ". Players now have " + duration + " to open packs and build a deck with the cards you open. " diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SoloDraftTournament.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SoloDraftTournament.java index 321e6a796..2186379da 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SoloDraftTournament.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SoloDraftTournament.java @@ -28,6 +28,8 @@ public class SoloDraftTournament extends BaseTournament implements Tournament { private SoloDraftTournamentInfo _soloDraftInfo; private ZonedDateTime nextRoundStart = null; + private boolean collectionsCreated = false; + public SoloDraftTournament(TournamentService tournamentService, CollectionsManager collectionsManager, ProductLibrary productLibrary, LotroFormatLibrary formatLibrary, SoloDraftDefinitions soloDraftDefinitions, TableDraftDefinitions tableDraftDefinitions, TableHolder tables, String tournamentId) { super(tournamentService, collectionsManager, productLibrary, formatLibrary, soloDraftDefinitions, tableDraftDefinitions, tables, tournamentId); @@ -112,6 +114,10 @@ public class SoloDraftTournament extends BaseTournament implements Tournament { } private void createStartingCollections() { + if (collectionsCreated) { + return; + } + var collDef = _soloDraftInfo.generateCollectionInfo(); var collections = _collectionsManager.getPlayersCollection(collDef.getCode()); @@ -134,6 +140,8 @@ public class SoloDraftTournament extends BaseTournament implements Tournament { _collectionsManager.addPlayerCollection(false, "Draft tournament product", playerName, collDef, startingCollection); } + + collectionsCreated = true; } private long getSeed(String playerName, CollectionType collectionType) {