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 3bcd26fe4..57103b70c 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 @@ -102,6 +102,8 @@ public class AdminResource extends AbstractResource { public String addLeagueProduct( @FormParam("leagueType") String leagueType, @FormParam("packProduct") String packProduct, + @FormParam("cardProduct") String cardProduct, + @FormParam("skipBaseCollection") String skipBaseCollection, @Context HttpServletRequest request) throws Exception { validateAdmin(request); @@ -109,16 +111,25 @@ public class AdminResource extends AbstractResource { if (league == null) throw new WebApplicationException(Response.Status.NOT_FOUND); - MutableCardCollection baseCollection = league.getBaseCollection(); - List items = new LinkedList(); List packs = getPacks(packProduct); - for (String pack : packs) { - baseCollection.addPacks(pack, 1); + List cards = getCards(cardProduct); + + for (String pack : packs) items.add(new CardCollection.Item(CardCollection.Item.Type.PACK, 1, pack)); + for (String card : cards) + items.add(new CardCollection.Item(CardCollection.Item.Type.CARD, 1, card)); + + if (skipBaseCollection == null || !skipBaseCollection.equals("true")) { + MutableCardCollection baseCollection = league.getBaseCollection(); + + for (String pack : packs) + baseCollection.addPacks(pack, 1); + for (String card : cards) + baseCollection.addCards(card, 1); + _leagueDao.setBaseCollectionForLeague(league, baseCollection); } - _leagueDao.setBaseCollectionForLeague(league, baseCollection); Map playerCollections = _collectionDao.getPlayerCollectionsByType(leagueType); for (Map.Entry playerCollection : playerCollections.entrySet()) { @@ -126,6 +137,8 @@ public class AdminResource extends AbstractResource { MutableCardCollection collection = playerCollection.getValue(); for (String pack : packs) collection.addPacks(pack, 1); + for (String card : cards) + collection.addCards(card, 1); Player player = _playerDao.getPlayer(playerId); _collectionDao.setCollectionForPlayer(player, leagueType, collection); _deliveryService.addPackage(player, leagueType, items); @@ -141,6 +154,13 @@ public class AdminResource extends AbstractResource { return result; } + private List getCards(String packProduct) { + List result = new LinkedList(); + for (String pack : packProduct.split("\n")) + result.add(pack.trim()); + return result; + } + private League getLeagueByType(String leagueType) { for (League league : _leagueDao.getActiveLeagues()) if (league.getType().equals(leagueType)) diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html index 9d30b24dc..c5038a75c 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/admin.html @@ -39,6 +39,8 @@
Type:
Packs:
+ Cards:
+ Skip base collection: