From 23e874612acede648ef99910b97b9621227347f7 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 6 Jan 2013 04:10:05 +0000 Subject: [PATCH] Scheduled queue can only be joined 15 minutes in advance of the actual tournament start. --- .../com/gempukku/lotro/hall/HallCommunicationChannel.java | 3 ++- .../java/com/gempukku/lotro/hall/HallInfoVisitor.java | 2 +- .../src/main/java/com/gempukku/lotro/hall/HallServer.java | 2 +- .../lotro/tournament/ScheduledTournamentQueue.java | 8 +++++++- .../lotro/tournament/SingleEliminationRecurringQueue.java | 4 ++++ .../com/gempukku/lotro/tournament/TournamentQueue.java | 2 ++ .../gemp-lotr-web/src/main/webapp/js/gemp-015/hallUi.js | 4 ++-- 7 files changed, 19 insertions(+), 6 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java index e6c0040b6..6dd6b6808 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java @@ -72,7 +72,7 @@ public class HallCommunicationChannel { @Override public void visitTournamentQueue(String tournamentQueueKey, int cost, String collectionName, String formatName, String tournamentQueueName, - String tournamentPrizes, String pairingDescription, String startCondition, int playerCount, boolean playerSignedUp) { + String tournamentPrizes, String pairingDescription, String startCondition, int playerCount, boolean playerSignedUp, boolean joinable) { Map props = new HashMap(); props.put("cost", String.valueOf(cost)); props.put("collection", collectionName); @@ -83,6 +83,7 @@ public class HallCommunicationChannel { props.put("system", pairingDescription); props.put("start", startCondition); props.put("signedUp", String.valueOf(playerSignedUp)); + props.put("joinable", String.valueOf(joinable)); tournamentQueuesOnServer.put(tournamentQueueKey, props); } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallInfoVisitor.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallInfoVisitor.java index 378c1739c..f5cd0bc0b 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallInfoVisitor.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallInfoVisitor.java @@ -16,7 +16,7 @@ public interface HallInfoVisitor { public void visitTable(String tableId, String gameId, boolean watchable, TableStatus status, String statusDescription, String formatName, String tournamentName, List playerIds, String winner); public void visitTournamentQueue(String tournamentQueueKey, int cost, String collectionName, String formatName, String tournamentQueueName, String tournamentPrizes, - String pairingDescription, String startCondition, int playerCount, boolean playerSignedUp); + String pairingDescription, String startCondition, int playerCount, boolean playerSignedUp, boolean joinable); public void visitTournament(String tournamentKey, String collectionName, String formatName, String tournamentName, String pairingDescription, String tournamentStage, int round, int playerCount, boolean playerInCompetition); 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 1cc3a4035..fb242d5b7 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 @@ -354,7 +354,7 @@ public class HallServer extends AbstractServer { visitor.visitTournamentQueue(tournamentQueueKey, tournamentQueue.getCost(), tournamentQueue.getCollectionType().getFullName(), _formatLibrary.getFormat(tournamentQueue.getFormat()).getName(), tournamentQueue.getTournamentQueueName(), tournamentQueue.getPrizesDescription(), tournamentQueue.getPairingDescription(), tournamentQueue.getStartCondition(), - tournamentQueue.getPlayerCount(), tournamentQueue.isPlayerSignedUp(player.getName())); + tournamentQueue.getPlayerCount(), tournamentQueue.isPlayerSignedUp(player.getName()), tournamentQueue.isJoinable()); } for (Map.Entry tournamentEntry : _runningTournaments.entrySet()) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ScheduledTournamentQueue.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ScheduledTournamentQueue.java index 85b44c8b1..7d5585049 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ScheduledTournamentQueue.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ScheduledTournamentQueue.java @@ -7,6 +7,7 @@ import com.gempukku.lotro.db.vo.CollectionType; import java.util.Date; public class ScheduledTournamentQueue extends AbstractTournamentQueue implements TournamentQueue { + private static final long _signupTimeBeforeStart = 1000 * 60 * 15; // 15 minutes before start private long _startTime; private int _minimumPlayers; private String _startCondition; @@ -81,7 +82,7 @@ public class ScheduledTournamentQueue extends AbstractTournamentQueue implements long now = System.currentTimeMillis(); if (now > _startTime) { if (_players.size() >= _minimumPlayers) { - + for (String player : _players) _tournamentService.addPlayer(_scheduledTournamentId, player, _playerDecks.get(player)); @@ -97,4 +98,9 @@ public class ScheduledTournamentQueue extends AbstractTournamentQueue implements } return false; } + + @Override + public boolean isJoinable() { + return System.currentTimeMillis() >= _startTime - _signupTimeBeforeStart; + } } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SingleEliminationRecurringQueue.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SingleEliminationRecurringQueue.java index cd2655bc5..0ac38aa80 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SingleEliminationRecurringQueue.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/SingleEliminationRecurringQueue.java @@ -91,4 +91,8 @@ public class SingleEliminationRecurringQueue extends AbstractTournamentQueue imp return false; } + @Override + public boolean isJoinable() { + return true; + } } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentQueue.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentQueue.java index 8f0cf5a9a..de1243d1b 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentQueue.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentQueue.java @@ -33,4 +33,6 @@ public interface TournamentQueue { public int getPlayerCount(); public boolean isPlayerSignedUp(String player); + + public boolean isJoinable(); } diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-015/hallUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-015/hallUi.js index 714abe21b..c3938a6f7 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-015/hallUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-015/hallUi.js @@ -392,7 +392,7 @@ var GempLotrHallUI = Class.extend({ var actionsField = $(""); var joined = queue.getAttribute("signedUp"); - if (joined != "true") { + if (joined != "true" && queue.getAttribute("joinable") == "true") { var but = $(""); $(but).button().click(( function(queueId) { @@ -406,7 +406,7 @@ var GempLotrHallUI = Class.extend({ } )(id)); actionsField.append(but); - } else { + } else if (joined == "true") { var but = $(""); $(but).button().click(( function(queueId) {