GrzybcioRynek

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

Typeint
Default10
DescriptionMaximum active listings for one UUID.
Examplemax-listings-per-player: 5
Recommended520 on a normal survival server
EffectWhen getListingCountBySeller >= limit listing fails with sell.limit-reached ({limit}). Does not touch already hanging listings.

settings.listing-expiry-days

Typeint
Default7
DescriptionDays from timestamp until expiry.
Examplelisting-expiry-days: 3
Recommended314
EffectTimer every 30 min + onEnable + reload calls removeExpiredListings. Item → inventory / mailbox / pending-returns. 0 = expiry on next tick (difference > 0 ms).

settings.gui-rows

Typeint
Default6
DescriptionLoaded into ConfigManager.guiRows.
Examplegui-rows: 4
RecommendedLeave 6 or remove — it does not work anyway
EffectUNUSED. No GUI reads this value. Browse size = gui.ymlbrowse.size.
Warning

settings.gui-rows is UNUSED. Changing it to 4 will not make a 36-slot GUI.

settings.min-price

Typedouble
Default1.0
DescriptionLower listing price limit.
Examplemin-price: 10.0
Recommended1.0 (purchase still rejects price <= 0)
EffectPrice < min or non-finite → sell.invalid-price ({min}, {max}).

settings.max-price

Typedouble
Default1000000.0
DescriptionUpper listing price limit.
Examplemax-price: 50000.0
RecommendedMatch your economy; anti-abuse has a separate max-transaction-value
EffectPrice > max → same sell.invalid-price.

market-fee

market-fee.enabled

Typeboolean
Defaulttrue
DescriptionMaster switch for both fees.
Exampleenabled: false
Recommendedtrue if you want a sale fee
EffectfalsecalculateListingFee and calculateSaleFee return 0.

market-fee.listing-fee-percent

Typedouble (percent)
Default0.0
DescriptionFee on listing = price * percent / 100, then min/max fee.
Examplelisting-fee-percent: 2.5
Recommended0 unless you want an upfront fee
EffectVault withdraw before saving the listing. No money: fee.not-enough-listing. Success: fee.listing.

market-fee.sale-fee-percent

Typedouble (percent)
Default5.0
DescriptionFee on sale. Seller gets price - fee.
Examplesale-fee-percent: 10.0
Recommended310
EffectVisible in Confirm (gui.confirm.fee, seller-net) and in TX fee / sellerReceived. Buyer pays full price.

market-fee.minimum-fee

Typedouble
Default0.0
DescriptionFloor for fee amount after percent.
Exampleminimum-fee: 1.0
Recommended0 or a small constant
EffectIf calculated fee < minimum, minimum is used (when enabled).

market-fee.maximum-fee

Typedouble
Default0.0
DescriptionFee ceiling. 0 = no upper limit.
Examplemaximum-fee: 500.0
Recommended0 or a cap for expensive items
EffectCap only when maximum-fee > 0.

market-fee.sink-account

Typestring (Vault account)
Default"" (empty)
DescriptionAccount that receives the sale fee. Trimmed.
Examplesink-account: "serwer"
RecommendedEmpty = burn fee; or a treasury account
EffectEmpty / 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

Typeboolean
Defaulttrue
DescriptionGate for the /market history command.
Exampleenabled: false
Recommendedtrue
Effectfalse blocks only the command (hardcoded message). History button in browse works. Transactions are still saved.

history.retention-days

Typeint
Default30
DescriptionAge threshold for pruneHistory.
Exampleretention-days: 14
Recommended1490
EffectRemoves only TX in state COMPLETED older than N days. Other states remain.

favorites

favorites.enabled

Typeboolean
Defaulttrue
DescriptionFavorites: command + browse button + Detail toggle.
Exampleenabled: false
Recommendedtrue
Effectfalsefavorites.disabled, GUI does not open.

price-alerts

price-alerts.enabled

Typeboolean
Defaulttrue
DescriptionAlerts: command, button, AlertService.checkListing.
Exampleenabled: false
Recommendedtrue
Effectfalsealerts.disabled, new listings do not ping.

price-alerts.max-per-player

Typeint
Default10
DescriptionAlert limit per UUID.
Examplemax-per-player: 5
Recommended515
EffectaddAlert returns false → alerts.limit.

anti-abuse

anti-abuse.enabled

Typeboolean
Defaulttrue
DescriptionMaster switch for cooldown, purchase limit and max value.
Exampleenabled: false
Recommendedtrue on a public server
EffectfalsegetListingCooldownRemaining = 0, canPurchase = true.

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

Typeint
Default20
DescriptionMax purchases from the same seller in the time window.
Examplemax-purchases-from-same-player: 10
RecommendedDepends on farming; 10–30
EffectExceeded → anti-abuse.same-player ({limit}). In-memory counter (reset on restart).

anti-abuse.purchase-window-seconds

Typeint
Default86400 (24 h)
DescriptionWindow for counting buyer–seller pair purchases.
Examplepurchase-window-seconds: 3600
Recommended86400
EffectAfter the window expires the pair counter resets on the next purchase.

anti-abuse.max-transaction-value

Typedouble
Default10000000
DescriptionUpper limit of listing price on purchase (not on listing).
Examplemax-transaction-value: 100000.0
Recommendedsettings.max-price or intentionally lower
Effectlisting.price > maxanti-abuse.max-value. Listing a more expensive offer is possible if it fits max-price.

anti-abuse.listing-cooldown-seconds

Typeint
Default5
DescriptionCooldown between listings (in-memory).
Examplelisting-cooldown-seconds: 15
Recommended315
EffectToo soon → anti-abuse.cooldown ({seconds}). Reset on restart.

transactions

transactions.logging

Typeboolean
Defaulttrue
DescriptionLog TX steps to console (CREATED, LISTING_RESERVED, …).
Examplelogging: false
Recommendedtrue when diagnosing refunds
Effectfalse silences logTransaction. TX save to YAML remains.

mailbox

mailbox.enabled

Typeboolean
Defaulttrue
DescriptionWhether returns go to mailbox in market-data.yml.
Exampleenabled: false
Recommendedtrue
Effectfalse: online → inventory / drop; offline → pending-returns.<uuid>. Mailbox GUI still opens.

ratings

ratings.enabled

Typeboolean
Defaulttrue
DescriptionRating prompt 1–5 after purchase and from history.
Exampleenabled: false
Recommendedtrue
Effectfalse — no requestRating. Old ratings remain.

stats

stats.enabled

Typeboolean
Defaulttrue
DescriptionLoaded into statsEnabled.
Exampleenabled: false
RecommendedIrrelevant in 1.0.3
EffectUNUSED. /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        # UNUSED

messages: section — Messages.