From c71200350962f1dc96d6728050710d22aa59e082 Mon Sep 17 00:00:00 2001 From: Xelara Networks Date: Tue, 23 Jun 2026 18:06:43 -0400 Subject: [PATCH] E --- README.md | 0 pom.xml | 96 +++ .../yourname/premiumah/PremiumAHPlugin.java | 164 ++++ .../premiumah/command/AhAdminCommand.java | 131 +++ .../yourname/premiumah/command/AhCommand.java | 133 +++ .../premiumah/config/ButtonConfig.java | 8 + .../premiumah/config/ConfigManager.java | 238 ++++++ .../premiumah/config/LimitPermission.java | 4 + .../premiumah/config/MessageManager.java | 90 +++ .../premiumah/economy/EconomyService.java | 19 + .../premiumah/economy/NoopEconomyService.java | 43 + .../economy/VaultEconomyService.java | 87 ++ .../yourname/premiumah/gui/BrowseState.java | 30 + .../com/yourname/premiumah/gui/GuiHolder.java | 72 ++ .../yourname/premiumah/gui/GuiManager.java | 764 ++++++++++++++++++ .../com/yourname/premiumah/gui/GuiType.java | 11 + .../yourname/premiumah/gui/SellSession.java | 63 ++ .../premiumah/listener/ChatInputListener.java | 20 + .../listener/InventoryGuiListener.java | 31 + .../listener/PlayerSessionListener.java | 19 + .../manager/AuctionHouseManager.java | 437 ++++++++++ .../premiumah/manager/ClaimManager.java | 67 ++ .../premiumah/manager/ListingManager.java | 110 +++ .../premiumah/model/ActionResult.java | 14 + .../yourname/premiumah/model/ClaimReason.java | 19 + .../yourname/premiumah/model/ClaimRecord.java | 86 ++ .../yourname/premiumah/model/ClaimType.java | 6 + .../com/yourname/premiumah/model/Listing.java | 112 +++ .../model/ListingCreationResult.java | 14 + .../premiumah/model/ListingStatus.java | 10 + .../yourname/premiumah/model/SortMode.java | 36 + .../storage/ItemStackSerializer.java | 34 + .../premiumah/storage/StorageManager.java | 448 ++++++++++ .../yourname/premiumah/util/IdGenerator.java | 27 + .../premiumah/util/InventoryUtil.java | 43 + .../yourname/premiumah/util/MaterialUtil.java | 42 + .../com/yourname/premiumah/util/TextUtil.java | 100 +++ .../com/yourname/premiumah/util/TimeUtil.java | 39 + src/main/resources/config.yml | 168 ++++ src/main/resources/messages.yml | 65 ++ src/main/resources/plugin.yml | 64 ++ target/DirtAuctions-1.0.0.jar | Bin 0 -> 14283883 bytes .../yourname/premiumah/PremiumAHPlugin.class | Bin 0 -> 7096 bytes .../premiumah/command/AhAdminCommand.class | Bin 0 -> 6871 bytes .../premiumah/command/AhCommand.class | Bin 0 -> 6727 bytes .../premiumah/config/ButtonConfig.class | Bin 0 -> 2084 bytes .../premiumah/config/ConfigManager.class | Bin 0 -> 11529 bytes .../premiumah/config/LimitPermission.class | Bin 0 -> 1618 bytes .../premiumah/config/MessageManager.class | Bin 0 -> 6902 bytes .../premiumah/economy/EconomyService.class | Bin 0 -> 362 bytes .../economy/NoopEconomyService.class | Bin 0 -> 1761 bytes .../economy/VaultEconomyService.class | Bin 0 -> 3885 bytes .../yourname/premiumah/gui/BrowseState.class | Bin 0 -> 958 bytes .../yourname/premiumah/gui/GuiHolder.class | Bin 0 -> 2179 bytes .../yourname/premiumah/gui/GuiManager$1.class | Bin 0 -> 999 bytes .../yourname/premiumah/gui/GuiManager.class | Bin 0 -> 36060 bytes .../com/yourname/premiumah/gui/GuiType.class | Bin 0 -> 1398 bytes .../yourname/premiumah/gui/SellSession.class | Bin 0 -> 1782 bytes .../listener/ChatInputListener.class | Bin 0 -> 918 bytes .../listener/InventoryGuiListener.class | Bin 0 -> 1349 bytes .../listener/PlayerSessionListener.class | Bin 0 -> 986 bytes .../manager/AuctionHouseManager.class | Bin 0 -> 17592 bytes .../premiumah/manager/ClaimManager.class | Bin 0 -> 5194 bytes .../premiumah/manager/ListingManager$1.class | Bin 0 -> 896 bytes .../premiumah/manager/ListingManager.class | Bin 0 -> 9086 bytes .../premiumah/model/ActionResult.class | Bin 0 -> 2735 bytes .../premiumah/model/ClaimReason.class | Bin 0 -> 1694 bytes .../premiumah/model/ClaimRecord.class | Bin 0 -> 2744 bytes .../yourname/premiumah/model/ClaimType.class | Bin 0 -> 1148 bytes .../yourname/premiumah/model/Listing.class | Bin 0 -> 3059 bytes .../model/ListingCreationResult.class | Bin 0 -> 3458 bytes .../premiumah/model/ListingStatus.class | Bin 0 -> 1396 bytes .../yourname/premiumah/model/SortMode.class | Bin 0 -> 2354 bytes .../storage/ItemStackSerializer.class | Bin 0 -> 2361 bytes .../premiumah/storage/StorageManager.class | Bin 0 -> 18949 bytes .../yourname/premiumah/util/IdGenerator.class | Bin 0 -> 1509 bytes .../premiumah/util/InventoryUtil.class | Bin 0 -> 1899 bytes .../premiumah/util/MaterialUtil.class | Bin 0 -> 2015 bytes .../yourname/premiumah/util/TextUtil.class | Bin 0 -> 5238 bytes .../yourname/premiumah/util/TimeUtil.class | Bin 0 -> 1715 bytes target/classes/config.yml | 168 ++++ target/classes/messages.yml | 65 ++ target/classes/plugin.yml | 64 ++ target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 38 + .../compile/default-compile/inputFiles.lst | 36 + target/original-DirtAuctions-1.0.0.jar | Bin 0 -> 91514 bytes 87 files changed, 4340 insertions(+) create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/main/java/com/yourname/premiumah/PremiumAHPlugin.java create mode 100644 src/main/java/com/yourname/premiumah/command/AhAdminCommand.java create mode 100644 src/main/java/com/yourname/premiumah/command/AhCommand.java create mode 100644 src/main/java/com/yourname/premiumah/config/ButtonConfig.java create mode 100644 src/main/java/com/yourname/premiumah/config/ConfigManager.java create mode 100644 src/main/java/com/yourname/premiumah/config/LimitPermission.java create mode 100644 src/main/java/com/yourname/premiumah/config/MessageManager.java create mode 100644 src/main/java/com/yourname/premiumah/economy/EconomyService.java create mode 100644 src/main/java/com/yourname/premiumah/economy/NoopEconomyService.java create mode 100644 src/main/java/com/yourname/premiumah/economy/VaultEconomyService.java create mode 100644 src/main/java/com/yourname/premiumah/gui/BrowseState.java create mode 100644 src/main/java/com/yourname/premiumah/gui/GuiHolder.java create mode 100644 src/main/java/com/yourname/premiumah/gui/GuiManager.java create mode 100644 src/main/java/com/yourname/premiumah/gui/GuiType.java create mode 100644 src/main/java/com/yourname/premiumah/gui/SellSession.java create mode 100644 src/main/java/com/yourname/premiumah/listener/ChatInputListener.java create mode 100644 src/main/java/com/yourname/premiumah/listener/InventoryGuiListener.java create mode 100644 src/main/java/com/yourname/premiumah/listener/PlayerSessionListener.java create mode 100644 src/main/java/com/yourname/premiumah/manager/AuctionHouseManager.java create mode 100644 src/main/java/com/yourname/premiumah/manager/ClaimManager.java create mode 100644 src/main/java/com/yourname/premiumah/manager/ListingManager.java create mode 100644 src/main/java/com/yourname/premiumah/model/ActionResult.java create mode 100644 src/main/java/com/yourname/premiumah/model/ClaimReason.java create mode 100644 src/main/java/com/yourname/premiumah/model/ClaimRecord.java create mode 100644 src/main/java/com/yourname/premiumah/model/ClaimType.java create mode 100644 src/main/java/com/yourname/premiumah/model/Listing.java create mode 100644 src/main/java/com/yourname/premiumah/model/ListingCreationResult.java create mode 100644 src/main/java/com/yourname/premiumah/model/ListingStatus.java create mode 100644 src/main/java/com/yourname/premiumah/model/SortMode.java create mode 100644 src/main/java/com/yourname/premiumah/storage/ItemStackSerializer.java create mode 100644 src/main/java/com/yourname/premiumah/storage/StorageManager.java create mode 100644 src/main/java/com/yourname/premiumah/util/IdGenerator.java create mode 100644 src/main/java/com/yourname/premiumah/util/InventoryUtil.java create mode 100644 src/main/java/com/yourname/premiumah/util/MaterialUtil.java create mode 100644 src/main/java/com/yourname/premiumah/util/TextUtil.java create mode 100644 src/main/java/com/yourname/premiumah/util/TimeUtil.java create mode 100644 src/main/resources/config.yml create mode 100644 src/main/resources/messages.yml create mode 100644 src/main/resources/plugin.yml create mode 100644 target/DirtAuctions-1.0.0.jar create mode 100644 target/classes/com/yourname/premiumah/PremiumAHPlugin.class create mode 100644 target/classes/com/yourname/premiumah/command/AhAdminCommand.class create mode 100644 target/classes/com/yourname/premiumah/command/AhCommand.class create mode 100644 target/classes/com/yourname/premiumah/config/ButtonConfig.class create mode 100644 target/classes/com/yourname/premiumah/config/ConfigManager.class create mode 100644 target/classes/com/yourname/premiumah/config/LimitPermission.class create mode 100644 target/classes/com/yourname/premiumah/config/MessageManager.class create mode 100644 target/classes/com/yourname/premiumah/economy/EconomyService.class create mode 100644 target/classes/com/yourname/premiumah/economy/NoopEconomyService.class create mode 100644 target/classes/com/yourname/premiumah/economy/VaultEconomyService.class create mode 100644 target/classes/com/yourname/premiumah/gui/BrowseState.class create mode 100644 target/classes/com/yourname/premiumah/gui/GuiHolder.class create mode 100644 target/classes/com/yourname/premiumah/gui/GuiManager$1.class create mode 100644 target/classes/com/yourname/premiumah/gui/GuiManager.class create mode 100644 target/classes/com/yourname/premiumah/gui/GuiType.class create mode 100644 target/classes/com/yourname/premiumah/gui/SellSession.class create mode 100644 target/classes/com/yourname/premiumah/listener/ChatInputListener.class create mode 100644 target/classes/com/yourname/premiumah/listener/InventoryGuiListener.class create mode 100644 target/classes/com/yourname/premiumah/listener/PlayerSessionListener.class create mode 100644 target/classes/com/yourname/premiumah/manager/AuctionHouseManager.class create mode 100644 target/classes/com/yourname/premiumah/manager/ClaimManager.class create mode 100644 target/classes/com/yourname/premiumah/manager/ListingManager$1.class create mode 100644 target/classes/com/yourname/premiumah/manager/ListingManager.class create mode 100644 target/classes/com/yourname/premiumah/model/ActionResult.class create mode 100644 target/classes/com/yourname/premiumah/model/ClaimReason.class create mode 100644 target/classes/com/yourname/premiumah/model/ClaimRecord.class create mode 100644 target/classes/com/yourname/premiumah/model/ClaimType.class create mode 100644 target/classes/com/yourname/premiumah/model/Listing.class create mode 100644 target/classes/com/yourname/premiumah/model/ListingCreationResult.class create mode 100644 target/classes/com/yourname/premiumah/model/ListingStatus.class create mode 100644 target/classes/com/yourname/premiumah/model/SortMode.class create mode 100644 target/classes/com/yourname/premiumah/storage/ItemStackSerializer.class create mode 100644 target/classes/com/yourname/premiumah/storage/StorageManager.class create mode 100644 target/classes/com/yourname/premiumah/util/IdGenerator.class create mode 100644 target/classes/com/yourname/premiumah/util/InventoryUtil.class create mode 100644 target/classes/com/yourname/premiumah/util/MaterialUtil.class create mode 100644 target/classes/com/yourname/premiumah/util/TextUtil.class create mode 100644 target/classes/com/yourname/premiumah/util/TimeUtil.class create mode 100644 target/classes/config.yml create mode 100644 target/classes/messages.yml create mode 100644 target/classes/plugin.yml create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/original-DirtAuctions-1.0.0.jar diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..3125a8e --- /dev/null +++ b/pom.xml @@ -0,0 +1,96 @@ + + + 4.0.0 + + com.yourname + dirt-auctions + 1.0.0 + jar + + Dirt Auctions + Premium GUI-first auction house plugin for modern Paper servers. + + + 21 + UTF-8 + + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + jitpack.io + https://jitpack.io + + + + + + io.papermc.paper + paper-api + 1.21.8-R0.1-SNAPSHOT + provided + + + com.github.MilkBowl + VaultAPI + 1.7.1 + provided + + + org.xerial + sqlite-jdbc + 3.46.1.0 + + + + + DirtAuctions-${project.version} + + + src/main/resources + true + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 21 + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.3 + + + package + + shade + + + false + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + + diff --git a/src/main/java/com/yourname/premiumah/PremiumAHPlugin.java b/src/main/java/com/yourname/premiumah/PremiumAHPlugin.java new file mode 100644 index 0000000..058beb9 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/PremiumAHPlugin.java @@ -0,0 +1,164 @@ +package com.yourname.premiumah; + +import com.yourname.premiumah.command.AhAdminCommand; +import com.yourname.premiumah.command.AhCommand; +import com.yourname.premiumah.config.ConfigManager; +import com.yourname.premiumah.config.MessageManager; +import com.yourname.premiumah.economy.EconomyService; +import com.yourname.premiumah.economy.NoopEconomyService; +import com.yourname.premiumah.economy.VaultEconomyService; +import com.yourname.premiumah.gui.GuiManager; +import com.yourname.premiumah.listener.ChatInputListener; +import com.yourname.premiumah.listener.InventoryGuiListener; +import com.yourname.premiumah.listener.PlayerSessionListener; +import com.yourname.premiumah.manager.AuctionHouseManager; +import com.yourname.premiumah.manager.ClaimManager; +import com.yourname.premiumah.manager.ListingManager; +import com.yourname.premiumah.storage.StorageManager; +import org.bukkit.Bukkit; +import org.bukkit.command.PluginCommand; +import org.bukkit.event.HandlerList; +import org.bukkit.plugin.java.JavaPlugin; + +public final class PremiumAHPlugin extends JavaPlugin { + private ConfigManager configManager; + private MessageManager messageManager; + private StorageManager storageManager; + private ListingManager listingManager; + private ClaimManager claimManager; + private EconomyService economyService; + private AuctionHouseManager auctionHouseManager; + private GuiManager guiManager; + + @Override + public void onEnable() { + this.configManager = new ConfigManager(this); + configManager.reload(); + this.messageManager = new MessageManager(this, configManager); + messageManager.reload(); + + this.storageManager = new StorageManager(this); + storageManager.load(); + this.listingManager = new ListingManager(storageManager); + this.claimManager = new ClaimManager(storageManager); + listingManager.loadFromStorage(); + claimManager.loadFromStorage(); + + this.economyService = createEconomyService(); + economyService.reload(); + + this.auctionHouseManager = new AuctionHouseManager(this, configManager, messageManager, storageManager, listingManager, claimManager, economyService); + this.guiManager = new GuiManager(this, configManager, messageManager, listingManager, claimManager, auctionHouseManager); + + registerCommands(); + registerListeners(); + auctionHouseManager.startTasks(); + + if (!auctionHouseManager.marketplaceReady() && configManager.requireEconomy()) { + getLogger().warning("No usable economy provider was found. Players can open GUIs and claims, but listing and buying are disabled."); + } + getLogger().info("Dirt Auctions enabled."); + } + + @Override + public void onDisable() { + if (auctionHouseManager != null) { + auctionHouseManager.stopTasks(); + } + Bukkit.getScheduler().cancelTasks(this); + if (guiManager != null) { + guiManager.shutdown(); + } + if (auctionHouseManager != null) { + auctionHouseManager.saveAll(); + } + if (storageManager != null) { + storageManager.close(); + } + if (listingManager != null) { + listingManager.clear(); + } + if (claimManager != null) { + claimManager.clear(); + } + HandlerList.unregisterAll(this); + getLogger().info("Dirt Auctions disabled cleanly."); + } + + public void reloadPluginState() { + if (auctionHouseManager != null) { + auctionHouseManager.stopTasks(); + auctionHouseManager.saveAll(); + } + if (guiManager != null) { + guiManager.shutdown(); + } + + configManager.reload(); + messageManager.reload(); + storageManager.load(); + listingManager.loadFromStorage(); + claimManager.loadFromStorage(); + economyService.reload(); + auctionHouseManager.startTasks(); + } + + public ConfigManager configManager() { + return configManager; + } + + public MessageManager messageManager() { + return messageManager; + } + + public ListingManager listingManager() { + return listingManager; + } + + public ClaimManager claimManager() { + return claimManager; + } + + public AuctionHouseManager auctionHouseManager() { + return auctionHouseManager; + } + + public GuiManager guiManager() { + return guiManager; + } + + private EconomyService createEconomyService() { + if (!configManager.economyEnabled()) { + getLogger().warning("Economy is disabled in config.yml. Marketplace listing and buying are disabled."); + return new NoopEconomyService(); + } + try { + return new VaultEconomyService(this); + } catch (NoClassDefFoundError error) { + getLogger().warning("Vault API is not available. Install Vault or a compatible injector for CMI economy support."); + return new NoopEconomyService(); + } + } + + private void registerCommands() { + AhCommand ahCommand = new AhCommand(guiManager, auctionHouseManager, messageManager); + PluginCommand ah = getCommand("ah"); + if (ah != null) { + ah.setExecutor(ahCommand); + ah.setTabCompleter(ahCommand); + } + + AhAdminCommand ahAdminCommand = new AhAdminCommand(this, guiManager, auctionHouseManager, listingManager, messageManager); + PluginCommand ahAdmin = getCommand("ahadmin"); + if (ahAdmin != null) { + ahAdmin.setExecutor(ahAdminCommand); + ahAdmin.setTabCompleter(ahAdminCommand); + } + } + + private void registerListeners() { + Bukkit.getPluginManager().registerEvents(new InventoryGuiListener(guiManager), this); + Bukkit.getPluginManager().registerEvents(new ChatInputListener(guiManager), this); + Bukkit.getPluginManager().registerEvents(new PlayerSessionListener(guiManager), this); + } +} diff --git a/src/main/java/com/yourname/premiumah/command/AhAdminCommand.java b/src/main/java/com/yourname/premiumah/command/AhAdminCommand.java new file mode 100644 index 0000000..5fbb39f --- /dev/null +++ b/src/main/java/com/yourname/premiumah/command/AhAdminCommand.java @@ -0,0 +1,131 @@ +package com.yourname.premiumah.command; + +import com.yourname.premiumah.PremiumAHPlugin; +import com.yourname.premiumah.config.MessageManager; +import com.yourname.premiumah.gui.GuiManager; +import com.yourname.premiumah.manager.AuctionHouseManager; +import com.yourname.premiumah.manager.ListingManager; +import com.yourname.premiumah.model.ActionResult; +import com.yourname.premiumah.model.Listing; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public final class AhAdminCommand implements TabExecutor { + private final PremiumAHPlugin plugin; + private final GuiManager guiManager; + private final AuctionHouseManager auctionHouse; + private final ListingManager listingManager; + private final MessageManager messages; + + public AhAdminCommand(PremiumAHPlugin plugin, + GuiManager guiManager, + AuctionHouseManager auctionHouse, + ListingManager listingManager, + MessageManager messages) { + this.plugin = plugin; + this.guiManager = guiManager; + this.auctionHouse = auctionHouse; + this.listingManager = listingManager; + this.messages = messages; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (args.length == 0 || args[0].equalsIgnoreCase("help")) { + messages.send(sender, "admin-help"); + return true; + } + String sub = args[0].toLowerCase(Locale.ROOT); + switch (sub) { + case "reload" -> reload(sender); + case "remove" -> remove(sender, args); + case "forceexpire" -> forceExpire(sender, args); + case "view" -> view(sender, args); + default -> messages.send(sender, "admin-help"); + } + return true; + } + + private void reload(CommandSender sender) { + if (!sender.hasPermission("premiumah.admin.reload")) { + messages.send(sender, "no-permission"); + return; + } + plugin.reloadPluginState(); + messages.send(sender, "reload-complete"); + } + + private void remove(CommandSender sender, String[] args) { + if (!sender.hasPermission("premiumah.admin.remove")) { + messages.send(sender, "no-permission"); + return; + } + if (args.length < 2) { + messages.send(sender, "admin-help"); + return; + } + ActionResult result = auctionHouse.adminRemoveListing(args[1]); + messages.send(sender, result.messageKey(), result.placeholders()); + } + + private void forceExpire(CommandSender sender, String[] args) { + if (!sender.hasPermission("premiumah.admin.forceexpire")) { + messages.send(sender, "no-permission"); + return; + } + if (args.length < 2) { + messages.send(sender, "admin-help"); + return; + } + ActionResult result = auctionHouse.forceExpireListing(args[1]); + messages.send(sender, result.messageKey(), result.placeholders()); + } + + private void view(CommandSender sender, String[] args) { + if (!sender.hasPermission("premiumah.admin.view")) { + messages.send(sender, "no-permission"); + return; + } + if (!(sender instanceof Player player)) { + messages.send(sender, "player-only"); + return; + } + if (args.length < 2) { + guiManager.openAdmin(player, 0); + return; + } + guiManager.openAdminForSeller(player, args[1], 0); + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + if (args.length == 1) { + return filter(List.of("reload", "remove", "view", "forceexpire", "help"), args[0]); + } + if (args.length == 2 && (args[0].equalsIgnoreCase("remove") || args[0].equalsIgnoreCase("forceexpire"))) { + return filter(listingManager.all().stream().map(Listing::id).limit(50).toList(), args[1]); + } + if (args.length == 2 && args[0].equalsIgnoreCase("view")) { + return filter(Bukkit.getOnlinePlayers().stream().map(Player::getName).toList(), args[1]); + } + return List.of(); + } + + private List filter(List values, String prefix) { + String normalized = prefix.toLowerCase(Locale.ROOT); + List result = new ArrayList<>(); + for (String value : values) { + if (value.toLowerCase(Locale.ROOT).startsWith(normalized)) { + result.add(value); + } + } + return result; + } +} diff --git a/src/main/java/com/yourname/premiumah/command/AhCommand.java b/src/main/java/com/yourname/premiumah/command/AhCommand.java new file mode 100644 index 0000000..4b45a87 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/command/AhCommand.java @@ -0,0 +1,133 @@ +package com.yourname.premiumah.command; + +import com.yourname.premiumah.config.MessageManager; +import com.yourname.premiumah.gui.GuiManager; +import com.yourname.premiumah.manager.AuctionHouseManager; +import com.yourname.premiumah.model.ListingCreationResult; +import com.yourname.premiumah.model.SortMode; +import com.yourname.premiumah.util.InventoryUtil; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +public final class AhCommand implements TabExecutor { + private final GuiManager guiManager; + private final AuctionHouseManager auctionHouse; + private final MessageManager messages; + + public AhCommand(GuiManager guiManager, AuctionHouseManager auctionHouse, MessageManager messages) { + this.guiManager = guiManager; + this.auctionHouse = auctionHouse; + this.messages = messages; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player player)) { + messages.send(sender, "player-only"); + return true; + } + if (!player.hasPermission("premiumah.use")) { + messages.send(player, "no-permission"); + return true; + } + if (args.length == 0) { + guiManager.openMain(player); + return true; + } + + String sub = args[0].toLowerCase(Locale.ROOT); + switch (sub) { + case "browse" -> guiManager.openBrowse(player, 0); + case "listings", "my", "mine" -> { + if (!player.hasPermission("premiumah.listings")) { + messages.send(player, "no-permission"); + return true; + } + guiManager.openMyListings(player, 0); + } + case "expired", "claims", "claim" -> { + if (!player.hasPermission("premiumah.expired")) { + messages.send(player, "no-permission"); + return true; + } + guiManager.openClaims(player, 0); + } + case "sell" -> handleSell(player, args); + case "sort" -> handleSort(player, args); + default -> guiManager.openMain(player); + } + return true; + } + + private void handleSell(Player player, String[] args) { + if (!player.hasPermission("premiumah.sell")) { + messages.send(player, "no-permission"); + return; + } + if (args.length == 1) { + guiManager.openSell(player, true); + return; + } + double price; + try { + price = Double.parseDouble(args[1].replace(",", "")); + } catch (NumberFormatException exception) { + messages.send(player, "usage-sell"); + return; + } + ItemStack item = player.getInventory().getItemInMainHand(); + if (InventoryUtil.isAir(item)) { + messages.send(player, "no-item-in-hand"); + return; + } + ListingCreationResult result = auctionHouse.createListing(player, item, price); + if (result.success()) { + player.getInventory().setItemInMainHand(null); + } + messages.send(player, result.messageKey(), result.placeholders()); + } + + private void handleSort(Player player, String[] args) { + if (args.length < 2) { + messages.send(player, "invalid-sort", Map.of()); + return; + } + SortMode mode = SortMode.fromString(args[1], null); + if (mode == null) { + messages.send(player, "invalid-sort", Map.of()); + return; + } + guiManager.setSort(player, mode); + guiManager.openBrowse(player, 0); + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + if (args.length == 1) { + return filter(List.of("browse", "sell", "listings", "expired", "claims", "sort"), args[0]); + } + if (args.length == 2 && args[0].equalsIgnoreCase("sort")) { + return filter(List.of("newest", "oldest", "lowest_price", "highest_price"), args[1]); + } + return List.of(); + } + + private List filter(List values, String prefix) { + String normalized = prefix.toLowerCase(Locale.ROOT); + List result = new ArrayList<>(); + for (String value : values) { + if (value.toLowerCase(Locale.ROOT).startsWith(normalized)) { + result.add(value); + } + } + return result; + } +} diff --git a/src/main/java/com/yourname/premiumah/config/ButtonConfig.java b/src/main/java/com/yourname/premiumah/config/ButtonConfig.java new file mode 100644 index 0000000..9c14a47 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/config/ButtonConfig.java @@ -0,0 +1,8 @@ +package com.yourname.premiumah.config; + +import org.bukkit.Material; + +import java.util.List; + +public record ButtonConfig(Material material, String name, List lore) { +} diff --git a/src/main/java/com/yourname/premiumah/config/ConfigManager.java b/src/main/java/com/yourname/premiumah/config/ConfigManager.java new file mode 100644 index 0000000..bdc71d6 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/config/ConfigManager.java @@ -0,0 +1,238 @@ +package com.yourname.premiumah.config; + +import com.yourname.premiumah.model.SortMode; +import com.yourname.premiumah.util.MaterialUtil; +import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Set; + +public final class ConfigManager { + private final JavaPlugin plugin; + private FileConfiguration config; + private Set restrictedMaterials = Set.of(); + private List limitPermissions = List.of(); + private List listingSlots = List.of(); + + public ConfigManager(JavaPlugin plugin) { + this.plugin = plugin; + } + + public void reload() { + plugin.saveDefaultConfig(); + plugin.reloadConfig(); + this.config = plugin.getConfig(); + this.restrictedMaterials = loadRestrictedMaterials(); + this.limitPermissions = loadLimitPermissions(); + this.listingSlots = loadListingSlots(); + } + + public FileConfiguration raw() { + return config; + } + + public boolean debug() { + return config.getBoolean("settings.debug", false); + } + + public String prefix() { + return config.getString("settings.command-prefix", "<#c79542>Dirt Auctions <#6b7280>ยป"); + } + + public boolean economyEnabled() { + return config.getBoolean("economy.enabled", true); + } + + public boolean requireEconomy() { + return config.getBoolean("economy.require-economy", true); + } + + public boolean allowSellerSelfPurchase() { + return config.getBoolean("settings.allow-seller-self-purchase", false); + } + + public boolean requireInventorySpaceToBuy() { + return config.getBoolean("settings.require-inventory-space-to-buy", false); + } + + public boolean claimFullInventoryPurchases() { + return config.getString("claims.buyer-full-inventory-action", "CLAIM").equalsIgnoreCase("CLAIM"); + } + + public boolean instantSellerPayment() { + String action = config.getString("claims.seller-payment-action", "INSTANT"); + return config.getBoolean("economy.instant-seller-payment", true) && !"CLAIM".equalsIgnoreCase(action); + } + + public int chatPriceTimeoutSeconds() { + return Math.max(5, config.getInt("settings.chat-price-timeout-seconds", 45)); + } + + public long clickDebounceMillis() { + return Math.max(0L, config.getLong("settings.click-debounce-millis", 350L)); + } + + public long listingExpireCheckTicks() { + long seconds = Math.max(10L, config.getLong("settings.listing-expire-check-seconds", 60L)); + return seconds * 20L; + } + + public SortMode defaultSort() { + return SortMode.fromString(config.getString("settings.default-sort", "NEWEST"), SortMode.NEWEST); + } + + public long defaultListingDurationMillis() { + long seconds = Math.max(60L, config.getLong("listings.default-duration-seconds", 604800L)); + return seconds * 1000L; + } + + public boolean allowCancelActiveListings() { + return config.getBoolean("listings.allow-cancel-active-listings", true); + } + + public boolean reclaimAdminRemovedItems() { + return config.getBoolean("listings.reclaim-admin-removed-items", true); + } + + public double minPrice() { + return Math.max(0.0D, config.getDouble("economy.price.min", 1.0D)); + } + + public double maxPrice() { + return Math.max(minPrice(), config.getDouble("economy.price.max", 1_000_000_000.0D)); + } + + public boolean listingFeeEnabled() { + return config.getBoolean("economy.listing-fee.enabled", false); + } + + public double listingFee() { + return Math.max(0.0D, config.getDouble("economy.listing-fee.amount", 0.0D)); + } + + public boolean salesTaxEnabled() { + return config.getBoolean("economy.sales-tax.enabled", false); + } + + public double salesTaxPercent() { + return Math.max(0.0D, Math.min(100.0D, config.getDouble("economy.sales-tax.percent", 0.0D))); + } + + public boolean soundsEnabled() { + return config.getBoolean("sounds.enabled", true); + } + + public String soundName(String key) { + return config.getString("sounds." + key, ""); + } + + public int guiSize(String key) { + int requested = config.getInt("gui.size." + key, 54); + int clamped = Math.max(9, Math.min(54, requested)); + return clamped - (clamped % 9); + } + + public String guiTitle(String key) { + return config.getString("gui.titles." + key, key); + } + + public boolean fillerEnabled() { + return config.getBoolean("gui.filler.enabled", true); + } + + public Material fillerMaterial() { + return MaterialUtil.parse(config.getString("gui.filler.material", "BLACK_STAINED_GLASS_PANE")) + .orElse(Material.BLACK_STAINED_GLASS_PANE); + } + + public String fillerName() { + return config.getString("gui.filler.name", " "); + } + + public List listingSlots() { + return listingSlots; + } + + public ButtonConfig button(String key) { + String path = "gui.buttons." + key; + Material material = MaterialUtil.parse(config.getString(path + ".material", "STONE")).orElse(Material.STONE); + String name = config.getString(path + ".name", key); + List lore = config.getStringList(path + ".lore"); + return new ButtonConfig(material, name, lore); + } + + public List guiLore(String key) { + return config.getStringList("gui-lore." + key); + } + + public int listingLimit(Player player) { + int limit = Math.max(0, config.getInt("listing-limits.default", 5)); + for (LimitPermission permission : limitPermissions) { + if (player.hasPermission(permission.permission())) { + limit = Math.max(limit, permission.amount()); + } + } + return limit; + } + + public boolean isItemAllowed(Player player, Material material) { + if (player.hasPermission("premiumah.bypass.restrictions")) { + return true; + } + String mode = config.getString("item-restrictions.mode", "BLACKLIST").toUpperCase(Locale.ROOT); + if ("WHITELIST".equals(mode)) { + return restrictedMaterials.contains(material); + } + return !restrictedMaterials.contains(material); + } + + private Set loadRestrictedMaterials() { + Set materials = new HashSet<>(); + for (String entry : config.getStringList("item-restrictions.materials")) { + MaterialUtil.parse(entry).ifPresent(materials::add); + } + return Collections.unmodifiableSet(materials); + } + + private List loadLimitPermissions() { + List permissions = new ArrayList<>(); + for (var map : config.getMapList("listing-limits.permissions")) { + Object permission = map.get("permission"); + Object amount = map.get("amount"); + if (permission instanceof String permissionString && amount instanceof Number number) { + permissions.add(new LimitPermission(permissionString, Math.max(0, number.intValue()))); + } + } + return List.copyOf(permissions); + } + + private List loadListingSlots() { + List slots = new ArrayList<>(); + for (int slot : config.getIntegerList("gui.listing-slots")) { + if (slot >= 0 && slot < 54) { + slots.add(slot); + } + } + if (slots.isEmpty()) { + for (int slot = 10; slot <= 34; slot++) { + int column = slot % 9; + if (column > 0 && column < 8) { + slots.add(slot); + } + } + } + return List.copyOf(slots); + } + + public ConfigurationSection section(String path) { + return config.getConfigurationSection(path); + } +} diff --git a/src/main/java/com/yourname/premiumah/config/LimitPermission.java b/src/main/java/com/yourname/premiumah/config/LimitPermission.java new file mode 100644 index 0000000..60b8207 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/config/LimitPermission.java @@ -0,0 +1,4 @@ +package com.yourname.premiumah.config; + +public record LimitPermission(String permission, int amount) { +} diff --git a/src/main/java/com/yourname/premiumah/config/MessageManager.java b/src/main/java/com/yourname/premiumah/config/MessageManager.java new file mode 100644 index 0000000..8795290 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/config/MessageManager.java @@ -0,0 +1,90 @@ +package com.yourname.premiumah.config; + +import com.yourname.premiumah.util.TextUtil; +import net.kyori.adventure.text.Component; +import org.bukkit.command.CommandSender; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public final class MessageManager { + private final JavaPlugin plugin; + private final ConfigManager configManager; + private File file; + private YamlConfiguration messages; + + public MessageManager(JavaPlugin plugin, ConfigManager configManager) { + this.plugin = plugin; + this.configManager = configManager; + } + + public void reload() { + this.file = new File(plugin.getDataFolder(), "messages.yml"); + if (!file.exists()) { + plugin.saveResource("messages.yml", false); + } + this.messages = YamlConfiguration.loadConfiguration(file); + } + + public void send(CommandSender sender, String key) { + send(sender, key, Collections.emptyMap()); + } + + public void send(CommandSender sender, String key, Map placeholders) { + sender.sendMessage(message(key, placeholders)); + } + + public void action(Player player, String key, Map placeholders) { + player.sendActionBar(message(key, placeholders)); + } + + public Component message(String key, Map placeholders) { + String raw = messages.getString("messages." + key, "<#ef4444>Missing message: " + key); + return component(apply(raw, placeholders)); + } + + public List guiLore(String key, Map placeholders) { + return messages.getStringList("gui-lore." + key).stream() + .map(line -> component(apply(line, placeholders))) + .toList(); + } + + public List rawGuiLore(String key) { + return messages.getStringList("gui-lore." + key); + } + + public Component component(String raw) { + return TextUtil.component(apply(raw, Collections.emptyMap())); + } + + public String legacy(String raw) { + return TextUtil.legacy(apply(raw, Collections.emptyMap())); + } + + public String legacyWithPlaceholders(String raw, Map placeholders) { + return TextUtil.legacy(apply(raw, placeholders)); + } + + public Map placeholders(String... pairs) { + Map placeholders = new HashMap<>(); + for (int i = 0; i + 1 < pairs.length; i += 2) { + placeholders.put(pairs[i], pairs[i + 1]); + } + return placeholders; + } + + public String apply(String raw, Map placeholders) { + String result = raw == null ? "" : raw; + result = result.replace("{prefix}", configManager.prefix()); + for (Map.Entry entry : placeholders.entrySet()) { + result = result.replace("{" + entry.getKey() + "}", entry.getValue()); + } + return result; + } +} diff --git a/src/main/java/com/yourname/premiumah/economy/EconomyService.java b/src/main/java/com/yourname/premiumah/economy/EconomyService.java new file mode 100644 index 0000000..6dd02b3 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/economy/EconomyService.java @@ -0,0 +1,19 @@ +package com.yourname.premiumah.economy; + +import org.bukkit.OfflinePlayer; + +public interface EconomyService { + void reload(); + + boolean isAvailable(); + + String providerName(); + + boolean has(OfflinePlayer player, double amount); + + boolean withdraw(OfflinePlayer player, double amount); + + boolean deposit(OfflinePlayer player, double amount); + + String format(double amount); +} diff --git a/src/main/java/com/yourname/premiumah/economy/NoopEconomyService.java b/src/main/java/com/yourname/premiumah/economy/NoopEconomyService.java new file mode 100644 index 0000000..371c81e --- /dev/null +++ b/src/main/java/com/yourname/premiumah/economy/NoopEconomyService.java @@ -0,0 +1,43 @@ +package com.yourname.premiumah.economy; + +import org.bukkit.OfflinePlayer; + +import java.text.DecimalFormat; + +public final class NoopEconomyService implements EconomyService { + private static final DecimalFormat FORMAT = new DecimalFormat("#,##0.##"); + + @Override + public void reload() { + } + + @Override + public boolean isAvailable() { + return false; + } + + @Override + public String providerName() { + return "Unavailable"; + } + + @Override + public boolean has(OfflinePlayer player, double amount) { + return false; + } + + @Override + public boolean withdraw(OfflinePlayer player, double amount) { + return false; + } + + @Override + public boolean deposit(OfflinePlayer player, double amount) { + return false; + } + + @Override + public String format(double amount) { + return "$" + FORMAT.format(amount); + } +} diff --git a/src/main/java/com/yourname/premiumah/economy/VaultEconomyService.java b/src/main/java/com/yourname/premiumah/economy/VaultEconomyService.java new file mode 100644 index 0000000..cc699d4 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/economy/VaultEconomyService.java @@ -0,0 +1,87 @@ +package com.yourname.premiumah.economy; + +import net.milkbowl.vault.economy.Economy; +import net.milkbowl.vault.economy.EconomyResponse; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.plugin.RegisteredServiceProvider; +import org.bukkit.plugin.java.JavaPlugin; + +import java.text.DecimalFormat; + +public final class VaultEconomyService implements EconomyService { + private static final DecimalFormat FALLBACK_FORMAT = new DecimalFormat("#,##0.##"); + + private final JavaPlugin plugin; + private Economy economy; + + public VaultEconomyService(JavaPlugin plugin) { + this.plugin = plugin; + } + + @Override + public void reload() { + this.economy = null; + if (Bukkit.getPluginManager().getPlugin("Vault") == null) { + plugin.getLogger().warning("Vault is not installed. Dirt Auctions marketplace functions are disabled."); + return; + } + RegisteredServiceProvider registration = Bukkit.getServicesManager().getRegistration(Economy.class); + if (registration == null || registration.getProvider() == null) { + plugin.getLogger().warning("Vault is installed, but no economy provider is registered. Dirt Auctions marketplace functions are disabled."); + return; + } + this.economy = registration.getProvider(); + plugin.getLogger().info("Hooked economy provider: " + economy.getName()); + } + + @Override + public boolean isAvailable() { + return economy != null; + } + + @Override + public String providerName() { + return economy == null ? "Vault" : economy.getName(); + } + + @Override + public boolean has(OfflinePlayer player, double amount) { + if (amount <= 0.0D) { + return true; + } + return economy != null && economy.has(player, amount); + } + + @Override + public boolean withdraw(OfflinePlayer player, double amount) { + if (amount <= 0.0D) { + return true; + } + if (economy == null) { + return false; + } + EconomyResponse response = economy.withdrawPlayer(player, amount); + return response.transactionSuccess(); + } + + @Override + public boolean deposit(OfflinePlayer player, double amount) { + if (amount <= 0.0D) { + return true; + } + if (economy == null) { + return false; + } + EconomyResponse response = economy.depositPlayer(player, amount); + return response.transactionSuccess(); + } + + @Override + public String format(double amount) { + if (economy == null) { + return "$" + FALLBACK_FORMAT.format(amount); + } + return economy.format(amount); + } +} diff --git a/src/main/java/com/yourname/premiumah/gui/BrowseState.java b/src/main/java/com/yourname/premiumah/gui/BrowseState.java new file mode 100644 index 0000000..8f5906c --- /dev/null +++ b/src/main/java/com/yourname/premiumah/gui/BrowseState.java @@ -0,0 +1,30 @@ +package com.yourname.premiumah.gui; + +import com.yourname.premiumah.model.SortMode; +import org.bukkit.Material; + +public final class BrowseState { + private SortMode sortMode; + private Material filter; + + public BrowseState(SortMode sortMode, Material filter) { + this.sortMode = sortMode; + this.filter = filter; + } + + public SortMode sortMode() { + return sortMode; + } + + public void sortMode(SortMode sortMode) { + this.sortMode = sortMode; + } + + public Material filter() { + return filter; + } + + public void filter(Material filter) { + this.filter = filter; + } +} diff --git a/src/main/java/com/yourname/premiumah/gui/GuiHolder.java b/src/main/java/com/yourname/premiumah/gui/GuiHolder.java new file mode 100644 index 0000000..a4c449e --- /dev/null +++ b/src/main/java/com/yourname/premiumah/gui/GuiHolder.java @@ -0,0 +1,72 @@ +package com.yourname.premiumah.gui; + +import com.yourname.premiumah.model.SortMode; +import org.bukkit.Material; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public final class GuiHolder implements InventoryHolder { + private final GuiType type; + private final UUID viewer; + private final int page; + private final String context; + private final SortMode sortMode; + private final Material filter; + private final Map listingSlots = new HashMap<>(); + private final Map claimSlots = new HashMap<>(); + private Inventory inventory; + + public GuiHolder(GuiType type, UUID viewer, int page, String context, SortMode sortMode, Material filter) { + this.type = type; + this.viewer = viewer; + this.page = page; + this.context = context; + this.sortMode = sortMode; + this.filter = filter; + } + + public GuiType type() { + return type; + } + + public UUID viewer() { + return viewer; + } + + public int page() { + return page; + } + + public String context() { + return context; + } + + public SortMode sortMode() { + return sortMode; + } + + public Material filter() { + return filter; + } + + public Map listingSlots() { + return listingSlots; + } + + public Map claimSlots() { + return claimSlots; + } + + public void inventory(Inventory inventory) { + this.inventory = inventory; + } + + @Override + public Inventory getInventory() { + return inventory; + } +} diff --git a/src/main/java/com/yourname/premiumah/gui/GuiManager.java b/src/main/java/com/yourname/premiumah/gui/GuiManager.java new file mode 100644 index 0000000..b1cae66 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/gui/GuiManager.java @@ -0,0 +1,764 @@ +package com.yourname.premiumah.gui; + +import com.yourname.premiumah.config.ButtonConfig; +import com.yourname.premiumah.config.ConfigManager; +import com.yourname.premiumah.config.MessageManager; +import com.yourname.premiumah.manager.AuctionHouseManager; +import com.yourname.premiumah.manager.ClaimManager; +import com.yourname.premiumah.manager.ListingManager; +import com.yourname.premiumah.model.ActionResult; +import com.yourname.premiumah.model.ClaimRecord; +import com.yourname.premiumah.model.ClaimType; +import com.yourname.premiumah.model.Listing; +import com.yourname.premiumah.model.ListingCreationResult; +import com.yourname.premiumah.model.SortMode; +import com.yourname.premiumah.util.InventoryUtil; +import com.yourname.premiumah.util.MaterialUtil; +import com.yourname.premiumah.util.TextUtil; +import io.papermc.paper.event.player.AsyncChatEvent; +import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.Registry; +import org.bukkit.Sound; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; + +public final class GuiManager { + private static final int SELL_ITEM_SLOT = 22; + + private final JavaPlugin plugin; + private final ConfigManager config; + private final MessageManager messages; + private final ListingManager listings; + private final ClaimManager claims; + private final AuctionHouseManager auctionHouse; + private final Map browseStates = new ConcurrentHashMap<>(); + private final Map sellSessions = new ConcurrentHashMap<>(); + private final Map clickDebounce = new ConcurrentHashMap<>(); + + public GuiManager(JavaPlugin plugin, + ConfigManager config, + MessageManager messages, + ListingManager listings, + ClaimManager claims, + AuctionHouseManager auctionHouse) { + this.plugin = plugin; + this.config = config; + this.messages = messages; + this.listings = listings; + this.claims = claims; + this.auctionHouse = auctionHouse; + } + + public void openMain(Player player) { + GuiHolder holder = new GuiHolder(GuiType.MAIN, player.getUniqueId(), 0, null, null, null); + Inventory inventory = create(holder, config.guiSize("main"), config.guiTitle("main"), Map.of()); + fill(inventory); + inventory.setItem(11, button("browse", Map.of())); + inventory.setItem(13, button("sell", Map.of())); + inventory.setItem(15, button("my-listings", Map.of())); + inventory.setItem(29, button("claims", Map.of())); + if (player.hasPermission("premiumah.admin")) { + inventory.setItem(31, button("admin", Map.of())); + } + inventory.setItem(33, button("close", Map.of())); + player.openInventory(inventory); + play(player, "open"); + } + + public void openBrowse(Player player, int requestedPage) { + BrowseState state = browseState(player); + List active = listings.activeListings(state.sortMode(), state.filter()); + openListingView(player, GuiType.BROWSE, active, requestedPage, "browse", null, state.sortMode(), state.filter()); + } + + public void openMyListings(Player player, int requestedPage) { + List own = listings.activeListingsBySeller(player.getUniqueId(), SortMode.NEWEST); + openListingView(player, GuiType.MY_LISTINGS, own, requestedPage, "my-listings", null, SortMode.NEWEST, null); + } + + public void openAdmin(Player player, int requestedPage) { + BrowseState state = browseState(player); + List active = listings.activeListings(state.sortMode(), state.filter()); + openListingView(player, GuiType.ADMIN, active, requestedPage, "admin", null, state.sortMode(), state.filter()); + } + + public void openAdminForSeller(Player player, String sellerName, int requestedPage) { + List active = listings.activeListingsBySellerName(sellerName, SortMode.NEWEST); + openListingView(player, GuiType.ADMIN, active, requestedPage, "admin", sellerName, SortMode.NEWEST, null); + } + + public void openClaims(Player player, int requestedPage) { + List playerClaims = claims.claimsFor(player.getUniqueId()); + int page = normalizePage(requestedPage, playerClaims.size()); + GuiHolder holder = new GuiHolder(GuiType.CLAIMS, player.getUniqueId(), page, null, SortMode.NEWEST, null); + Inventory inventory = create(holder, config.guiSize("claims"), config.guiTitle("claims"), Map.of("page", String.valueOf(page + 1))); + fill(inventory); + List slots = config.listingSlots(); + int start = page * slots.size(); + for (int i = 0; i < slots.size(); i++) { + int index = start + i; + if (index >= playerClaims.size()) { + break; + } + ClaimRecord claim = playerClaims.get(index); + int slot = slots.get(i); + holder.claimSlots().put(slot, claim.id()); + inventory.setItem(slot, claimItem(claim)); + } + addPagedControls(inventory, page, playerClaims.size(), slots.size(), "back"); + player.openInventory(inventory); + play(player, "open"); + } + + public void openSell(Player player, boolean takeHeldItem) { + if (!player.hasPermission("premiumah.sell")) { + messages.send(player, "no-permission"); + play(player, "fail"); + return; + } + SellSession session = sellSessions.computeIfAbsent(player.getUniqueId(), ignored -> new SellSession()); + if (takeHeldItem && InventoryUtil.isAir(session.rawItem())) { + ItemStack held = player.getInventory().getItemInMainHand(); + if (!InventoryUtil.isAir(held)) { + session.item(held); + player.getInventory().setItemInMainHand(null); + } + } + session.awaitingPrice(false); + session.completed(false); + + GuiHolder holder = new GuiHolder(GuiType.SELL, player.getUniqueId(), 0, null, null, null); + Inventory inventory = create(holder, config.guiSize("sell"), config.guiTitle("sell"), Map.of()); + fill(inventory); + inventory.setItem(SELL_ITEM_SLOT, session.item()); + inventory.setItem(20, customItem(Material.GOLD_INGOT, "<#f5d58a>Set Price", List.of( + "<#9ca3af>Current: <#ffffff>" + (session.price() <= 0.0D ? "Not set" : auctionHouse.formatMoney(session.price())), + "<#6ee7b7>Click to type a price." + ), Map.of())); + inventory.setItem(24, button("confirm", Map.of())); + inventory.setItem(36, button("back", Map.of())); + inventory.setItem(40, button("cancel", Map.of())); + player.openInventory(inventory); + play(player, "open"); + } + + public void openConfirmBuy(Player player, String listingId) { + Listing listing = listings.get(listingId).orElse(null); + if (listing == null || !listing.isActive(System.currentTimeMillis())) { + messages.send(player, "listing-no-longer-available"); + play(player, "fail"); + openBrowse(player, 0); + return; + } + GuiHolder holder = new GuiHolder(GuiType.CONFIRM_BUY, player.getUniqueId(), 0, listing.id(), null, null); + Inventory inventory = create(holder, config.guiSize("confirm-buy"), config.guiTitle("confirm-buy"), Map.of()); + fill(inventory); + inventory.setItem(11, button("confirm", Map.of())); + inventory.setItem(13, listingItem(listing, "confirm-buy")); + inventory.setItem(15, button("cancel", Map.of())); + player.openInventory(inventory); + play(player, "open"); + } + + public void handleClick(InventoryClickEvent event) { + if (!(event.getWhoClicked() instanceof Player player) || !(event.getView().getTopInventory().getHolder() instanceof GuiHolder holder)) { + return; + } + int topSize = event.getView().getTopInventory().getSize(); + int rawSlot = event.getRawSlot(); + + if (holder.type() != GuiType.SELL && rawSlot >= topSize) { + if (event.isShiftClick()) { + event.setCancelled(true); + } + return; + } + if (holder.type() == GuiType.SELL && rawSlot >= topSize) { + if (event.isShiftClick()) { + event.setCancelled(true); + } + return; + } + + if (holder.type() == GuiType.SELL && rawSlot == SELL_ITEM_SLOT) { + event.setCancelled(false); + Bukkit.getScheduler().runTask(plugin, () -> syncSellSlot(player, event.getView().getTopInventory())); + return; + } + + event.setCancelled(true); + if (rawSlot < 0 || !canClick(player)) { + return; + } + + switch (holder.type()) { + case MAIN -> handleMainClick(player, rawSlot); + case BROWSE -> handleBrowseClick(player, holder, rawSlot, event.getClick()); + case MY_LISTINGS -> handleMyListingsClick(player, holder, rawSlot); + case CLAIMS -> handleClaimsClick(player, holder, rawSlot); + case SELL -> handleSellClick(player, event.getView().getTopInventory(), rawSlot); + case CONFIRM_BUY -> handleConfirmClick(player, holder, rawSlot); + case ADMIN -> handleAdminClick(player, holder, rawSlot, event.getClick()); + } + } + + public void handleDrag(InventoryDragEvent event) { + if (!(event.getWhoClicked() instanceof Player player) || !(event.getView().getTopInventory().getHolder() instanceof GuiHolder holder)) { + return; + } + int topSize = event.getView().getTopInventory().getSize(); + boolean touchesTop = event.getRawSlots().stream().anyMatch(slot -> slot < topSize); + if (!touchesTop) { + return; + } + if (holder.type() == GuiType.SELL && event.getRawSlots().stream().allMatch(slot -> slot == SELL_ITEM_SLOT || slot >= topSize)) { + Bukkit.getScheduler().runTask(plugin, () -> syncSellSlot(player, event.getView().getTopInventory())); + return; + } + event.setCancelled(true); + } + + public void handleClose(InventoryCloseEvent event) { + if (!(event.getPlayer() instanceof Player player) || !(event.getInventory().getHolder() instanceof GuiHolder holder)) { + return; + } + if (holder.type() != GuiType.SELL) { + return; + } + SellSession session = sellSessions.get(player.getUniqueId()); + if (session == null || session.awaitingPrice() || session.completed()) { + return; + } + ItemStack item = event.getInventory().getItem(SELL_ITEM_SLOT); + if (InventoryUtil.isAir(item)) { + item = session.item(); + } + returnItem(player, item); + sellSessions.remove(player.getUniqueId()); + } + + public void handleChat(AsyncChatEvent event) { + Player player = event.getPlayer(); + SellSession session = sellSessions.get(player.getUniqueId()); + if (session == null || !session.awaitingPrice()) { + return; + } + event.setCancelled(true); + String input = PlainTextComponentSerializer.plainText().serialize(event.message()).trim(); + Bukkit.getScheduler().runTask(plugin, () -> completePricePrompt(player, input)); + } + + public void setSort(Player player, SortMode sortMode) { + browseState(player).sortMode(sortMode); + } + + public void shutdown() { + for (Player player : Bukkit.getOnlinePlayers()) { + if (player.getOpenInventory().getTopInventory().getHolder() instanceof GuiHolder) { + player.closeInventory(); + } + } + for (UUID uuid : new ArrayList<>(sellSessions.keySet())) { + Player player = Bukkit.getPlayer(uuid); + SellSession session = sellSessions.remove(uuid); + if (player != null && session != null && !InventoryUtil.isAir(session.rawItem())) { + returnItem(player, session.rawItem()); + } + if (session != null) { + session.cancelTimeout(); + } + } + sellSessions.clear(); + browseStates.clear(); + clickDebounce.clear(); + } + + public void handleQuit(Player player) { + SellSession session = sellSessions.remove(player.getUniqueId()); + if (session != null) { + session.cancelTimeout(); + if (!InventoryUtil.isAir(session.rawItem())) { + returnItem(player, session.rawItem()); + } + } + browseStates.remove(player.getUniqueId()); + clickDebounce.remove(player.getUniqueId()); + } + + private void handleMainClick(Player player, int slot) { + play(player, "click"); + if (slot == 11) { + openBrowse(player, 0); + } else if (slot == 13) { + openSell(player, true); + } else if (slot == 15) { + openMyListings(player, 0); + } else if (slot == 29) { + openClaims(player, 0); + } else if (slot == 31 && player.hasPermission("premiumah.admin")) { + openAdmin(player, 0); + } else if (slot == 33) { + player.closeInventory(); + } + } + + private void handleBrowseClick(Player player, GuiHolder holder, int slot, ClickType click) { + if (holder.listingSlots().containsKey(slot)) { + Listing listing = listings.get(holder.listingSlots().get(slot)).orElse(null); + if (listing == null) { + messages.send(player, "listing-no-longer-available"); + play(player, "fail"); + openBrowse(player, holder.page()); + return; + } + if (click.isRightClick() && player.hasPermission("premiumah.admin.remove")) { + ActionResult result = auctionHouse.adminRemoveListing(listing.id()); + messages.send(player, result.messageKey(), result.placeholders()); + play(player, result.success() ? "success" : "fail"); + openBrowse(player, holder.page()); + return; + } + if (click.isShiftClick()) { + browseState(player).filter(listing.rawItem().getType()); + openBrowse(player, 0); + return; + } + openConfirmBuy(player, listing.id()); + return; + } + handlePagedControl(player, holder, slot, GuiType.BROWSE); + } + + private void handleMyListingsClick(Player player, GuiHolder holder, int slot) { + if (holder.listingSlots().containsKey(slot)) { + ActionResult result = auctionHouse.cancelListing(player, holder.listingSlots().get(slot)); + messages.send(player, result.messageKey(), result.placeholders()); + play(player, result.success() ? "success" : "fail"); + openMyListings(player, holder.page()); + return; + } + handlePagedControl(player, holder, slot, GuiType.MY_LISTINGS); + } + + private void handleClaimsClick(Player player, GuiHolder holder, int slot) { + if (holder.claimSlots().containsKey(slot)) { + ActionResult result = auctionHouse.claim(player, holder.claimSlots().get(slot)); + messages.send(player, result.messageKey(), result.placeholders()); + play(player, result.success() ? "success" : "fail"); + openClaims(player, holder.page()); + return; + } + handlePagedControl(player, holder, slot, GuiType.CLAIMS); + } + + private void handleSellClick(Player player, Inventory inventory, int slot) { + play(player, "click"); + if (slot == 20) { + beginPricePrompt(player, inventory); + } else if (slot == 24) { + confirmSell(player, inventory); + } else if (slot == 36) { + closeSellReturningItem(player, inventory, true); + openMain(player); + } else if (slot == 40) { + closeSellReturningItem(player, inventory, false); + } + } + + private void handleConfirmClick(Player player, GuiHolder holder, int slot) { + if (slot == 11) { + ActionResult result = auctionHouse.buyListing(player, holder.context()); + messages.send(player, result.messageKey(), result.placeholders()); + play(player, result.success() ? "success" : "fail"); + if (result.success()) { + openBrowse(player, 0); + } else { + player.closeInventory(); + } + } else if (slot == 15) { + play(player, "click"); + openBrowse(player, 0); + } + } + + private void handleAdminClick(Player player, GuiHolder holder, int slot, ClickType click) { + if (holder.listingSlots().containsKey(slot)) { + Listing listing = listings.get(holder.listingSlots().get(slot)).orElse(null); + if (listing == null) { + messages.send(player, "listing-no-longer-available"); + openAdmin(player, holder.page()); + return; + } + if (click.isRightClick() || click.isShiftClick()) { + ActionResult result = auctionHouse.adminRemoveListing(listing.id()); + messages.send(player, result.messageKey(), result.placeholders()); + play(player, result.success() ? "success" : "fail"); + openAdmin(player, holder.page()); + } else { + openConfirmBuy(player, listing.id()); + } + return; + } + handlePagedControl(player, holder, slot, GuiType.ADMIN); + } + + private void handlePagedControl(Player player, GuiHolder holder, int slot, GuiType type) { + play(player, "click"); + if (slot == 45) { + openByType(player, type, Math.max(0, holder.page() - 1), holder.context()); + } else if (slot == 49) { + openMain(player); + } else if (slot == 53) { + openByType(player, type, holder.page() + 1, holder.context()); + } else if (slot == 50 && (type == GuiType.BROWSE || type == GuiType.ADMIN)) { + BrowseState state = browseState(player); + state.sortMode(state.sortMode().next()); + openByType(player, type, 0, holder.context()); + } else if (slot == 48 && (type == GuiType.BROWSE || type == GuiType.ADMIN)) { + browseState(player).filter(null); + openByType(player, type, 0, holder.context()); + } + } + + private void openByType(Player player, GuiType type, int page, String context) { + switch (type) { + case BROWSE -> openBrowse(player, page); + case MY_LISTINGS -> openMyListings(player, page); + case CLAIMS -> openClaims(player, page); + case ADMIN -> { + if (context == null || context.isBlank()) { + openAdmin(player, page); + } else { + openAdminForSeller(player, context, page); + } + } + default -> openMain(player); + } + } + + private void openListingView(Player player, + GuiType type, + List source, + int requestedPage, + String titleKey, + String context, + SortMode sortMode, + Material filter) { + int page = normalizePage(requestedPage, source.size()); + GuiHolder holder = new GuiHolder(type, player.getUniqueId(), page, context, sortMode, filter); + Inventory inventory = create(holder, config.guiSize(titleKey), config.guiTitle(titleKey), Map.of("page", String.valueOf(page + 1))); + fill(inventory); + List slots = config.listingSlots(); + int start = page * slots.size(); + String loreKey = type == GuiType.MY_LISTINGS ? "my-listing" : "listing"; + for (int i = 0; i < slots.size(); i++) { + int index = start + i; + if (index >= source.size()) { + break; + } + Listing listing = source.get(index); + int slot = slots.get(i); + holder.listingSlots().put(slot, listing.id()); + inventory.setItem(slot, listingItem(listing, loreKey)); + } + addPagedControls(inventory, page, source.size(), slots.size(), "back"); + if (type == GuiType.BROWSE || type == GuiType.ADMIN) { + BrowseState state = browseState(player); + inventory.setItem(48, button("filter", Map.of("filter", state.filter() == null ? "All" : MaterialUtil.pretty(state.filter())))); + inventory.setItem(50, button("sort", Map.of("sort", state.sortMode().displayName()))); + } + player.openInventory(inventory); + play(player, "open"); + } + + private void addPagedControls(Inventory inventory, int page, int totalItems, int pageSize, String backKey) { + if (page > 0) { + inventory.setItem(45, button("previous", Map.of())); + } + inventory.setItem(49, button(backKey, Map.of())); + if ((page + 1) * pageSize < totalItems) { + inventory.setItem(53, button("next", Map.of())); + } + } + + private Inventory create(GuiHolder holder, int size, String title, Map placeholders) { + Inventory inventory = Bukkit.createInventory(holder, size, messages.component(messages.apply(title, placeholders))); + holder.inventory(inventory); + return inventory; + } + + private void fill(Inventory inventory) { + if (!config.fillerEnabled()) { + return; + } + ItemStack filler = customItem(config.fillerMaterial(), config.fillerName(), List.of(), Map.of()); + for (int i = 0; i < inventory.getSize(); i++) { + if (inventory.getItem(i) == null) { + inventory.setItem(i, filler); + } + } + } + + private ItemStack button(String key, Map placeholders) { + ButtonConfig button = config.button(key); + return customItem(button.material(), button.name(), button.lore(), placeholders); + } + + private ItemStack customItem(Material material, String name, List lore, Map placeholders) { + ItemStack item = new ItemStack(material); + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + meta.displayName(messages.component(messages.apply(name, placeholders))); + if (lore != null && !lore.isEmpty()) { + meta.lore(lore.stream().map(line -> messages.component(messages.apply(line, placeholders))).toList()); + } + meta.addItemFlags(ItemFlag.values()); + item.setItemMeta(meta); + } + return item; + } + + private ItemStack listingItem(Listing listing, String loreKey) { + ItemStack item = listing.item(); + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + List lore = new ArrayList<>(); + if (meta.lore() != null && !meta.lore().isEmpty()) { + lore.addAll(meta.lore()); + lore.add(TextUtil.component("")); + } + lore.addAll(messages.guiLore(loreKey, listingPlaceholders(listing))); + meta.lore(lore); + item.setItemMeta(meta); + } + return item; + } + + private ItemStack claimItem(ClaimRecord claim) { + ItemStack item; + if (claim.type() == ClaimType.MONEY) { + item = customItem(Material.EMERALD, "<#6ee7b7>Sale Payment <#ffffff>{amount}", messages.rawGuiLore("claim"), claimPlaceholders(claim)); + } else { + item = claim.item(); + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + List lore = new ArrayList<>(); + if (meta.lore() != null && !meta.lore().isEmpty()) { + lore.addAll(meta.lore()); + lore.add(TextUtil.component("")); + } + lore.addAll(messages.guiLore("claim", claimPlaceholders(claim))); + meta.lore(lore); + item.setItemMeta(meta); + } + } + return item; + } + + private Map listingPlaceholders(Listing listing) { + return Map.of( + "seller", listing.sellerName(), + "price", auctionHouse.formatMoney(listing.price()), + "remaining", com.yourname.premiumah.util.TimeUtil.remaining(listing.expiresAt()), + "id", listing.id() + ); + } + + private Map claimPlaceholders(ClaimRecord claim) { + String itemName = claim.type() == ClaimType.MONEY ? auctionHouse.formatMoney(claim.moneyAmount()) : auctionHouse.itemName(claim.item()); + Map placeholders = new HashMap<>(); + placeholders.put("reason", claim.reason().displayName()); + placeholders.put("id", claim.listingId() == null ? "N/A" : claim.listingId()); + placeholders.put("age", com.yourname.premiumah.util.TimeUtil.age(claim.createdAt())); + placeholders.put("item", itemName); + placeholders.put("amount", itemName); + return placeholders; + } + + private BrowseState browseState(Player player) { + return browseStates.computeIfAbsent(player.getUniqueId(), ignored -> new BrowseState(config.defaultSort(), null)); + } + + private int normalizePage(int requestedPage, int totalItems) { + int pageSize = Math.max(1, config.listingSlots().size()); + int maxPage = Math.max(0, (int) Math.ceil(totalItems / (double) pageSize) - 1); + return Math.max(0, Math.min(requestedPage, maxPage)); + } + + private boolean canClick(Player player) { + long now = System.currentTimeMillis(); + long last = clickDebounce.getOrDefault(player.getUniqueId(), 0L); + if (now - last < config.clickDebounceMillis()) { + return false; + } + clickDebounce.put(player.getUniqueId(), now); + return true; + } + + private void syncSellSlot(Player player, Inventory inventory) { + SellSession session = sellSessions.get(player.getUniqueId()); + if (session != null) { + session.item(inventory.getItem(SELL_ITEM_SLOT)); + } + } + + private void beginPricePrompt(Player player, Inventory inventory) { + SellSession session = sellSessions.computeIfAbsent(player.getUniqueId(), ignored -> new SellSession()); + session.item(inventory.getItem(SELL_ITEM_SLOT)); + inventory.setItem(SELL_ITEM_SLOT, null); + session.awaitingPrice(true); + session.completed(false); + session.cancelTimeout(); + session.timeoutTask(Bukkit.getScheduler().runTaskLater(plugin, () -> { + SellSession current = sellSessions.get(player.getUniqueId()); + if (current != null && current.awaitingPrice()) { + current.awaitingPrice(false); + returnItem(player, current.rawItem()); + current.cancelTimeout(); + sellSessions.remove(player.getUniqueId()); + messages.send(player, "price-prompt-timeout"); + play(player, "fail"); + } + }, config.chatPriceTimeoutSeconds() * 20L)); + player.closeInventory(); + messages.send(player, "price-prompt"); + } + + private void completePricePrompt(Player player, String input) { + SellSession session = sellSessions.get(player.getUniqueId()); + if (session == null || !session.awaitingPrice()) { + return; + } + session.cancelTimeout(); + if (input.equalsIgnoreCase("cancel")) { + session.awaitingPrice(false); + returnItem(player, session.rawItem()); + sellSessions.remove(player.getUniqueId()); + messages.send(player, "price-prompt-cancelled"); + play(player, "click"); + return; + } + double price; + try { + price = Double.parseDouble(input.replace(",", "")); + } catch (NumberFormatException exception) { + messages.send(player, "invalid-price"); + play(player, "fail"); + beginPricePrompt(player, createTempSellInventory(player, session)); + return; + } + if (!Double.isFinite(price) || price <= 0.0D) { + messages.send(player, "invalid-price"); + play(player, "fail"); + beginPricePrompt(player, createTempSellInventory(player, session)); + return; + } + session.price(price); + session.awaitingPrice(false); + messages.send(player, "price-set", Map.of("price", auctionHouse.formatMoney(price))); + openSell(player, false); + } + + private Inventory createTempSellInventory(Player player, SellSession session) { + GuiHolder holder = new GuiHolder(GuiType.SELL, player.getUniqueId(), 0, null, null, null); + Inventory inventory = create(holder, config.guiSize("sell"), config.guiTitle("sell"), Map.of()); + inventory.setItem(SELL_ITEM_SLOT, session.item()); + return inventory; + } + + private void confirmSell(Player player, Inventory inventory) { + SellSession session = sellSessions.computeIfAbsent(player.getUniqueId(), ignored -> new SellSession()); + ItemStack item = inventory.getItem(SELL_ITEM_SLOT); + if (InventoryUtil.isAir(item)) { + messages.send(player, "no-item-in-hand"); + play(player, "fail"); + return; + } + if (session.price() <= 0.0D) { + messages.send(player, "invalid-price"); + play(player, "fail"); + return; + } + inventory.setItem(SELL_ITEM_SLOT, null); + ListingCreationResult result = auctionHouse.createListing(player, item, session.price()); + if (!result.success()) { + inventory.setItem(SELL_ITEM_SLOT, item); + messages.send(player, result.messageKey(), result.placeholders()); + play(player, "fail"); + return; + } + session.completed(true); + session.cancelTimeout(); + sellSessions.remove(player.getUniqueId()); + messages.send(player, result.messageKey(), result.placeholders()); + play(player, "success"); + openBrowse(player, 0); + } + + private void closeSellReturningItem(Player player, Inventory inventory, boolean keepOpen) { + SellSession session = sellSessions.remove(player.getUniqueId()); + ItemStack item = inventory.getItem(SELL_ITEM_SLOT); + inventory.setItem(SELL_ITEM_SLOT, null); + if (session != null) { + session.completed(true); + session.cancelTimeout(); + if (InventoryUtil.isAir(item)) { + item = session.rawItem(); + } + } + returnItem(player, item); + if (!keepOpen) { + player.closeInventory(); + } + } + + private void returnItem(Player player, ItemStack item) { + if (InventoryUtil.isAir(item)) { + return; + } + Map leftovers = InventoryUtil.addItem(player.getInventory(), item); + for (ItemStack leftover : leftovers.values()) { + player.getWorld().dropItemNaturally(player.getLocation(), leftover); + } + } + + private void play(Player player, String key) { + if (!config.soundsEnabled()) { + return; + } + String soundName = config.soundName(key); + if (soundName == null || soundName.isBlank()) { + return; + } + try { + String soundKey = soundName.toLowerCase(Locale.ROOT).replace('_', '.'); + Sound sound = Registry.SOUNDS.get(NamespacedKey.minecraft(soundKey)); + if (sound == null) { + return; + } + player.playSound(player.getLocation(), sound, 0.7F, 1.0F); + } catch (IllegalArgumentException ignored) { + } + } +} diff --git a/src/main/java/com/yourname/premiumah/gui/GuiType.java b/src/main/java/com/yourname/premiumah/gui/GuiType.java new file mode 100644 index 0000000..cb1a7ca --- /dev/null +++ b/src/main/java/com/yourname/premiumah/gui/GuiType.java @@ -0,0 +1,11 @@ +package com.yourname.premiumah.gui; + +public enum GuiType { + MAIN, + BROWSE, + MY_LISTINGS, + CLAIMS, + SELL, + CONFIRM_BUY, + ADMIN +} diff --git a/src/main/java/com/yourname/premiumah/gui/SellSession.java b/src/main/java/com/yourname/premiumah/gui/SellSession.java new file mode 100644 index 0000000..d772004 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/gui/SellSession.java @@ -0,0 +1,63 @@ +package com.yourname.premiumah.gui; + +import org.bukkit.inventory.ItemStack; +import org.bukkit.scheduler.BukkitTask; + +public final class SellSession { + private ItemStack item; + private double price; + private volatile boolean awaitingPrice; + private volatile boolean completed; + private BukkitTask timeoutTask; + + public ItemStack item() { + return item == null ? null : item.clone(); + } + + public ItemStack rawItem() { + return item; + } + + public void item(ItemStack item) { + this.item = item == null ? null : item.clone(); + } + + public double price() { + return price; + } + + public void price(double price) { + this.price = price; + } + + public boolean awaitingPrice() { + return awaitingPrice; + } + + public void awaitingPrice(boolean awaitingPrice) { + this.awaitingPrice = awaitingPrice; + } + + public boolean completed() { + return completed; + } + + public void completed(boolean completed) { + this.completed = completed; + } + + public BukkitTask timeoutTask() { + return timeoutTask; + } + + public void timeoutTask(BukkitTask timeoutTask) { + this.timeoutTask = timeoutTask; + } + + public void cancelTimeout() { + if (timeoutTask != null) { + timeoutTask.cancel(); + timeoutTask = null; + } + } +} diff --git a/src/main/java/com/yourname/premiumah/listener/ChatInputListener.java b/src/main/java/com/yourname/premiumah/listener/ChatInputListener.java new file mode 100644 index 0000000..c2c2216 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/listener/ChatInputListener.java @@ -0,0 +1,20 @@ +package com.yourname.premiumah.listener; + +import com.yourname.premiumah.gui.GuiManager; +import io.papermc.paper.event.player.AsyncChatEvent; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +public final class ChatInputListener implements Listener { + private final GuiManager guiManager; + + public ChatInputListener(GuiManager guiManager) { + this.guiManager = guiManager; + } + + @EventHandler(priority = EventPriority.LOWEST) + public void onAsyncChat(AsyncChatEvent event) { + guiManager.handleChat(event); + } +} diff --git a/src/main/java/com/yourname/premiumah/listener/InventoryGuiListener.java b/src/main/java/com/yourname/premiumah/listener/InventoryGuiListener.java new file mode 100644 index 0000000..5c3dcb9 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/listener/InventoryGuiListener.java @@ -0,0 +1,31 @@ +package com.yourname.premiumah.listener; + +import com.yourname.premiumah.gui.GuiManager; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryDragEvent; + +public final class InventoryGuiListener implements Listener { + private final GuiManager guiManager; + + public InventoryGuiListener(GuiManager guiManager) { + this.guiManager = guiManager; + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent event) { + guiManager.handleClick(event); + } + + @EventHandler + public void onInventoryDrag(InventoryDragEvent event) { + guiManager.handleDrag(event); + } + + @EventHandler + public void onInventoryClose(InventoryCloseEvent event) { + guiManager.handleClose(event); + } +} diff --git a/src/main/java/com/yourname/premiumah/listener/PlayerSessionListener.java b/src/main/java/com/yourname/premiumah/listener/PlayerSessionListener.java new file mode 100644 index 0000000..08133b4 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/listener/PlayerSessionListener.java @@ -0,0 +1,19 @@ +package com.yourname.premiumah.listener; + +import com.yourname.premiumah.gui.GuiManager; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerQuitEvent; + +public final class PlayerSessionListener implements Listener { + private final GuiManager guiManager; + + public PlayerSessionListener(GuiManager guiManager) { + this.guiManager = guiManager; + } + + @EventHandler + public void onQuit(PlayerQuitEvent event) { + guiManager.handleQuit(event.getPlayer()); + } +} diff --git a/src/main/java/com/yourname/premiumah/manager/AuctionHouseManager.java b/src/main/java/com/yourname/premiumah/manager/AuctionHouseManager.java new file mode 100644 index 0000000..f952b3f --- /dev/null +++ b/src/main/java/com/yourname/premiumah/manager/AuctionHouseManager.java @@ -0,0 +1,437 @@ +package com.yourname.premiumah.manager; + +import com.yourname.premiumah.config.ConfigManager; +import com.yourname.premiumah.config.MessageManager; +import com.yourname.premiumah.economy.EconomyService; +import com.yourname.premiumah.model.ActionResult; +import com.yourname.premiumah.model.ClaimReason; +import com.yourname.premiumah.model.ClaimRecord; +import com.yourname.premiumah.model.ClaimType; +import com.yourname.premiumah.model.Listing; +import com.yourname.premiumah.model.ListingCreationResult; +import com.yourname.premiumah.model.ListingStatus; +import com.yourname.premiumah.storage.StorageManager; +import com.yourname.premiumah.util.IdGenerator; +import com.yourname.premiumah.util.InventoryUtil; +import com.yourname.premiumah.util.MaterialUtil; +import com.yourname.premiumah.util.TextUtil; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitTask; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; + +public final class AuctionHouseManager { + private final JavaPlugin plugin; + private final ConfigManager config; + private final MessageManager messages; + private final StorageManager storage; + private final ListingManager listings; + private final ClaimManager claims; + private final EconomyService economy; + private BukkitTask expirationTask; + + public AuctionHouseManager(JavaPlugin plugin, + ConfigManager config, + MessageManager messages, + StorageManager storage, + ListingManager listings, + ClaimManager claims, + EconomyService economy) { + this.plugin = plugin; + this.config = config; + this.messages = messages; + this.storage = storage; + this.listings = listings; + this.claims = claims; + this.economy = economy; + } + + public void startTasks() { + stopTasks(); + expirationTask = Bukkit.getScheduler().runTaskTimer(plugin, this::expireListings, 100L, config.listingExpireCheckTicks()); + } + + public void stopTasks() { + if (expirationTask != null) { + expirationTask.cancel(); + expirationTask = null; + } + } + + public boolean marketplaceReady() { + return config.economyEnabled() && economy.isAvailable(); + } + + public synchronized void saveAll() { + listings.saveToStorage(); + claims.saveToStorage(); + storage.save(); + } + + public synchronized ListingCreationResult createListing(Player seller, ItemStack item, double price) { + if (!seller.hasPermission("premiumah.sell")) { + return ListingCreationResult.fail("no-permission", Map.of()); + } + if (!marketplaceReady()) { + return ListingCreationResult.fail("economy-unavailable", Map.of()); + } + if (InventoryUtil.isAir(item)) { + return ListingCreationResult.fail("no-item-in-hand", Map.of()); + } + if (!Double.isFinite(price) || price <= 0.0D) { + return ListingCreationResult.fail("invalid-price", Map.of()); + } + + boolean bypassRestrictions = seller.hasPermission("premiumah.bypass.restrictions"); + if (!bypassRestrictions && price < config.minPrice()) { + return ListingCreationResult.fail("price-too-low", Map.of("min", economy.format(config.minPrice()))); + } + if (!bypassRestrictions && price > config.maxPrice()) { + return ListingCreationResult.fail("price-too-high", Map.of("max", economy.format(config.maxPrice()))); + } + if (!config.isItemAllowed(seller, item.getType())) { + return ListingCreationResult.fail("item-blocked", Map.of()); + } + int limit = config.listingLimit(seller); + if (listings.activeCount(seller.getUniqueId()) >= limit) { + return ListingCreationResult.fail("listing-limit", Map.of("limit", String.valueOf(limit))); + } + + double fee = seller.hasPermission("premiumah.bypass.fees") ? 0.0D : (config.listingFeeEnabled() ? config.listingFee() : 0.0D); + if (fee > 0.0D) { + if (!economy.has(seller, fee)) { + return ListingCreationResult.fail("not-enough-money", Map.of("price", economy.format(fee))); + } + if (!economy.withdraw(seller, fee)) { + return ListingCreationResult.fail("economy-unavailable", Map.of()); + } + } + + String id = nextListingId(); + long now = System.currentTimeMillis(); + Listing listing = new Listing( + id, + seller.getUniqueId(), + seller.getName(), + item.clone(), + price, + now, + now + config.defaultListingDurationMillis(), + ListingStatus.ACTIVE, + null, + null, + now + ); + listings.add(listing); + saveAll(); + + Map placeholders = placeholders( + "id", listing.id(), + "item", itemName(item), + "price", economy.format(price), + "fee", economy.format(fee) + ); + return ListingCreationResult.success(listing, fee > 0.0D ? "listing-created-fee" : "listing-created", placeholders); + } + + public synchronized ActionResult buyListing(Player buyer, String listingId) { + if (!buyer.hasPermission("premiumah.buy")) { + return ActionResult.fail("no-permission", Map.of()); + } + if (!marketplaceReady()) { + return ActionResult.fail("economy-unavailable", Map.of()); + } + + Optional optional = listings.get(listingId); + if (optional.isEmpty()) { + return ActionResult.fail("listing-not-found", Map.of()); + } + Listing listing = optional.get(); + long now = System.currentTimeMillis(); + if (!listing.isActive(now)) { + if (listing.status() == ListingStatus.ACTIVE && listing.expiresAt() <= now) { + expireListingInternal(listing); + saveAll(); + } + return ActionResult.fail("listing-no-longer-available", Map.of()); + } + if (!config.allowSellerSelfPurchase() && listing.sellerUuid().equals(buyer.getUniqueId())) { + return ActionResult.fail("cannot-buy-own", Map.of()); + } + + ItemStack item = listing.item(); + boolean fitsInventory = InventoryUtil.canFit(buyer.getInventory(), item); + if (!fitsInventory && (config.requireInventorySpaceToBuy() || !config.claimFullInventoryPurchases())) { + return ActionResult.fail("inventory-full", Map.of()); + } + if (!economy.has(buyer, listing.price())) { + return ActionResult.fail("not-enough-money", Map.of("price", economy.format(listing.price()))); + } + if (!economy.withdraw(buyer, listing.price())) { + return ActionResult.fail("economy-unavailable", Map.of()); + } + + double sellerAmount = sellerProceeds(listing); + OfflinePlayer seller = Bukkit.getOfflinePlayer(listing.sellerUuid()); + if (config.instantSellerPayment()) { + if (!economy.deposit(seller, sellerAmount)) { + economy.deposit(buyer, listing.price()); + return ActionResult.fail("economy-unavailable", Map.of()); + } + } else { + addMoneyClaim(listing.sellerUuid(), listing.sellerName(), listing.id(), sellerAmount, ClaimReason.SALE_PAYMENT); + } + + listing.soldTo(buyer.getUniqueId(), buyer.getName()); + + boolean deliveredToInventory = true; + if (fitsInventory) { + Map leftovers = InventoryUtil.addItem(buyer.getInventory(), item); + if (!leftovers.isEmpty()) { + deliveredToInventory = false; + for (ItemStack leftover : leftovers.values()) { + addItemClaim(buyer.getUniqueId(), buyer.getName(), listing.id(), leftover, ClaimReason.PURCHASE_DELIVERY); + } + } + } else { + deliveredToInventory = false; + addItemClaim(buyer.getUniqueId(), buyer.getName(), listing.id(), item, ClaimReason.PURCHASE_DELIVERY); + } + + saveAll(); + Player onlineSeller = Bukkit.getPlayer(listing.sellerUuid()); + if (onlineSeller != null) { + messages.send(onlineSeller, "sold-notify", placeholders( + "buyer", buyer.getName(), + "price", economy.format(listing.price()), + "item", itemName(item), + "id", listing.id() + )); + } + + return ActionResult.success(deliveredToInventory ? "purchase-success" : "purchase-claim", placeholders( + "price", economy.format(listing.price()), + "item", itemName(item), + "seller", listing.sellerName(), + "id", listing.id() + )); + } + + public synchronized ActionResult cancelListing(Player player, String listingId) { + if (!config.allowCancelActiveListings()) { + return ActionResult.fail("listing-no-longer-available", Map.of()); + } + Optional optional = listings.get(listingId); + if (optional.isEmpty()) { + return ActionResult.fail("listing-not-found", Map.of()); + } + Listing listing = optional.get(); + if (!listing.sellerUuid().equals(player.getUniqueId()) && !player.hasPermission("premiumah.admin.remove")) { + return ActionResult.fail("no-permission", Map.of()); + } + if (!listing.isActive(System.currentTimeMillis())) { + return ActionResult.fail("listing-no-longer-available", Map.of()); + } + listing.status(ListingStatus.CANCELLED); + addItemClaim(listing.sellerUuid(), listing.sellerName(), listing.id(), listing.item(), ClaimReason.CANCELLED_LISTING); + saveAll(); + return ActionResult.success("listing-cancelled", placeholders("id", listing.id())); + } + + public synchronized ActionResult adminRemoveListing(String listingId) { + Optional optional = listings.get(listingId); + if (optional.isEmpty()) { + return ActionResult.fail("listing-not-found", Map.of()); + } + Listing listing = optional.get(); + if (listing.status() == ListingStatus.ACTIVE) { + listing.status(ListingStatus.REMOVED); + if (config.reclaimAdminRemovedItems()) { + addItemClaim(listing.sellerUuid(), listing.sellerName(), listing.id(), listing.item(), ClaimReason.ADMIN_REMOVED); + } + } else { + listing.status(ListingStatus.REMOVED); + } + saveAll(); + Player seller = Bukkit.getPlayer(listing.sellerUuid()); + if (seller != null) { + messages.send(seller, "listing-removed-admin", placeholders("id", listing.id())); + } + return ActionResult.success("listing-removed-admin", placeholders("id", listing.id())); + } + + public synchronized ActionResult forceExpireListing(String listingId) { + Optional optional = listings.get(listingId); + if (optional.isEmpty()) { + return ActionResult.fail("listing-not-found", Map.of()); + } + Listing listing = optional.get(); + if (listing.status() != ListingStatus.ACTIVE) { + return ActionResult.fail("listing-no-longer-available", Map.of()); + } + expireListingInternal(listing); + saveAll(); + return ActionResult.success("listing-expired", placeholders("id", listing.id())); + } + + public synchronized ActionResult claim(Player player, String claimId) { + if (!player.hasPermission("premiumah.expired")) { + return ActionResult.fail("no-permission", Map.of()); + } + Optional optional = claims.get(claimId); + if (optional.isEmpty()) { + return ActionResult.fail("nothing-to-claim", Map.of()); + } + ClaimRecord claim = optional.get(); + if (!claim.ownerUuid().equals(player.getUniqueId())) { + return ActionResult.fail("no-permission", Map.of()); + } + + if (claim.type() == ClaimType.MONEY) { + if (!marketplaceReady()) { + return ActionResult.fail("economy-unavailable", Map.of()); + } + if (!economy.deposit(player, claim.moneyAmount())) { + return ActionResult.fail("economy-unavailable", Map.of()); + } + claims.remove(claim.id()); + saveAll(); + return ActionResult.success("item-reclaimed", placeholders("item", economy.format(claim.moneyAmount()), "id", claim.listingId())); + } + + ItemStack item = claim.item(); + if (InventoryUtil.isAir(item)) { + claims.remove(claim.id()); + saveAll(); + return ActionResult.fail("nothing-to-claim", Map.of()); + } + if (!InventoryUtil.canFit(player.getInventory(), item)) { + return ActionResult.fail("inventory-full", Map.of()); + } + Map leftovers = InventoryUtil.addItem(player.getInventory(), item); + if (!leftovers.isEmpty()) { + return ActionResult.fail("inventory-full", Map.of()); + } + claims.remove(claim.id()); + markListingClaimedIfComplete(claim.listingId()); + saveAll(); + return ActionResult.success("item-reclaimed", placeholders("item", itemName(item), "id", claim.listingId())); + } + + public synchronized void expireListings() { + long now = System.currentTimeMillis(); + boolean changed = false; + for (Listing listing : listings.expiredActiveListings(now)) { + expireListingInternal(listing); + Player seller = Bukkit.getPlayer(listing.sellerUuid()); + if (seller != null) { + messages.send(seller, "listing-expired", placeholders("id", listing.id())); + } + changed = true; + } + if (changed) { + saveAll(); + } + } + + public ClaimRecord addItemClaim(UUID ownerUuid, String ownerName, String listingId, ItemStack item, ClaimReason reason) { + ClaimRecord claim = new ClaimRecord(nextClaimId(), ownerUuid, ownerName, listingId, ClaimType.ITEM, reason, item, 0.0D, System.currentTimeMillis()); + claims.add(claim); + return claim; + } + + public ClaimRecord addMoneyClaim(UUID ownerUuid, String ownerName, String listingId, double amount, ClaimReason reason) { + ClaimRecord claim = new ClaimRecord(nextClaimId(), ownerUuid, ownerName, listingId, ClaimType.MONEY, reason, null, amount, System.currentTimeMillis()); + claims.add(claim); + return claim; + } + + public double sellerProceeds(Listing listing) { + double amount = listing.price(); + if (!config.salesTaxEnabled()) { + return amount; + } + Player seller = Bukkit.getPlayer(listing.sellerUuid()); + if (seller != null && seller.hasPermission("premiumah.bypass.tax")) { + return amount; + } + double tax = amount * (config.salesTaxPercent() / 100.0D); + return Math.max(0.0D, amount - tax); + } + + public String formatMoney(double amount) { + return economy.format(amount); + } + + public String itemName(ItemStack item) { + if (InventoryUtil.isAir(item)) { + return "Air"; + } + ItemMeta meta = item.getItemMeta(); + String name; + if (meta != null && meta.hasDisplayName()) { + name = TextUtil.plain(meta.displayName()); + } else { + name = MaterialUtil.pretty(item.getType()); + } + if (item.getAmount() > 1) { + return name + " x" + item.getAmount(); + } + return name; + } + + private void expireListingInternal(Listing listing) { + if (listing.status() != ListingStatus.ACTIVE) { + return; + } + listing.status(ListingStatus.EXPIRED); + if (!claims.hasItemClaimForListing(listing.id())) { + addItemClaim(listing.sellerUuid(), listing.sellerName(), listing.id(), listing.item(), ClaimReason.EXPIRED_LISTING); + } + } + + private void markListingClaimedIfComplete(String listingId) { + if (listingId == null || claims.hasItemClaimForListing(listingId)) { + return; + } + listings.get(listingId).ifPresent(listing -> { + if (listing.status() == ListingStatus.EXPIRED + || listing.status() == ListingStatus.CANCELLED + || listing.status() == ListingStatus.REMOVED) { + listing.status(ListingStatus.CLAIMED); + } + }); + } + + private String nextListingId() { + String id; + do { + id = IdGenerator.listingId(); + } while (listings.contains(id)); + return id; + } + + private String nextClaimId() { + String id; + do { + id = IdGenerator.claimId(); + } while (claims.get(id).isPresent()); + return id; + } + + private Map placeholders(String... pairs) { + Map map = new HashMap<>(); + for (int i = 0; i + 1 < pairs.length; i += 2) { + map.put(pairs[i], pairs[i + 1] == null ? "" : pairs[i + 1]); + } + return map; + } +} diff --git a/src/main/java/com/yourname/premiumah/manager/ClaimManager.java b/src/main/java/com/yourname/premiumah/manager/ClaimManager.java new file mode 100644 index 0000000..0daa746 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/manager/ClaimManager.java @@ -0,0 +1,67 @@ +package com.yourname.premiumah.manager; + +import com.yourname.premiumah.model.ClaimRecord; +import com.yourname.premiumah.model.ClaimType; +import com.yourname.premiumah.storage.StorageManager; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import java.util.stream.Collectors; + +public final class ClaimManager { + private final StorageManager storageManager; + private final Map claims = new LinkedHashMap<>(); + + public ClaimManager(StorageManager storageManager) { + this.storageManager = storageManager; + } + + public synchronized void loadFromStorage() { + claims.clear(); + claims.putAll(storageManager.claimsSnapshot()); + } + + public synchronized void saveToStorage() { + storageManager.replaceClaims(claims); + } + + public synchronized void clear() { + claims.clear(); + } + + public synchronized void add(ClaimRecord claim) { + claims.put(claim.id(), claim); + } + + public synchronized Optional get(String id) { + if (id == null) { + return Optional.empty(); + } + return Optional.ofNullable(claims.get(id)); + } + + public synchronized void remove(String id) { + claims.remove(id); + } + + public synchronized List claimsFor(UUID ownerUuid) { + return claims.values().stream() + .filter(claim -> claim.ownerUuid().equals(ownerUuid)) + .sorted(Comparator.comparingLong(ClaimRecord::createdAt).reversed()) + .collect(Collectors.toCollection(ArrayList::new)); + } + + public synchronized boolean hasClaims(UUID ownerUuid) { + return claims.values().stream().anyMatch(claim -> claim.ownerUuid().equals(ownerUuid)); + } + + public synchronized boolean hasItemClaimForListing(String listingId) { + return claims.values().stream() + .anyMatch(claim -> claim.type() == ClaimType.ITEM && listingId != null && listingId.equals(claim.listingId())); + } +} diff --git a/src/main/java/com/yourname/premiumah/manager/ListingManager.java b/src/main/java/com/yourname/premiumah/manager/ListingManager.java new file mode 100644 index 0000000..078d15b --- /dev/null +++ b/src/main/java/com/yourname/premiumah/manager/ListingManager.java @@ -0,0 +1,110 @@ +package com.yourname.premiumah.manager; + +import com.yourname.premiumah.model.Listing; +import com.yourname.premiumah.model.ListingStatus; +import com.yourname.premiumah.model.SortMode; +import com.yourname.premiumah.storage.StorageManager; +import org.bukkit.Material; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import java.util.stream.Collectors; + +public final class ListingManager { + private final StorageManager storageManager; + private final Map listings = new LinkedHashMap<>(); + + public ListingManager(StorageManager storageManager) { + this.storageManager = storageManager; + } + + public synchronized void loadFromStorage() { + listings.clear(); + listings.putAll(storageManager.listingsSnapshot()); + } + + public synchronized void saveToStorage() { + storageManager.replaceListings(listings); + } + + public synchronized void clear() { + listings.clear(); + } + + public synchronized Optional get(String id) { + if (id == null) { + return Optional.empty(); + } + return Optional.ofNullable(listings.get(id.toUpperCase())); + } + + public synchronized boolean contains(String id) { + return listings.containsKey(id.toUpperCase()); + } + + public synchronized void add(Listing listing) { + listings.put(listing.id(), listing); + } + + public synchronized Collection all() { + return new ArrayList<>(listings.values()); + } + + public synchronized List activeListings(SortMode sortMode, Material filter) { + long now = System.currentTimeMillis(); + return listings.values().stream() + .filter(listing -> listing.isActive(now)) + .filter(listing -> filter == null || listing.rawItem().getType() == filter) + .sorted(comparator(sortMode)) + .collect(Collectors.toList()); + } + + public synchronized List activeListingsBySeller(UUID sellerUuid, SortMode sortMode) { + long now = System.currentTimeMillis(); + return listings.values().stream() + .filter(listing -> listing.sellerUuid().equals(sellerUuid)) + .filter(listing -> listing.isActive(now)) + .sorted(comparator(sortMode)) + .collect(Collectors.toList()); + } + + public synchronized List activeListingsBySellerName(String sellerName, SortMode sortMode) { + long now = System.currentTimeMillis(); + String normalized = sellerName == null ? "" : sellerName.toLowerCase(); + return listings.values().stream() + .filter(listing -> listing.sellerName().toLowerCase().equals(normalized)) + .filter(listing -> listing.isActive(now)) + .sorted(comparator(sortMode)) + .collect(Collectors.toList()); + } + + public synchronized int activeCount(UUID sellerUuid) { + long now = System.currentTimeMillis(); + return (int) listings.values().stream() + .filter(listing -> listing.sellerUuid().equals(sellerUuid)) + .filter(listing -> listing.isActive(now)) + .count(); + } + + public synchronized List expiredActiveListings(long now) { + return listings.values().stream() + .filter(listing -> listing.status() == ListingStatus.ACTIVE) + .filter(listing -> listing.expiresAt() <= now) + .collect(Collectors.toList()); + } + + private Comparator comparator(SortMode sortMode) { + return switch (sortMode == null ? SortMode.NEWEST : sortMode) { + case OLDEST -> Comparator.comparingLong(Listing::createdAt); + case LOWEST_PRICE -> Comparator.comparingDouble(Listing::price).thenComparing(Comparator.comparingLong(Listing::createdAt).reversed()); + case HIGHEST_PRICE -> Comparator.comparingDouble(Listing::price).reversed().thenComparing(Comparator.comparingLong(Listing::createdAt).reversed()); + case NEWEST -> Comparator.comparingLong(Listing::createdAt).reversed(); + }; + } +} diff --git a/src/main/java/com/yourname/premiumah/model/ActionResult.java b/src/main/java/com/yourname/premiumah/model/ActionResult.java new file mode 100644 index 0000000..57009ed --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/ActionResult.java @@ -0,0 +1,14 @@ +package com.yourname.premiumah.model; + +import java.util.Collections; +import java.util.Map; + +public record ActionResult(boolean success, String messageKey, Map placeholders) { + public static ActionResult success(String messageKey, Map placeholders) { + return new ActionResult(true, messageKey, placeholders == null ? Collections.emptyMap() : placeholders); + } + + public static ActionResult fail(String messageKey, Map placeholders) { + return new ActionResult(false, messageKey, placeholders == null ? Collections.emptyMap() : placeholders); + } +} diff --git a/src/main/java/com/yourname/premiumah/model/ClaimReason.java b/src/main/java/com/yourname/premiumah/model/ClaimReason.java new file mode 100644 index 0000000..61757c3 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/ClaimReason.java @@ -0,0 +1,19 @@ +package com.yourname.premiumah.model; + +public enum ClaimReason { + EXPIRED_LISTING("Expired Listing"), + ADMIN_REMOVED("Admin Removed"), + CANCELLED_LISTING("Cancelled Listing"), + PURCHASE_DELIVERY("Purchased Item"), + SALE_PAYMENT("Sale Payment"); + + private final String displayName; + + ClaimReason(String displayName) { + this.displayName = displayName; + } + + public String displayName() { + return displayName; + } +} diff --git a/src/main/java/com/yourname/premiumah/model/ClaimRecord.java b/src/main/java/com/yourname/premiumah/model/ClaimRecord.java new file mode 100644 index 0000000..b015bc5 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/ClaimRecord.java @@ -0,0 +1,86 @@ +package com.yourname.premiumah.model; + +import org.bukkit.inventory.ItemStack; + +import java.util.Objects; +import java.util.UUID; + +public final class ClaimRecord { + private final String id; + private final UUID ownerUuid; + private final String ownerName; + private final String listingId; + private final ClaimType type; + private final ClaimReason reason; + private ItemStack item; + private double moneyAmount; + private final long createdAt; + + public ClaimRecord(String id, + UUID ownerUuid, + String ownerName, + String listingId, + ClaimType type, + ClaimReason reason, + ItemStack item, + double moneyAmount, + long createdAt) { + this.id = Objects.requireNonNull(id, "id"); + this.ownerUuid = Objects.requireNonNull(ownerUuid, "ownerUuid"); + this.ownerName = Objects.requireNonNullElse(ownerName, "Unknown"); + this.listingId = listingId; + this.type = Objects.requireNonNull(type, "type"); + this.reason = Objects.requireNonNull(reason, "reason"); + this.item = item == null ? null : item.clone(); + this.moneyAmount = moneyAmount; + this.createdAt = createdAt; + } + + public String id() { + return id; + } + + public UUID ownerUuid() { + return ownerUuid; + } + + public String ownerName() { + return ownerName; + } + + public String listingId() { + return listingId; + } + + public ClaimType type() { + return type; + } + + public ClaimReason reason() { + return reason; + } + + public ItemStack item() { + return item == null ? null : item.clone(); + } + + public ItemStack rawItem() { + return item; + } + + public void item(ItemStack item) { + this.item = item == null ? null : item.clone(); + } + + public double moneyAmount() { + return moneyAmount; + } + + public void moneyAmount(double moneyAmount) { + this.moneyAmount = moneyAmount; + } + + public long createdAt() { + return createdAt; + } +} diff --git a/src/main/java/com/yourname/premiumah/model/ClaimType.java b/src/main/java/com/yourname/premiumah/model/ClaimType.java new file mode 100644 index 0000000..611602e --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/ClaimType.java @@ -0,0 +1,6 @@ +package com.yourname.premiumah.model; + +public enum ClaimType { + ITEM, + MONEY +} diff --git a/src/main/java/com/yourname/premiumah/model/Listing.java b/src/main/java/com/yourname/premiumah/model/Listing.java new file mode 100644 index 0000000..c6d3e59 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/Listing.java @@ -0,0 +1,112 @@ +package com.yourname.premiumah.model; + +import org.bukkit.inventory.ItemStack; + +import java.util.Objects; +import java.util.UUID; + +public final class Listing { + private final String id; + private final UUID sellerUuid; + private final String sellerName; + private final ItemStack item; + private final double price; + private final long createdAt; + private final long expiresAt; + private ListingStatus status; + private UUID buyerUuid; + private String buyerName; + private long updatedAt; + + public Listing(String id, + UUID sellerUuid, + String sellerName, + ItemStack item, + double price, + long createdAt, + long expiresAt, + ListingStatus status, + UUID buyerUuid, + String buyerName, + long updatedAt) { + this.id = Objects.requireNonNull(id, "id"); + this.sellerUuid = Objects.requireNonNull(sellerUuid, "sellerUuid"); + this.sellerName = Objects.requireNonNullElse(sellerName, "Unknown"); + this.item = Objects.requireNonNull(item, "item").clone(); + this.price = price; + this.createdAt = createdAt; + this.expiresAt = expiresAt; + this.status = Objects.requireNonNull(status, "status"); + this.buyerUuid = buyerUuid; + this.buyerName = buyerName; + this.updatedAt = updatedAt; + } + + public String id() { + return id; + } + + public UUID sellerUuid() { + return sellerUuid; + } + + public String sellerName() { + return sellerName; + } + + public ItemStack item() { + return item.clone(); + } + + public ItemStack rawItem() { + return item; + } + + public double price() { + return price; + } + + public long createdAt() { + return createdAt; + } + + public long expiresAt() { + return expiresAt; + } + + public ListingStatus status() { + return status; + } + + public void status(ListingStatus status) { + this.status = Objects.requireNonNull(status, "status"); + touch(); + } + + public UUID buyerUuid() { + return buyerUuid; + } + + public String buyerName() { + return buyerName; + } + + public long updatedAt() { + return updatedAt; + } + + public boolean isActive(long now) { + return status == ListingStatus.ACTIVE && expiresAt > now; + } + + public void soldTo(UUID buyerUuid, String buyerName) { + this.status = ListingStatus.SOLD; + this.buyerUuid = buyerUuid; + this.buyerName = buyerName; + touch(); + } + + private void touch() { + this.updatedAt = System.currentTimeMillis(); + } +} diff --git a/src/main/java/com/yourname/premiumah/model/ListingCreationResult.java b/src/main/java/com/yourname/premiumah/model/ListingCreationResult.java new file mode 100644 index 0000000..26392a4 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/ListingCreationResult.java @@ -0,0 +1,14 @@ +package com.yourname.premiumah.model; + +import java.util.Collections; +import java.util.Map; + +public record ListingCreationResult(boolean success, Listing listing, String messageKey, Map placeholders) { + public static ListingCreationResult success(Listing listing, String messageKey, Map placeholders) { + return new ListingCreationResult(true, listing, messageKey, placeholders == null ? Collections.emptyMap() : placeholders); + } + + public static ListingCreationResult fail(String messageKey, Map placeholders) { + return new ListingCreationResult(false, null, messageKey, placeholders == null ? Collections.emptyMap() : placeholders); + } +} diff --git a/src/main/java/com/yourname/premiumah/model/ListingStatus.java b/src/main/java/com/yourname/premiumah/model/ListingStatus.java new file mode 100644 index 0000000..c8e6e53 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/ListingStatus.java @@ -0,0 +1,10 @@ +package com.yourname.premiumah.model; + +public enum ListingStatus { + ACTIVE, + SOLD, + EXPIRED, + CLAIMED, + REMOVED, + CANCELLED +} diff --git a/src/main/java/com/yourname/premiumah/model/SortMode.java b/src/main/java/com/yourname/premiumah/model/SortMode.java new file mode 100644 index 0000000..273602e --- /dev/null +++ b/src/main/java/com/yourname/premiumah/model/SortMode.java @@ -0,0 +1,36 @@ +package com.yourname.premiumah.model; + +import java.util.Locale; + +public enum SortMode { + NEWEST("Newest"), + OLDEST("Oldest"), + LOWEST_PRICE("Lowest Price"), + HIGHEST_PRICE("Highest Price"); + + private final String displayName; + + SortMode(String displayName) { + this.displayName = displayName; + } + + public String displayName() { + return displayName; + } + + public SortMode next() { + SortMode[] values = values(); + return values[(ordinal() + 1) % values.length]; + } + + public static SortMode fromString(String value, SortMode fallback) { + if (value == null || value.isBlank()) { + return fallback; + } + try { + return SortMode.valueOf(value.trim().toUpperCase(Locale.ROOT).replace('-', '_')); + } catch (IllegalArgumentException ignored) { + return fallback; + } + } +} diff --git a/src/main/java/com/yourname/premiumah/storage/ItemStackSerializer.java b/src/main/java/com/yourname/premiumah/storage/ItemStackSerializer.java new file mode 100644 index 0000000..81383f7 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/storage/ItemStackSerializer.java @@ -0,0 +1,34 @@ +package com.yourname.premiumah.storage; + +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.io.BukkitObjectInputStream; +import org.bukkit.util.io.BukkitObjectOutputStream; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Base64; + +final class ItemStackSerializer { + private ItemStackSerializer() { + } + + static String toBase64(ItemStack item) throws IOException { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + try (BukkitObjectOutputStream data = new BukkitObjectOutputStream(output)) { + data.writeObject(item); + } + return Base64.getEncoder().encodeToString(output.toByteArray()); + } + + static ItemStack fromBase64(String encoded) throws IOException, ClassNotFoundException { + byte[] bytes = Base64.getDecoder().decode(encoded); + try (BukkitObjectInputStream data = new BukkitObjectInputStream(new ByteArrayInputStream(bytes))) { + Object object = data.readObject(); + if (!(object instanceof ItemStack item)) { + throw new IOException("Serialized object was not an ItemStack."); + } + return item; + } + } +} diff --git a/src/main/java/com/yourname/premiumah/storage/StorageManager.java b/src/main/java/com/yourname/premiumah/storage/StorageManager.java new file mode 100644 index 0000000..c21772e --- /dev/null +++ b/src/main/java/com/yourname/premiumah/storage/StorageManager.java @@ -0,0 +1,448 @@ +package com.yourname.premiumah.storage; + +import com.yourname.premiumah.model.ClaimReason; +import com.yourname.premiumah.model.ClaimRecord; +import com.yourname.premiumah.model.ClaimType; +import com.yourname.premiumah.model.Listing; +import com.yourname.premiumah.model.ListingStatus; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.UUID; + +public final class StorageManager { + private static final String LEGACY_IMPORT_KEY = "legacy_yaml_imported"; + + private final JavaPlugin plugin; + private File databaseFile; + private File legacyYamlFile; + private Connection connection; + private final Map listings = new LinkedHashMap<>(); + private final Map claims = new LinkedHashMap<>(); + + public StorageManager(JavaPlugin plugin) { + this.plugin = plugin; + } + + public synchronized void load() { + plugin.getDataFolder().mkdirs(); + String databaseName = plugin.getConfig().getString("storage.sqlite-file", "auctionhouse.db"); + if (databaseName == null || databaseName.isBlank()) { + databaseName = "auctionhouse.db"; + } + this.databaseFile = new File(plugin.getDataFolder(), databaseName); + this.legacyYamlFile = new File(plugin.getDataFolder(), "data.yml"); + + listings.clear(); + claims.clear(); + try { + connect(); + createSchema(); + loadListingsFromDatabase(); + loadClaimsFromDatabase(); + importLegacyYamlIfNeeded(); + plugin.getLogger().info("Loaded " + listings.size() + " listings and " + claims.size() + " claims from SQLite."); + } catch (SQLException exception) { + plugin.getLogger().severe("Failed to load SQLite storage: " + exception.getMessage()); + } + } + + public synchronized void save() { + try { + connect(); + connection.setAutoCommit(false); + try (Statement statement = connection.createStatement()) { + statement.executeUpdate("DELETE FROM listings"); + statement.executeUpdate("DELETE FROM claims"); + } + saveListings(); + saveClaims(); + connection.commit(); + } catch (SQLException | IOException exception) { + rollbackQuietly(); + plugin.getLogger().severe("Failed to save SQLite storage: " + exception.getMessage()); + } finally { + setAutoCommitQuietly(true); + } + } + + public synchronized void close() { + if (connection == null) { + return; + } + try { + connection.close(); + } catch (SQLException exception) { + plugin.getLogger().warning("Failed to close SQLite connection: " + exception.getMessage()); + } finally { + connection = null; + } + } + + public synchronized Map listingsSnapshot() { + return new LinkedHashMap<>(listings); + } + + public synchronized Map claimsSnapshot() { + return new LinkedHashMap<>(claims); + } + + public synchronized void replaceListings(Map replacement) { + listings.clear(); + listings.putAll(replacement); + } + + public synchronized void replaceClaims(Map replacement) { + claims.clear(); + claims.putAll(replacement); + } + + private void connect() throws SQLException { + if (connection != null && !connection.isClosed()) { + return; + } + try { + Class.forName("org.sqlite.JDBC"); + } catch (ClassNotFoundException exception) { + throw new SQLException("SQLite JDBC driver is missing from the plugin jar.", exception); + } + connection = DriverManager.getConnection("jdbc:sqlite:" + databaseFile.getAbsolutePath()); + try (Statement statement = connection.createStatement()) { + statement.execute("PRAGMA busy_timeout = 5000"); + statement.execute("PRAGMA foreign_keys = ON"); + statement.execute("PRAGMA journal_mode = WAL"); + } + } + + private void createSchema() throws SQLException { + try (Statement statement = connection.createStatement()) { + statement.executeUpdate(""" + CREATE TABLE IF NOT EXISTS metadata ( + key TEXT PRIMARY KEY, + value TEXT NOT NULL + ) + """); + statement.executeUpdate(""" + CREATE TABLE IF NOT EXISTS listings ( + id TEXT PRIMARY KEY, + seller_uuid TEXT NOT NULL, + seller_name TEXT NOT NULL, + item TEXT NOT NULL, + price REAL NOT NULL, + created_at INTEGER NOT NULL, + expires_at INTEGER NOT NULL, + status TEXT NOT NULL, + buyer_uuid TEXT, + buyer_name TEXT, + updated_at INTEGER NOT NULL + ) + """); + statement.executeUpdate("CREATE INDEX IF NOT EXISTS idx_listings_status_expires ON listings(status, expires_at)"); + statement.executeUpdate("CREATE INDEX IF NOT EXISTS idx_listings_seller ON listings(seller_uuid, status)"); + statement.executeUpdate(""" + CREATE TABLE IF NOT EXISTS claims ( + id TEXT PRIMARY KEY, + owner_uuid TEXT NOT NULL, + owner_name TEXT NOT NULL, + listing_id TEXT, + type TEXT NOT NULL, + reason TEXT NOT NULL, + item TEXT, + money_amount REAL NOT NULL, + created_at INTEGER NOT NULL + ) + """); + statement.executeUpdate("CREATE INDEX IF NOT EXISTS idx_claims_owner ON claims(owner_uuid, created_at)"); + statement.executeUpdate("CREATE INDEX IF NOT EXISTS idx_claims_listing ON claims(listing_id)"); + } + } + + private void loadListingsFromDatabase() throws SQLException { + String sql = """ + SELECT id, seller_uuid, seller_name, item, price, created_at, expires_at, status, + buyer_uuid, buyer_name, updated_at + FROM listings + ORDER BY created_at DESC + """; + try (PreparedStatement statement = connection.prepareStatement(sql); + ResultSet result = statement.executeQuery()) { + while (result.next()) { + String id = result.getString("id"); + try { + ItemStack item = ItemStackSerializer.fromBase64(result.getString("item")); + Listing listing = new Listing( + id, + UUID.fromString(result.getString("seller_uuid")), + result.getString("seller_name"), + item, + result.getDouble("price"), + result.getLong("created_at"), + result.getLong("expires_at"), + parseEnum(ListingStatus.class, result.getString("status"), ListingStatus.ACTIVE), + parseUuid(result.getString("buyer_uuid")), + result.getString("buyer_name"), + result.getLong("updated_at") + ); + listings.put(id, listing); + } catch (RuntimeException | IOException | ClassNotFoundException exception) { + plugin.getLogger().warning("Skipping invalid SQLite listing " + id + ": " + exception.getMessage()); + } + } + } + } + + private void loadClaimsFromDatabase() throws SQLException { + String sql = """ + SELECT id, owner_uuid, owner_name, listing_id, type, reason, item, money_amount, created_at + FROM claims + ORDER BY created_at DESC + """; + try (PreparedStatement statement = connection.prepareStatement(sql); + ResultSet result = statement.executeQuery()) { + while (result.next()) { + String id = result.getString("id"); + try { + ClaimType type = parseEnum(ClaimType.class, result.getString("type"), ClaimType.ITEM); + ItemStack item = null; + String encodedItem = result.getString("item"); + if (encodedItem != null && !encodedItem.isBlank()) { + item = ItemStackSerializer.fromBase64(encodedItem); + } + if (type == ClaimType.ITEM && item == null) { + plugin.getLogger().warning("Skipping SQLite item claim " + id + " because its item is missing."); + continue; + } + ClaimRecord claim = new ClaimRecord( + id, + UUID.fromString(result.getString("owner_uuid")), + result.getString("owner_name"), + result.getString("listing_id"), + type, + parseEnum(ClaimReason.class, result.getString("reason"), ClaimReason.EXPIRED_LISTING), + item, + result.getDouble("money_amount"), + result.getLong("created_at") + ); + claims.put(id, claim); + } catch (RuntimeException | IOException | ClassNotFoundException exception) { + plugin.getLogger().warning("Skipping invalid SQLite claim " + id + ": " + exception.getMessage()); + } + } + } + } + + private void saveListings() throws SQLException, IOException { + String sql = """ + INSERT INTO listings + (id, seller_uuid, seller_name, item, price, created_at, expires_at, status, buyer_uuid, buyer_name, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """; + try (PreparedStatement statement = connection.prepareStatement(sql)) { + for (Listing listing : listings.values()) { + statement.setString(1, listing.id()); + statement.setString(2, listing.sellerUuid().toString()); + statement.setString(3, listing.sellerName()); + statement.setString(4, ItemStackSerializer.toBase64(listing.rawItem())); + statement.setDouble(5, listing.price()); + statement.setLong(6, listing.createdAt()); + statement.setLong(7, listing.expiresAt()); + statement.setString(8, listing.status().name()); + statement.setString(9, listing.buyerUuid() == null ? null : listing.buyerUuid().toString()); + statement.setString(10, listing.buyerName()); + statement.setLong(11, listing.updatedAt()); + statement.addBatch(); + } + statement.executeBatch(); + } + } + + private void saveClaims() throws SQLException, IOException { + String sql = """ + INSERT INTO claims + (id, owner_uuid, owner_name, listing_id, type, reason, item, money_amount, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + """; + try (PreparedStatement statement = connection.prepareStatement(sql)) { + for (ClaimRecord claim : claims.values()) { + statement.setString(1, claim.id()); + statement.setString(2, claim.ownerUuid().toString()); + statement.setString(3, claim.ownerName()); + statement.setString(4, claim.listingId()); + statement.setString(5, claim.type().name()); + statement.setString(6, claim.reason().name()); + statement.setString(7, claim.rawItem() == null ? null : ItemStackSerializer.toBase64(claim.rawItem())); + statement.setDouble(8, claim.moneyAmount()); + statement.setLong(9, claim.createdAt()); + statement.addBatch(); + } + statement.executeBatch(); + } + } + + private void importLegacyYamlIfNeeded() throws SQLException { + if (!plugin.getConfig().getBoolean("storage.import-legacy-yaml", true) + || !listings.isEmpty() + || !claims.isEmpty() + || getMetadata(LEGACY_IMPORT_KEY).equals("true")) { + return; + } + if (legacyYamlFile == null || !legacyYamlFile.exists() || legacyYamlFile.length() == 0L) { + return; + } + + YamlConfiguration data = YamlConfiguration.loadConfiguration(legacyYamlFile); + int beforeListings = listings.size(); + int beforeClaims = claims.size(); + loadLegacyListings(data.getConfigurationSection("listings")); + loadLegacyClaims(data.getConfigurationSection("claims")); + setMetadata(LEGACY_IMPORT_KEY, "true"); + + int importedListings = listings.size() - beforeListings; + int importedClaims = claims.size() - beforeClaims; + if (importedListings > 0 || importedClaims > 0) { + plugin.getLogger().info("Imported " + importedListings + " listings and " + importedClaims + " claims from legacy data.yml."); + save(); + } + } + + private void loadLegacyListings(ConfigurationSection root) { + if (root == null) { + return; + } + for (String id : root.getKeys(false)) { + ConfigurationSection section = root.getConfigurationSection(id); + if (section == null) { + continue; + } + try { + ItemStack item = section.getItemStack("item"); + if (item == null) { + plugin.getLogger().warning("Skipping legacy listing " + id + " because its item is missing."); + continue; + } + Listing listing = new Listing( + id, + UUID.fromString(section.getString("seller-uuid", "")), + section.getString("seller-name", "Unknown"), + item, + section.getDouble("price"), + section.getLong("created-at"), + section.getLong("expires-at"), + parseEnum(ListingStatus.class, section.getString("status"), ListingStatus.ACTIVE), + parseUuid(section.getString("buyer-uuid")), + section.getString("buyer-name", null), + section.getLong("updated-at", section.getLong("created-at")) + ); + listings.put(id, listing); + } catch (RuntimeException exception) { + plugin.getLogger().warning("Skipping invalid legacy listing " + id + ": " + exception.getMessage()); + } + } + } + + private void loadLegacyClaims(ConfigurationSection root) { + if (root == null) { + return; + } + for (String id : root.getKeys(false)) { + ConfigurationSection section = root.getConfigurationSection(id); + if (section == null) { + continue; + } + try { + ClaimType type = parseEnum(ClaimType.class, section.getString("type"), ClaimType.ITEM); + ItemStack item = section.getItemStack("item"); + if (type == ClaimType.ITEM && item == null) { + plugin.getLogger().warning("Skipping legacy item claim " + id + " because its item is missing."); + continue; + } + ClaimRecord claim = new ClaimRecord( + id, + UUID.fromString(section.getString("owner-uuid", "")), + section.getString("owner-name", "Unknown"), + section.getString("listing-id", null), + type, + parseEnum(ClaimReason.class, section.getString("reason"), ClaimReason.EXPIRED_LISTING), + item, + section.getDouble("money-amount"), + section.getLong("created-at") + ); + claims.put(id, claim); + } catch (RuntimeException exception) { + plugin.getLogger().warning("Skipping invalid legacy claim " + id + ": " + exception.getMessage()); + } + } + } + + private String getMetadata(String key) throws SQLException { + try (PreparedStatement statement = connection.prepareStatement("SELECT value FROM metadata WHERE key = ?")) { + statement.setString(1, key); + try (ResultSet result = statement.executeQuery()) { + if (result.next()) { + return result.getString("value"); + } + } + } + return ""; + } + + private void setMetadata(String key, String value) throws SQLException { + try (PreparedStatement statement = connection.prepareStatement(""" + INSERT INTO metadata(key, value) + VALUES(?, ?) + ON CONFLICT(key) DO UPDATE SET value = excluded.value + """)) { + statement.setString(1, key); + statement.setString(2, value); + statement.executeUpdate(); + } + } + + private void rollbackQuietly() { + try { + if (connection != null) { + connection.rollback(); + } + } catch (SQLException ignored) { + } + } + + private void setAutoCommitQuietly(boolean autoCommit) { + try { + if (connection != null) { + connection.setAutoCommit(autoCommit); + } + } catch (SQLException ignored) { + } + } + + private UUID parseUuid(String raw) { + if (raw == null || raw.isBlank()) { + return null; + } + return UUID.fromString(raw); + } + + private > E parseEnum(Class type, String raw, E fallback) { + if (raw == null || raw.isBlank()) { + return fallback; + } + try { + return Enum.valueOf(type, raw); + } catch (IllegalArgumentException ignored) { + return fallback; + } + } +} diff --git a/src/main/java/com/yourname/premiumah/util/IdGenerator.java b/src/main/java/com/yourname/premiumah/util/IdGenerator.java new file mode 100644 index 0000000..3c283b7 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/util/IdGenerator.java @@ -0,0 +1,27 @@ +package com.yourname.premiumah.util; + +import java.security.SecureRandom; + +public final class IdGenerator { + private static final char[] ALPHABET = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789".toCharArray(); + private static final SecureRandom RANDOM = new SecureRandom(); + + private IdGenerator() { + } + + public static String listingId() { + return "AH-" + random(8); + } + + public static String claimId() { + return "CL-" + random(10); + } + + private static String random(int length) { + char[] chars = new char[length]; + for (int i = 0; i < length; i++) { + chars[i] = ALPHABET[RANDOM.nextInt(ALPHABET.length)]; + } + return new String(chars); + } +} diff --git a/src/main/java/com/yourname/premiumah/util/InventoryUtil.java b/src/main/java/com/yourname/premiumah/util/InventoryUtil.java new file mode 100644 index 0000000..ad35959 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/util/InventoryUtil.java @@ -0,0 +1,43 @@ +package com.yourname.premiumah.util; + +import org.bukkit.Material; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.HashMap; +import java.util.Map; + +public final class InventoryUtil { + private InventoryUtil() { + } + + public static boolean isAir(ItemStack item) { + return item == null || item.getType() == Material.AIR || item.getAmount() <= 0; + } + + public static boolean canFit(Inventory inventory, ItemStack item) { + if (isAir(item)) { + return true; + } + int remaining = item.getAmount(); + int max = item.getMaxStackSize(); + for (ItemStack slot : inventory.getStorageContents()) { + if (isAir(slot)) { + remaining -= max; + } else if (slot.isSimilar(item)) { + remaining -= Math.max(0, max - slot.getAmount()); + } + if (remaining <= 0) { + return true; + } + } + return false; + } + + public static Map addItem(Inventory inventory, ItemStack item) { + if (isAir(item)) { + return new HashMap<>(); + } + return inventory.addItem(item.clone()); + } +} diff --git a/src/main/java/com/yourname/premiumah/util/MaterialUtil.java b/src/main/java/com/yourname/premiumah/util/MaterialUtil.java new file mode 100644 index 0000000..a302d9b --- /dev/null +++ b/src/main/java/com/yourname/premiumah/util/MaterialUtil.java @@ -0,0 +1,42 @@ +package com.yourname.premiumah.util; + +import org.bukkit.Material; + +import java.util.Locale; +import java.util.Optional; + +public final class MaterialUtil { + private MaterialUtil() { + } + + public static Optional parse(String value) { + if (value == null || value.isBlank()) { + return Optional.empty(); + } + String normalized = value.trim().toUpperCase(Locale.ROOT).replace(' ', '_').replace('-', '_'); + try { + Material material = Material.valueOf(normalized); + return Optional.of(material); + } catch (IllegalArgumentException ignored) { + return Optional.empty(); + } + } + + public static String pretty(Material material) { + String lower = material.name().toLowerCase(Locale.ROOT).replace('_', ' '); + StringBuilder builder = new StringBuilder(lower.length()); + boolean cap = true; + for (char c : lower.toCharArray()) { + if (cap && Character.isLetter(c)) { + builder.append(Character.toUpperCase(c)); + cap = false; + } else { + builder.append(c); + } + if (c == ' ') { + cap = true; + } + } + return builder.toString(); + } +} diff --git a/src/main/java/com/yourname/premiumah/util/TextUtil.java b/src/main/java/com/yourname/premiumah/util/TextUtil.java new file mode 100644 index 0000000..2553e00 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/util/TextUtil.java @@ -0,0 +1,100 @@ +package com.yourname.premiumah.util; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; + +import java.util.Locale; + +public final class TextUtil { + private static final MiniMessage MINI = MiniMessage.miniMessage(); + private static final LegacyComponentSerializer LEGACY_AMPERSAND = LegacyComponentSerializer.legacyAmpersand(); + private static final LegacyComponentSerializer LEGACY_SECTION_HEX = LegacyComponentSerializer.builder() + .character('ยง') + .hexColors() + .useUnusualXRepeatedCharacterHexFormat() + .build(); + + private TextUtil() { + } + + public static Component component(String raw) { + if (raw == null || raw.isEmpty()) { + return Component.empty(); + } + String normalized = normalizeHexAmpersand(raw); + if (normalized.contains("<")) { + return MINI.deserialize(normalized); + } + return LEGACY_AMPERSAND.deserialize(normalized); + } + + public static String legacy(String raw) { + return LEGACY_SECTION_HEX.serialize(component(raw)); + } + + public static String plain(Component component) { + if (component == null) { + return ""; + } + return PlainTextComponentSerializer.plainText().serialize(component); + } + + public static String normalizeHexAmpersand(String raw) { + StringBuilder builder = new StringBuilder(raw.length() + 16); + for (int i = 0; i < raw.length(); i++) { + char c = raw.charAt(i); + if (c == '&' && i + 7 < raw.length() && raw.charAt(i + 1) == '#') { + String hex = raw.substring(i + 2, i + 8); + if (hex.chars().allMatch(TextUtil::isHex)) { + builder.append("<#").append(hex.toLowerCase(Locale.ROOT)).append(">"); + i += 7; + continue; + } + } + if (c == '&' && i + 1 < raw.length()) { + String tag = legacyTag(raw.charAt(i + 1)); + if (tag != null) { + builder.append(tag); + i++; + continue; + } + } + builder.append(c); + } + return builder.toString(); + } + + private static boolean isHex(int c) { + return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); + } + + private static String legacyTag(char code) { + return switch (Character.toLowerCase(code)) { + case '0' -> ""; + case '1' -> ""; + case '2' -> ""; + case '3' -> ""; + case '4' -> ""; + case '5' -> ""; + case '6' -> ""; + case '7' -> ""; + case '8' -> ""; + case '9' -> ""; + case 'a' -> ""; + case 'b' -> ""; + case 'c' -> ""; + case 'd' -> ""; + case 'e' -> ""; + case 'f' -> ""; + case 'k' -> ""; + case 'l' -> ""; + case 'm' -> ""; + case 'n' -> ""; + case 'o' -> ""; + case 'r' -> ""; + default -> null; + }; + } +} diff --git a/src/main/java/com/yourname/premiumah/util/TimeUtil.java b/src/main/java/com/yourname/premiumah/util/TimeUtil.java new file mode 100644 index 0000000..3c1d262 --- /dev/null +++ b/src/main/java/com/yourname/premiumah/util/TimeUtil.java @@ -0,0 +1,39 @@ +package com.yourname.premiumah.util; + +import java.time.Duration; + +public final class TimeUtil { + private TimeUtil() { + } + + public static String remaining(long untilMillis) { + long millis = Math.max(0L, untilMillis - System.currentTimeMillis()); + return compact(Duration.ofMillis(millis)); + } + + public static String age(long sinceMillis) { + long millis = Math.max(0L, System.currentTimeMillis() - sinceMillis); + return compact(Duration.ofMillis(millis)); + } + + public static String compact(Duration duration) { + long seconds = Math.max(0L, duration.toSeconds()); + long days = seconds / 86400; + seconds %= 86400; + long hours = seconds / 3600; + seconds %= 3600; + long minutes = seconds / 60; + seconds %= 60; + + if (days > 0) { + return days + "d " + hours + "h"; + } + if (hours > 0) { + return hours + "h " + minutes + "m"; + } + if (minutes > 0) { + return minutes + "m " + seconds + "s"; + } + return seconds + "s"; + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..2d196bd --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,168 @@ +settings: + debug: false + command-prefix: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด›A4A2A&lส™B6B35&lแด€&#A8873F&lษข&#D4AF37&lแด&#B9C63F&lแด„&r <#6A3F24>ยป" + allow-seller-self-purchase: false + require-inventory-space-to-buy: false + chat-price-timeout-seconds: 45 + click-debounce-millis: 350 + listing-expire-check-seconds: 60 + default-sort: "NEWEST" + +storage: + sqlite-file: "auctionhouse.db" + import-legacy-yaml: true + +economy: + enabled: true + require-economy: true + provider: "Vault" + instant-seller-payment: true + listing-fee: + enabled: false + amount: 0.0 + sales-tax: + enabled: false + percent: 0.0 + price: + min: 1.0 + max: 1000000000.0 + +listings: + default-duration-seconds: 604800 + allow-cancel-active-listings: true + reclaim-admin-removed-items: true + cleanup-claimed-after-days: 30 + +listing-limits: + default: 5 + permissions: + - permission: "premiumah.limit.10" + amount: 10 + - permission: "premiumah.limit.25" + amount: 25 + - permission: "premiumah.limit.50" + amount: 50 + +item-restrictions: + mode: "BLACKLIST" + materials: + - BEDROCK + - BARRIER + - COMMAND_BLOCK + - CHAIN_COMMAND_BLOCK + - REPEATING_COMMAND_BLOCK + - STRUCTURE_BLOCK + - STRUCTURE_VOID + - JIGSAW + - DEBUG_STICK + +claims: + buyer-full-inventory-action: "CLAIM" + seller-payment-action: "INSTANT" + +sounds: + enabled: true + open: "BLOCK_CHEST_OPEN" + click: "UI_BUTTON_CLICK" + success: "ENTITY_PLAYER_LEVELUP" + fail: "ENTITY_VILLAGER_NO" + +gui: + filler: + enabled: true + material: "BROWN_STAINED_GLASS_PANE" + name: " " + titles: + main: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด› &#D4AF37&lแด€แดœแด„แด›ษชแดษดs" + browse: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด› <#D4AF37>Auctions <#7A4A2A>โ€ข Page {page}" + my-listings: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด› <#D4AF37>My Listings <#7A4A2A>โ€ข Page {page}" + claims: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด› <#B9C63F>Claims <#7A4A2A>โ€ข Page {page}" + sell: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด› <#D4AF37>Create Listing" + confirm-buy: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด› <#D4AF37>Confirm Purchase" + admin: "A2416&lแด…A2D1B&lษชA351F&lส€A3F24&lแด› <#C1432E>Admin <#7A4A2A>โ€ข Page {page}" + size: + main: 45 + browse: 54 + my-listings: 54 + claims: 54 + sell: 54 + confirm-buy: 27 + listing-slots: + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + buttons: + browse: + material: "CHEST" + name: "<#D4AF37>Browse Auctions" + lore: + - "<#C7BCA8>View every active listing." + - "<#B9C63F>Click to browse." + sell: + material: "EMERALD" + name: "<#B9C63F>Sell Held Item" + lore: + - "<#C7BCA8>Create a listing from your hand." + - "<#D4AF37>GUI flow with price confirmation." + my-listings: + material: "BOOK" + name: "<#A8873F>My Listings" + lore: + - "<#C7BCA8>Manage your active listings." + claims: + material: "ENDER_CHEST" + name: "<#B9C63F>Claims" + lore: + - "<#C7BCA8>Reclaim expired or undelivered items." + admin: + material: "ANVIL" + name: "<#C1432E>Admin Panel" + lore: + - "<#C7BCA8>Moderate active listings." + close: + material: "BARRIER" + name: "<#C1432E>Close" + back: + material: "ARROW" + name: "<#D4AF37>Back" + next: + material: "SPECTRAL_ARROW" + name: "<#B9C63F>Next Page" + previous: + material: "ARROW" + name: "<#D4AF37>Previous Page" + sort: + material: "HOPPER" + name: "<#A8873F>Sort: <#D4AF37>{sort}" + lore: + - "<#C7BCA8>Click to rotate sorting." + filter: + material: "COMPASS" + name: "<#A8873F>Filter: <#D4AF37>{filter}" + lore: + - "<#C7BCA8>Shift-click a listing to filter." + - "<#C7BCA8>Right-click to clear filter." + confirm: + material: "LIME_STAINED_GLASS_PANE" + name: "<#B9C63F>Confirm" + cancel: + material: "RED_STAINED_GLASS_PANE" + name: "<#C1432E>Cancel" diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml new file mode 100644 index 0000000..11262fe --- /dev/null +++ b/src/main/resources/messages.yml @@ -0,0 +1,65 @@ +messages: + no-permission: "{prefix} <#C1432E>You do not have permission." + player-only: "{prefix} <#C1432E>Only players can use that." + economy-unavailable: "{prefix} <#C1432E>The auction economy is unavailable. Try again later." + no-item-in-hand: "{prefix} <#C1432E>Hold the item you want to list." + invalid-price: "{prefix} <#C1432E>Enter a valid positive price." + invalid-sort: "{prefix} <#C1432E>Use newest, oldest, lowest_price, or highest_price." + price-too-low: "{prefix} <#C1432E>The minimum listing price is <#D4AF37>{min}<#C1432E>." + price-too-high: "{prefix} <#C1432E>The maximum listing price is <#D4AF37>{max}<#C1432E>." + item-blocked: "{prefix} <#C1432E>That item cannot be listed." + listing-limit: "{prefix} <#C1432E>You have reached your active listing limit of <#D4AF37>{limit}<#C1432E>." + listing-created: "{prefix} <#B9C63F>Listed <#D4AF37>{item} <#B9C63F>for <#D4AF37>{price}<#B9C63F>." + listing-created-fee: "{prefix} <#B9C63F>Listed <#D4AF37>{item} <#B9C63F>for <#D4AF37>{price}<#B9C63F>. Fee charged: <#D4AF37>{fee}<#B9C63F>." + listing-cancelled: "{prefix} <#D4AF37>Your listing was cancelled and moved to claims." + listing-expired: "{prefix} <#D4AF37>A listing expired and was moved to your claims." + listing-removed-admin: "{prefix} <#D4AF37>Listing <#A8873F>{id} <#D4AF37>was removed." + listing-no-longer-available: "{prefix} <#C1432E>That listing is no longer available." + cannot-buy-own: "{prefix} <#C1432E>You cannot buy your own listing." + not-enough-money: "{prefix} <#C1432E>You need <#D4AF37>{price}<#C1432E> to buy this." + purchase-success: "{prefix} <#B9C63F>You bought <#D4AF37>{item} <#B9C63F>for <#D4AF37>{price}<#B9C63F>." + purchase-claim: "{prefix} <#B9C63F>Purchase complete. Your inventory was full, so the item was moved to claims." + sold-notify: "{prefix} <#B9C63F>Your listing sold to <#D4AF37>{buyer} <#B9C63F>for <#D4AF37>{price}<#B9C63F>." + inventory-full: "{prefix} <#C1432E>Your inventory is full." + item-reclaimed: "{prefix} <#B9C63F>Claimed <#D4AF37>{item}<#B9C63F>." + nothing-to-claim: "{prefix} <#D4AF37>You do not have anything to claim." + reload-complete: "{prefix} <#B9C63F>Configuration, messages, and SQLite storage were reloaded." + listing-not-found: "{prefix} <#C1432E>Listing not found." + admin-help: "{prefix} <#D4AF37>/ahadmin reload<#7A4A2A>, <#D4AF37>/ahadmin remove <#7A4A2A>, <#D4AF37>/ahadmin view <#7A4A2A>, <#D4AF37>/ahadmin forceexpire " + price-prompt: "{prefix} <#D4AF37>Type the listing price in chat. Type <#B9C63F>cancel <#D4AF37>to stop." + price-prompt-cancelled: "{prefix} <#D4AF37>Listing price entry cancelled." + price-prompt-timeout: "{prefix} <#C1432E>Listing price entry timed out." + price-set: "{prefix} <#B9C63F>Price set to <#D4AF37>{price}<#B9C63F>." + usage-sell: "{prefix} <#D4AF37>Usage: /ah sell " + storage-save-failed: "{prefix} <#C1432E>Storage could not be saved. Check console." + seller-paid-claim: "{prefix} <#B9C63F>Your sale funds were moved to claims." +gui-lore: + listing: + - "<#7A4A2A>Seller: <#C7BCA8>{seller}" + - "<#7A4A2A>Price: <#B9C63F>{price}" + - "<#7A4A2A>Remaining: <#D4AF37>{remaining}" + - "<#7A4A2A>ID: <#A8873F>{id}" + - "" + - "<#B9C63F>Click to inspect and buy." + - "<#C1432E>Admin right-click removes." + my-listing: + - "<#7A4A2A>Price: <#B9C63F>{price}" + - "<#7A4A2A>Remaining: <#D4AF37>{remaining}" + - "<#7A4A2A>ID: <#A8873F>{id}" + - "" + - "<#D4AF37>Click to cancel and reclaim." + claim: + - "<#7A4A2A>Reason: <#C7BCA8>{reason}" + - "<#7A4A2A>From Listing: <#A8873F>{id}" + - "<#7A4A2A>Added: <#D4AF37>{age} ago" + - "" + - "<#B9C63F>Click to claim." + confirm-buy: + - "<#7A4A2A>Seller: <#C7BCA8>{seller}" + - "<#7A4A2A>Price: <#B9C63F>{price}" + - "<#7A4A2A>ID: <#A8873F>{id}" + sell-item: + - "<#7A4A2A>Price: <#B9C63F>{price}" + - "<#7A4A2A>Fee: <#D4AF37>{fee}" + - "" + - "<#C7BCA8>Use Set Price, then Confirm." diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..b7ac0ae --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,64 @@ +name: DirtAuctions +version: ${project.version} +main: com.yourname.premiumah.PremiumAHPlugin +api-version: '1.21' +author: yourname +description: Premium GUI-first auction house for Paper SMP servers. +softdepend: + - Vault + - CMI +commands: + ah: + description: Open the Dirt Auctions GUI. + usage: /ah [browse|sell|listings|expired|claims|sort] + aliases: + - auctionhouse + - auctions + ahadmin: + description: Dirt Auctions administration. + usage: /ahadmin +permissions: + premiumah.use: + description: Allows opening the auction house. + default: true + premiumah.sell: + description: Allows creating auction listings. + default: true + premiumah.buy: + description: Allows buying listings. + default: true + premiumah.listings: + description: Allows opening personal listings. + default: true + premiumah.expired: + description: Allows reclaiming expired and claimable items. + default: true + premiumah.admin: + description: Full Dirt Auctions administration. + default: op + children: + premiumah.admin.remove: true + premiumah.admin.reload: true + premiumah.admin.view: true + premiumah.admin.forceexpire: true + premiumah.admin.remove: + description: Allows removing listings. + default: op + premiumah.admin.reload: + description: Allows reloading Dirt Auctions. + default: op + premiumah.admin.view: + description: Allows viewing player listings. + default: op + premiumah.admin.forceexpire: + description: Allows expiring listings. + default: op + premiumah.bypass.restrictions: + description: Bypass configured item and price restrictions. + default: op + premiumah.bypass.fees: + description: Bypass listing fees. + default: op + premiumah.bypass.tax: + description: Bypass sales tax. + default: op diff --git a/target/DirtAuctions-1.0.0.jar b/target/DirtAuctions-1.0.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..d5d615e7bc6eb88cc4061ef00d195ded0e98fbde GIT binary patch literal 14283883 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�vTbH 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

K}`HSxIXr_pPLkxAiw`=B+qvsR< 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