mirror of
https://github.com/kiranhart/Auction-House.git
synced 2025-02-27 21:31:33 +01:00
infinite items
This commit is contained in:
parent
d8ca93368c
commit
6ffa4f46a5
@ -183,7 +183,8 @@ public class AuctionHouse extends TweetyPlugin {
|
|||||||
new _6_BigIntMigration(),
|
new _6_BigIntMigration(),
|
||||||
new _7_TransactionBigIntMigration(),
|
new _7_TransactionBigIntMigration(),
|
||||||
new _8_ItemPerWorldMigration(),
|
new _8_ItemPerWorldMigration(),
|
||||||
new _9_StatsMigration()
|
new _9_StatsMigration(),
|
||||||
|
new _10_InfiniteItemsMigration()
|
||||||
);
|
);
|
||||||
|
|
||||||
dataMigrationManager.runMigrations();
|
dataMigrationManager.runMigrations();
|
||||||
|
@ -605,25 +605,25 @@ public class AuctionAPI {
|
|||||||
return NBTEditor.contains(item, "AuctionHouseRepaired");
|
return NBTEditor.contains(item, "AuctionHouseRepaired");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void listAuction(Player seller, AuctionedItem item, boolean bundle, boolean requiresHandRemove) {
|
public void listAuction(Player seller, ItemStack original, ItemStack item, int seconds, double basePrice, double bidStartPrice, double bidIncPrice, double currentPrice, boolean isBiddingItem, boolean isUsingBundle, boolean requiresHandRemove) {
|
||||||
listAuction(seller, item.getItem(), item.getItem(), (int) ((item.getExpiresAt() - System.currentTimeMillis()) / 1000), item.getBasePrice(), item.getBidStartingPrice(), item.getBidIncrementPrice(), item.getCurrentPrice(), item.isBidItem(), bundle, requiresHandRemove);
|
listAuction(seller, original, item, seconds, basePrice, bidStartPrice, bidIncPrice, currentPrice, isBiddingItem, isUsingBundle, requiresHandRemove, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to insert an auction into the database
|
* Used to insert an auction into the database
|
||||||
*
|
*
|
||||||
* @param seller Is the player who is listing the item
|
* @param seller Is the player who is listing the item
|
||||||
* @param item Is the item stack being listed to the auction house
|
* @param item Is the item stack being listed to the auction house
|
||||||
* @param original Is the original item stack (only applies if using a bundle)
|
* @param original Is the original item stack (only applies if using a bundle)
|
||||||
* @param seconds Is the total amount of seconds the item will be active for
|
* @param seconds Is the total amount of seconds the item will be active for
|
||||||
* @param basePrice Is the buy now price
|
* @param basePrice Is the buy now price
|
||||||
* @param bidStartPrice Is the price the bidding will start at if the item is an auction
|
* @param bidStartPrice Is the price the bidding will start at if the item is an auction
|
||||||
* @param bidIncPrice Is the default price increment for an auction
|
* @param bidIncPrice Is the default price increment for an auction
|
||||||
* @param currentPrice Is the current/start price of an item
|
* @param currentPrice Is the current/start price of an item
|
||||||
* @param isBiddingItem States whether the item is an auction or bin item
|
* @param isBiddingItem States whether the item is an auction or bin item
|
||||||
* @param isUsingBundle States whether the item is a bundled item
|
* @param isUsingBundle States whether the item is a bundled item
|
||||||
*/
|
*/
|
||||||
public void listAuction(Player seller, ItemStack original, ItemStack item, int seconds, double basePrice, double bidStartPrice, double bidIncPrice, double currentPrice, boolean isBiddingItem, boolean isUsingBundle, boolean requiresHandRemove) {
|
public void listAuction(Player seller, ItemStack original, ItemStack item, int seconds, double basePrice, double bidStartPrice, double bidIncPrice, double currentPrice, boolean isBiddingItem, boolean isUsingBundle, boolean requiresHandRemove, boolean isInfinite) {
|
||||||
if (McMMOHook.isUsingAbility(seller)) {
|
if (McMMOHook.isUsingAbility(seller)) {
|
||||||
AuctionHouse.getInstance().getLocale().getMessage("general.mcmmo_ability_active").sendPrefixedMessage(seller);
|
AuctionHouse.getInstance().getLocale().getMessage("general.mcmmo_ability_active").sendPrefixedMessage(seller);
|
||||||
return;
|
return;
|
||||||
@ -655,6 +655,7 @@ public class AuctionAPI {
|
|||||||
auctionedItem.setBidIncrementPrice(bidIncPrice);
|
auctionedItem.setBidIncrementPrice(bidIncPrice);
|
||||||
auctionedItem.setCurrentPrice(currentPrice);
|
auctionedItem.setCurrentPrice(currentPrice);
|
||||||
auctionedItem.setListedWorld(seller.getWorld().getName());
|
auctionedItem.setListedWorld(seller.getWorld().getName());
|
||||||
|
auctionedItem.setInfinite(isInfinite);
|
||||||
|
|
||||||
if (Settings.TAX_ENABLED.getBoolean() && Settings.TAX_CHARGE_LISTING_FEE.getBoolean()) {
|
if (Settings.TAX_ENABLED.getBoolean() && Settings.TAX_CHARGE_LISTING_FEE.getBoolean()) {
|
||||||
if (!EconomyManager.hasBalance(seller, Settings.TAX_LISTING_FEE.getDouble())) {
|
if (!EconomyManager.hasBalance(seller, Settings.TAX_LISTING_FEE.getDouble())) {
|
||||||
|
@ -48,6 +48,7 @@ public class AuctionedItem {
|
|||||||
private long expiresAt;
|
private long expiresAt;
|
||||||
|
|
||||||
private String listedWorld = null;
|
private String listedWorld = null;
|
||||||
|
private boolean infinite = false;
|
||||||
|
|
||||||
public AuctionedItem() {
|
public AuctionedItem() {
|
||||||
}
|
}
|
||||||
@ -94,13 +95,17 @@ public class AuctionedItem {
|
|||||||
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_CURRENT_PRICE.getStringList().stream().map(s -> s.replace("%currentprice%", Settings.USE_SHORT_NUMBERS_ON_ITEMS.getBoolean() ? AuctionAPI.getInstance().getFriendlyNumber(this.currentPrice) : AuctionAPI.getInstance().formatNumber(this.currentPrice))).collect(Collectors.toList())));
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_CURRENT_PRICE.getStringList().stream().map(s -> s.replace("%currentprice%", Settings.USE_SHORT_NUMBERS_ON_ITEMS.getBoolean() ? AuctionAPI.getInstance().getFriendlyNumber(this.currentPrice) : AuctionAPI.getInstance().formatNumber(this.currentPrice))).collect(Collectors.toList())));
|
||||||
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_HIGHEST_BIDDER.getStringList().stream().map(s -> s.replace("%highestbidder%", this.highestBidder.equals(this.owner) ? AuctionHouse.getInstance().getLocale().getMessage("auction.nobids").getMessage() : this.highestBidderName)).collect(Collectors.toList())));
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_HIGHEST_BIDDER.getStringList().stream().map(s -> s.replace("%highestbidder%", this.highestBidder.equals(this.owner) ? AuctionHouse.getInstance().getLocale().getMessage("auction.nobids").getMessage() : this.highestBidderName)).collect(Collectors.toList())));
|
||||||
|
|
||||||
long[] times = AuctionAPI.getInstance().getRemainingTimeValues((this.expiresAt - System.currentTimeMillis()) / 1000);
|
if (this.infinite) {
|
||||||
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_TIME_LEFT.getStringList().stream().map(s -> s
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_INFINITE.getStringList()));
|
||||||
.replace("%remaining_days%", String.valueOf(times[0]))
|
} else {
|
||||||
.replace("%remaining_hours%", String.valueOf(times[1]))
|
long[] times = AuctionAPI.getInstance().getRemainingTimeValues((this.expiresAt - System.currentTimeMillis()) / 1000);
|
||||||
.replace("%remaining_minutes%", String.valueOf(times[2]))
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_TIME_LEFT.getStringList().stream().map(s -> s
|
||||||
.replace("%remaining_seconds%", String.valueOf(times[3]))
|
.replace("%remaining_days%", String.valueOf(times[0]))
|
||||||
).collect(Collectors.toList())));
|
.replace("%remaining_hours%", String.valueOf(times[1]))
|
||||||
|
.replace("%remaining_minutes%", String.valueOf(times[2]))
|
||||||
|
.replace("%remaining_seconds%", String.valueOf(times[3]))
|
||||||
|
).collect(Collectors.toList())));
|
||||||
|
}
|
||||||
|
|
||||||
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_PURCHASE_CONTROL_FOOTER.getStringList()));
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_PURCHASE_CONTROL_FOOTER.getStringList()));
|
||||||
|
|
||||||
@ -130,13 +135,17 @@ public class AuctionedItem {
|
|||||||
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_HIGHEST_BIDDER.getStringList().stream().map(s -> s.replace("%highestbidder%", this.highestBidder.equals(this.owner) ? AuctionHouse.getInstance().getLocale().getMessage("auction.nobids").getMessage() : this.highestBidderName)).collect(Collectors.toList())));
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_HIGHEST_BIDDER.getStringList().stream().map(s -> s.replace("%highestbidder%", this.highestBidder.equals(this.owner) ? AuctionHouse.getInstance().getLocale().getMessage("auction.nobids").getMessage() : this.highestBidderName)).collect(Collectors.toList())));
|
||||||
}
|
}
|
||||||
|
|
||||||
long[] times = AuctionAPI.getInstance().getRemainingTimeValues((this.expiresAt - System.currentTimeMillis()) / 1000);
|
if (this.infinite) {
|
||||||
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_TIME_LEFT.getStringList().stream().map(s -> s
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_INFINITE.getStringList()));
|
||||||
.replace("%remaining_days%", String.valueOf(times[0]))
|
} else {
|
||||||
.replace("%remaining_hours%", String.valueOf(times[1]))
|
long[] times = AuctionAPI.getInstance().getRemainingTimeValues((this.expiresAt - System.currentTimeMillis()) / 1000);
|
||||||
.replace("%remaining_minutes%", String.valueOf(times[2]))
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_DETAILS_TIME_LEFT.getStringList().stream().map(s -> s
|
||||||
.replace("%remaining_seconds%", String.valueOf(times[3]))
|
.replace("%remaining_days%", String.valueOf(times[0]))
|
||||||
).collect(Collectors.toList())));
|
.replace("%remaining_hours%", String.valueOf(times[1]))
|
||||||
|
.replace("%remaining_minutes%", String.valueOf(times[2]))
|
||||||
|
.replace("%remaining_seconds%", String.valueOf(times[3]))
|
||||||
|
).collect(Collectors.toList())));
|
||||||
|
}
|
||||||
|
|
||||||
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_PURCHASE_CONTROL_HEADER.getStringList()));
|
lore.addAll(TextUtils.formatText(Settings.AUCTION_STACK_PURCHASE_CONTROL_HEADER.getStringList()));
|
||||||
|
|
||||||
|
@ -132,6 +132,7 @@ public final class CommandSell extends AbstractCommand {
|
|||||||
Double startingBid = null;
|
Double startingBid = null;
|
||||||
Double bidIncrement = null;
|
Double bidIncrement = null;
|
||||||
boolean isBundle = false;
|
boolean isBundle = false;
|
||||||
|
boolean isInfinite = false;
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < args.length; i++) {
|
for (int i = 0; i < args.length; i++) {
|
||||||
@ -147,6 +148,9 @@ public final class CommandSell extends AbstractCommand {
|
|||||||
if (args[i].equalsIgnoreCase("-b") || args[i].equalsIgnoreCase("-bundle"))
|
if (args[i].equalsIgnoreCase("-b") || args[i].equalsIgnoreCase("-bundle"))
|
||||||
isBundle = true;
|
isBundle = true;
|
||||||
|
|
||||||
|
if ((args[i].equalsIgnoreCase("-i") || args[i].equalsIgnoreCase("-infinite")) && (player.hasPermission("auctionhouse.admin") || player.isOp()))
|
||||||
|
isInfinite = true;
|
||||||
|
|
||||||
if (args[i].toLowerCase().startsWith("-t") && Settings.ALLOW_PLAYERS_TO_DEFINE_AUCTION_TIME.getBoolean()) {
|
if (args[i].toLowerCase().startsWith("-t") && Settings.ALLOW_PLAYERS_TO_DEFINE_AUCTION_TIME.getBoolean()) {
|
||||||
if (i + 2 < args.length) {
|
if (i + 2 < args.length) {
|
||||||
int customTime = (int) AuctionAPI.toTicks(args[i + 1] + " " + args[i + 2]);
|
int customTime = (int) AuctionAPI.toTicks(args[i + 1] + " " + args[i + 2]);
|
||||||
@ -250,7 +254,8 @@ public final class CommandSell extends AbstractCommand {
|
|||||||
/* bid inc price */ isBiddingItem ? bidIncrement != null ? bidIncrement : Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble() : 0,
|
/* bid inc price */ isBiddingItem ? bidIncrement != null ? bidIncrement : Settings.MIN_AUCTION_INCREMENT_PRICE.getDouble() : 0,
|
||||||
isBiddingItem,
|
isBiddingItem,
|
||||||
isBundle,
|
isBundle,
|
||||||
true
|
true,
|
||||||
|
isInfinite
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
AuctionAPI.getInstance().listAuction(
|
AuctionAPI.getInstance().listAuction(
|
||||||
@ -264,7 +269,8 @@ public final class CommandSell extends AbstractCommand {
|
|||||||
/* current price */ isBiddingItem ? startingBid : buyNowPrice <= -1 ? startingBid : buyNowPrice,
|
/* current price */ isBiddingItem ? startingBid : buyNowPrice <= -1 ? startingBid : buyNowPrice,
|
||||||
isBiddingItem || !buyNowAllow,
|
isBiddingItem || !buyNowAllow,
|
||||||
isBundle,
|
isBundle,
|
||||||
true
|
true,
|
||||||
|
isInfinite
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,10 +14,7 @@ import org.bukkit.plugin.Plugin;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.*;
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Statement;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
@ -246,7 +243,7 @@ public class DataManager extends DataManagerAbstract {
|
|||||||
|
|
||||||
public void insertAuction(AuctionedItem item, Callback<AuctionedItem> callback) {
|
public void insertAuction(AuctionedItem item, Callback<AuctionedItem> callback) {
|
||||||
this.databaseConnector.connect(connection -> {
|
this.databaseConnector.connect(connection -> {
|
||||||
try (PreparedStatement statement = connection.prepareStatement("INSERT INTO " + this.getTablePrefix() + "auctions(id, owner, highest_bidder, owner_name, highest_bidder_name, category, base_price, bid_start_price, bid_increment_price, current_price, expired, expires_at, item_material, item_name, item_lore, item_enchants, item, listed_world) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
|
try (PreparedStatement statement = connection.prepareStatement("INSERT INTO " + this.getTablePrefix() + "auctions(id, owner, highest_bidder, owner_name, highest_bidder_name, category, base_price, bid_start_price, bid_increment_price, current_price, expired, expires_at, item_material, item_name, item_lore, item_enchants, item, listed_world, infinite) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
|
||||||
PreparedStatement fetch = connection.prepareStatement("SELECT * FROM " + this.getTablePrefix() + "auctions WHERE id = ?");
|
PreparedStatement fetch = connection.prepareStatement("SELECT * FROM " + this.getTablePrefix() + "auctions WHERE id = ?");
|
||||||
|
|
||||||
fetch.setString(1, item.getId().toString());
|
fetch.setString(1, item.getId().toString());
|
||||||
@ -268,6 +265,7 @@ public class DataManager extends DataManagerAbstract {
|
|||||||
statement.setString(16, AuctionAPI.getInstance().serializeLines(AuctionAPI.getInstance().getItemEnchantments(item.getItem())));
|
statement.setString(16, AuctionAPI.getInstance().serializeLines(AuctionAPI.getInstance().getItemEnchantments(item.getItem())));
|
||||||
statement.setString(17, AuctionAPI.encodeItem(item.getItem()));
|
statement.setString(17, AuctionAPI.encodeItem(item.getItem()));
|
||||||
statement.setString(18, item.getListedWorld());
|
statement.setString(18, item.getListedWorld());
|
||||||
|
statement.setBoolean(19, item.isInfinite());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
|
||||||
if (callback != null) {
|
if (callback != null) {
|
||||||
@ -491,7 +489,7 @@ public class DataManager extends DataManagerAbstract {
|
|||||||
);
|
);
|
||||||
|
|
||||||
auctionItem.setListedWorld(resultSet.getString("listed_world"));
|
auctionItem.setListedWorld(resultSet.getString("listed_world"));
|
||||||
|
auctionItem.setInfinite(hasColumn(resultSet, "infinite") && resultSet.getBoolean("infinite"));
|
||||||
return auctionItem;
|
return auctionItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -524,4 +522,15 @@ public class DataManager extends DataManagerAbstract {
|
|||||||
AuctionAPI.getInstance().logException(this.plugin, ex, "SQLite");
|
AuctionAPI.getInstance().logException(this.plugin, ex, "SQLite");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean hasColumn(ResultSet rs, String columnName) throws SQLException {
|
||||||
|
ResultSetMetaData rsmd = rs.getMetaData();
|
||||||
|
int columns = rsmd.getColumnCount();
|
||||||
|
for (int x = 1; x <= columns; x++) {
|
||||||
|
if (columnName.equals(rsmd.getColumnName(x))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package ca.tweetzy.auctionhouse.database.migrations;
|
||||||
|
|
||||||
|
import ca.tweetzy.core.database.DataMigration;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The current file has been created by Kiran Hart
|
||||||
|
* Date Created: August 24 2021
|
||||||
|
* Time Created: 4:04 p.m.
|
||||||
|
* Usage of any code found within this class is prohibited unless given explicit permission otherwise
|
||||||
|
*/
|
||||||
|
public final class _10_InfiniteItemsMigration extends DataMigration {
|
||||||
|
|
||||||
|
public _10_InfiniteItemsMigration() {
|
||||||
|
super(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void migrate(Connection connection, String tablePrefix) throws SQLException {
|
||||||
|
try (Statement statement = connection.createStatement()) {
|
||||||
|
statement.execute("ALTER TABLE " + tablePrefix + "auctions ADD infinite BOOLEAN NULL");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -136,6 +136,8 @@ public class GUIAuctionHouse extends Gui {
|
|||||||
this.items = this.items.stream().sorted(Comparator.comparingLong(AuctionedItem::getExpiresAt).reversed()).collect(Collectors.toList());
|
this.items = this.items.stream().sorted(Comparator.comparingLong(AuctionedItem::getExpiresAt).reversed()).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.items = this.items.stream().sorted(Comparator.comparing(AuctionedItem::isInfinite).reversed()).collect(Collectors.toList());
|
||||||
|
|
||||||
return this.items.stream().skip((page - 1) * 45L).limit(45L).collect(Collectors.toList());
|
return this.items.stream().skip((page - 1) * 45L).limit(45L).collect(Collectors.toList());
|
||||||
}).asyncLast((data) -> {
|
}).asyncLast((data) -> {
|
||||||
pages = (int) Math.max(1, Math.ceil(this.items.size() / (double) 45L));
|
pages = (int) Math.max(1, Math.ceil(this.items.size() / (double) 45L));
|
||||||
|
@ -29,9 +29,10 @@ public class GUIConfirmListing extends Gui {
|
|||||||
private final boolean isBiddingItem;
|
private final boolean isBiddingItem;
|
||||||
private final boolean isBundle;
|
private final boolean isBundle;
|
||||||
private final boolean requiresHandRemove;
|
private final boolean requiresHandRemove;
|
||||||
|
private final boolean isInfinite;
|
||||||
|
|
||||||
|
|
||||||
public GUIConfirmListing(Player player, ItemStack originalItem, ItemStack itemToSell, int allowedTime, double basePrice, double startingBid, double bidIncrement, boolean isBiddingItem, boolean bundle, boolean requiresHandRemove) {
|
public GUIConfirmListing(Player player, ItemStack originalItem, ItemStack itemToSell, int allowedTime, double basePrice, double startingBid, double bidIncrement, boolean isBiddingItem, boolean bundle, boolean requiresHandRemove, boolean isInfinite) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.originalItem = originalItem;
|
this.originalItem = originalItem;
|
||||||
this.itemToSell = itemToSell;
|
this.itemToSell = itemToSell;
|
||||||
@ -42,7 +43,7 @@ public class GUIConfirmListing extends Gui {
|
|||||||
this.isBiddingItem = isBiddingItem;
|
this.isBiddingItem = isBiddingItem;
|
||||||
this.isBundle = bundle;
|
this.isBundle = bundle;
|
||||||
this.requiresHandRemove = requiresHandRemove;
|
this.requiresHandRemove = requiresHandRemove;
|
||||||
|
this.isInfinite = isInfinite;
|
||||||
|
|
||||||
setTitle(TextUtils.formatText(Settings.GUI_CONFIRM_LISTING_TITLE.getString()));
|
setTitle(TextUtils.formatText(Settings.GUI_CONFIRM_LISTING_TITLE.getString()));
|
||||||
setAcceptsItems(false);
|
setAcceptsItems(false);
|
||||||
@ -75,7 +76,8 @@ public class GUIConfirmListing extends Gui {
|
|||||||
/* current price */ this.isBiddingItem ? this.startingBid : this.basePrice <= -1 ? this.startingBid : this.basePrice,
|
/* current price */ this.isBiddingItem ? this.startingBid : this.basePrice <= -1 ? this.startingBid : this.basePrice,
|
||||||
this.isBiddingItem,
|
this.isBiddingItem,
|
||||||
this.isBundle,
|
this.isBundle,
|
||||||
this.requiresHandRemove
|
this.requiresHandRemove,
|
||||||
|
this.isInfinite
|
||||||
);
|
);
|
||||||
e.gui.close();
|
e.gui.close();
|
||||||
});
|
});
|
||||||
|
@ -138,13 +138,18 @@ public class GUIConfirmPurchase extends Gui {
|
|||||||
|
|
||||||
if (item.getAmount() - this.purchaseQuantity >= 1) {
|
if (item.getAmount() - this.purchaseQuantity >= 1) {
|
||||||
item.setAmount(item.getAmount() - this.purchaseQuantity);
|
item.setAmount(item.getAmount() - this.purchaseQuantity);
|
||||||
located.setItem(item);
|
|
||||||
located.setBasePrice(located.getBasePrice() - buyNowPrice);
|
if (!located.isInfinite()) {
|
||||||
|
located.setItem(item);
|
||||||
|
located.setBasePrice(located.getBasePrice() - buyNowPrice);
|
||||||
|
}
|
||||||
|
|
||||||
item.setAmount(this.purchaseQuantity);
|
item.setAmount(this.purchaseQuantity);
|
||||||
transferFunds(e.player, buyNowPrice);
|
transferFunds(e.player, buyNowPrice);
|
||||||
} else {
|
} else {
|
||||||
transferFunds(e.player, buyNowPrice);
|
transferFunds(e.player, buyNowPrice);
|
||||||
AuctionHouse.getInstance().getAuctionItemManager().sendToGarbage(located);
|
if (!located.isInfinite())
|
||||||
|
AuctionHouse.getInstance().getAuctionItemManager().sendToGarbage(located);
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerUtils.giveItem(e.player, item);
|
PlayerUtils.giveItem(e.player, item);
|
||||||
@ -152,7 +157,9 @@ public class GUIConfirmPurchase extends Gui {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
transferFunds(e.player, buyNowPrice);
|
transferFunds(e.player, buyNowPrice);
|
||||||
AuctionHouse.getInstance().getAuctionItemManager().sendToGarbage(located);
|
if (!located.isInfinite())
|
||||||
|
AuctionHouse.getInstance().getAuctionItemManager().sendToGarbage(located);
|
||||||
|
|
||||||
PlayerUtils.giveItem(e.player, located.getItem());
|
PlayerUtils.giveItem(e.player, located.getItem());
|
||||||
sendMessages(e, located, false, 0);
|
sendMessages(e, located, false, 0);
|
||||||
}
|
}
|
||||||
|
@ -874,6 +874,12 @@ public class Settings {
|
|||||||
"&eTime Left: &b%remaining_days%&fd &b%remaining_hours%&fh &b%remaining_minutes%&fm &b%remaining_seconds%s"
|
"&eTime Left: &b%remaining_days%&fd &b%remaining_hours%&fh &b%remaining_minutes%&fm &b%remaining_seconds%s"
|
||||||
));
|
));
|
||||||
|
|
||||||
|
public static final ConfigSetting AUCTION_STACK_DETAILS_INFINITE = new ConfigSetting(config, "auction stack.infinite lines", Arrays.asList(
|
||||||
|
"",
|
||||||
|
"&eTime Left: &bNo Expiration"
|
||||||
|
), "this will be used instead of the time left if the item is infinite");
|
||||||
|
|
||||||
|
|
||||||
public static final ConfigSetting AUCTION_STACK_PURCHASE_CONTROL_HEADER = new ConfigSetting(config, "auction stack.controls.header", Collections.singletonList("&7&m-------------------------"));
|
public static final ConfigSetting AUCTION_STACK_PURCHASE_CONTROL_HEADER = new ConfigSetting(config, "auction stack.controls.header", Collections.singletonList("&7&m-------------------------"));
|
||||||
public static final ConfigSetting AUCTION_STACK_PURCHASE_CONTROL_FOOTER = new ConfigSetting(config, "auction stack.controls.footer", Collections.singletonList("&7&m-------------------------"));
|
public static final ConfigSetting AUCTION_STACK_PURCHASE_CONTROL_FOOTER = new ConfigSetting(config, "auction stack.controls.footer", Collections.singletonList("&7&m-------------------------"));
|
||||||
public static final ConfigSetting AUCTION_STACK_PURCHASE_CONTROLS_INSPECTION = new ConfigSetting(config, "auction stack.controls.inspection", Collections.singletonList("&eShift Right-Click to inspect"), "This will only be added to the control lore if the item can be inspected (skulker box/bundled item)");
|
public static final ConfigSetting AUCTION_STACK_PURCHASE_CONTROLS_INSPECTION = new ConfigSetting(config, "auction stack.controls.inspection", Collections.singletonList("&eShift Right-Click to inspect"), "This will only be added to the control lore if the item can be inspected (skulker box/bundled item)");
|
||||||
|
@ -59,6 +59,8 @@ public class TickAuctionsTask extends BukkitRunnable {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (auctionItem.isInfinite()) continue;
|
||||||
|
|
||||||
long timeRemaining = (auctionItem.getExpiresAt() - System.currentTimeMillis()) / 1000;
|
long timeRemaining = (auctionItem.getExpiresAt() - System.currentTimeMillis()) / 1000;
|
||||||
|
|
||||||
if (!auctionItem.isExpired()) {
|
if (!auctionItem.isExpired()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user