diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeagueDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeagueDAO.java index 27f1c7484..01f1308d5 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeagueDAO.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/LeagueDAO.java @@ -17,10 +17,10 @@ public class LeagueDAO { _dbAccess = dbAccess; } - public void addLeague(String name, String type, String clazz, String parameters, int startTime, int endTime) throws SQLException, IOException { + public void addLeague(int cost, String name, String type, String clazz, String parameters, int startTime, int endTime) throws SQLException, IOException { Connection conn = _dbAccess.getDataSource().getConnection(); try { - PreparedStatement statement = conn.prepareStatement("insert into league (name, type, class, parameters, start, end, status) values (?, ?, ?, ?, ?, ?, ?)"); + PreparedStatement statement = conn.prepareStatement("insert into league (name, type, class, parameters, start, end, status, cost) values (?, ?, ?, ?, ?, ?, ?)"); try { statement.setString(1, name); statement.setString(2, type); @@ -29,6 +29,7 @@ public class LeagueDAO { statement.setInt(5, startTime); statement.setInt(6, endTime); statement.setInt(7, 0); + statement.setInt(8, cost); statement.execute(); } finally { statement.close(); @@ -41,7 +42,7 @@ public class LeagueDAO { public List loadActiveLeagues(int currentTime) throws SQLException, IOException { Connection conn = _dbAccess.getDataSource().getConnection(); try { - PreparedStatement statement = conn.prepareStatement("select id, name, type, class, parameters, start, end, status from league where start<=? and end>=? order by start desc"); + PreparedStatement statement = conn.prepareStatement("select id, name, type, class, parameters, start, end, status, cost from league where start<=? and end>=? order by start desc"); try { statement.setInt(1, currentTime); statement.setInt(2, currentTime); @@ -57,7 +58,8 @@ public class LeagueDAO { int start = rs.getInt(6); int end = rs.getInt(7); int status = rs.getInt(8); - activeLeagues.add(new League(id, name, type, clazz, parameters, start, end, status)); + int cost = rs.getInt(9); + activeLeagues.add(new League(id, cost, name, type, clazz, parameters, start, end, status)); } return activeLeagues; } finally { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/vo/League.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/vo/League.java index 7635f980e..06a3a1012 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/vo/League.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/vo/League.java @@ -6,6 +6,7 @@ import java.lang.reflect.Constructor; public class League { private int _id; + private int _cost; private String _name; private String _type; private String _clazz; @@ -14,8 +15,9 @@ public class League { private int _end; private int _status; - public League(int id, String name, String type, String clazz, String parameters, int start, int end, int status) { + public League(int id, int cost, String name, String type, String clazz, String parameters, int start, int end, int status) { _id = id; + _cost = cost; _name = name; _type = type; _clazz = clazz; @@ -29,6 +31,10 @@ public class League { return _id; } + public int getCost() { + return _cost; + } + public String getName() { return _name; } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/ConstructedLeagueData.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/ConstructedLeagueData.java index 527462042..9382c7ed3 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/ConstructedLeagueData.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/ConstructedLeagueData.java @@ -41,11 +41,6 @@ public class ConstructedLeagueData implements LeagueData { } } - @Override - public int getLeagueCost() { - return 5000; - } - @Override public List getSeries() { return _series; diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueData.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueData.java index 6b88dcd6b..4e3d194ce 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueData.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueData.java @@ -7,8 +7,6 @@ import com.gempukku.lotro.game.Player; import java.util.List; public interface LeagueData { - public int getLeagueCost(); - public List getSeries(); public CardCollection joinLeague(CollectionsManager collecionsManager, Player player, int currentTime); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java index 45db39f8d..43594fd80 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java @@ -123,10 +123,21 @@ public class LeagueService { public synchronized boolean playerJoinsLeague(League league, Player player) { if (isPlayerInLeague(league, player)) return false; - int cost = league.getLeagueData().getLeagueCost(); + int cost = league.getCost(); if (_collectionsManager.removeCurrencyFromPlayerCollection(player, new CollectionType("permanent", "My cards"), cost)) { - league.getLeagueData().joinLeague(_collectionsManager, player, DateUtils.getCurrentDate()); - return true; + try { + _leagueParticipationDAO.userJoinsLeague(league, player); + Set notParticipating = _playersNotParticipating.get(league); + if (notParticipating != null) + notParticipating.remove(player.getName()); + Set participating = _playersParticipating.get(league); + if (participating != null) + participating.add(player.getName()); + league.getLeagueData().joinLeague(_collectionsManager, player, DateUtils.getCurrentDate()); + return true; + } catch (SQLException exp) { + throw new RuntimeException("Unable to add user to league"); + } } else { return false; } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/SealedLeagueData.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/SealedLeagueData.java index 63e598ab3..2db46f4a6 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/SealedLeagueData.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/SealedLeagueData.java @@ -42,11 +42,6 @@ public class SealedLeagueData implements LeagueData { } } - @Override - public int getLeagueCost() { - return 5000; - } - @Override public List getSeries() { return Collections.unmodifiableList(_series); diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java index 17f44481a..733b82dbf 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/AdminResource.java @@ -83,6 +83,7 @@ public class AdminResource extends AbstractResource { @Path("/addLeague") @POST public String addLeague( + @FormParam("cost") int cost, @FormParam("name") String name, @FormParam("type") String type, @FormParam("class") String clazz, @@ -92,7 +93,7 @@ public class AdminResource extends AbstractResource { @Context HttpServletRequest request) throws Exception { validateAdmin(request); - _leagueDao.addLeague(name, type, clazz, parameters, start, end); + _leagueDao.addLeague(cost, name, type, clazz, parameters, start, end); return "OK"; } diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java index 133f3d1f7..f00f7953a 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/LeagueResource.java @@ -73,7 +73,7 @@ public class LeagueResource extends AbstractResource { leagueElem.setAttribute("joinable", String.valueOf(!inLeague && end >= DateUtils.getCurrentDate())); leagueElem.setAttribute("type", league.getType()); leagueElem.setAttribute("name", league.getName()); - leagueElem.setAttribute("cost", String.valueOf(leagueData.getLeagueCost())); + leagueElem.setAttribute("cost", String.valueOf(league.getCost())); leagueElem.setAttribute("start", String.valueOf(series.get(0).getStart())); leagueElem.setAttribute("end", String.valueOf(end)); diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js index b9cebd7e9..de67f4d5b 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js @@ -61,7 +61,7 @@ var GempLotrCommunication = Class.extend({ joinLeague: function(code, callback) { $.ajax({ type: "POST", - url: this.url + "/league/code", + url: this.url + "/league/" + code, cache: false, data: { participanId: getUrlParam("participantId") }, diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js index 94cbd9ed4..c55dd45dd 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/leagueResultsUi.js @@ -9,12 +9,12 @@ var LeagueResultsUI = Class.extend({ this.questionDialog = $("
") .dialog({ - autoOpen: false, - closeOnEscape: true, - resizable: false, - modal: true, - title: "League operation" - }); + autoOpen: false, + closeOnEscape: true, + resizable: false, + modal: true, + title: "League operation" + }); this.loadResults(); }, @@ -53,24 +53,24 @@ var LeagueResultsUI = Class.extend({ $("#leagueResults").append("

" + leagueText + "

"); var costStr = Math.floor(cost / 100) + "G " + cost % 100 + "S"; - $("#leagueResults").append("
Cost: " + costStr + "
"); + $("#leagueResults").append("
Cost: " + costStr + "
"); var duration = this.getDateString(start) + " to " + this.getDateString(end); - $("#leagueResults").append("
Duration (GMT+0): " + duration + "
"); + $("#leagueResults").append("
Duration (GMT+0): " + duration + "
"); if (member == "true") $("#leagueResults").append("
You are already a member of this league.
"); else if (joinable == "true") { var joinBut = $("").button(); joinBut.click( function() { - that.displayBuyAction("Do you want to join the league buy paying " + costStr + "?", + that.displayBuyAction("Do you want to join the league by paying " + costStr + "?", function() { that.communication.joinLeague(leagueType, function() { that.loadResults(); }); }); }); - var joinDiv = $("
"); + var joinDiv = $("
You're not a member of this league.
"); joinDiv.append(joinBut); $("#leagueResults").append(joinDiv); } @@ -147,7 +147,7 @@ var LeagueResultsUI = Class.extend({ var windowHeight = $(window).height(); var horSpace = 230; - var vertSpace = 45; + var vertSpace = 100; this.questionDialog.dialog({width: Math.min(horSpace, windowWidth), height: Math.min(vertSpace, windowHeight)}); this.questionDialog.dialog("open");