tapscrollWIKI

Was Gavel macht

Ein Auktionshaus, das Spielern sagt, was ein Item wirklich wert ist — und das sich nicht manipulieren lässt.

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

Gavel ist ein vollständiges Auktionshaus: Sofortkauf-Angebote, zeitgesteuerte Auktionen mit Proxy-Bidding, Preisvorschläge, ein Postfach, das nie Items frisst, und echtes Cross-Server. Was es von jedem anderen Auktions-Plugin unterscheidet, sind die zwei Systeme darunter.

Das Preisproblem

Jedes Auktions-Plugin, das einen „Preisvorschlag" anzeigt, leitet ihn aus aktiven Angeboten ab. Aktive Angebote sind Wunschpreise: Sie sind, was Optimisten haben wollen, nicht was jemand bezahlt hat. Das Ergebnis ist eine Zahl, die ewig nach oben driftet, weil sich jeder neue Verkäufer an der Fantasie des vorherigen orientiert.

Gavel zählt ausschließlich abgeschlossene Verkäufe — und macht mit dieser Stichprobe vier Dinge:

  • Zeitzerfall — ein Verkauf von heute zählt doppelt so viel wie einer von vor fünf Tagen.
  • IQR-Trimming — Werte, die mehr als 1,5 Interquartilsabstände vom Median entfernt liegen, fliegen raus.
  • Verkäufer-Deckel — kein einzelner Verkäufer darf mehr als 30 % der Stichprobe stellen.
  • Konfidenzstufen — unter 25 Datenpunkten gilt die Schätzung als mittel, unter 10 als niedrig.

Statt einer maßgeblichen Zahl gibt es dann drei: schnell (25. Perzentil), fair (Median) und geduldig (75. Perzentil), jeweils mit der Verkaufsquote für diese Preisspanne. Der Spieler bekommt also eine Antwort auf „wird sich das verkaufen?", nicht nur auf „was ist es wert?".

Warum drei Zahlen wichtig sind

Ein einzelner Preisvorschlag wird selbsterfüllend: Alle listen zu diesem Preis, also passiert jeder Verkauf zu diesem Preis, also bewegt sich der Median nie. Drei Perzentile halten die Stichprobe gestreut und den Markt lebendig.

Marktintegrität

Preisdaten sind nur so gut wie die Trades, die sie speisen. Gavel bewertet Verkäufer/Käufer-Paare auf Wash-Trading — wiederholte Trades zwischen denselben zwei Accounts, ungewöhnliches Volumen zwischen ihnen oder ein Preis vom Zehnfachen des Medians — und prüft auf geteilte IP-Adressen und Selbstkäufe über Alts.

Markierte Trades werden standardmäßig von der Preisberechnung ausgeschlossen. Ein Geldwäsche-Ring kann die Marktdaten also selbst dann nicht vergiften, wenn dir die Sache nie auffällt. Die Transaktion komplett zu blockieren ist möglich, aber standardmäßig aus: Ein Fehlalarm, der einen legitimen Handel blockiert, kostet mehr als eine protokollierte Markierung.

Was Spieler bekommen

FunktionHinweise
Sofortkauf/ah sell <Preis> [Stunden]
ZeitauktionenProxy-Bidding, Anti-Snipe-Verlängerung, sofortige Rückzahlung beim Überbieten
PreisangeboteAuf ein Sofortkauf-Angebot einen Preis vorschlagen; der Verkäufer entscheidet
MerklisteBenachrichtigung, wenn ein passendes Angebot unter deinem Preis erscheint
PostfachAbgelaufene, stornierte und gewonnene Items landen hier — nichts wird gelöscht
Preis-Check/ah price mit Verkaufsquoten und 14-Tage-Sparkline
Markt-TabTrends, Bewegungen und die aktuell günstigsten Angebote
Grand AuctionsServerweite Live-Auktion mit Bossbar-Countdown
Featured ListingsBezahlte Hervorhebung, sortiert über allem anderen

Was Betreiber bekommen

  • SQLite oder MySQL, mit echter Cross-Server-Synchronisation über Redis Pub/Sub.
  • Vault-Economy out of the box und ein öffentliches EconomyProvider-Interface für CoinsEngine, PlayerPoints oder Item-Währungen.
  • Gebühren und Steuern, wahlweise als Senke oder auf ein Zielkonto.
  • Eine Blacklist, die wirklich greift: Materialien, Namensabgleich, Verzauberungs-Obergrenzen und verdächtige Attribut-Modifikatoren — der 32k-Schwert-Filter, eingebaut.
  • Custom-Item-Support für ItemsAdder, Nexo, Oraxen, MMOItems, ExecutableItems und EcoItems.
  • Jeder Text in lang/<code>.yml, jedes Menü-Layout in gui/<name>.yml.

Item-Sicherheit

Zwei Designentscheidungen, die man kennen sollte, weil sie den Unterschied zwischen einem Auktionshaus und einem Duplikationsbug ausmachen:

  • In Menüs liegen nie echte Items. Was du im GUI siehst, ist eine gerenderte Kopie; ein Klick wird auf eine Listing-ID aufgelöst. Der Verkaufsvorgang nimmt das Item über den Inventar-Slot, nicht über einen Wertevergleich.
  • Geld bewegt sich vor der Datenzeile. Ein Kauf bucht zuerst beim Käufer ab und macht dann ein Compare-and-Set auf die Listing-Zeile. Wer das Rennen verliert, bekommt sein Geld zurück. Andersherum entstehen verkaufte Angebote, die nie bezahlt wurden.

Items werden über ItemStack#serializeAsBytes gespeichert, was durch Mojangs DataFixerUpper läuft — Angebote überstehen also die Formatwechsel, an denen andere Plugins bei 1.20.5 und 1.21.5 gescheitert sind.

Voraussetzungen

ServersoftwarePaper 1.21 oder neuer · Folia unterstützt
Java21
ErforderlichVault + ein Economy-Plugin
OptionalRedis (Cross-Server), PlaceholderAPI, Custom-Item-Plugins

Weiter: Installation.