From 3115d5d463f4102054055b9dec2d3a4e14ac0c44 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 5 Apr 2012 09:02:24 +0000 Subject: [PATCH] Game channel number. --- .../lotro/game/LotroGameMediator.java | 35 +++++++++++-------- .../gempukku/lotro/server/GameResource.java | 2 +- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java index 8e8a2cc88..6050bc685 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java @@ -259,27 +259,32 @@ public class LotroGameMediator { } } - public void playerAnswered(Player player, int decisionId, String answer) { + public void playerAnswered(Player player, int channelNumber, int decisionId, String answer) { String playerName = player.getName(); _writeLock.lock(); try { - AwaitingDecision awaitingDecision = _userFeedback.getAwaitingDecision(playerName); - if (awaitingDecision != null) { - if (awaitingDecision.getAwaitingDecisionId() == decisionId) { - try { - _userFeedback.participantDecided(playerName); - awaitingDecision.decisionMade(answer); + GatheringParticipantCommunicationChannel communicationChannel = _communicationChannels.get(playerName); + if (communicationChannel != null) { + if (communicationChannel.getChannelNumber() == channelNumber) { + AwaitingDecision awaitingDecision = _userFeedback.getAwaitingDecision(playerName); + if (awaitingDecision != null) { + if (awaitingDecision.getAwaitingDecisionId() == decisionId) { + try { + _userFeedback.participantDecided(playerName); + awaitingDecision.decisionMade(answer); - // Decision successfully made, add the time to user clock - addTimeSpentOnDecisionToUserClock(playerName); + // Decision successfully made, add the time to user clock + addTimeSpentOnDecisionToUserClock(playerName); - _lotroGame.carryOutPendingActionsUntilDecisionNeeded(); - startClocksForUsersPendingDecision(); + _lotroGame.carryOutPendingActionsUntilDecisionNeeded(); + startClocksForUsersPendingDecision(); - } catch (DecisionResultInvalidException decisionResultInvalidException) { - // Participant provided wrong answer - send a warning message, and ask again for the same decision - _userFeedback.sendWarning(playerName, decisionResultInvalidException.getWarningMessage()); - _userFeedback.sendAwaitingDecision(playerName, awaitingDecision); + } catch (DecisionResultInvalidException decisionResultInvalidException) { + // Participant provided wrong answer - send a warning message, and ask again for the same decision + _userFeedback.sendWarning(playerName, decisionResultInvalidException.getWarningMessage()); + _userFeedback.sendAwaitingDecision(playerName, awaitingDecision); + } + } } } } diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java index 9c71f3bf2..82f4faa04 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java @@ -146,7 +146,7 @@ public class GameResource extends AbstractResource { if (decisionId != null) { try { - gameMediator.playerAnswered(resourceOwner, decisionId, decisionValue); + gameMediator.playerAnswered(resourceOwner, channelNumber, decisionId, decisionValue); } catch (RuntimeException exp) { _logger.error("Error while sending decision", exp); throw exp;