diff --git a/pom.xml b/pom.xml index 2a8c82c..b49b893 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 ca.tweetzy auctionhouse - 2.52.1-Dev + 2.53.0 UTF-8 @@ -226,7 +226,7 @@ com.gmail.nossr50.mcMMO mcMMO - 2.1.205 + 2.1.202 provided diff --git a/src/main/java/ca/tweetzy/auctionhouse/AuctionHouse.java b/src/main/java/ca/tweetzy/auctionhouse/AuctionHouse.java index 0015a20..7e787dc 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/AuctionHouse.java +++ b/src/main/java/ca/tweetzy/auctionhouse/AuctionHouse.java @@ -184,7 +184,8 @@ public class AuctionHouse extends TweetyPlugin { new _7_TransactionBigIntMigration(), new _8_ItemPerWorldMigration(), new _9_StatsMigration(), - new _10_InfiniteItemsMigration() + new _10_InfiniteItemsMigration(), + new _11_AdminLogMigration() ); dataMigrationManager.runMigrations(); diff --git a/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java b/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java index e8af928..abde10a 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java +++ b/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java @@ -5,7 +5,7 @@ import ca.tweetzy.auctionhouse.api.events.AuctionStartEvent; import ca.tweetzy.auctionhouse.api.hook.MMOItemsHook; import ca.tweetzy.auctionhouse.api.hook.McMMOHook; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.auction.AuctionedItem; import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper; import ca.tweetzy.auctionhouse.helpers.MaterialCategorizer; diff --git a/src/main/java/ca/tweetzy/auctionhouse/api/events/AuctionEndEvent.java b/src/main/java/ca/tweetzy/auctionhouse/api/events/AuctionEndEvent.java index 36d754d..eed21a9 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/api/events/AuctionEndEvent.java +++ b/src/main/java/ca/tweetzy/auctionhouse/api/events/AuctionEndEvent.java @@ -1,6 +1,6 @@ package ca.tweetzy.auctionhouse.api.events; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.auction.AuctionedItem; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionFilterItem.java b/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionFilterItem.java index 79ecce5..49cc35f 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionFilterItem.java +++ b/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionFilterItem.java @@ -1,6 +1,7 @@ package ca.tweetzy.auctionhouse.auction; import ca.tweetzy.auctionhouse.api.AuctionAPI; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; import lombok.Getter; import lombok.Setter; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionItem.java b/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionItem.java deleted file mode 100644 index 6241d0c..0000000 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionItem.java +++ /dev/null @@ -1,124 +0,0 @@ -package ca.tweetzy.auctionhouse.auction; - -import ca.tweetzy.auctionhouse.api.AuctionAPI; -import ca.tweetzy.core.utils.nms.NBTEditor; -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.lang.WordUtils; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -/** - * The current file has been created by Kiran Hart - * Date Created: January 17 2021 - * Time Created: 5:41 p.m. - * Usage of any code found within this class is prohibited unless given explicit permission otherwise - */ -@Getter -@Setter -public class AuctionItem implements Serializable { - - private static final long serialVersionUID = 5679289273658775560L; - - private UUID owner; - private UUID highestBidder; - - private byte[] rawItem; - private AuctionItemCategory category; - private UUID key; - - private double basePrice; - private double bidStartPrice; - private double bidIncPrice; - private double currentPrice; - - private boolean expired; - private int remainingTime; - - public AuctionItem() { - } - - public AuctionItem(UUID owner, UUID highestBidder, ItemStack originalItem, AuctionItemCategory category, UUID key, double basePrice, double bidStartPrice, double bidIncPrice, double currentPrice, int remainingTime, boolean expired) { - this.owner = owner; - this.highestBidder = highestBidder; - this.rawItem = AuctionAPI.getInstance().serializeItem(originalItem); - this.category = category; - this.key = key; - this.basePrice = basePrice; - this.bidStartPrice = bidStartPrice; - this.bidIncPrice = bidIncPrice; - this.currentPrice = currentPrice; - this.remainingTime = remainingTime; - this.expired = expired; - } - - public void updateRemainingTime(int removeAmount) { - this.remainingTime = Math.max(this.remainingTime - removeAmount, 0); - if (this.remainingTime <= 0) this.expired = true; - } - - public String getItemName() { - ItemStack stack = AuctionAPI.getInstance().deserializeItem(this.rawItem); - if (stack == null) return "Invalid Item"; - if (!stack.hasItemMeta()) return WordUtils.capitalize(stack.getType().name().toLowerCase().replace("_", " ")); - return stack.getItemMeta().hasDisplayName() ? ChatColor.stripColor(stack.getItemMeta().getDisplayName()) : WordUtils.capitalize(stack.getType().name().toLowerCase().replace("_", " ")); - } - - public ItemStack getDisplayStack(AuctionStackType type) { - ItemStack itemStack = AuctionAPI.getInstance().deserializeItem(this.rawItem).clone(); - itemStack.setAmount(Math.max(itemStack.getAmount(), 1)); - ItemMeta meta = itemStack.hasItemMeta() ? itemStack.getItemMeta() : Bukkit.getItemFactory().getItemMeta(itemStack.getType()); - List lore = (meta.hasLore()) ? meta.getLore() : new ArrayList<>(); - - String theSeller = (this.owner == null) ? "&eSeller Name???" : Bukkit.getOfflinePlayer(this.owner).getName(); - String highestBidder = (this.bidStartPrice <= 0 || this.bidIncPrice <= 0) ? "" : (this.owner.equals(this.highestBidder)) ? Bukkit.getOfflinePlayer(this.owner).getName() : Bukkit.getOfflinePlayer(this.highestBidder).getName(); - -// String basePrice = this.basePrice == -1 || !Settings.ALLOW_USAGE_OF_BUY_NOW_SYSTEM.getBoolean() && this.bidStartPrice >= 1 ? Settings.AUCTION_PURCHASE_CONTROLS_BUY_NOW_OFF_FOR_BID.getString() : Settings.USE_SHORT_NUMBERS_ON_ITEMS.getBoolean() ? AuctionAPI.getInstance().getFriendlyNumber(this.basePrice) : AuctionAPI.getInstance().formatNumber(this.basePrice);// base -// -// String bidIncPrice = (this.bidStartPrice <= 0 || this.bidIncPrice <= 0) ? "0" : Settings.USE_SHORT_NUMBERS_ON_ITEMS.getBoolean() ? AuctionAPI.getInstance().getFriendlyNumber(this.bidIncPrice) : AuctionAPI.getInstance().formatNumber(this.bidIncPrice); -// String currentPrice = (this.bidStartPrice <= 0 || this.bidIncPrice <= 0) ? "0" : Settings.USE_SHORT_NUMBERS_ON_ITEMS.getBoolean() ? AuctionAPI.getInstance().getFriendlyNumber(this.currentPrice) : AuctionAPI.getInstance().formatNumber(this.currentPrice); -// -// long[] times = AuctionAPI.getInstance().getRemainingTimeValues(this.remainingTime); -// List preLore = type == AuctionStackType.MAIN_AUCTION_HOUSE ? this.bidStartPrice <= 0 || this.bidIncPrice <= 0 ? Settings.AUCTION_ITEM_AUCTION_STACK.getStringList() : Settings.AUCTION_ITEM_AUCTION_STACK_WITH_BID.getStringList() : this.bidStartPrice <= 0 ? Settings.AUCTION_ITEM_LISTING_STACK.getStringList() : Settings.AUCTION_ITEM_LISTING_STACK_WITH_BID.getStringList(); -// -// lore.addAll(preLore.stream().map(line -> TextUtils.formatText(line -// .replace("%seller%", theSeller != null ? theSeller : "&eUnknown Seller") -// .replace("%buynowprice%", basePrice) -// .replace("%currentprice%", currentPrice) -// .replace("%bidincrement%", bidIncPrice) -// .replace("%highestbidder%", highestBidder != null ? highestBidder : "&eUnknown Bidder") -// .replace("%remaining_days%", String.valueOf(times[0])) -// .replace("%remaining_hours%", String.valueOf(times[1])) -// .replace("%remaining_minutes%", String.valueOf(times[2])) -// .replace("%remaining_seconds%", String.valueOf(times[3])))).collect(Collectors.toList())); -// -// if (type == AuctionStackType.MAIN_AUCTION_HOUSE) { -// lore.addAll(Settings.AUCTION_PURCHASE_CONTROL_HEADER.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList())); -// lore.addAll(this.bidStartPrice <= 0 || this.bidIncPrice <= 0 || !Settings.ALLOW_USAGE_OF_BUY_NOW_SYSTEM.getBoolean() ? Settings.AUCTION_PURCHASE_CONTROLS_BID_OFF.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList()) : Settings.AUCTION_PURCHASE_CONTROLS_BID_ON.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList())); -// -// if (NBTEditor.contains(itemStack, "AuctionBundleItem") || (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11) && itemStack.getType().name().contains("SHULKER_BOX"))) { -// lore.addAll(Settings.AUCTION_PURCHASE_CONTROLS_INSPECTION.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList())); -// } -// -// lore.addAll(Settings.AUCTION_PURCHASE_CONTROL_FOOTER.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList())); -// } else { -// if (Settings.ALLOW_PLAYERS_TO_ACCEPT_BID.getBoolean() && this.bidStartPrice >= 1 || this.bidIncPrice >= 1) { -// if (!this.owner.equals(this.highestBidder)) { -// lore.addAll(Settings.AUCTION_PURCHASE_CONTROLS_ACCEPT_BID.getStringList().stream().map(TextUtils::formatText).collect(Collectors.toList())); -// } -// } -// } - - meta.setLore(lore); - itemStack.setItemMeta(meta); - itemStack = NBTEditor.set(itemStack, getKey().toString(), "AuctionItemKey"); - return itemStack; - } -} diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionPlayer.java b/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionPlayer.java index ccd74c8..243c27a 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionPlayer.java +++ b/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionPlayer.java @@ -1,6 +1,9 @@ package ca.tweetzy.auctionhouse.auction; import ca.tweetzy.auctionhouse.AuctionHouse; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSortType; import ca.tweetzy.auctionhouse.settings.Settings; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionedItem.java b/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionedItem.java index d5e9f75..0bcc179 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionedItem.java +++ b/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionedItem.java @@ -2,6 +2,8 @@ package ca.tweetzy.auctionhouse.auction; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionStackType; import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.core.compatibility.ServerVersion; import ca.tweetzy.core.utils.TextUtils; diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionItemCategory.java b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionItemCategory.java similarity index 98% rename from src/main/java/ca/tweetzy/auctionhouse/auction/AuctionItemCategory.java rename to src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionItemCategory.java index 6153452..276562c 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionItemCategory.java +++ b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionItemCategory.java @@ -1,4 +1,4 @@ -package ca.tweetzy.auctionhouse.auction; +package ca.tweetzy.auctionhouse.auction.enums; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.settings.Settings; diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionSaleType.java b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionSaleType.java similarity index 95% rename from src/main/java/ca/tweetzy/auctionhouse/auction/AuctionSaleType.java rename to src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionSaleType.java index 11b4caa..5fda007 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionSaleType.java +++ b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionSaleType.java @@ -1,4 +1,4 @@ -package ca.tweetzy.auctionhouse.auction; +package ca.tweetzy.auctionhouse.auction.enums; import ca.tweetzy.auctionhouse.AuctionHouse; diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionSortType.java b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionSortType.java similarity index 95% rename from src/main/java/ca/tweetzy/auctionhouse/auction/AuctionSortType.java rename to src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionSortType.java index 874d6d2..330127a 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionSortType.java +++ b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionSortType.java @@ -1,4 +1,4 @@ -package ca.tweetzy.auctionhouse.auction; +package ca.tweetzy.auctionhouse.auction.enums; import ca.tweetzy.auctionhouse.AuctionHouse; diff --git a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionStackType.java b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionStackType.java similarity index 86% rename from src/main/java/ca/tweetzy/auctionhouse/auction/AuctionStackType.java rename to src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionStackType.java index 487aa1f..3878063 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/auction/AuctionStackType.java +++ b/src/main/java/ca/tweetzy/auctionhouse/auction/enums/AuctionStackType.java @@ -1,4 +1,4 @@ -package ca.tweetzy.auctionhouse.auction; +package ca.tweetzy.auctionhouse.auction.enums; /** * The current file has been created by Kiran Hart diff --git a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandFilter.java b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandFilter.java index 2a5e37d..5735479 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandFilter.java +++ b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandFilter.java @@ -3,7 +3,7 @@ package ca.tweetzy.auctionhouse.commands; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.auction.AuctionFilterItem; -import ca.tweetzy.auctionhouse.auction.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; import ca.tweetzy.auctionhouse.guis.filter.GUIFilterWhitelist; import ca.tweetzy.auctionhouse.helpers.PlayerHelper; import ca.tweetzy.core.commands.AbstractCommand; diff --git a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandMigrate.java b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandMigrate.java index 835ab13..1e49f2e 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandMigrate.java +++ b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandMigrate.java @@ -22,22 +22,7 @@ public class CommandMigrate extends AbstractCommand { @Override protected ReturnType runCommand(CommandSender sender, String... args) { - if (args.length == 0) { - AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cUse '/ah migrate confirm' to confirm the migration, please sure that you have made a backup of your auction house data.yml / auction house database tables. Although everything should work fine, there is always a chance that something wil go wrong.")).sendPrefixedMessage(sender); - return ReturnType.FAILURE; - } - - if (args.length == 1 && !args[0].equalsIgnoreCase("confirm")) return ReturnType.SYNTAX_ERROR; - - // Begin migration - AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cMIGRATION STARTED")).sendPrefixedMessage(sender); - AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&eAuction House usage will be disabled until it is finished, this may take some time depending on how many items you have stored.")).sendPrefixedMessage(sender); - AuctionHouse.getInstance().getDataManager().migrateFromSerializationFormat(items -> { - AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&aMIGRATION FINISHED")).sendPrefixedMessage(sender); - AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&eConverted a total of " + items.size() + " to new format")).sendPrefixedMessage(sender); - AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&eYou can now use the auction house safely")).sendPrefixedMessage(sender); - }); - + AuctionHouse.getInstance().getLocale().newMessage(TextUtils.formatText("&cMigration support for v1 has been dropped since 2.53.0, use 2.52.0 or lower to migrate first.")).sendPrefixedMessage(sender); return ReturnType.SUCCESS; } diff --git a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSell.java b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSell.java index 1e3787c..c93554d 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSell.java +++ b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSell.java @@ -3,7 +3,7 @@ package ca.tweetzy.auctionhouse.commands; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.guis.GUIBundleCreation; import ca.tweetzy.auctionhouse.guis.GUISellItem; import ca.tweetzy.auctionhouse.guis.confirmation.GUIConfirmListing; diff --git a/src/main/java/ca/tweetzy/auctionhouse/database/DataManager.java b/src/main/java/ca/tweetzy/auctionhouse/database/DataManager.java index 92378cf..5185408 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/database/DataManager.java +++ b/src/main/java/ca/tweetzy/auctionhouse/database/DataManager.java @@ -3,6 +3,8 @@ package ca.tweetzy.auctionhouse.database; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.auction.*; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.auctionhouse.transaction.Transaction; import ca.tweetzy.core.database.DataManagerAbstract; @@ -393,83 +395,6 @@ public class DataManager extends DataManagerAbstract { })); } - public void migrateFromSerializationFormat(Consumer> callback) { - AuctionHouse.getInstance().setMigrating(true); - ArrayList items = new ArrayList<>(); - this.async(() -> this.databaseConnector.connect(connection -> { - if (Settings.DATABASE_USE.getBoolean()) { - String select = "SELECT * FROM " + this.getTablePrefix() + "items"; - try (Statement statement = connection.createStatement()) { - ResultSet result = statement.executeQuery(select); - while (result.next()) { - items.add((AuctionItem) AuctionAPI.getInstance().convertBase64ToObject(result.getString("data"))); - } - } - } else { - if (AuctionHouse.getInstance().getData().contains("auction items") && AuctionHouse.getInstance().getData().isList("auction items")) { - items.addAll(AuctionHouse.getInstance().getData().getStringList("auction items").stream().map(AuctionAPI.getInstance()::convertBase64ToObject).map(object -> (AuctionItem) object).collect(Collectors.toList())); - AuctionHouse.getInstance().getData().set("auction items", null); - AuctionHouse.getInstance().getData().save(); - } - } - - List newItems = new ArrayList<>(); - items.forEach(item -> { - OfflinePlayer owner = Bukkit.getOfflinePlayer(item.getOwner()); - OfflinePlayer highestBidder = Bukkit.getOfflinePlayer(item.getHighestBidder()); - newItems.add(new AuctionedItem( - item.getKey(), - item.getOwner(), - item.getHighestBidder(), - owner.getName() != null ? owner.getName() : "Unknown", - highestBidder.getName() != null ? highestBidder.getName() : "Unknown", - item.getCategory(), - AuctionAPI.getInstance().deserializeItem(item.getRawItem()), - item.getBasePrice(), - item.getBidStartPrice(), - item.getBidIncPrice(), - item.getCurrentPrice(), - item.getBidStartPrice() >= 1 || item.getBidIncPrice() >= 1, - item.isExpired(), - System.currentTimeMillis() + 1000L * item.getRemainingTime() - )); - }); - - String saveItems = "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) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - PreparedStatement statement = connection.prepareStatement(saveItems); - newItems.forEach(item -> { - try { - statement.setString(1, item.getId().toString()); - statement.setString(2, item.getOwner().toString()); - statement.setString(3, item.getHighestBidder().toString()); - statement.setString(4, item.getOwnerName()); - statement.setString(5, item.getHighestBidderName()); - statement.setString(6, item.getCategory().name()); - statement.setDouble(7, item.getBasePrice()); - statement.setDouble(8, item.getBidStartingPrice()); - statement.setDouble(9, item.getBidIncrementPrice()); - statement.setDouble(10, item.getCurrentPrice()); - statement.setBoolean(11, item.isExpired()); - statement.setLong(12, item.getExpiresAt()); - statement.setString(13, item.getItem().getType().name()); - statement.setString(14, AuctionAPI.getInstance().getItemName(item.getItem())); - statement.setString(15, AuctionAPI.getInstance().serializeLines(AuctionAPI.getInstance().getItemLore(item.getItem()))); - statement.setString(16, AuctionAPI.getInstance().serializeLines(AuctionAPI.getInstance().getItemEnchantments(item.getItem()))); - statement.setString(17, AuctionAPI.encodeItem(item.getItem())); - statement.addBatch(); - } catch (SQLException e) { - e.printStackTrace(); - } - }); - statement.executeBatch(); - this.sync(() -> { - AuctionHouse.getInstance().setMigrating(false); - newItems.forEach(item -> AuctionHouse.getInstance().getAuctionItemManager().addAuctionItem(item)); - callback.accept(newItems); - }); - })); - } - private AuctionedItem extractAuctionedItem(ResultSet resultSet) throws SQLException { AuctionedItem auctionItem = new AuctionedItem( UUID.fromString(resultSet.getString("id")), diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/GUIActiveAuctions.java b/src/main/java/ca/tweetzy/auctionhouse/guis/GUIActiveAuctions.java index 8c5befb..b909bb9 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/GUIActiveAuctions.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/GUIActiveAuctions.java @@ -2,7 +2,7 @@ package ca.tweetzy.auctionhouse.guis; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; -import ca.tweetzy.auctionhouse.auction.AuctionStackType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionStackType; import ca.tweetzy.auctionhouse.auction.AuctionedItem; import ca.tweetzy.auctionhouse.guis.confirmation.GUIConfirmCancel; import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java b/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java index eecfa09..54a8177 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java @@ -5,6 +5,10 @@ import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.api.events.AuctionBidEvent; import ca.tweetzy.auctionhouse.api.hook.FloodGateHook; import ca.tweetzy.auctionhouse.auction.*; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSortType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionStackType; import ca.tweetzy.auctionhouse.guis.confirmation.GUIConfirmBid; import ca.tweetzy.auctionhouse.guis.confirmation.GUIConfirmPurchase; import ca.tweetzy.auctionhouse.guis.filter.GUIFilterSelection; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/GUISellItem.java b/src/main/java/ca/tweetzy/auctionhouse/guis/GUISellItem.java index d9ec265..682b219 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/GUISellItem.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/GUISellItem.java @@ -3,7 +3,7 @@ package ca.tweetzy.auctionhouse.guis; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper; import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.core.compatibility.XMaterial; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmCancel.java b/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmCancel.java index 837ba5f..d2f8252 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmCancel.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmCancel.java @@ -2,7 +2,7 @@ package ca.tweetzy.auctionhouse.guis.confirmation; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; -import ca.tweetzy.auctionhouse.auction.AuctionStackType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionStackType; import ca.tweetzy.auctionhouse.auction.AuctionedItem; import ca.tweetzy.auctionhouse.guis.GUIActiveAuctions; import ca.tweetzy.auctionhouse.settings.Settings; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmPurchase.java b/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmPurchase.java index 70470cc..8aaf13a 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmPurchase.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/confirmation/GUIConfirmPurchase.java @@ -4,7 +4,7 @@ import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.api.events.AuctionEndEvent; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.auction.AuctionedItem; import ca.tweetzy.auctionhouse.exception.ItemNotFoundException; import ca.tweetzy.auctionhouse.guis.GUIAuctionHouse; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterSelection.java b/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterSelection.java index 5457006..6149dc2 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterSelection.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterSelection.java @@ -2,7 +2,7 @@ package ca.tweetzy.auctionhouse.guis.filter; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; -import ca.tweetzy.auctionhouse.auction.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; import ca.tweetzy.auctionhouse.guis.GUIAuctionHouse; import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelist.java b/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelist.java index 13df672..9f61987 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelist.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelist.java @@ -1,6 +1,6 @@ package ca.tweetzy.auctionhouse.guis.filter; -import ca.tweetzy.auctionhouse.auction.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper; import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.core.gui.Gui; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelistList.java b/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelistList.java index 9d25d0c..81546d2 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelistList.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/filter/GUIFilterWhitelistList.java @@ -2,7 +2,7 @@ package ca.tweetzy.auctionhouse.guis.filter; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.auction.AuctionFilterItem; -import ca.tweetzy.auctionhouse.auction.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.core.gui.Gui; import ca.tweetzy.core.utils.TextUtils; diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/transaction/GUITransactionView.java b/src/main/java/ca/tweetzy/auctionhouse/guis/transaction/GUITransactionView.java index c038850..6e2535c 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/transaction/GUITransactionView.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/transaction/GUITransactionView.java @@ -3,7 +3,7 @@ package ca.tweetzy.auctionhouse.guis.transaction; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.auction.AuctionPlayer; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper; import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.auctionhouse.transaction.Transaction; diff --git a/src/main/java/ca/tweetzy/auctionhouse/helpers/MaterialCategorizer.java b/src/main/java/ca/tweetzy/auctionhouse/helpers/MaterialCategorizer.java index 1b3d2dc..26c107b 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/helpers/MaterialCategorizer.java +++ b/src/main/java/ca/tweetzy/auctionhouse/helpers/MaterialCategorizer.java @@ -1,6 +1,6 @@ package ca.tweetzy.auctionhouse.helpers; -import ca.tweetzy.auctionhouse.auction.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; import ca.tweetzy.core.compatibility.XMaterial; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/ca/tweetzy/auctionhouse/listeners/AuctionListeners.java b/src/main/java/ca/tweetzy/auctionhouse/listeners/AuctionListeners.java index 6d2ac8e..4c5a200 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/listeners/AuctionListeners.java +++ b/src/main/java/ca/tweetzy/auctionhouse/listeners/AuctionListeners.java @@ -5,7 +5,7 @@ import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.api.events.AuctionBidEvent; import ca.tweetzy.auctionhouse.api.events.AuctionEndEvent; import ca.tweetzy.auctionhouse.api.events.AuctionStartEvent; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.auction.AuctionStat; import ca.tweetzy.auctionhouse.settings.Settings; import ca.tweetzy.auctionhouse.transaction.Transaction; diff --git a/src/main/java/ca/tweetzy/auctionhouse/managers/FilterManager.java b/src/main/java/ca/tweetzy/auctionhouse/managers/FilterManager.java index d8c4a4e..67dfe39 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/managers/FilterManager.java +++ b/src/main/java/ca/tweetzy/auctionhouse/managers/FilterManager.java @@ -3,7 +3,7 @@ package ca.tweetzy.auctionhouse.managers; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.auction.AuctionFilterItem; -import ca.tweetzy.auctionhouse.auction.AuctionItemCategory; +import ca.tweetzy.auctionhouse.auction.enums.AuctionItemCategory; import org.bukkit.inventory.ItemStack; import java.util.ArrayList; diff --git a/src/main/java/ca/tweetzy/auctionhouse/settings/LocaleSettings.java b/src/main/java/ca/tweetzy/auctionhouse/settings/LocaleSettings.java index 686fd32..cca3ea3 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/settings/LocaleSettings.java +++ b/src/main/java/ca/tweetzy/auctionhouse/settings/LocaleSettings.java @@ -135,6 +135,10 @@ public class LocaleSettings { languageNodes.put("auction.tax.cannotpaylistingfee", "&cYou do not have enough money to pay the listing fee &f(&4$%price%&f)"); languageNodes.put("auction.tax.paidlistingfee", "&aPaid &2$%price%&a listing fee"); + languageNodes.put("admin action.return", "Returned"); + languageNodes.put("admin action.claim", "Claimed"); + languageNodes.put("admin action.delete", "Deleted"); + languageNodes.put("admin action.copy", "Copied"); languageNodes.put("commands.invalid_syntax", "&7The valid syntax is: &6%syntax%&7."); languageNodes.put("commands.no_permission", "&dYou do not have permission to do that."); diff --git a/src/main/java/ca/tweetzy/auctionhouse/settings/Settings.java b/src/main/java/ca/tweetzy/auctionhouse/settings/Settings.java index ae8d89c..147623a 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/settings/Settings.java +++ b/src/main/java/ca/tweetzy/auctionhouse/settings/Settings.java @@ -55,6 +55,7 @@ public class Settings { public static final ConfigSetting PREVENT_SALE_OF_REPAIRED_ITEMS = new ConfigSetting(config, "auction setting.prevent sale of repaired items", false, "Items repaired before this setting is turned on will still be able to be listed."); public static final ConfigSetting SYNCHRONIZE_ITEM_ADD = new ConfigSetting(config, "auction setting.synchronize item add", false, "If an item is being added to a player's inventory, the process will be ran synchronously"); public static final ConfigSetting ITEM_COPY_REQUIRES_GMC = new ConfigSetting(config, "auction setting.admin copy requires creative", false, "If true when using the admin copy option the player must be in creative"); + public static final ConfigSetting LOG_ADMIN_ACTIONS = new ConfigSetting(config, "auction setting.log admin actions", true, "If true, any admin actions made will be logged"); public static final ConfigSetting TICK_UPDATE_TIME = new ConfigSetting(config, "auction setting.tick auctions every", 1, "How many seconds should pass before the plugin updates all the times on items?"); public static final ConfigSetting CLAIM_MS_DELAY = new ConfigSetting(config, "auction setting.item claim delay", 100, "How many ms should a player wait before being allowed to claim an item?, Ideally you don't wanna change this. It's meant to prevent auto clicker dupe claims"); diff --git a/src/main/java/ca/tweetzy/auctionhouse/tasks/TickAuctionsTask.java b/src/main/java/ca/tweetzy/auctionhouse/tasks/TickAuctionsTask.java index ea44584..f13ff44 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/tasks/TickAuctionsTask.java +++ b/src/main/java/ca/tweetzy/auctionhouse/tasks/TickAuctionsTask.java @@ -3,7 +3,7 @@ package ca.tweetzy.auctionhouse.tasks; import ca.tweetzy.auctionhouse.AuctionHouse; import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.api.events.AuctionEndEvent; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import ca.tweetzy.auctionhouse.auction.AuctionStat; import ca.tweetzy.auctionhouse.auction.AuctionedItem; import ca.tweetzy.auctionhouse.settings.Settings; diff --git a/src/main/java/ca/tweetzy/auctionhouse/transaction/Transaction.java b/src/main/java/ca/tweetzy/auctionhouse/transaction/Transaction.java index 62c3d8a..2c5ada6 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/transaction/Transaction.java +++ b/src/main/java/ca/tweetzy/auctionhouse/transaction/Transaction.java @@ -1,6 +1,6 @@ package ca.tweetzy.auctionhouse.transaction; -import ca.tweetzy.auctionhouse.auction.AuctionSaleType; +import ca.tweetzy.auctionhouse.auction.enums.AuctionSaleType; import lombok.Getter; import lombok.NonNull; import lombok.Setter;