Added maintenance task for buildings

This commit is contained in:
Light2
2014-06-05 20:01:32 +02:00
parent 34aca38bc4
commit 2f2d5017d2
4 changed files with 108 additions and 6 deletions
+53 -2
View File
@@ -23,6 +23,7 @@ package services.bazaar;
import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -35,6 +36,10 @@ import java.util.concurrent.TimeUnit;
import main.NGECore;
import engine.clients.Client;
import engine.resources.common.CRC;
@@ -46,12 +51,15 @@ import engine.resources.service.INetworkDispatch;
import engine.resources.service.INetworkRemoteEvent;
import resources.common.Opcodes;
import resources.common.OutOfBand;
import resources.common.ProsePackage;
import resources.datatables.DisplayType;
import resources.objects.building.BuildingObject;
import resources.objects.creature.CreatureObject;
import resources.objects.intangible.IntangibleObject;
import resources.objects.manufacture.ManufactureSchematicObject;
import resources.objects.tangible.TangibleObject;
import services.chat.Mail;
import services.chat.WaypointAttachment;
import protocol.swg.auctionManagerClientListener.AuctionQueryHeadersMessage;
import protocol.swg.auctionManagerClientListener.AuctionQueryHeadersResponseMessage;
import protocol.swg.auctionManagerClientListener.BidAuctionMessage;
@@ -422,17 +430,60 @@ public class BazaarService implements INetworkDispatch {
else
retrieveExpire = timeUntilExpire + VENDOR_EXPIRE;
CreatureObject seller = (CreatureObject) core.objectService.getObject(item.getOwnerId());
item.setStatus(AuctionItem.SOLD);
item.setBuyerId(player.getObjectID());
item.setExpireTime(retrieveExpire);
item.setBidderName(player.getCustomName());
player.setBankCredits(player.getBankCredits() - item.getPrice());
player.getClient().getSession().write(new BidAuctionResponseMessage(item.getObjectId(), BidAuctionResponseMessage.SUCCESS).serialize());
WaypointAttachment waypoint = new WaypointAttachment();
waypoint.positionX = vendor.getWorldPosition().x;
waypoint.positionZ = vendor.getWorldPosition().z;
waypoint.planetCRC = CRC.StringtoCRC(vendor.getPlanet().getName());
waypoint.name = vendor.getCustomName() == null ? vendor.getObjectName().getStfValue() : vendor.getCustomName();
// TODO send mail with WP
Mail sellerMail = new Mail();
Mail buyerMail = new Mail();
CreatureObject seller = (CreatureObject) core.objectService.getObject(item.getOwnerId());
sellerMail.setMailId(NGECore.getInstance().chatService.generateMailId());
sellerMail.setMessage("");
sellerMail.setRecieverId(item.getOwnerId());
sellerMail.setStatus(Mail.NEW);
sellerMail.setTimeStamp((int) (new Date().getTime() / 1000));
sellerMail.setSenderName("SWG." + core.getGalaxyName() + ".auctioner");
if(item.isOnBazaar()) {
sellerMail.setSubject("@auction:subject_instant_seller");
sellerMail.addProseAttachment(new ProsePackage("@auction:seller_success", "TO", item.getObjectId(), item.getItemName(), "TT", player.getObjectID(), item.getBidderName(), "DI", item.getPrice()));
} else {
sellerMail.setSubject("@auction:subject_vendor_seller");
sellerMail.addProseAttachment(new ProsePackage("@auction:seller_success_vendor", "TO", item.getObjectId(), item.getItemName(), "TT", player.getObjectID(), item.getBidderName(), "DI", item.getPrice()));
}
sellerMail.addProseAttachment(new ProsePackage("@auction:seller_success_location", "TO", 0, "@planet_n:" + vendor.getPlanet().getName(), "TT", 0, core.mapService.getClosestCityName(vendor)));
sellerMail.addWaypointAttachment(waypoint);
buyerMail.setMailId(NGECore.getInstance().chatService.generateMailId());
buyerMail.setMessage("");
buyerMail.setRecieverId(player.getObjectID());
buyerMail.setStatus(Mail.NEW);
buyerMail.setTimeStamp((int) (new Date().getTime() / 1000));
buyerMail.setSenderName("SWG." + core.getGalaxyName() + ".auctioner");
if(item.isOnBazaar())
buyerMail.setSubject("@auction:subject_instant_buyer");
else
buyerMail.setSubject("@auction:subject_vendor_buyer");
buyerMail.addProseAttachment(new ProsePackage("@auction:buyer_success", "TO", item.getObjectId(), item.getItemName(), "TT", item.getOwnerId(), item.getOwnerName(), "DI", item.getPrice()));
buyerMail.addProseAttachment(new ProsePackage("@auction:buyer_success_location", "TO", 0, "@planet_n:" + vendor.getPlanet().getName(), "TT", 0, core.mapService.getClosestCityName(vendor)));
buyerMail.addWaypointAttachment(waypoint);
core.chatService.storePersistentMessage(buyerMail);
core.chatService.storePersistentMessage(sellerMail);
core.chatService.sendPersistentMessageHeader(player.getClient(), buyerMail);
if(seller != null && seller.getClient() != null)
core.chatService.sendPersistentMessageHeader(seller.getClient(), sellerMail);
if(seller == null) {
seller = core.objectService.getCreatureFromDB(item.getOwnerId());
seller.setBankCredits(seller.getBankCredits() + item.getPrice());