GrzybcioRynek

Anti-Abuse

Cooldown wystawiania, limit zakupów od tego samego gracza i max wartość transakcji.

Kompatybilne z: GrzybcioRynek 1.0.3Minecraft 26.2Web 0.1.0

Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.

Klasa: AntiAbuseManager. Liczniki w pamięci — restart Paper zeruje cooldown i pary zakupów.

yaml
anti-abuse:
  enabled: true
  max-purchases-from-same-player: 20
  purchase-window-seconds: 86400
  max-transaction-value: 10000000
  listing-cooldown-seconds: 5

enabled

falsegetListingCooldownRemaining zawsze 0, canPurchase zawsze true. Pozostałe liczby są ignorowane.

Cooldown wystawiania

Po udanym sellItem: markListed(uuid). Kolejne wystawienie przed upływem listing-cooldown-secondsanti-abuse.cooldown ({seconds}). Zaokrąglenie w górę do pełnych sekund.

Max wartość przy zakupie

Jeśli listing.price > max-transaction-valueanti-abuse.max-value ({max}), zakup pada przed rezerwacją pieniędzy.

To nie blokuje wystawienia — wystawienie tnie tylko settings.max-price.

Zakupy od tego samego sprzedawcy

Klucz: buyerUUID + ":" + sellerUUID. W oknie purchase-window-seconds liczba zakupów nie może osiągnąć max-purchases-from-same-player. Inkrement po COMPLETED (markPurchased).

Komunikat: anti-abuse.same-player ({limit}).

Okno startuje przy pierwszym zakupie pary; po wygaśnięciu licznik resetuje się na 1 przy następnym zakupie.

Czego to nie robi

  • Nie wykrywa altów (osobne UUID = osobne liczniki).
  • Nie zapisuje się do YAML.
  • Nie ogranicza /market admin.
  • Nie zastępuje settings.max-price.