diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/HallRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/HallRequestHandler.java index 6f630e6d5..5263c02d5 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/HallRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/HallRequestHandler.java @@ -117,7 +117,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri Player resourceOwner = getResourceOwnerSafely(request, participantId); try { - _hallServer.draftPick(tournamentId, resourceOwner, blueprintId); + _hallServer.getDraft(tournamentId).playerChosenCard(resourceOwner.getName(), blueprintId); responseWriter.writeXmlResponse(null); } catch (DraftFinishedException exp) { responseWriter.writeError(204); @@ -177,8 +177,8 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri try { Draft draft = _hallServer.getDraft(_tournamentId); SerializeDraftVisitor serializeDraftVisitor = new SerializeDraftVisitor(doc, draftElem); - draft.getCommunicationChannel(_player.getName(), _channelNumber).processCommunicationChannel(draft.getCardChoice(_player.getName()), serializeDraftVisitor); - serializeDraftVisitor.chosenCards(draft.getChosenCards(_player)); + draft.getCommunicationChannel(_player.getName(), _channelNumber) + .processCommunicationChannel(draft.getCardChoice(_player.getName()), draft.getChosenCards(_player.getName()), serializeDraftVisitor); doc.appendChild(draftElem); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionsManager.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionsManager.java index a16d0eabc..8d798ee44 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionsManager.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionsManager.java @@ -68,6 +68,10 @@ public class CollectionsManager { return _defaultCollection; } + public CardCollection getPlayerCollection(String playerName, String collectionType) { + return getPlayerCollection(_playerDAO.getPlayer(playerName), collectionType); + } + public CardCollection getPlayerCollection(Player player, String collectionType) { _readWriteLock.readLock().lock(); try { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java index 31c5a774f..e7a8b0203 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java @@ -7,7 +7,6 @@ import com.gempukku.lotro.db.vo.CollectionType; import com.gempukku.lotro.game.CardCollection; import com.gempukku.lotro.game.DefaultCardCollection; import com.gempukku.lotro.game.MutableCardCollection; -import com.gempukku.lotro.game.Player; import com.gempukku.lotro.packs.PacksStorage; import com.gempukku.lotro.tournament.TournamentCallback; @@ -80,7 +79,7 @@ public class DefaultDraft implements Draft { public void signUpForDraft(String playerName, DraftChannelVisitor draftChannelVisitor) { DraftCommunicationChannel draftCommunicationChannel = new DraftCommunicationChannel(_nextChannelNumber++); _playerDraftCommunications.put(playerName, draftCommunicationChannel); - draftCommunicationChannel.processCommunicationChannel(getCardChoice(playerName), draftChannelVisitor); + draftCommunicationChannel.processCommunicationChannel(getCardChoice(playerName), getChosenCards(playerName), draftChannelVisitor); } public DraftCommunicationChannel getCommunicationChannel(String playerName, int channelNumber) throws SubscriptionExpiredException, SubscriptionConflictException { @@ -103,8 +102,8 @@ public class DefaultDraft implements Draft { } @Override - public CardCollection getChosenCards(Player player) { - return _collectionsManager.getPlayerCollection(player, _collectionType.getCode()); + public CardCollection getChosenCards(String playerName) { + return _collectionsManager.getPlayerCollection(playerName, _collectionType.getCode()); } @Override diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java index b322c478a..88ec6c21a 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java @@ -3,7 +3,6 @@ package com.gempukku.lotro.draft; import com.gempukku.lotro.SubscriptionConflictException; import com.gempukku.lotro.SubscriptionExpiredException; import com.gempukku.lotro.game.CardCollection; -import com.gempukku.lotro.game.Player; import com.gempukku.lotro.tournament.TournamentCallback; public interface Draft { @@ -16,7 +15,7 @@ public interface Draft { public DraftCommunicationChannel getCommunicationChannel(String playerName, int channelNumber) throws SubscriptionExpiredException, SubscriptionConflictException; public DraftCardChoice getCardChoice(String playerName); - public CardCollection getChosenCards(Player player); + public CardCollection getChosenCards(String player); public boolean isFinished(); } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java index 90d96dba5..94f630996 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java @@ -41,7 +41,7 @@ public class DraftCommunicationChannel { return sb.toString(); } - public void processCommunicationChannel(DraftCardChoice draftCardChoice, DraftChannelVisitor draftChannelVisitor) { + public void processCommunicationChannel(DraftCardChoice draftCardChoice, CardCollection chosenCards, DraftChannelVisitor draftChannelVisitor) { updateLastAccess(); CardCollection cardCollection = draftCardChoice.getCardCollection(); @@ -53,5 +53,6 @@ public class DraftCommunicationChannel { draftChannelVisitor.noCardChoice(); _cardChoiceOnClient = null; } + draftChannelVisitor.chosenCards(chosenCards); } } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java index 3ca20f744..6f497d577 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java @@ -339,24 +339,6 @@ public class HallServer extends AbstractServer { if (draft == null) throw new DraftFinishedException(); draft.signUpForDraft(player.getName(), draftChannelVisitor); - CardCollection cardCollection = _collectionsManager.getPlayerCollection(player, tournament.getCollectionType().getCode()); - draftChannelVisitor.chosenCards(cardCollection); - } finally { - _hallDataAccessLock.readLock().unlock(); - } - } - - public void draftPick(String tournamentId, Player player, String blueprintId) - throws DraftFinishedException { - _hallDataAccessLock.readLock().lock(); - try { - Tournament tournament = _runningTournaments.get(tournamentId); - if (tournament == null) - throw new DraftFinishedException(); - Draft draft = tournament.getDraft(); - if (draft == null) - throw new DraftFinishedException(); - draft.playerChosenCard(player.getName(), blueprintId); } finally { _hallDataAccessLock.readLock().unlock(); }