Custom economy

Add your economies

With the zAuctionHouse API you can create an AuctionEconomy infitiy! To do this you just need to create a class that will implement the AuctionEconomy interface. Then you just have to implement each method.

Here is an example of an economy with the level of the players:

package fr.maxlego08.zauctionhouse.economy;

import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;

import fr.maxlego08.zauctionhouse.api.economy.AuctionEconomy;

public class LevelEconomy implements AuctionEconomy {

  @Override
  public long getMoney(OfflinePlayer offlinePlayer) {
    return offlinePlayer.isOnline() ? ((Player) offlinePlayer).getLevel() : 0;
  }

  @Override
  public boolean hasMoney(OfflinePlayer offlinePlayer, long price) {
    return getMoney(offlinePlayer) >= price;
  }

  @Override
  public void depositMoney(OfflinePlayer offlinePlayer, long value) {
    if (offlinePlayer.isOnline()) {
      int level = offlinePlayer.getPlayer().getLevel();
      offlinePlayer.getPlayer().setLevel((int) (level + value));
    }
  }

  @Override
  public void withdrawMoney(OfflinePlayer offlinePlayer, long value) {
    if (offlinePlayer.isOnline()) {
       int level = offlinePlayer.getPlayer().getLevel();
       offlinePlayer.getPlayer().setLevel((int) (level - value));
    }
  }

  @Override
  public String getCurrency() {
    return "L";
  }

  @Override
  public String getFormat() {
    return "l";
  }

  @Override
  public boolean isEnable() {  
    return true;
  }

  @Override
  public String getName() {
    return "LEVEL";
  }
  
}

Then simply add your savings from the AuctionManager with the methodregisterEconomy.

Example:

EconomyManager auctionManager = getProvider(EconomyManager.class);
auctionManager.registerEconomy(new LevelEconomy());

Last updated