Accessing & Using Data

Access data using the API.

Getting Started

You will first need to get the instance of the Fadah API.

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import info.preva1l.fadah.api.AuctionHouseAPI;

public final class FadahAPIExample extends JavaPlugin {
    private AuctionHouseAPI fadahApi;

    @Override
    public void onEnable() {
        if (Bukkit.getPluginManager().getPlugin("Fadah") != null) {
            fadahApi = AuctionHouseAPI.getInstance();
        }
    }
}

Listing Data

Now that you have an instance of the Fadah API we can now access the ListingManager class

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.Material
import org.bukkit.inventory.ItemStack
import org.bukkit.plugin.java.JavaPlugin;

import info.preva1l.fadah.api.AuctionHouseAPI;
import info.preva1l.fadah.api.managers.ListingManager;
import info.preva1l.fadah.records.listing.Listing;
import info.preva1l.fadah.records.listing.ListingBuilder;
import info.preva1l.fadah.currency.CurrencyRegistry;

import java.util.List;

public final class FadahAPIExample extends JavaPlugin {
    @Override
    public void onEnable() {
        ListingManager manager = AuctionHouseAPI.getInstance().listingManager();
        
        // Getting listings
        List<Listing> listings = manager.all();
        
        // Creating a listing
        Currency currency = CurrencyRegistry.getAll().getFirst();
        Player player = Bukkit.getPlayer("Preva1l");
        ItemStack item = player.getInventory().getItemInMainHand();
        player.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
        manager.listingBuilder(player)
                .price(4_500_000) // 4.5 Million
                .tax(3.5) // This is a percentage, so 3.5%, the default is 0%
                .currency(currency) // By default this is the same as what we have it
                .length(2 * 60 * 60 * 1000) // 2 Hours, this is also a default value
                .itemStack(item)
                .biddable(false) // this is false by default, bidding is still W.I.P.
                .toPost() // theres alot more options you can change in this section
                .postAdvert(true)
                .buildAndSubmit().thenAccept(result -> {
                    if (!result.successful()) {
                        player.sendMessage(
                            "Failed to post listing! " + result.message()
                        );
                        player.getInventory().setItemInMainHand(item);
                        return;
                    }
                    
                    player.sendMessage("Listing Posted!");
                });
    }
}

Last updated