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
| Typ | int |
| Default | 10 |
| Opis | Maksimum aktywnych ofert jednego UUID. |
| Przykład | max-listings-per-player: 5 |
| Zalecane | 5–20 na zwykły serwer survival |
| Skutek | Przy getListingCountBySeller >= limit wystawienie pada z sell.limit-reached ({limit}). Nie rusza już wiszących ofert. |
settings.listing-expiry-days
| Typ | int |
| Default | 7 |
| Opis | Dni od timestamp do wygaśnięcia. |
| Przykład | listing-expiry-days: 3 |
| Zalecane | 3–14 |
| Skutek | Timer 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
| Typ | int |
| Default | 6 |
| Opis | Ładowane do ConfigManager.guiRows. |
| Przykład | gui-rows: 4 |
| Zalecane | Zostaw 6 albo usuń — i tak nie działa |
| Skutek | UNUSED. Żadne GUI nie czyta tej wartości. Rozmiar browse = gui.yml → browse.size. |
Warning
settings.gui-rows jest UNUSED. Zmiana na 4 nie zrobi GUI 36-slotowego.
settings.min-price
| Typ | double |
| Default | 1.0 |
| Opis | Dolny limit ceny wystawienia. |
| Przykład | min-price: 10.0 |
| Zalecane | ≥ 1.0 (zakup i tak odrzuca price <= 0) |
| Skutek | Cena < min albo nie-skończona → sell.invalid-price ({min}, {max}). |
settings.max-price
| Typ | double |
| Default | 1000000.0 |
| Opis | Górny limit ceny wystawienia. |
| Przykład | max-price: 50000.0 |
| Zalecane | Dopasuj do ekonomii; antynadużycia mają osobny max-transaction-value |
| Skutek | Cena > max → ten sam sell.invalid-price. |
market-fee
market-fee.enabled
| Typ | boolean |
| Default | true |
| Opis | Master switch obu prowizji. |
| Przykład | enabled: false |
| Zalecane | true jeśli chcesz opłatę od sprzedaży |
| Skutek | false → calculateListingFee i calculateSaleFee zwracają 0. |
market-fee.listing-fee-percent
| Typ | double (procent) |
| Default | 0.0 |
| Opis | Prowizja od wystawienia = price * percent / 100, potem min/max fee. |
| Przykład | listing-fee-percent: 2.5 |
| Zalecane | 0 chyba że chcesz opłatę z góry |
| Skutek | Pobranie Vault przed zapisem oferty. Brak kasy: fee.not-enough-listing. Sukces: fee.listing. |
market-fee.sale-fee-percent
| Typ | double (procent) |
| Default | 5.0 |
| Opis | Prowizja od sprzedaży. Sprzedawca dostaje price - fee. |
| Przykład | sale-fee-percent: 10.0 |
| Zalecane | 3–10 |
| Skutek | Widoczne w Confirm (gui.confirm.fee, seller-net) i w TX fee / sellerReceived. Kupujący płaci pełną cenę. |
market-fee.minimum-fee
| Typ | double |
| Default | 0.0 |
| Opis | Podłoga kwoty fee po procencie. |
| Przykład | minimum-fee: 1.0 |
| Zalecane | 0 albo drobna stała |
| Skutek | Jeśli wyliczone fee < minimum, używane jest minimum (gdy enabled). |
market-fee.maximum-fee
| Typ | double |
| Default | 0.0 |
| Opis | Sufit fee. 0 = brak limitu górnego. |
| Przykład | maximum-fee: 500.0 |
| Zalecane | 0 albo cap przy drogich itemach |
| Skutek | Cap tylko gdy maximum-fee > 0. |
market-fee.sink-account
| Typ | string (konto Vault) |
| Default | "" (puste) |
| Opis | Konto, na które idzie prowizja sprzedaży. Trimowane. |
| Przykład | sink-account: "serwer" |
| Zalecane | Puste = spalenie fee; albo konto skarbca |
| Skutek | Puste / 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
| Typ | boolean |
| Default | true |
| Opis | Bramka komendy /market history. |
| Przykład | enabled: false |
| Zalecane | true |
| Skutek | false blokuje tylko komendę (hardcoded message). Przycisk Historii w browse działa. Transakcje i tak są zapisywane. |
history.retention-days
| Typ | int |
| Default | 30 |
| Opis | Próg wieku przy pruneHistory. |
| Przykład | retention-days: 14 |
| Zalecane | 14–90 |
| Skutek | Usuwa wyłącznie TX w stanie COMPLETED starsze niż N dni. Inne stany zostają. |
favorites
favorites.enabled
| Typ | boolean |
| Default | true |
| Opis | Ulubione: komenda + przycisk browse + toggle w Detail. |
| Przykład | enabled: false |
| Zalecane | true |
| Skutek | false → favorites.disabled, GUI się nie otwiera. |
price-alerts
price-alerts.enabled
| Typ | boolean |
| Default | true |
| Opis | Alerty: komenda, przycisk, AlertService.checkListing. |
| Przykład | enabled: false |
| Zalecane | true |
| Skutek | false → alerts.disabled, nowe oferty nie pingują. |
price-alerts.max-per-player
| Typ | int |
| Default | 10 |
| Opis | Limit alertów na UUID. |
| Przykład | max-per-player: 5 |
| Zalecane | 5–15 |
| Skutek | addAlert zwraca false → alerts.limit. |
anti-abuse
anti-abuse.enabled
| Typ | boolean |
| Default | true |
| Opis | Master switch cooldownu, limitu zakupów i max wartości. |
| Przykład | enabled: false |
| Zalecane | true na publicznym serwerze |
| Skutek | false → getListingCooldownRemaining = 0, canPurchase = true. |
anti-abuse.max-purchases-from-same-player
| Typ | int |
| Default | 20 |
| Opis | Maks. zakupów od tego samego sprzedawcy w oknie czasu. |
| Przykład | max-purchases-from-same-player: 10 |
| Zalecane | Zależnie od farmienia; 10–30 |
| Skutek | Przekroczenie → anti-abuse.same-player ({limit}). Licznik in-memory (reset przy restarcie). |
anti-abuse.purchase-window-seconds
| Typ | int |
| Default | 86400 (24 h) |
| Opis | Okno zliczania zakupów para kupujący–sprzedawca. |
| Przykład | purchase-window-seconds: 3600 |
| Zalecane | 86400 |
| Skutek | Po upływie okna licznik pary resetuje się przy następnym zakupie. |
anti-abuse.max-transaction-value
| Typ | double |
| Default | 10000000 |
| Opis | Górny limit ceny oferty przy zakupie (nie przy wystawieniu). |
| Przykład | max-transaction-value: 100000.0 |
| Zalecane | ≥ settings.max-price albo świadomie niżej |
| Skutek | listing.price > max → anti-abuse.max-value. Wystawienie droższej oferty jest możliwe, jeśli mieści się w max-price. |
anti-abuse.listing-cooldown-seconds
| Typ | int |
| Default | 5 |
| Opis | Cooldown między wystawieniami (in-memory). |
| Przykład | listing-cooldown-seconds: 15 |
| Zalecane | 3–15 |
| Skutek | Za wcześnie → anti-abuse.cooldown ({seconds}). Reset przy restarcie. |
transactions
transactions.logging
| Typ | boolean |
| Default | true |
| Opis | Log kroków TX na konsolę (CREATED, LISTING_RESERVED, …). |
| Przykład | logging: false |
| Zalecane | true przy diagnostyce refundów |
| Skutek | false wycisza logTransaction. Zapis TX do YAML zostaje. |
mailbox
mailbox.enabled
| Typ | boolean |
| Default | true |
| Opis | Czy zwroty idą do skrzynki w market-data.yml. |
| Przykład | enabled: false |
| Zalecane | true |
| Skutek | false: online → ekwipunek / drop; offline → pending-returns.<uuid>. GUI skrzynki i tak się otwiera. |
ratings
ratings.enabled
| Typ | boolean |
| Default | true |
| Opis | Prompt oceny 1–5 po zakupie i z historii. |
| Przykład | enabled: false |
| Zalecane | true |
| Skutek | false — brak requestRating. Stare oceny zostają. |
stats
stats.enabled
| Typ | boolean |
| Default | true |
| Opis | Ładowane do statsEnabled. |
| Przykład | enabled: false |
| Zalecane | Bez znaczenia w 1.0.3 |
| Skutek | UNUSED. /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 # UNUSEDSekcja messages: — Messages.