mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
Implement partial upload process for MB purchases
This commit is contained in:
parent
8b8d1ca74c
commit
a0e43517b5
4 changed files with 36 additions and 2 deletions
|
|
@ -18,5 +18,11 @@ namespace Dalamud.Game.Network.MarketBoardUploaders
|
|||
/// </summary>
|
||||
/// <param name="taxRates">The tax rate data being uploaded.</param>
|
||||
void UploadTax(MarketTaxRates taxRates);
|
||||
|
||||
/// <summary>
|
||||
/// Upload information about a purchase this client has made.
|
||||
/// </summary>
|
||||
/// <param name="purchase">That thing with Louisiana.</param>
|
||||
void UploadPurchase(MarketBoardPurchase purchase);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
namespace Dalamud.Game.Network.MarketBoardUploaders.Universalis
|
||||
{
|
||||
/// <summary>
|
||||
/// Request payload for market board purchases.
|
||||
/// </summary>
|
||||
public class UniversalisMarketBoardPurchaseRequest
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -136,5 +136,23 @@ namespace Dalamud.Game.Network.Universalis.MarketBoardUploaders
|
|||
|
||||
Log.Verbose("Universalis tax upload completed.");
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void UploadPurchase(MarketBoardPurchase purchase)
|
||||
{
|
||||
using var client = new WebClient();
|
||||
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
|
||||
client.Headers.Add(HttpRequestHeader.Authorization, ApiKey);
|
||||
|
||||
var purchaseRequest = new UniversalisMarketBoardPurchaseRequest();
|
||||
|
||||
var worldId = this.dalamud.ClientState.LocalPlayer?.CurrentWorld.Id ?? 0;
|
||||
|
||||
var purchaseUpload = JsonConvert.SerializeObject(purchaseRequest);
|
||||
client.UploadString(ApiBase + $"/{purchase.CatalogId}/{worldId}/delete", "POST", purchaseUpload);
|
||||
Log.Verbose(purchaseUpload);
|
||||
|
||||
Log.Verbose("Universalis tax upload completed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@ namespace Dalamud.Game.Network
|
|||
|
||||
private readonly List<MarketBoardItemRequest> marketBoardRequests = new();
|
||||
|
||||
private MarketBoardPurchaseHandler marketBoardPurchaseHandler;
|
||||
|
||||
private readonly bool optOutMbUploads;
|
||||
private readonly IMarketBoardUploader uploader;
|
||||
|
||||
private MarketBoardPurchaseHandler marketBoardPurchaseHandler;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="NetworkHandlers"/> class.
|
||||
/// </summary>
|
||||
|
|
@ -282,6 +282,7 @@ namespace Dalamud.Game.Network
|
|||
|| purchase.CatalogId == this.marketBoardPurchaseHandler.CatalogId + 1000000))
|
||||
{ // HQ
|
||||
Log.Information("Bought " + purchase.ItemQuantity + "x " + this.marketBoardPurchaseHandler.CatalogId + " for " + (this.marketBoardPurchaseHandler.PricePerUnit * purchase.ItemQuantity) + " gils, listing id is " + this.marketBoardPurchaseHandler.ListingId);
|
||||
Task.Run(() => this.uploader.UploadPurchase(purchase));
|
||||
}
|
||||
|
||||
this.marketBoardPurchaseHandler = null;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue