public void SendBlackMarketWonNotification(BlackMarketEntry entry, Item item) { BlackMarketWon packet = new BlackMarketWon(); packet.MarketID = entry.GetMarketId(); packet.Item = new ItemInstance(item); SendPacket(packet); }
public MailSender(BlackMarketEntry sender) { m_messageType = MailMessageType.Blackmarket; m_senderId = sender.GetTemplate().SellerNPC; m_stationery = MailStationery.Auction; }
void HandleBlackMarketBidOnItem(BlackMarketBidOnItem blackMarketBidOnItem) { if (!Global.BlackMarketMgr.IsEnabled()) { return; } Player player = GetPlayer(); Creature unit = player.GetNPCIfCanInteractWith(blackMarketBidOnItem.Guid, NPCFlags.BlackMarket, NPCFlags2.None); if (!unit) { Log.outDebug(LogFilter.Network, "WORLD: HandleBlackMarketBidOnItem - {0} not found or you can't interact with him.", blackMarketBidOnItem.Guid.ToString()); return; } BlackMarketEntry entry = Global.BlackMarketMgr.GetAuctionByID(blackMarketBidOnItem.MarketID); if (entry == null) { Log.outDebug(LogFilter.Network, "WORLD: HandleBlackMarketBidOnItem - {0} (name: {1}) tried to bid on a nonexistent auction (MarketId: {2}).", player.GetGUID().ToString(), player.GetName(), blackMarketBidOnItem.MarketID); SendBlackMarketBidOnItemResult(BlackMarketError.ItemNotFound, blackMarketBidOnItem.MarketID, blackMarketBidOnItem.Item); return; } if (entry.GetBidder() == player.GetGUID().GetCounter()) { Log.outDebug(LogFilter.Network, "WORLD: HandleBlackMarketBidOnItem - {0} (name: {1}) tried to place a bid on an item he already bid on. (MarketId: {2}).", player.GetGUID().ToString(), player.GetName(), blackMarketBidOnItem.MarketID); SendBlackMarketBidOnItemResult(BlackMarketError.AlreadyBid, blackMarketBidOnItem.MarketID, blackMarketBidOnItem.Item); return; } if (!entry.ValidateBid(blackMarketBidOnItem.BidAmount)) { Log.outDebug(LogFilter.Network, "WORLD: HandleBlackMarketBidOnItem - {0} (name: {1}) tried to place an invalid bid. Amount: {2} (MarketId: {3}).", player.GetGUID().ToString(), player.GetName(), blackMarketBidOnItem.BidAmount, blackMarketBidOnItem.MarketID); SendBlackMarketBidOnItemResult(BlackMarketError.HigherBid, blackMarketBidOnItem.MarketID, blackMarketBidOnItem.Item); return; } if (!player.HasEnoughMoney(blackMarketBidOnItem.BidAmount)) { Log.outDebug(LogFilter.Network, "WORLD: HandleBlackMarketBidOnItem - {0} (name: {1}) does not have enough money to place bid. (MarketId: {2}).", player.GetGUID().ToString(), player.GetName(), blackMarketBidOnItem.MarketID); SendBlackMarketBidOnItemResult(BlackMarketError.NotEnoughMoney, blackMarketBidOnItem.MarketID, blackMarketBidOnItem.Item); return; } if (entry.GetSecondsRemaining() <= 0) { Log.outDebug(LogFilter.Network, "WORLD: HandleBlackMarketBidOnItem - {0} (name: {1}) tried to bid on a completed auction. (MarketId: {2}).", player.GetGUID().ToString(), player.GetName(), blackMarketBidOnItem.MarketID); SendBlackMarketBidOnItemResult(BlackMarketError.DatabaseError, blackMarketBidOnItem.MarketID, blackMarketBidOnItem.Item); return; } SQLTransaction trans = new SQLTransaction(); Global.BlackMarketMgr.SendAuctionOutbidMail(entry, trans); entry.PlaceBid(blackMarketBidOnItem.BidAmount, player, trans); DB.Characters.CommitTransaction(trans); SendBlackMarketBidOnItemResult(BlackMarketError.Ok, blackMarketBidOnItem.MarketID, blackMarketBidOnItem.Item); }