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
| Metoda | Zwraca | Źródło |
|---|---|---|
getListings() | List<MarketListing> | kopia aktywnych ofert |
getListing(int id) | MarketListing albo null | po 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 null | UUID-string TX |
getActiveListingsCount() | int | liczba aktywnych ofert |
getMarketVolume() | double | suma 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 serweraPierwszy: 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.