Change listing expiration
Czas życia oferty (listing-expiry-days) i timer czyszczenia co 30 minut.
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
settings:
listing-expiry-days: 7ConfigManager.listingExpiryDays ← getInt("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:
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:
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ć
listing-expiry-days: 3(krótszy rynek) albo14./market reload.- W GUI lore pokazuje
messages.gui.lore.expires({time}).
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.