GrzybcioRynek

Java MarketAPI

Wszystkie metody MarketAPI 1.0.3, wyjątki i ograniczenie głównego wątku.

Kompatybilne z: GrzybcioRynek 1.0.3Minecraft 26.2Web 0.1.0

Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.

Klasa: com.example.marketplace.api.MarketAPI (final, konstruktor prywatny). Komentarz w kodzie: wszystkie metody należy wołać z głównego wątku Bukkit.

Cykl życia

java
public static void init(MarketPlace marketPlace)  // woła plugin, nie wołaj z zewnątrz
public static boolean isReady()                   // plugin != null && plugin.isEnabled()

Odczyt

MetodaZwracaŹródło
getListings()List<MarketListing>kopia aktywnych ofert
getListing(int id)MarketListing albo nullpo ID
getListingsBySeller(UUID)List<MarketListing>oferty sprzedawcy
search(String query)List<MarketListing>BrowseContext ALL + fraza + SortMode.NEWEST
getCompletedTransactions()List<MarketTransaction>tylko stan COMPLETED
getTransaction(String id)MarketTransaction albo nullUUID-string TX
getActiveListingsCount()intliczba aktywnych ofert
getMarketVolume()doublesuma price zakończonych TX
getCategories()MarketCategory[]MarketCategory.values()bez ensure()

search używa ItemSearchUtil (material, ładna nazwa, display, lore, nexo/oraxen ID, nick sprzedawcy, #id).

Mutacje (główny wątek)

java
public static boolean removeListing(int id, Player actor)
public static boolean sellItem(Player player, ItemStack item, double price)

removeListing — właściciel albo gracz z market.admin (check w MarketManager). sellItem wymaga itemu w głównej ręce podobnego do przekazanego stacka; stosuje limity, cooldown, prowizję wystawienia.

Nie ma buyItem w API.

Wyjątki

text
IllegalStateException: GrzybcioRynek API nie jest gotowe
IllegalStateException: MarketAPI mutacje muszą być wywoływane z głównego wątku serwera

Pierwszy: każda metoda poza isReady() i getCategories(). Drugi: tylko mutacje.

Przykład

Example
java
if (!MarketAPI.isReady()) {
    return;
}
List<MarketListing> diamond = MarketAPI.search("diamond");
double volume = MarketAPI.getMarketVolume();
int active = MarketAPI.getActiveListingsCount();

Eventy Bukkit: Eventy API.