tapscrollWIKI

Konfiguration

Geführte Tour durch Gavels config.yml — Gebühren, Gebote, Preisangebote, Blacklist, Benachrichtigungen und Performance.

Gavel v1.0.0Paper · Folia supported1.21 – 1.21.x

plugins/Gavel/config.yml enthält ausschließlich Verhalten. Texte liegen in lang/<code>.yml, Menü-Layouts in gui/<name>.yml. Änderungen übernimmst du mit /aha reload.

Zwei Abschnitte brauchen einen Neustart

storage und sync werden nur beim Start gelesen. Alles andere lässt sich neu laden.

general

plugins/Gavel/config.yml
general:  server-name: "survival-1"  default-language: "de"  follow-client-locale: true  timezone: "system"  date-format: "dd.MM.yyyy HH:mm"  debug: false

server-name wird auf jedem Angebot gespeichert, damit du siehst, woher es stammt — halte ihn pro Server eindeutig. follow-client-locale gibt Spielern die Sprache ihres Minecraft-Clients, sofern eine passende lang/-Datei existiert; /ah lang schlägt beides.

economy

YAML
economy:  provider: VAULT  currency-format: "%amount%$"  thousands-separator: "."  decimal-separator: ","  number-pattern: "#,##0.##"  compact-numbers: true  compact-threshold: 1000000

VAULT ist der einzige mitgelieferte Provider. EconomyProvider ist öffentliche API, CoinsEngine, PlayerPoints oder eine Item-Währung lassen sich also anbinden.

compact-numbers kürzt große Zahlen an engen Stellen im GUI (1,2M statt 1.234.567,00). Bestätigungsdialoge zeigen immer den exakten Betrag — niemand sollte je einem gerundeten Preis zustimmen.

auction

YAML
auction:  durations: [ 6, 12, 24, 48, 72 ]  default-duration-hours: 24  listing-limits:    default: 5  price-bounds:    minimum: 1.0    maximum: 1000000000.0    max-multiple-of-median: 0  listing-fee:    percent: 1.0    flat: 0.0    minimum: 0.0    maximum: 10000.0  sales-tax-percent: 5.0  tax-destination: NOTHING  tax-account: ""  cancel-fee-percent: 0.0  list-cooldown-seconds: 3
SchlüsselStandardHinweise
durations6–72 hAuswahl im Verkaufsmenü, gesteuert über gavel.duration.<Stunden>.
listing-limits.default5Fallback, wenn ein Spieler kein gavel.limit.<n> hat.
price-bounds.max-multiple-of-median0Weist Angebote ab, die absurd weit über dem Marktmedian liegen — ein harter Stopp gegen Geldwäsche über Unsinnsangebote. 0 deaktiviert.
listing-fee1 %Wird beim Einstellen fällig und nie erstattet. Bremst Spam-Angebote.
sales-tax-percent5.0Wird vom Erlös des Verkäufers abgezogen. Überschreibbar mit gavel.tax.<prozent>.
tax-destinationNOTHINGNOTHING nimmt das Geld aus der Wirtschaft (Senke). ACCOUNT zahlt an tax-account.
cancel-fee-percent0.0Kosten für das Stornieren eines aktiven Angebots.
list-cooldown-seconds3Verhindert Spam-Listing im Sekundentakt.

Die Blacklist

YAML
auction:  allow-shulker-boxes: true  allow-written-books: true  allow-damaged-items: true  blacklist:    materials:      - "BEDROCK"      - "COMMAND_BLOCK"      - "BARRIER"      - "DEBUG_STICK"    name-contains: [ ]    max-enchant-levels:      "*": 10      "minecraft:sharpness": 5      "minecraft:protection": 4    reject-suspicious-attributes: true

max-enchant-levels ist der klassische 32k-Schwert-Filter — "*" setzt die Obergrenze für alles, was nicht einzeln aufgeführt ist. reject-suspicious-attributes weist Items mit Attribut-Modifikatoren jenseits der Vanilla-Werte ab.

name-contains prüft Anzeigenamen und Lore ohne Groß-/Kleinschreibung — nützlich gegen umbenannte Dupe-Marker, die du bereits identifiziert hast.

bidding

YAML
bidding:  enabled: true  min-increment-percent: 5.0  min-increment-flat: 1.0  anti-snipe:    enabled: true    trigger-window-seconds: 15    extend-seconds: 15    max-extensions: 20  proxy-bidding: true  refund-on-outbid: true  broadcast-above: 100000

Die Mindesterhöhung ist der größere der beiden Werte. Anti-Snipe verschiebt das Ende, wenn in den letzten 15 Sekunden geboten wird — begrenzt auf 20 Verlängerungen, damit eine Auktion nicht ewig läuft.

refund-on-outbid anlassen

Ausgeschaltet wird nichts hinterlegt und erst am Ende abgerechnet — das Gewinngebot kann dann scheitern, weil das Geld weg ist. Siehe Auktionen & Angebote.

offers

YAML
offers:  enabled: true  min-percent-of-price: 40.0  expire-hours: 24  max-open-per-player: 5  escrow: true

Käufer schlagen auf ein Sofortkauf-Angebot einen Preis vor. min-percent-of-price verhindert Lowball-Spam; 40 % sind eine vernünftige Untergrenze. Das Geld wird treuhänderisch gehalten, solange das Angebot offen ist.

YAML
featured:  enabled: true  cost-flat: 5000.0  cost-percent-of-price: 0.0  duration-hours: 6  max-concurrent: 10  highlight: true

Bezahlte Hervorhebung. Wichtig ist max-concurrent — ohne Deckel besteht die erste Seite irgendwann nur noch aus hervorgehobenen Angeboten, und die Hervorhebung lohnt sich nicht mehr.

mailbox

YAML
mailbox:  purge-after-days: 0  notify-on-join: true

Items aus abgelaufenen, stornierten und gewonnenen Angeboten landen hier. 0 heißt: nie aufräumen — und das ist die empfohlene Einstellung. Das Postfach ist die Garantie gegen Item-Verlust; ein automatisches Aufräumen macht daraus eine Frist.

watchlist

YAML
watchlist:  enabled: true  max-per-player: 5  check-interval-seconds: 30  notify-once-per-listing: true  actionbar: true

Alarme feuern außerdem sofort, wenn ein passendes Angebot auf diesem Server entsteht; das Intervall ist der Durchlauf, der Angebote von anderen Servern im Netzwerk mitbekommt.

notifications und discord

YAML
notifications:  sale-message: true  deliver-on-join: true  broadcast-listings-above: 0 discord:  enabled: false  webhook-url: ""  post:    rare-listings: true    grand-auction: true    integrity-flags: false  rare-listing-threshold: 250000.0  username: "Gavel"  weekly-report:    enabled: false    day: "MONDAY"    hour: 12

Integritäts-Markierungen in einen privaten Kanal

Wenn du post.integrity-flags aktivierst, nimm einen team-internen Webhook. Die Markierungen nennen Accounts, und eine öffentliche Anschuldigung auf Basis einer automatischen Heuristik sieht schlecht aus.

performance

YAML
performance:  listing-cache-seconds: 30  price-cache-seconds: 120  expiry-check-seconds: 20

Browse-Seiten kommen aus einem Cache, der bei jedem Schreibvorgang invalidiert wird — lokal und, mit aktivem sync, netzwerkweit. listing-cache-seconds ist die Obergrenze dafür, wie veraltet eine Seite werden kann, falls eine Invalidierung verloren geht — nicht das normale Aktualisierungsintervall.

Der Rest