config.yml
Every config.yml option in GrzybcioRynek 1.0.3 — type, default, effect of change, and UNUSED keys.
Compatible with: GrzybcioRynek 1.0.3Minecraft 26.2Web 0.1.0
Based on GrzybcioRynek 1.0.3 and web 0.1.0 source.
File: plugins/GrzybcioRynek/config.yml. Loading: ConfigManager.reload(). Messages (messages.*) are in the same file — details on Messages.
After change: /market reload (blocked when listings are reserved).
settings
settings.max-listings-per-player
| Type | int |
| Default | 10 |
| Description | Maximum active listings for one UUID. |
| Example | max-listings-per-player: 5 |
| Recommended | 5–20 on a normal survival server |
| Effect | When getListingCountBySeller >= limit listing fails with sell.limit-reached ({limit}). Does not touch already hanging listings. |
settings.listing-expiry-days
| Type | int |
| Default | 7 |
| Description | Days from timestamp until expiry. |
| Example | listing-expiry-days: 3 |
| Recommended | 3–14 |
| Effect | Timer every 30 min + onEnable + reload calls removeExpiredListings. Item → inventory / mailbox / pending-returns. 0 = expiry on next tick (difference > 0 ms). |
settings.gui-rows
| Type | int |
| Default | 6 |
| Description | Loaded into ConfigManager.guiRows. |
| Example | gui-rows: 4 |
| Recommended | Leave 6 or remove — it does not work anyway |
| Effect | UNUSED. No GUI reads this value. Browse size = gui.yml → browse.size. |
Warning
settings.gui-rows is UNUSED. Changing it to 4 will not make a 36-slot GUI.
settings.min-price
| Type | double |
| Default | 1.0 |
| Description | Lower listing price limit. |
| Example | min-price: 10.0 |
| Recommended | ≥ 1.0 (purchase still rejects price <= 0) |
| Effect | Price < min or non-finite → sell.invalid-price ({min}, {max}). |
settings.max-price
| Type | double |
| Default | 1000000.0 |
| Description | Upper listing price limit. |
| Example | max-price: 50000.0 |
| Recommended | Match your economy; anti-abuse has a separate max-transaction-value |
| Effect | Price > max → same sell.invalid-price. |
market-fee
market-fee.enabled
| Type | boolean |
| Default | true |
| Description | Master switch for both fees. |
| Example | enabled: false |
| Recommended | true if you want a sale fee |
| Effect | false → calculateListingFee and calculateSaleFee return 0. |
market-fee.listing-fee-percent
| Type | double (percent) |
| Default | 0.0 |
| Description | Fee on listing = price * percent / 100, then min/max fee. |
| Example | listing-fee-percent: 2.5 |
| Recommended | 0 unless you want an upfront fee |
| Effect | Vault withdraw before saving the listing. No money: fee.not-enough-listing. Success: fee.listing. |
market-fee.sale-fee-percent
| Type | double (percent) |
| Default | 5.0 |
| Description | Fee on sale. Seller gets price - fee. |
| Example | sale-fee-percent: 10.0 |
| Recommended | 3–10 |
| Effect | Visible in Confirm (gui.confirm.fee, seller-net) and in TX fee / sellerReceived. Buyer pays full price. |
market-fee.minimum-fee
| Type | double |
| Default | 0.0 |
| Description | Floor for fee amount after percent. |
| Example | minimum-fee: 1.0 |
| Recommended | 0 or a small constant |
| Effect | If calculated fee < minimum, minimum is used (when enabled). |
market-fee.maximum-fee
| Type | double |
| Default | 0.0 |
| Description | Fee ceiling. 0 = no upper limit. |
| Example | maximum-fee: 500.0 |
| Recommended | 0 or a cap for expensive items |
| Effect | Cap only when maximum-fee > 0. |
market-fee.sink-account
| Type | string (Vault account) |
| Default | "" (empty) |
| Description | Account that receives the sale fee. Trimmed. |
| Example | sink-account: "serwer" |
| Recommended | Empty = burn fee; or a treasury account |
| Effect | Empty / blank = fee disappears. Non-empty: VaultHook.depositAccount. Sink error = warning in log, purchase still COMPLETED. Listing-fee does not go to sink (taken from the lister). |
history
history.enabled
| Type | boolean |
| Default | true |
| Description | Gate for the /market history command. |
| Example | enabled: false |
| Recommended | true |
| Effect | false blocks only the command (hardcoded message). History button in browse works. Transactions are still saved. |
history.retention-days
| Type | int |
| Default | 30 |
| Description | Age threshold for pruneHistory. |
| Example | retention-days: 14 |
| Recommended | 14–90 |
| Effect | Removes only TX in state COMPLETED older than N days. Other states remain. |
favorites
favorites.enabled
| Type | boolean |
| Default | true |
| Description | Favorites: command + browse button + Detail toggle. |
| Example | enabled: false |
| Recommended | true |
| Effect | false → favorites.disabled, GUI does not open. |
price-alerts
price-alerts.enabled
| Type | boolean |
| Default | true |
| Description | Alerts: command, button, AlertService.checkListing. |
| Example | enabled: false |
| Recommended | true |
| Effect | false → alerts.disabled, new listings do not ping. |
price-alerts.max-per-player
| Type | int |
| Default | 10 |
| Description | Alert limit per UUID. |
| Example | max-per-player: 5 |
| Recommended | 5–15 |
| Effect | addAlert returns false → alerts.limit. |
anti-abuse
anti-abuse.enabled
| Type | boolean |
| Default | true |
| Description | Master switch for cooldown, purchase limit and max value. |
| Example | enabled: false |
| Recommended | true on a public server |
| Effect | false → getListingCooldownRemaining = 0, canPurchase = true. |
anti-abuse.max-purchases-from-same-player
| Type | int |
| Default | 20 |
| Description | Max purchases from the same seller in the time window. |
| Example | max-purchases-from-same-player: 10 |
| Recommended | Depends on farming; 10–30 |
| Effect | Exceeded → anti-abuse.same-player ({limit}). In-memory counter (reset on restart). |
anti-abuse.purchase-window-seconds
| Type | int |
| Default | 86400 (24 h) |
| Description | Window for counting buyer–seller pair purchases. |
| Example | purchase-window-seconds: 3600 |
| Recommended | 86400 |
| Effect | After the window expires the pair counter resets on the next purchase. |
anti-abuse.max-transaction-value
| Type | double |
| Default | 10000000 |
| Description | Upper limit of listing price on purchase (not on listing). |
| Example | max-transaction-value: 100000.0 |
| Recommended | ≥ settings.max-price or intentionally lower |
| Effect | listing.price > max → anti-abuse.max-value. Listing a more expensive offer is possible if it fits max-price. |
anti-abuse.listing-cooldown-seconds
| Type | int |
| Default | 5 |
| Description | Cooldown between listings (in-memory). |
| Example | listing-cooldown-seconds: 15 |
| Recommended | 3–15 |
| Effect | Too soon → anti-abuse.cooldown ({seconds}). Reset on restart. |
transactions
transactions.logging
| Type | boolean |
| Default | true |
| Description | Log TX steps to console (CREATED, LISTING_RESERVED, …). |
| Example | logging: false |
| Recommended | true when diagnosing refunds |
| Effect | false silences logTransaction. TX save to YAML remains. |
mailbox
mailbox.enabled
| Type | boolean |
| Default | true |
| Description | Whether returns go to mailbox in market-data.yml. |
| Example | enabled: false |
| Recommended | true |
| Effect | false: online → inventory / drop; offline → pending-returns.<uuid>. Mailbox GUI still opens. |
ratings
ratings.enabled
| Type | boolean |
| Default | true |
| Description | Rating prompt 1–5 after purchase and from history. |
| Example | enabled: false |
| Recommended | true |
| Effect | false — no requestRating. Old ratings remain. |
stats
stats.enabled
| Type | boolean |
| Default | true |
| Description | Loaded into statsEnabled. |
| Example | enabled: false |
| Recommended | Irrelevant in 1.0.3 |
| Effect | UNUSED. /market stats and the emerald button work when false. |
Warning
stats.enabled is UNUSED.
Full skeleton (without 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 = no cap
sink-account: ""
history:
enabled: true # only /market history command
retention-days: 30 # prune 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 # UNUSEDmessages: section — Messages.