market-data.yml
Ulubione, skrzynka, alerty, oceny i transakcje — zapis async do pliku tymczasowego.
Kompatybilne z: GrzybcioRynek 1.0.3Minecraft 26.2Web 0.1.0
Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.
Plik: plugins/GrzybcioRynek/market-data.yml. Klasa: ExtendedDataStore. Tworzony przy starcie. Backup: market-data.yml.bak przy enable/reload.
Sekcje
| Sekcja | Zawartość |
|---|---|
favorites.<uuid> | lista int — ID ofert |
mailbox.<uuid> | lista wpisów skrzynki |
alerts.<uuid> | lista alertów |
ratings | lista ocen |
transactions | lista TX |
Przykład
yaml
favorites:
069a79f4-44e9-4726-a5be-fca90e38aaf5:
- 12
- 44
mailbox:
069a79f4-44e9-4726-a5be-fca90e38aaf5:
- id: "a1b2c3"
item: {==: org.bukkit.inventory.ItemStack, type: DIAMOND, amount: 8}
reason: expired
timestamp: 1730000000000
previousPrice: 100.0
alerts:
069a79f4-44e9-4726-a5be-fca90e38aaf5:
- query: "diament"
maxPrice: 5000.0
timestamp: 1730000000000
ratings:
- seller: "..."
rater: "..."
transactionId: "..."
stars: 5
timestamp: 1730000000000
transactions:
- id: "3f2a…"
listingId: 12
buyer: "…"
buyerName: Kupujący
seller: "…"
sellerName: Sprzedawca
item: {==: org.bukkit.inventory.ItemStack, type: DIAMOND_SWORD, amount: 1}
price: 1500.0
fee: 75.0
sellerReceived: 1425.0
state: COMPLETED
timestamp: 1730000000000
nexoId: null
oraxenId: null
error: nullerror przy refundzie: REFUND:<epochMs>.
Zapis atomowy
saveAsync() → scheduler async → save():
- zapis do
market-data.yml.tmp ATOMIC_MOVEnamarket-data.yml- gdy atomic padnie — zwykły
movez replace - ostateczny fallback:
data.save(dataFile)
Reload: flushAndSave() (synchronicznie pod lockiem) + backup().
Retencja
pruneHistory usuwa z transactions tylko COMPLETED starsze niż history.retention-days. Reszta sekcji nie jest automatycznie czyszczona (poza ulubionymi przy zniknięciu oferty).
Czego tu nie ma
SQL, osobnego pliku historii, webhooków Discord.