GrzybcioRynek

config.yml

Każda opcja config.yml GrzybcioRynek 1.0.3 — typ, default, skutek zmiany i klucze UNUSED.

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/config.yml. Ładowanie: ConfigManager.reload(). Komunikaty (messages.*) są w tym samym pliku — szczegóły na Messages.

Po zmianie: /market reload (zablokowany przy zarezerwowanych ofertach).

settings

settings.max-listings-per-player

Typint
Default10
OpisMaksimum aktywnych ofert jednego UUID.
Przykładmax-listings-per-player: 5
Zalecane520 na zwykły serwer survival
SkutekPrzy getListingCountBySeller >= limit wystawienie pada z sell.limit-reached ({limit}). Nie rusza już wiszących ofert.

settings.listing-expiry-days

Typint
Default7
OpisDni od timestamp do wygaśnięcia.
Przykładlisting-expiry-days: 3
Zalecane314
SkutekTimer co 30 min + onEnable + reload woła removeExpiredListings. Item → ekwipunek / skrzynka / pending-returns. 0 = wygaśnięcie przy następnym ticku (różnica > 0 ms).

settings.gui-rows

Typint
Default6
OpisŁadowane do ConfigManager.guiRows.
Przykładgui-rows: 4
ZalecaneZostaw 6 albo usuń — i tak nie działa
SkutekUNUSED. Żadne GUI nie czyta tej wartości. Rozmiar browse = gui.ymlbrowse.size.
Warning

settings.gui-rows jest UNUSED. Zmiana na 4 nie zrobi GUI 36-slotowego.

settings.min-price

Typdouble
Default1.0
OpisDolny limit ceny wystawienia.
Przykładmin-price: 10.0
Zalecane1.0 (zakup i tak odrzuca price <= 0)
SkutekCena < min albo nie-skończona → sell.invalid-price ({min}, {max}).

settings.max-price

Typdouble
Default1000000.0
OpisGórny limit ceny wystawienia.
Przykładmax-price: 50000.0
ZalecaneDopasuj do ekonomii; antynadużycia mają osobny max-transaction-value
SkutekCena > max → ten sam sell.invalid-price.

market-fee

market-fee.enabled

Typboolean
Defaulttrue
OpisMaster switch obu prowizji.
Przykładenabled: false
Zalecanetrue jeśli chcesz opłatę od sprzedaży
SkutekfalsecalculateListingFee i calculateSaleFee zwracają 0.

market-fee.listing-fee-percent

Typdouble (procent)
Default0.0
OpisProwizja od wystawienia = price * percent / 100, potem min/max fee.
Przykładlisting-fee-percent: 2.5
Zalecane0 chyba że chcesz opłatę z góry
SkutekPobranie Vault przed zapisem oferty. Brak kasy: fee.not-enough-listing. Sukces: fee.listing.

market-fee.sale-fee-percent

Typdouble (procent)
Default5.0
OpisProwizja od sprzedaży. Sprzedawca dostaje price - fee.
Przykładsale-fee-percent: 10.0
Zalecane310
SkutekWidoczne w Confirm (gui.confirm.fee, seller-net) i w TX fee / sellerReceived. Kupujący płaci pełną cenę.

market-fee.minimum-fee

Typdouble
Default0.0
OpisPodłoga kwoty fee po procencie.
Przykładminimum-fee: 1.0
Zalecane0 albo drobna stała
SkutekJeśli wyliczone fee < minimum, używane jest minimum (gdy enabled).

market-fee.maximum-fee

Typdouble
Default0.0
OpisSufit fee. 0 = brak limitu górnego.
Przykładmaximum-fee: 500.0
Zalecane0 albo cap przy drogich itemach
SkutekCap tylko gdy maximum-fee > 0.

market-fee.sink-account

Typstring (konto Vault)
Default"" (puste)
OpisKonto, na które idzie prowizja sprzedaży. Trimowane.
Przykładsink-account: "serwer"
ZalecanePuste = spalenie fee; albo konto skarbca
SkutekPuste / blank = fee znika. Niepuste: VaultHook.depositAccount. Błąd sink = warning w logu, zakup i tak COMPLETED. Listing-fee nie idzie na sink (jest ściągane od wystawiającego).

history

history.enabled

Typboolean
Defaulttrue
OpisBramka komendy /market history.
Przykładenabled: false
Zalecanetrue
Skutekfalse blokuje tylko komendę (hardcoded message). Przycisk Historii w browse działa. Transakcje i tak są zapisywane.

history.retention-days

Typint
Default30
OpisPróg wieku przy pruneHistory.
Przykładretention-days: 14
Zalecane1490
SkutekUsuwa wyłącznie TX w stanie COMPLETED starsze niż N dni. Inne stany zostają.

favorites

favorites.enabled

Typboolean
Defaulttrue
OpisUlubione: komenda + przycisk browse + toggle w Detail.
Przykładenabled: false
Zalecanetrue
Skutekfalsefavorites.disabled, GUI się nie otwiera.

price-alerts

price-alerts.enabled

Typboolean
Defaulttrue
OpisAlerty: komenda, przycisk, AlertService.checkListing.
Przykładenabled: false
Zalecanetrue
Skutekfalsealerts.disabled, nowe oferty nie pingują.

price-alerts.max-per-player

Typint
Default10
OpisLimit alertów na UUID.
Przykładmax-per-player: 5
Zalecane515
SkutekaddAlert zwraca false → alerts.limit.

anti-abuse

anti-abuse.enabled

Typboolean
Defaulttrue
OpisMaster switch cooldownu, limitu zakupów i max wartości.
Przykładenabled: false
Zalecanetrue na publicznym serwerze
SkutekfalsegetListingCooldownRemaining = 0, canPurchase = true.

anti-abuse.max-purchases-from-same-player

Typint
Default20
OpisMaks. zakupów od tego samego sprzedawcy w oknie czasu.
Przykładmax-purchases-from-same-player: 10
ZalecaneZależnie od farmienia; 10–30
SkutekPrzekroczenie → anti-abuse.same-player ({limit}). Licznik in-memory (reset przy restarcie).

anti-abuse.purchase-window-seconds

Typint
Default86400 (24 h)
OpisOkno zliczania zakupów para kupujący–sprzedawca.
Przykładpurchase-window-seconds: 3600
Zalecane86400
SkutekPo upływie okna licznik pary resetuje się przy następnym zakupie.

anti-abuse.max-transaction-value

Typdouble
Default10000000
OpisGórny limit ceny oferty przy zakupie (nie przy wystawieniu).
Przykładmax-transaction-value: 100000.0
Zalecanesettings.max-price albo świadomie niżej
Skuteklisting.price > maxanti-abuse.max-value. Wystawienie droższej oferty jest możliwe, jeśli mieści się w max-price.

anti-abuse.listing-cooldown-seconds

Typint
Default5
OpisCooldown między wystawieniami (in-memory).
Przykładlisting-cooldown-seconds: 15
Zalecane315
SkutekZa wcześnie → anti-abuse.cooldown ({seconds}). Reset przy restarcie.

transactions

transactions.logging

Typboolean
Defaulttrue
OpisLog kroków TX na konsolę (CREATED, LISTING_RESERVED, …).
Przykładlogging: false
Zalecanetrue przy diagnostyce refundów
Skutekfalse wycisza logTransaction. Zapis TX do YAML zostaje.

mailbox

mailbox.enabled

Typboolean
Defaulttrue
OpisCzy zwroty idą do skrzynki w market-data.yml.
Przykładenabled: false
Zalecanetrue
Skutekfalse: online → ekwipunek / drop; offline → pending-returns.<uuid>. GUI skrzynki i tak się otwiera.

ratings

ratings.enabled

Typboolean
Defaulttrue
OpisPrompt oceny 1–5 po zakupie i z historii.
Przykładenabled: false
Zalecanetrue
Skutekfalse — brak requestRating. Stare oceny zostają.

stats

stats.enabled

Typboolean
Defaulttrue
OpisŁadowane do statsEnabled.
Przykładenabled: false
ZalecaneBez znaczenia w 1.0.3
SkutekUNUSED. /market stats i przycisk emerald działają przy false.
Warning

stats.enabled jest UNUSED.

Pełny szkielet (bez messages)

yaml
settings:
  max-listings-per-player: 10
  listing-expiry-days: 7
  gui-rows: 6          # UNUSED
  min-price: 1.0
  max-price: 1000000.0

market-fee:
  enabled: true
  listing-fee-percent: 0.0
  sale-fee-percent: 5.0
  minimum-fee: 0.0
  maximum-fee: 0.0     # 0 = brak cap
  sink-account: ""

history:
  enabled: true        # tylko komenda /market history
  retention-days: 30   # pruni COMPLETED

favorites:
  enabled: true

price-alerts:
  enabled: true
  max-per-player: 10

anti-abuse:
  enabled: true
  max-purchases-from-same-player: 20
  purchase-window-seconds: 86400
  max-transaction-value: 10000000
  listing-cooldown-seconds: 5

transactions:
  logging: true

mailbox:
  enabled: true

ratings:
  enabled: true

stats:
  enabled: true        # UNUSED

Sekcja messages:Messages.