GrzybcioRynek

Eventy pluginu

ListingCreatedEvent, ListingRemovedEvent i TransactionCompletedEvent — nieanulowalne Bukkit eventy.

Kompatybilne z: GrzybcioRynek 1.0.3Minecraft 26.2Web 0.1.0

Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.

Trzy eventy w com.example.marketplace.api.event. Dziedziczą org.bukkit.event.Eventnie Cancellable. Nie da się zablokować wystawienia / zakupu listenerem.

Wszystkie są wołane przez Bukkit.getPluginManager().callEvent z głównego wątku (ścieżka MarketManager).

ListingCreatedEvent

Po udanym StorageManager.createListing i komunikacie sukcesu. AlertService.checkListing jest w tym samym try.

java
public MarketListing getListing();

Wyjątek w listenerze: Błąd po utworzeniu oferty (event/alert): <msg> — oferta zostaje.

ListingRemovedEvent

java
public MarketListing getListing();
public String getReason();
reasonŹródło
"removed"właściciel usunął (/market remove albo GUI)
"admin-removed"admin usunął (/market admin remove albo removeListing bez właściciela)
"force-expire"/market admin forceexpire

Naturalne wygaśnięcie (timer 30 min) nie emituje tego eventu — idzie przez expiry outbox.

TransactionCompletedEvent

Tylko po committed == true (stan COMPLETED, TX zapisany).

java
public MarketTransaction getTransaction();

Wyjątek: Błąd TransactionCompletedEvent: <msg> — zakup już doszedł.

Nie ma eventu przy FAILED / ROLLED_BACK / refundzie.

Przykład

Example
java
@EventHandler
public void onSold(TransactionCompletedEvent event) {
    MarketTransaction tx = event.getTransaction();
    getLogger().info("TX " + tx.getId() + " price=" + tx.getPrice());
}

Pełniejszy opis pól TX: Java API i MarketManager.