mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-07-31 01:15:57 -04:00
Added maintenance task for buildings
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user