public boolean addLot(ItemStack item) {

    AuctionableItem ai = auctionConfig.getAuctionableItemConfig(item);

    if (null == ai) return false;

    double startingPrice = (((int) (ai.getStartingPrice() * 100)) * item.getAmount()) / 100D;
    double minimumIncrement = (((int) (ai.getMinimumIncrement() * 100)) * item.getAmount()) / 100D;

    Lot lot =
        new Lot(
            item,
            false,
            startingPrice,
            null,
            null,
            -1,
            minimumIncrement,
            System.currentTimeMillis() + ai.getPreserveTimeInSeconds() * 1000,
            ai.getAuctionDurationInSeconds() * 1000);
    lots.add(lot);

    LotShowcase.updateAll();

    return true;
  }
 public boolean removeLot(Lot lot) {
   boolean success = lots.remove(lot);
   removeFromBackend(lot);
   LotShowcase.updateAll();
   LotOperationMenu.updateAll();
   return success;
 }
  public void bid(Player p, boolean anonymous, Lot lot, double priceIncrement) {

    if (hasBidBefore(p, lot)) {
      addDeposit(lot, p, priceIncrement);
    } else {
      occupyVault(p);
      addDeposit(lot, p, lot.getPrice() + priceIncrement);
    }

    if (!lot.isStarted()) {
      lot.setAuctionDurationExpire(lot.getAuctionDurationExpire() + System.currentTimeMillis());
      lot.setStarted(true);
    }

    lot.setLastBidPlayerName(
        anonymous ? localeManager.getLocalizedString("ui.anonymous") : p.getName());
    lot.setLastBidPlayerUuid(p.getUniqueId());
    lot.setLastBidPrice(priceIncrement);
    lot.setPrice(lot.getPrice() + priceIncrement);

    LotShowcase.updateAll();
    LotOperationMenu.updateAll();
  }