Update controllers sessionIds
This commit is contained in:
@@ -20,24 +20,24 @@ namespace SPTarkov.Server.Core.Controllers;
|
||||
|
||||
[Injectable]
|
||||
public class TradeController(
|
||||
ISptLogger<TradeController> _logger,
|
||||
DatabaseService _databaseService,
|
||||
EventOutputHolder _eventOutputHolder,
|
||||
TradeHelper _tradeHelper,
|
||||
TimeUtil _timeUtil,
|
||||
RandomUtil _randomUtil,
|
||||
ItemHelper _itemHelper,
|
||||
ProfileHelper _profileHelper,
|
||||
RagfairOfferHelper _ragfairOfferHelper,
|
||||
RagfairServer _ragfairServer,
|
||||
HttpResponseUtil _httpResponseUtil,
|
||||
ServerLocalisationService _serverLocalisationService,
|
||||
MailSendService _mailSendService,
|
||||
ConfigServer _configServer
|
||||
ISptLogger<TradeController> logger,
|
||||
DatabaseService databaseService,
|
||||
EventOutputHolder eventOutputHolder,
|
||||
TradeHelper tradeHelper,
|
||||
TimeUtil timeUtil,
|
||||
RandomUtil randomUtil,
|
||||
ItemHelper itemHelper,
|
||||
ProfileHelper profileHelper,
|
||||
RagfairOfferHelper ragfairOfferHelper,
|
||||
RagfairServer ragfairServer,
|
||||
HttpResponseUtil httpResponseUtil,
|
||||
ServerLocalisationService serverLocalisationService,
|
||||
MailSendService mailSendService,
|
||||
ConfigServer configServer
|
||||
)
|
||||
{
|
||||
protected readonly RagfairConfig _ragfairConfig = _configServer.GetConfig<RagfairConfig>();
|
||||
protected readonly TraderConfig _traderConfig = _configServer.GetConfig<TraderConfig>();
|
||||
protected readonly RagfairConfig _ragfairConfig = configServer.GetConfig<RagfairConfig>();
|
||||
protected readonly TraderConfig _traderConfig = configServer.GetConfig<TraderConfig>();
|
||||
|
||||
/// <summary>
|
||||
/// Handle TradingConfirm event
|
||||
@@ -49,17 +49,17 @@ public class TradeController(
|
||||
public ItemEventRouterResponse ConfirmTrading(
|
||||
PmcData pmcData,
|
||||
ProcessBaseTradeRequestData request,
|
||||
string sessionID
|
||||
MongoId sessionID
|
||||
)
|
||||
{
|
||||
var output = _eventOutputHolder.GetOutput(sessionID);
|
||||
var output = eventOutputHolder.GetOutput(sessionID);
|
||||
|
||||
// Buying
|
||||
if (request.Type == "buy_from_trader")
|
||||
{
|
||||
var foundInRaid = _traderConfig.PurchasesAreFoundInRaid;
|
||||
var buyData = (ProcessBuyTradeRequestData)request;
|
||||
_tradeHelper.BuyItem(pmcData, buyData, sessionID, foundInRaid, output);
|
||||
tradeHelper.BuyItem(pmcData, buyData, sessionID, foundInRaid, output);
|
||||
|
||||
return output;
|
||||
}
|
||||
@@ -68,15 +68,15 @@ public class TradeController(
|
||||
if (request.Type == "sell_to_trader")
|
||||
{
|
||||
var sellData = (ProcessSellTradeRequestData)request;
|
||||
_tradeHelper.SellItem(pmcData, pmcData, sellData, sessionID, output);
|
||||
tradeHelper.SellItem(pmcData, pmcData, sellData, sessionID, output);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
var errorMessage = $"Unhandled trade event: {request.Type}";
|
||||
_logger.Error(errorMessage);
|
||||
logger.Error(errorMessage);
|
||||
|
||||
return _httpResponseUtil.AppendErrorToOutput(
|
||||
return httpResponseUtil.AppendErrorToOutput(
|
||||
output,
|
||||
errorMessage,
|
||||
BackendErrorCodes.RagfairUnavailable
|
||||
@@ -93,17 +93,17 @@ public class TradeController(
|
||||
public ItemEventRouterResponse ConfirmRagfairTrading(
|
||||
PmcData pmcData,
|
||||
ProcessRagfairTradeRequestData request,
|
||||
string sessionID
|
||||
MongoId sessionID
|
||||
)
|
||||
{
|
||||
var output = _eventOutputHolder.GetOutput(sessionID);
|
||||
var output = eventOutputHolder.GetOutput(sessionID);
|
||||
|
||||
foreach (var offer in request.Offers)
|
||||
{
|
||||
var fleaOffer = _ragfairServer.GetOffer(offer.Id);
|
||||
var fleaOffer = ragfairServer.GetOffer(offer.Id);
|
||||
if (fleaOffer is null)
|
||||
{
|
||||
return _httpResponseUtil.AppendErrorToOutput(
|
||||
return httpResponseUtil.AppendErrorToOutput(
|
||||
output,
|
||||
$"Offer with ID {offer.Id} not found",
|
||||
BackendErrorCodes.OfferNotFound
|
||||
@@ -112,18 +112,18 @@ public class TradeController(
|
||||
|
||||
if (offer.Count == 0)
|
||||
{
|
||||
var errorMessage = _serverLocalisationService.GetText(
|
||||
var errorMessage = serverLocalisationService.GetText(
|
||||
"ragfair-unable_to_purchase_0_count_item",
|
||||
_itemHelper.GetItem(fleaOffer.Items[0].Template).Value.Name
|
||||
itemHelper.GetItem(fleaOffer.Items[0].Template).Value.Name
|
||||
);
|
||||
return _httpResponseUtil.AppendErrorToOutput(
|
||||
return httpResponseUtil.AppendErrorToOutput(
|
||||
output,
|
||||
errorMessage,
|
||||
BackendErrorCodes.OfferOutOfStock
|
||||
);
|
||||
}
|
||||
|
||||
if (_ragfairOfferHelper.OfferIsFromTrader(fleaOffer))
|
||||
if (ragfairOfferHelper.OfferIsFromTrader(fleaOffer))
|
||||
{
|
||||
BuyTraderItemFromRagfair(sessionID, pmcData, fleaOffer, offer, output);
|
||||
}
|
||||
@@ -151,7 +151,7 @@ public class TradeController(
|
||||
/// <param name="requestOffer">request data from client</param>
|
||||
/// <param name="output">Output to send back to client</param>
|
||||
protected void BuyTraderItemFromRagfair(
|
||||
string sessionId,
|
||||
MongoId sessionId,
|
||||
PmcData pmcData,
|
||||
RagfairOffer fleaOffer,
|
||||
OfferRequest requestOffer,
|
||||
@@ -163,12 +163,12 @@ public class TradeController(
|
||||
{
|
||||
var errorMessage =
|
||||
$"Unable to buy item: {fleaOffer.Items[0].Template} from trader: {fleaOffer.User.Id} as loyalty level too low, skipping";
|
||||
if (_logger.IsLogEnabled(LogLevel.Debug))
|
||||
if (logger.IsLogEnabled(LogLevel.Debug))
|
||||
{
|
||||
_logger.Debug(errorMessage);
|
||||
logger.Debug(errorMessage);
|
||||
}
|
||||
|
||||
_httpResponseUtil.AppendErrorToOutput(
|
||||
httpResponseUtil.AppendErrorToOutput(
|
||||
output,
|
||||
errorMessage,
|
||||
BackendErrorCodes.RagfairUnavailable
|
||||
@@ -188,7 +188,7 @@ public class TradeController(
|
||||
SchemeId = 0,
|
||||
SchemeItems = requestOffer.Items,
|
||||
};
|
||||
_tradeHelper.BuyItem(
|
||||
tradeHelper.BuyItem(
|
||||
pmcData,
|
||||
buyData,
|
||||
sessionId,
|
||||
@@ -197,7 +197,7 @@ public class TradeController(
|
||||
);
|
||||
|
||||
// Remove/lower offer quantity of item purchased from trader flea offer
|
||||
_ragfairServer.ReduceOfferQuantity(fleaOffer.Id, requestOffer.Count ?? 0);
|
||||
ragfairServer.ReduceOfferQuantity(fleaOffer.Id, requestOffer.Count ?? 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -209,7 +209,7 @@ public class TradeController(
|
||||
/// <param name="requestOffer">request data from client</param>
|
||||
/// <param name="output">Output to send back to client</param>
|
||||
protected void BuyPmcItemFromRagfair(
|
||||
string sessionId,
|
||||
MongoId sessionId,
|
||||
PmcData pmcData,
|
||||
RagfairOffer fleaOffer,
|
||||
OfferRequest requestOffer,
|
||||
@@ -228,7 +228,7 @@ public class TradeController(
|
||||
};
|
||||
|
||||
// buyItem() must occur prior to removing the offer stack, otherwise item inside offer doesn't exist for confirmTrading() to use
|
||||
_tradeHelper.BuyItem(
|
||||
tradeHelper.BuyItem(
|
||||
pmcData,
|
||||
buyData,
|
||||
sessionId,
|
||||
@@ -247,13 +247,13 @@ public class TradeController(
|
||||
if (IsPlayerOffer(fleaOffer.Id, fleaOffer.User?.Id))
|
||||
{
|
||||
// Complete selling the offer now it has been purchased
|
||||
_ragfairOfferHelper.CompleteOffer(offerOwnerId, fleaOffer, offerBuyCount ?? 0);
|
||||
ragfairOfferHelper.CompleteOffer(offerOwnerId, fleaOffer, offerBuyCount ?? 0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove/lower offer quantity of item purchased from PMC flea offer
|
||||
_ragfairServer.ReduceOfferQuantity(fleaOffer.Id, requestOffer.Count ?? 0);
|
||||
ragfairServer.ReduceOfferQuantity(fleaOffer.Id, requestOffer.Count ?? 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -262,7 +262,7 @@ public class TradeController(
|
||||
/// <param name="offerId">id of the offer</param>
|
||||
/// <param name="offerOwnerId">Owner id</param>
|
||||
/// <returns>true if offer was made by a player</returns>
|
||||
protected bool IsPlayerOffer(string offerId, string? offerOwnerId)
|
||||
protected bool IsPlayerOffer(string offerId, MongoId? offerOwnerId)
|
||||
{
|
||||
// No ownerId, not player offer
|
||||
if (offerOwnerId is null)
|
||||
@@ -270,7 +270,7 @@ public class TradeController(
|
||||
return false;
|
||||
}
|
||||
|
||||
var offerCreatorProfile = _profileHelper.GetPmcProfile(offerOwnerId);
|
||||
var offerCreatorProfile = profileHelper.GetPmcProfile(offerOwnerId.Value);
|
||||
if (offerCreatorProfile is null || offerCreatorProfile.RagfairInfo.Offers?.Count == 0)
|
||||
// No profile or no offers
|
||||
{
|
||||
@@ -302,10 +302,10 @@ public class TradeController(
|
||||
public ItemEventRouterResponse SellScavItemsToFence(
|
||||
PmcData pmcData,
|
||||
SellScavItemsToFenceRequestData request,
|
||||
string sessionId
|
||||
MongoId sessionId
|
||||
)
|
||||
{
|
||||
var output = _eventOutputHolder.GetOutput(sessionId);
|
||||
var output = eventOutputHolder.GetOutput(sessionId);
|
||||
|
||||
MailMoneyToPlayer(sessionId, (int)request.TotalValue, Traders.FENCE);
|
||||
|
||||
@@ -318,11 +318,11 @@ public class TradeController(
|
||||
/// <param name="sessionId">Session id</param>
|
||||
/// <param name="roublesToSend">amount of roubles to send</param>
|
||||
/// <param name="trader">Trader to sell items to</param>
|
||||
protected void MailMoneyToPlayer(string sessionId, int roublesToSend, string trader)
|
||||
protected void MailMoneyToPlayer(MongoId sessionId, int roublesToSend, MongoId trader)
|
||||
{
|
||||
if (_logger.IsLogEnabled(LogLevel.Debug))
|
||||
if (logger.IsLogEnabled(LogLevel.Debug))
|
||||
{
|
||||
_logger.Debug($"Selling scav items to fence for {roublesToSend} roubles");
|
||||
logger.Debug($"Selling scav items to fence for {roublesToSend} roubles");
|
||||
}
|
||||
|
||||
// Create single currency item with all currency on it
|
||||
@@ -334,20 +334,20 @@ public class TradeController(
|
||||
};
|
||||
|
||||
// Ensure money is properly split to follow its max stack size limit
|
||||
var curencyReward = _itemHelper.SplitStackIntoSeparateItems(rootCurrencyReward);
|
||||
var curencyReward = itemHelper.SplitStackIntoSeparateItems(rootCurrencyReward);
|
||||
|
||||
// Send mail from trader
|
||||
_mailSendService.SendLocalisedNpcMessageToPlayer(
|
||||
mailSendService.SendLocalisedNpcMessageToPlayer(
|
||||
sessionId,
|
||||
trader,
|
||||
MessageType.MessageWithItems,
|
||||
_randomUtil.GetArrayValue(
|
||||
_databaseService.GetTrader(trader).Dialogue.TryGetValue("soldItems", out var items)
|
||||
randomUtil.GetArrayValue(
|
||||
databaseService.GetTrader(trader).Dialogue.TryGetValue("soldItems", out var items)
|
||||
? items
|
||||
: new List<string>()
|
||||
),
|
||||
curencyReward.SelectMany(x => x).ToList(),
|
||||
_timeUtil.GetHoursAsSeconds(72)
|
||||
timeUtil.GetHoursAsSeconds(72)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -360,9 +360,9 @@ public class TradeController(
|
||||
/// <param name="traderDetails">Trader being sold to, to perform buy category check against</param>
|
||||
/// <returns>Rouble price</returns>
|
||||
protected int GetPriceOfItemAndChildren(
|
||||
string parentItemId,
|
||||
MongoId parentItemId,
|
||||
List<Item> items,
|
||||
Dictionary<string, int?> handbookPrices,
|
||||
Dictionary<MongoId, int?> handbookPrices,
|
||||
TraderBase traderDetails
|
||||
)
|
||||
{
|
||||
@@ -371,11 +371,11 @@ public class TradeController(
|
||||
var totalPrice = 0;
|
||||
foreach (var itemToSell in itemWithChildren)
|
||||
{
|
||||
var itemDetails = _itemHelper.GetItem(itemToSell.Template);
|
||||
var itemDetails = itemHelper.GetItem(itemToSell.Template);
|
||||
if (
|
||||
!(
|
||||
itemDetails.Key
|
||||
&& _itemHelper.IsOfBaseclasses(
|
||||
&& itemHelper.IsOfBaseclasses(
|
||||
itemDetails.Value.Id,
|
||||
traderDetails.ItemsBuy.Category
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user