Adding missing weekly/singup rewards.

This commit is contained in:
marcins78@gmail.com
2013-01-14 22:39:23 +00:00
parent f2bb15cb09
commit 6d9968f6a8
2 changed files with 29 additions and 2 deletions

View File

@@ -420,6 +420,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
int channelNumber = Integer.parseInt(getFormParameterSafely(postDecoder, "channelNumber"));
Player resourceOwner = getResourceOwnerSafely(request, participantId);
processLoginReward(request, resourceOwner.getName());
HallUpdateLongPollingResource polledResource = new HallUpdateLongPollingResource(request, resourceOwner, channelNumber, responseWriter);
if (polledResource.isChanged())

View File

@@ -1,12 +1,17 @@
package com.gempukku.lotro.async.handler;
import com.gempukku.lotro.DateUtils;
import com.gempukku.lotro.PlayerLock;
import com.gempukku.lotro.async.HttpProcessingException;
import com.gempukku.lotro.async.LoggedUserHolder;
import com.gempukku.lotro.collection.CollectionsManager;
import com.gempukku.lotro.collection.TransferDAO;
import com.gempukku.lotro.db.PlayerDAO;
import com.gempukku.lotro.db.vo.CollectionType;
import com.gempukku.lotro.game.Player;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.handler.codec.http.CookieEncoder;
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.SET_COOKIE;
import org.jboss.netty.handler.codec.http.HttpRequest;
import org.jboss.netty.handler.codec.http.QueryStringDecoder;
import org.jboss.netty.handler.codec.http.multipart.Attribute;
@@ -21,23 +26,44 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.SET_COOKIE;
public class LotroServerRequestHandler {
protected PlayerDAO _playerDao;
protected LoggedUserHolder _loggedUserHolder;
private TransferDAO _transferDAO;
private CollectionsManager _collectionManager;
public LotroServerRequestHandler(Map<Type, Object> context) {
_playerDao = extractObject(context, PlayerDAO.class);
_loggedUserHolder = extractObject(context, LoggedUserHolder.class);
_transferDAO = extractObject(context, TransferDAO.class);
_collectionManager = extractObject(context, CollectionsManager.class);
}
private boolean isTest() {
return Boolean.valueOf(System.getProperty("test"));
}
protected final void processLoginReward(HttpRequest request, String loggedUser) throws Exception {
if (loggedUser != null) {
Player player = _playerDao.getPlayer(loggedUser);
synchronized (PlayerLock.getLock(player)) {
int currentDate = DateUtils.getCurrentDate();
int latestMonday = DateUtils.getMondayBeforeOrOn(currentDate);
Integer lastReward = player.getLastLoginReward();
if (lastReward == null) {
_playerDao.setLastReward(player, latestMonday);
_collectionManager.addCurrencyToPlayerCollection(true, "Singup reward", player, new CollectionType("permanent", "My cards"), 20000);
} else {
if (latestMonday != lastReward) {
if (_playerDao.updateLastReward(player, lastReward, latestMonday))
_collectionManager.addCurrencyToPlayerCollection(true, "Weekly reward", player, new CollectionType("permanent", "My cards"), 5000);
}
}
}
}
}
protected final void processDeliveryServiceNotification(HttpRequest request, Map<String, String> headersToAdd) {
String logged = _loggedUserHolder.getLoggedUser(request);
if (logged != null && _transferDAO.hasUndeliveredPackages(logged))