diff --git a/Dalamud/Game/Network/MarketBoardUploaders/IMarketBoardUploader.cs b/Dalamud/Game/Network/MarketBoardUploaders/IMarketBoardUploader.cs
index a5f507a24..9820ac237 100644
--- a/Dalamud/Game/Network/MarketBoardUploaders/IMarketBoardUploader.cs
+++ b/Dalamud/Game/Network/MarketBoardUploaders/IMarketBoardUploader.cs
@@ -22,7 +22,7 @@ namespace Dalamud.Game.Network.MarketBoardUploaders
///
/// Upload information about a purchase this client has made.
///
- /// That thing with Louisiana.
- void UploadPurchase(MarketBoardPurchase purchase);
+ /// The purchase handler data associated with the sale.
+ void UploadPurchase(MarketBoardPurchaseHandler purchaseHandler);
}
}
diff --git a/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisItemListingDeleteRequest.cs b/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisItemListingDeleteRequest.cs
new file mode 100644
index 000000000..d0101b0b9
--- /dev/null
+++ b/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisItemListingDeleteRequest.cs
@@ -0,0 +1,46 @@
+using Newtonsoft.Json;
+
+namespace Dalamud.Game.Network.MarketBoardUploaders.Universalis
+{
+ ///
+ /// Request payload for market board purchases.
+ ///
+ public class UniversalisItemListingDeleteRequest
+ {
+ ///
+ /// Gets or sets the object ID of the retainer associated with the sale.
+ ///
+ [JsonProperty("retainerID")]
+ public ulong RetainerId { get; set; }
+
+ ///
+ /// Gets or sets the object ID of the item listing.
+ ///
+ [JsonProperty("listingID")]
+ public ulong ListingId { get; set; }
+
+ ///
+ /// Gets or sets the item ID of the item that was purchased.
+ ///
+ [JsonProperty("itemID")]
+ public uint ItemId { get; set; }
+
+ ///
+ /// Gets or sets the quantity of the item that was purchased.
+ ///
+ [JsonProperty("quantity")]
+ public uint Quantity { get; set; }
+
+ ///
+ /// Gets or sets the unit price of the item.
+ ///
+ [JsonProperty("pricePerUnit")]
+ public uint PricePerUnit { get; set; }
+
+ ///
+ /// Gets or sets the uploader ID.
+ ///
+ [JsonProperty("uploaderID")]
+ public string UploaderId { get; set; }
+ }
+}
diff --git a/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisMarketBoardPurchaseRequest.cs b/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisMarketBoardPurchaseRequest.cs
deleted file mode 100644
index d6f008ad9..000000000
--- a/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisMarketBoardPurchaseRequest.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace Dalamud.Game.Network.MarketBoardUploaders.Universalis
-{
- ///
- /// Request payload for market board purchases.
- ///
- public class UniversalisMarketBoardPurchaseRequest
- {
- }
-}
diff --git a/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs b/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs
index 49ecc45ad..469d13f8a 100644
--- a/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs
+++ b/Dalamud/Game/Network/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs
@@ -138,21 +138,30 @@ namespace Dalamud.Game.Network.Universalis.MarketBoardUploaders
}
///
- public void UploadPurchase(MarketBoardPurchase purchase)
+ public void UploadPurchase(MarketBoardPurchaseHandler purchaseHandler)
{
using var client = new WebClient();
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
client.Headers.Add(HttpRequestHeader.Authorization, ApiKey);
- var purchaseRequest = new UniversalisMarketBoardPurchaseRequest();
-
+ var itemId = purchaseHandler.CatalogId;
var worldId = this.dalamud.ClientState.LocalPlayer?.CurrentWorld.Id ?? 0;
+ var purchaseRequest = new UniversalisItemListingDeleteRequest
+ {
+ ItemId = itemId,
+ PricePerUnit = purchaseHandler.PricePerUnit,
+ Quantity = purchaseHandler.ItemQuantity,
+ ListingId = purchaseHandler.ListingId,
+ RetainerId = purchaseHandler.RetainerId,
+ UploaderId = this.dalamud.ClientState.LocalContentId.ToString(),
+ };
+
var purchaseUpload = JsonConvert.SerializeObject(purchaseRequest);
- client.UploadString(ApiBase + $"/{purchase.CatalogId}/{worldId}/delete", "POST", purchaseUpload);
+ client.UploadString(ApiBase + $"/{itemId}/{worldId}/delete", "POST", purchaseUpload);
Log.Verbose(purchaseUpload);
- Log.Verbose("Universalis tax upload completed.");
+ Log.Verbose("Universalis purchase upload completed.");
}
}
}
diff --git a/Dalamud/Game/Network/NetworkHandlers.cs b/Dalamud/Game/Network/NetworkHandlers.cs
index b2d3128f1..1a77830e4 100644
--- a/Dalamud/Game/Network/NetworkHandlers.cs
+++ b/Dalamud/Game/Network/NetworkHandlers.cs
@@ -282,7 +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));
+ Task.Run(() => this.uploader.UploadPurchase(this.marketBoardPurchaseHandler));
}
this.marketBoardPurchaseHandler = null;