Konfiguracja
config.yml w wersji 1.0.3 — limity, prowizje, wygasanie, zabezpieczenia i opcje, które nic nie robią.
Plik leży w plugins/GrzybcioRynek/config.yml. Sekcja messages: jest w tym samym
pliku — tu opisane są ustawienia, nie komunikaty.
Po zmianie: /market reload.
Szkielet pliku
settings:
max-listings-per-player: 10
listing-expiry-days: 7
gui-rows: 6 # NIEUŻYWANE
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 limitu górnego
sink-account: ""
history:
enabled: true # bramkuje tylko komendę /market history
retention-days: 30
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 # NIEUŻYWANEsettings
| Opcja | Typ | Domyślnie | Co robi |
|---|---|---|---|
max-listings-per-player | int | 10 | Maksimum aktywnych ofert jednego gracza |
listing-expiry-days | int | 7 | Po ilu dniach oferta wygasa |
gui-rows | int | 6 | Nic nie robi |
min-price | double | 1.0 | Dolny limit ceny |
max-price | double | 1000000.0 | Górny limit ceny |
Zalecane: max-listings-per-player 5–20 na zwykły survival, listing-expiry-days
3–14.
Podniesienie limitu ofert nie rusza już wiszących ofert — działa dopiero przy próbie
wystawienia nowej. Przy listing-expiry-days: 0 oferty wygasają praktycznie
natychmiast.
gui-rows nic nie robi
settings.gui-rows jest wczytywane, ale żadne GUI go nie czyta. Ustawienie 4 nie
zrobi mniejszego okna.
Rozmiar okna przeglądania ustawia się w gui.yml → browse.size. Szczegóły w
GUI.
market-fee
| Opcja | Typ | Domyślnie | Co robi |
|---|---|---|---|
enabled | bool | true | Główny wyłącznik obu prowizji |
listing-fee-percent | double | 0.0 | Prowizja od wystawienia, w procentach ceny |
sale-fee-percent | double | 5.0 | Prowizja od sprzedaży, w procentach |
minimum-fee | double | 0.0 | Podłoga kwoty prowizji |
maximum-fee | double | 0.0 | Sufit prowizji. 0 = bez limitu |
sink-account | string | "" | Konto Vault dla prowizji od sprzedaży |
Jak to liczy
- Prowizja =
cena * procent / 100. - Jeśli wynik jest mniejszy niż
minimum-fee, brane jest minimum. - Jeśli
maximum-fee > 0i wynik go przekracza, brany jest sufit.
Kupujący zawsze płaci pełną cenę. Prowizja od sprzedaży jest potrącana sprzedawcy. Prowizja od wystawienia jest pobierana z góry, przy tworzeniu oferty — brak pieniędzy oznacza, że oferta nie powstanie.
Zalecane: sale-fee-percent 3–10, listing-fee-percent 0, chyba że świadomie
chcesz opłatę wejściową.
sink-account
| Wartość | Efekt |
|---|---|
"" | Prowizja znika z ekonomii |
"serwer" | Trafia na konto Vault o tej nazwie |
Błąd wpłaty na konto skarbca nie przerywa zakupu — transakcja kończy się sukcesem,
a w logu pojawia się ostrzeżenie. Sprawdź log po pierwszej transakcji, jeśli ustawiasz
sink-account.
Prowizja od wystawienia nigdy nie idzie na sink — jest ściągana od wystawiającego.
history
| Opcja | Domyślnie | Co robi |
|---|---|---|
enabled | true | Bramkuje tylko komendę /market history |
retention-days | 30 | Po ilu dniach czyszczone są zakończone transakcje |
history.enabled nie ukrywa historii
Przycisk Historii w GUI przeglądania nie sprawdza tej flagi i otwiera historię
zawsze. Wyłączenie blokuje wyłącznie komendę, a komunikat o wyłączeniu jest zaszyty
w kodzie, nie w messages.
Transakcje są zapisywane niezależnie od tej opcji.
Czyszczenie usuwa tylko transakcje zakończone sukcesem. Nieudane i zawieszone zostają — celowo, bo to one są potrzebne przy diagnozowaniu problemów.
favorites, price-alerts, ratings, mailbox
| Sekcja | Opcja | Domyślnie | Co wyłącza |
|---|---|---|---|
favorites | enabled | true | Komendę i przycisk ulubionych |
price-alerts | enabled | true | Komendę, przycisk i powiadamianie o nowych ofertach |
price-alerts | max-per-player | 10 | Limit alertów na gracza |
ratings | enabled | true | Prośbę o ocenę po zakupie |
mailbox | enabled | true | Tylko dostarczanie do skrzynki, nie samo GUI |
mailbox.enabled działa inaczej, niż się wydaje
Ta flaga nie decyduje o tym, czy skrzynka się otworzy — GUI działa zawsze. Decyduje o tym, gdzie ląduje przedmiot przy zwrocie.
Przy false: gracz online dostaje przedmiot do ekwipunku albo pod nogi, a offline —
do listy zwrotów oczekujących.
anti-abuse
| Opcja | Domyślnie | Co robi |
|---|---|---|
enabled | true | Główny wyłącznik wszystkich zabezpieczeń |
max-purchases-from-same-player | 20 | Limit zakupów od jednego sprzedawcy w oknie czasu |
purchase-window-seconds | 86400 | Długość okna (domyślnie doba) |
max-transaction-value | 10000000 | Sufit ceny przy zakupie |
listing-cooldown-seconds | 5 | Odstęp między wystawieniami |
Liczniki żyją tylko w pamięci
Licznik zakupów i cooldown wystawiania są trzymane w pamięci i resetują się przy restarcie serwera. Przy serwerze restartowanym co kilka godzin limit dobowy jest w praktyce dużo luźniejszy, niż wygląda.
max-transaction-value a max-price to dwie różne rzeczy
settings.max-price ogranicza wystawianie. anti-abuse.max-transaction-value
ogranicza kupowanie.
Jeśli ustawisz max-price: 5000000, a max-transaction-value: 100000, gracze będą
mogli wystawiać oferty, których nikt nie kupi. Trzymaj max-transaction-value
co najmniej na poziomie max-price — albo obniż oba świadomie.
Zalecane: max-purchases-from-same-player 10–30 (zależnie od tego, jak bardzo
chcesz ograniczyć farmienie między znajomymi), listing-cooldown-seconds 3–15.
transactions
| Opcja | Domyślnie | Co robi |
|---|---|---|
logging | true | Loguje kolejne kroki transakcji na konsolę |
Zostaw true. Gdy pojawi się problem z refundacją albo zgubionym przedmiotem, te logi
są jedynym sensownym punktem wyjścia. Wyłączenie nie wpływa na zapisywanie transakcji,
tylko na ich wypisywanie.
Opcje, które nic nie robią
Dwie opcje są martwe w 1.0.3
| Opcja | Co się dzieje |
|---|---|
settings.gui-rows | Wczytywana, ale żadne GUI jej nie czyta |
stats.enabled | Wczytywana, ale statystyki działają niezależnie od niej |
Zmiana którejkolwiek nie da żadnego efektu. Nie trać czasu na diagnozowanie, dlaczego „nie działa".
Przykładowe zestawy
Serwer survival dla znajomych
settings:
max-listings-per-player: 20
listing-expiry-days: 14
min-price: 1.0
max-price: 500000.0
market-fee:
enabled: false
anti-abuse:
enabled: true
listing-cooldown-seconds: 3
max-purchases-from-same-player: 100Bez prowizji i z luźnymi limitami — na małym serwerze nadużycia nie są problemem.
Publiczny serwer z ekonomią
settings:
max-listings-per-player: 8
listing-expiry-days: 5
min-price: 10.0
max-price: 250000.0
market-fee:
enabled: true
listing-fee-percent: 1.0
sale-fee-percent: 7.0
minimum-fee: 5.0
maximum-fee: 2500.0
sink-account: ""
anti-abuse:
enabled: true
max-purchases-from-same-player: 15
purchase-window-seconds: 86400
max-transaction-value: 250000
listing-cooldown-seconds: 10Prowizje spalane jako money sink, limity zaciśnięte, sufit transakcji zrównany
z max-price.