mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 10:17:22 +01:00
Fix universalis upload with itemId 0 (#2077)
This commit is contained in:
parent
6052469976
commit
8668ea0d59
3 changed files with 20 additions and 9 deletions
|
|
@ -30,6 +30,11 @@ internal class MarketBoardItemRequest
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public uint AmountToArrive { get; private set; }
|
public uint AmountToArrive { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the offered catalog id used in this listing.
|
||||||
|
/// </summary>
|
||||||
|
public uint CatalogId { get; internal set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the offered item listings.
|
/// Gets the offered item listings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ internal class UniversalisMarketBoardUploader : IMarketBoardUploader
|
||||||
{
|
{
|
||||||
WorldId = clientState.LocalPlayer?.CurrentWorld.RowId ?? 0,
|
WorldId = clientState.LocalPlayer?.CurrentWorld.RowId ?? 0,
|
||||||
UploaderId = uploader.ToString(),
|
UploaderId = uploader.ToString(),
|
||||||
ItemId = request.Listings.FirstOrDefault()?.CatalogId ?? 0,
|
ItemId = request.CatalogId,
|
||||||
Listings = [],
|
Listings = [],
|
||||||
Sales = [],
|
Sales = [],
|
||||||
};
|
};
|
||||||
|
|
@ -106,7 +106,7 @@ internal class UniversalisMarketBoardUploader : IMarketBoardUploader
|
||||||
|
|
||||||
// ====================================================================================
|
// ====================================================================================
|
||||||
|
|
||||||
Log.Verbose("Universalis data upload for item#{CatalogId} completed", request.Listings.FirstOrDefault()?.CatalogId ?? 0);
|
Log.Verbose("Universalis data upload for item#{CatalogId} completed", request.CatalogId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
|
|
|
||||||
|
|
@ -367,7 +367,7 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
private IObservable<List<MarketBoardHistory.MarketBoardHistoryListing>> OnMarketBoardSalesBatch(
|
private IObservable<(uint CatalogId, List<MarketBoardHistory.MarketBoardHistoryListing> Sales)> OnMarketBoardSalesBatch(
|
||||||
IObservable<MarketBoardItemRequest> start)
|
IObservable<MarketBoardItemRequest> start)
|
||||||
{
|
{
|
||||||
var historyObservable = this.MbHistoryObservable.Publish().RefCount();
|
var historyObservable = this.MbHistoryObservable.Publish().RefCount();
|
||||||
|
|
@ -390,6 +390,7 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
||||||
// When a start packet is observed, begin observing a window of history packets.
|
// When a start packet is observed, begin observing a window of history packets.
|
||||||
// We should only get one packet, which the window closing function ensures.
|
// We should only get one packet, which the window closing function ensures.
|
||||||
// This packet is flattened to its sale entries and emitted.
|
// This packet is flattened to its sale entries and emitted.
|
||||||
|
uint catalogId = 0;
|
||||||
return historyObservable
|
return historyObservable
|
||||||
.Do(LogHistoryObserved)
|
.Do(LogHistoryObserved)
|
||||||
.Window(start, UntilBatchEnd)
|
.Window(start, UntilBatchEnd)
|
||||||
|
|
@ -398,9 +399,12 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
||||||
new List<MarketBoardHistory.MarketBoardHistoryListing>(),
|
new List<MarketBoardHistory.MarketBoardHistoryListing>(),
|
||||||
(agg, next) =>
|
(agg, next) =>
|
||||||
{
|
{
|
||||||
|
catalogId = next.CatalogId;
|
||||||
|
|
||||||
agg.AddRange(next.InternalHistoryListings);
|
agg.AddRange(next.InternalHistoryListings);
|
||||||
return agg;
|
return agg;
|
||||||
}));
|
}))
|
||||||
|
.Select(o => (catalogId, o));
|
||||||
}
|
}
|
||||||
|
|
||||||
private IDisposable HandleMarketBoardItemRequest()
|
private IDisposable HandleMarketBoardItemRequest()
|
||||||
|
|
@ -411,7 +415,8 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
||||||
}
|
}
|
||||||
|
|
||||||
var startObservable = this.MbItemRequestObservable
|
var startObservable = this.MbItemRequestObservable
|
||||||
.Where(request => request.Ok).Do(LogStartObserved)
|
.Where(request => request.Ok)
|
||||||
|
.Do(LogStartObserved)
|
||||||
.Publish()
|
.Publish()
|
||||||
.RefCount();
|
.RefCount();
|
||||||
return Observable.When(
|
return Observable.When(
|
||||||
|
|
@ -432,10 +437,10 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
||||||
|
|
||||||
private void UploadMarketBoardData(
|
private void UploadMarketBoardData(
|
||||||
MarketBoardItemRequest request,
|
MarketBoardItemRequest request,
|
||||||
ICollection<MarketBoardHistory.MarketBoardHistoryListing> sales,
|
(uint CatalogId, ICollection<MarketBoardHistory.MarketBoardHistoryListing> Sales) sales,
|
||||||
ICollection<MarketBoardCurrentOfferings.MarketBoardItemListing> listings)
|
ICollection<MarketBoardCurrentOfferings.MarketBoardItemListing> listings)
|
||||||
{
|
{
|
||||||
var catalogId = listings.FirstOrDefault()?.CatalogId ?? 0;
|
var catalogId = sales.CatalogId;
|
||||||
if (listings.Count != request.AmountToArrive)
|
if (listings.Count != request.AmountToArrive)
|
||||||
{
|
{
|
||||||
Log.Error(
|
Log.Error(
|
||||||
|
|
@ -448,10 +453,11 @@ internal unsafe class NetworkHandlers : IInternalDisposableService
|
||||||
"Market Board request resolved, starting upload: item#{CatalogId} listings#{ListingsObserved} sales#{SalesObserved}",
|
"Market Board request resolved, starting upload: item#{CatalogId} listings#{ListingsObserved} sales#{SalesObserved}",
|
||||||
catalogId,
|
catalogId,
|
||||||
listings.Count,
|
listings.Count,
|
||||||
sales.Count);
|
sales.Sales.Count);
|
||||||
|
|
||||||
|
request.CatalogId = catalogId;
|
||||||
request.Listings.AddRange(listings);
|
request.Listings.AddRange(listings);
|
||||||
request.History.AddRange(sales);
|
request.History.AddRange(sales.Sales);
|
||||||
|
|
||||||
Task.Run(() => this.uploader.Upload(request))
|
Task.Run(() => this.uploader.Upload(request))
|
||||||
.ContinueWith(
|
.ContinueWith(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue