GrzybcioRynek

Change listing expiration

Czas życia oferty (listing-expiry-days) i timer czyszczenia co 30 minut.

Kompatybilne z: GrzybcioRynek 1.0.3Minecraft 26.2Web 0.1.0

Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.

Oferta ma datę wystawienia i wygasa po N dniach. Domyślnie 7.

Klucz

yaml
settings:
  listing-expiry-days: 7

ConfigManager.listingExpiryDaysgetInt("settings.listing-expiry-days", 7).

Timer 30 minut

Po starcie plugin od razu woła storageManager.removeExpiredListings() i processExpiryOutbox(), potem powtarza to co 30 minut:

java
storageManager.removeExpiredListings();
storageManager.processExpiryOutbox();
Bukkit.getScheduler().runTaskTimer(this, () -> {
    storageManager.removeExpiredListings();
    storageManager.processExpiryOutbox();
}, 20L * 60 * 30, 20L * 60 * 30);

20L * 60 * 30 ticków = 30 minut. Oferta może więc wisieć do ~30 minut po przekroczeniu listing-expiry-days, zanim timer ją zbierze. Reload też wywołuje removeExpiredListings().

Co się dzieje po wygaśnięciu

Item wraca do sprzedającego (ekwipunek albo skrzynka, gdy mailbox.enabled). Komunikat:

yaml
messages:
  expiry:
    returned: "Twoja wygasła oferta &e{item} &7została zwrócona do ekwipunku."

Admin może wymusić: /market admin forceexpire <id>.

Jak zmienić

  1. listing-expiry-days: 3 (krótszy rynek) albo 14.
  2. /market reload.
  3. W GUI lore pokazuje messages.gui.lore.expires ({time}).
Note

history.retention-days: 30 to retencja historii transakcji, nie czas życia oferty. Nie myl tych kluczy.

Czego nie ma

Prawdziwych aukcji z „końcem licytacji”. Wygaśnięcie zdejmuje stałocenową ofertę z listings.yml.