diff --git a/.idea/copilot.data.migration.agent.xml b/.idea/copilot.data.migration.agent.xml new file mode 100644 index 0000000..4ea72a9 --- /dev/null +++ b/.idea/copilot.data.migration.agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/copilot.data.migration.edit.xml b/.idea/copilot.data.migration.edit.xml new file mode 100644 index 0000000..8648f94 --- /dev/null +++ b/.idea/copilot.data.migration.edit.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..810de20 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,73 @@ +# Changelog + +All notable changes to CommunityMarket will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.0.0] - 2026-01-15 + +### Added + +#### Core Features +- **Fixed-Price Market**: Create and browse fixed-price listings +- **Auction System**: Full auction support with bidding, buyout, and anti-snipe protection +- **Claim Storage**: Safe item delivery for expired listings and won auctions +- **Earnings System**: Pending earnings with withdraw functionality + +#### GUI System +- Fully GUI-based interface - no complex commands to learn +- Intuitive item selection from player inventory +- Quantity selection with step buttons for stackable items +- Price and duration settings with click-to-adjust controls +- Paginated browsing for listings and auctions +- Confirmation dialogs for purchases and bids + +#### Economy Integration +- **Vault support** (primary): Works with any Vault-compatible economy plugin +- **EssentialsX fallback**: Direct integration when Vault is not available +- Thread-safe economy operations +- Detailed startup logging for economy detection + +#### Administration +- Admin GUI for viewing all listings and auctions +- Remove any listing or cancel any auction +- Force-end auctions with proper refunds +- In-game configuration reload + +#### Configuration +- SQLite database (default) with MySQL support +- Configurable taxes for market and auction sales +- Listing and auction limits per player +- Duration options for listings and auctions +- Item blacklist by material and keywords +- Sound effects customization +- Notification settings + +#### Localization +- Full language file support +- Included languages: English (en_US), Portuguese (pt_PT) +- All messages and GUI text customizable + +### Technical +- Built for Paper 1.21+ +- Requires Java 21+ +- Uses HikariCP for database connection pooling +- Async database operations with sync economy calls for safety +- Atomic transaction handling to prevent duplication bugs + +--- + +## Future Releases + +### Planned Features +- Search/filter functionality in browse GUIs +- Category system for listings +- Statistics and leaderboards +- Public API for developer integration +- Additional language translations + +--- + +For more information, see the [README](README.md) or visit our [GitHub repository](https://github.com/henrique/CommunityMarket). + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2d54ee2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2026 Henrique + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/README.md b/README.md index e922b62..3eefda4 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,23 @@ # CommunityMarket -A professional, production-ready GUI-only marketplace plugin for Minecraft Paper 1.21.11. +[![Modrinth Downloads](https://img.shields.io/modrinth/dt/communitymarket?logo=modrinth)](https://modrinth.com/plugin/communitymarket) +[![GitHub License](https://img.shields.io/github/license/henrique/CommunityMarket)](LICENSE) -Players can create fixed-price listings and auctions, browse, buy, bid, claim items, and withdraw earnings — all through intuitive GUIs. No complex commands to learn! +A professional, production-ready **GUI-only marketplace plugin** for Minecraft Paper 1.21+. -## Features +Players can create fixed-price listings and auctions, browse, buy, bid, claim items, and withdraw earnings — all through intuitive GUIs. **No complex commands to learn!** + +## ✨ Features ### 🛒 Fixed-Price Market - Create listings with custom prices and durations -- Browse paginated listings with categories and sorting +- Browse paginated listings with sorting - Safe atomic purchases to prevent double-buying - Configurable taxes on sales ### 🔨 Auction System -- Start auctions with minimum bid and optional buyout -- Anti-snipe protection extends auction when bids arrive near the end +- Start auctions with minimum bid and optional buyout price +- **Anti-snipe protection** extends auction when bids arrive near the end - Bid history and automatic outbid notifications - Safe handling of auction endings and payouts @@ -24,48 +27,53 @@ Players can create fixed-price listings and auctions, browse, buy, bid, claim it - Handles full inventories gracefully ### 💰 Earnings Management -- Pending earnings from sales -- Withdraw all at once +- Pending earnings from sales accumulate +- Withdraw all earnings at once - Complete transaction history ### 🔐 Admin Features (GUI-based) - View all listings and auctions -- Remove any listing -- Cancel/force-end auctions -- Reload configuration +- Remove any listing or cancel auctions +- Force-end auctions +- Reload configuration in-game ### 🎮 Intuitive GUI Flow The creation flow for listings and auctions: 1. **Main Menu** - Central hub for all actions -2. **Select Item** - Click an item from your inventory to select it -3. **Select Quantity** - Choose how many to sell (for stackable items with quantity > 1) - - Step buttons: -32, -16, -8, -1 and +1, +8, +16, +32 - - MIN and MAX preset buttons for quick selection - - Items are matched by exact metadata (material, name, lore, enchants, custom model data) -4. **Settings** - Set price and duration with merged, clickable elements - - Single-item interface: each setting is one clickable item showing all info - - No redundant info/action item pairs -5. **Confirm** - Review and confirm your listing/auction - - Final validation ensures items still exist before creating +2. **Select Item** - Click an item from your inventory +3. **Select Quantity** - Choose how many to sell (for stackable items) +4. **Settings** - Set price and duration with easy click-to-adjust controls +5. **Confirm** - Review and create your listing/auction -## Requirements +## 📋 Requirements -- **Server**: Paper 1.21.11 (or compatible) -- **Java**: Java 21 -- **Economy**: One of the following: - - Vault + any Vault-compatible economy (Essentials, CMI, etc.) - - EssentialsX (fallback if Vault is not present) +| Requirement | Version | +|-------------|---------| +| **Server** | Paper 1.21+ (or Purpur, Folia-compatible forks) | +| **Java** | Java 21+ | +| **Economy** | Vault + economy plugin **OR** EssentialsX | -## Installation +### Economy Support +CommunityMarket supports two economy configurations: -1. Download `CommunityMarket-1.0.0.jar` +1. **Vault + Economy Plugin** (Recommended) + - Install [Vault](https://www.spigotmc.org/resources/vault.34315/) + - Install an economy plugin: [EssentialsX](https://essentialsx.net/), CMI, or any Vault-compatible economy + +2. **EssentialsX Standalone** (Fallback) + - Install [EssentialsX](https://essentialsx.net/) with economy enabled + - CommunityMarket will use EssentialsX directly if Vault is not present + +## 📥 Installation + +1. Download the latest `CommunityMarket-x.x.x.jar` from [Modrinth](https://modrinth.com/plugin/communitymarket) 2. Place it in your server's `plugins/` folder -3. Ensure you have an economy plugin installed (Vault recommended) -4. Start/restart your server +3. Ensure you have an economy system installed (see above) +4. Start or restart your server 5. Edit `plugins/CommunityMarket/config.yml` as needed 6. Use `/market` to open the marketplace! -## Commands +## 🎮 Commands | Command | Alias | Description | Permission | |---------|-------|-------------|------------| @@ -73,128 +81,131 @@ The creation flow for listings and auctions: **That's it!** Everything else is done through GUIs. -## Permissions +## 🔒 Permissions | Permission | Description | Default | |------------|-------------|---------| | `communitymarket.*` | All permissions | op | -| `communitymarket.use` | Access the market GUI | true | -| `communitymarket.sell` | Create fixed-price listings | true | -| `communitymarket.auction` | Create auctions | true | -| `communitymarket.buy` | Purchase from the market | true | -| `communitymarket.bid` | Bid on auctions | true | -| `communitymarket.claim` | Claim items from storage | true | -| `communitymarket.withdraw` | Withdraw earnings | true | +| `communitymarket.use` | Access the market GUI | everyone | +| `communitymarket.sell` | Create fixed-price listings | everyone | +| `communitymarket.auction` | Create auctions | everyone | +| `communitymarket.buy` | Purchase from the market | everyone | +| `communitymarket.bid` | Bid on auctions | everyone | +| `communitymarket.claim` | Claim items from storage | everyone | +| `communitymarket.withdraw` | Withdraw earnings | everyone | | `communitymarket.admin` | Access admin functions | op | | `communitymarket.admin.viewall` | View all listings/auctions | op | | `communitymarket.admin.remove` | Remove any listing/auction | op | | `communitymarket.admin.reload` | Reload configuration | op | -## Configuration +## ⚙️ Configuration -### config.yml +### config.yml Highlights ```yaml # Language setting (available: en_US, pt_PT) language: en_US -# Database Configuration +# Database: sqlite (default) or mysql database: - type: sqlite # or "mysql" - sqlite: - file: database.db - mysql: - host: localhost - port: 3306 - database: communitymarket - username: root - password: "" + type: sqlite -# Economy Settings +# Economy settings economy: currency-format: "$#,##0.00" - currency-symbol: "$" taxes: - market-tax: 5.0 # 5% tax on listings - auction-tax: 7.5 # 7.5% tax on auctions + market-tax: 5.0 # Tax on fixed-price sales + auction-tax: 7.5 # Tax on auction sales -# Market Settings +# Fixed-Price Market market: max-listings-per-player: 20 - listing-cooldown: 0 # seconds between listings default-duration-hours: 168 # 7 days min-price: 1.0 max-price: 1000000000.0 -# Auction Settings +# Auctions auction: max-auctions-per-player: 10 - min-duration-hours: 1 - max-duration-hours: 168 + default-duration-hours: 24 anti-snipe: enabled: true trigger-seconds: 30 extension-seconds: 30 - max-extensions: 10 # GUI Settings gui: - items-per-page: 45 - show-help-button: true # Set to false to hide help button in main menu + show-help-button: true # Toggle help button visibility + sounds: + click: UI_BUTTON_CLICK + success: ENTITY_PLAYER_LEVELUP + error: ENTITY_VILLAGER_NO ``` -See the full `config.yml` for all options. +### Available Languages +- `en_US` - English (default) +- `pt_PT` - Portuguese -### Languages +Language files are located in `plugins/CommunityMarket/lang/` and can be customized. -CommunityMarket ships with two languages: -- **English (US)**: `en_US` -- **Portuguese (Portugal)**: `pt_PT` +## 🔧 Troubleshooting + +### "No compatible economy provider found!" + +This error appears when CommunityMarket cannot find an economy system. + +**Solutions:** +1. **Install Vault + an economy plugin:** + - Download [Vault](https://www.spigotmc.org/resources/vault.34315/) + - Download [EssentialsX](https://essentialsx.net/) or another economy plugin + - Restart your server + +2. **Using EssentialsX without Vault:** + - Make sure EssentialsX is installed and enabled + - Check that `economy` is not disabled in EssentialsX's `config.yml` + +### Items stuck in claim storage + +If a player's inventory was full when they purchased an item or won an auction, the item goes to their claim storage. They can retrieve it from the main menu → "Claim Items". + +### Auctions not ending + +Auctions are checked periodically (every 5 seconds by default). If auctions seem stuck: +- Check server console for errors +- Verify the database is working properly +- Try `/market admin` → View Auctions to see auction status + +### Database issues + +By default, CommunityMarket uses SQLite (no setup required). For larger servers, MySQL is recommended: -Change the language in `config.yml`: ```yaml -language: pt_PT +database: + type: mysql + mysql: + host: localhost + port: 3306 + database: communitymarket + username: your_user + password: your_password ``` -You can create custom language files by copying an existing one in `plugins/CommunityMarket/lang/`. +## 📊 API -## Building from Source +CommunityMarket does not currently provide a public API. If you need integration capabilities, please open an issue on GitHub. -```bash -git clone https://github.com/henrique/CommunityMarket.git -cd CommunityMarket -mvn clean package -``` +## 🤝 Support -The compiled JAR will be in `target/CommunityMarket-1.0.0.jar`. +- **Issues & Bug Reports:** [GitHub Issues](https://github.com/henrique/CommunityMarket/issues) +- **Feature Requests:** [GitHub Issues](https://github.com/henrique/CommunityMarket/issues) -## FAQ +## 📜 License -### Q: The plugin says "No economy plugin found!" -**A:** Install Vault + an economy plugin (like EssentialsX) or just EssentialsX. +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. -### Q: Can I use MySQL instead of SQLite? -**A:** Yes! Change `database.type` to `mysql` in config.yml and fill in your credentials. +## 🙏 Credits -### Q: How do I change the GUI titles? -**A:** Edit the language file in `plugins/CommunityMarket/lang/`. - -### Q: Items aren't being removed when creating listings? -**A:** This is a known issue with some inventory plugins. Make sure you're running Paper 1.21.11. - -### Q: How do taxes work? -**A:** When an item sells, the tax percentage is deducted from the seller's earnings. Buyers pay the listed price. - -## Support - -- **Issues**: [GitHub Issues](https://github.com/henrique/CommunityMarket/issues) -- **Discord**: Coming soon - -## License - -MIT License - See LICENSE file for details. - ---- - -Made with ❤️ for the Minecraft community +- Built for the Paper/Spigot community +- Uses [Vault](https://github.com/MilkBowl/VaultAPI) for economy integration +- Uses [HikariCP](https://github.com/brettwooldridge/HikariCP) for database connection pooling diff --git a/RELEASE_CHECKLIST.md b/RELEASE_CHECKLIST.md new file mode 100644 index 0000000..b2e33b9 --- /dev/null +++ b/RELEASE_CHECKLIST.md @@ -0,0 +1,107 @@ +# Release Checklist for Modrinth + +Use this checklist before uploading a new release to Modrinth. + +## Pre-Release Verification + +### Build & Code Quality +- [ ] Code compiles without errors (`mvn clean package`) +- [ ] No critical warnings in compiler output +- [ ] All tests pass (if applicable) +- [ ] Plugin JAR is created in `target/communitymarket-x.x.x.jar` + +### Functional Testing +- [ ] Plugin loads without errors on a fresh Paper 1.21+ server +- [ ] Economy detection works: + - [ ] Scenario A: Vault + EssentialsX → Uses Vault + - [ ] Scenario B: Vault only (no economy) → Clear error message, plugin disables + - [ ] Scenario C: EssentialsX only (no Vault) → Uses EssentialsX directly + - [ ] Scenario D: Neither installed → Clear error message, plugin disables +- [ ] `/market` command opens the main menu +- [ ] `/cmarket` alias works + +### Feature Testing +- [ ] **Listings**: Create, browse, purchase, cancel, expire +- [ ] **Auctions**: Create, bid, buyout, anti-snipe extension, expire +- [ ] **Claim Storage**: Items delivered correctly, claim GUI works +- [ ] **Earnings**: Earnings accumulate, withdraw works +- [ ] **Admin**: View all, remove listings, cancel auctions, reload config + +### Configuration +- [ ] Default config.yml has safe values +- [ ] Language files (en_US.yml, pt_PT.yml) are complete +- [ ] Config reload (`/market admin` → reload) works + +### Documentation +- [ ] README.md is up to date +- [ ] CHANGELOG.md has current version entry +- [ ] LICENSE file is present + +--- + +## Modrinth Upload Checklist + +### Project Information +- [ ] Project name: `CommunityMarket` +- [ ] Summary: "A GUI-only marketplace plugin for fixed-price listings and auctions" +- [ ] Description: Use content from README.md +- [ ] Categories: Economy, Miscellaneous +- [ ] Client-side: No (Server-side only) +- [ ] Server-side: Required +- [ ] License: MIT + +### Version Details +- [ ] Version number matches pom.xml and CHANGELOG.md +- [ ] Version type: Release (or Alpha/Beta if applicable) +- [ ] Game versions: 1.21, 1.21.1 (add newer as supported) +- [ ] Loaders: Paper, Purpur +- [ ] Changelog: Copy from CHANGELOG.md + +### Files +- [ ] Upload primary JAR: `communitymarket-x.x.x.jar` +- [ ] Do NOT upload `original-communitymarket-x.x.x.jar` (doesn't include shaded dependencies) + +### Dependencies (Modrinth) +- [ ] Mark Vault as optional dependency (if available on Modrinth) +- [ ] Mark EssentialsX as optional dependency (if available on Modrinth) + +### Gallery (Optional) +- [ ] Screenshot of main menu +- [ ] Screenshot of browse listings +- [ ] Screenshot of create listing flow + +--- + +## Post-Release + +- [ ] Verify download works correctly +- [ ] Test downloaded JAR on a clean server +- [ ] Announce release (if applicable) +- [ ] Tag release in Git: `git tag -a v1.0.0 -m "Release 1.0.0"` +- [ ] Push tag: `git push origin v1.0.0` + +--- + +## Version Naming Convention + +- **Major.Minor.Patch** (e.g., 1.0.0) + - Major: Breaking changes or major feature additions + - Minor: New features, backwards compatible + - Patch: Bug fixes, small improvements + +--- + +## Quick Commands + +```bash +# Clean build +mvn clean package + +# Run local test server (if configured) +# Place JAR in test-server/plugins/ + +# Create Git tag +git tag -a v1.0.0 -m "Release 1.0.0" +git push origin v1.0.0 +``` + diff --git a/src/main/java/pt/henrique/communityMarket/CommunityMarket.java b/src/main/java/pt/henrique/communityMarket/CommunityMarket.java index ca85bd1..500e4f8 100644 --- a/src/main/java/pt/henrique/communityMarket/CommunityMarket.java +++ b/src/main/java/pt/henrique/communityMarket/CommunityMarket.java @@ -1,6 +1,5 @@ package pt.henrique.communityMarket; -import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; import pt.henrique.communityMarket.command.MarketCommand; import pt.henrique.communityMarket.config.ConfigManager; @@ -14,7 +13,6 @@ import pt.henrique.communityMarket.service.*; import pt.henrique.communityMarket.task.AuctionTask; import pt.henrique.communityMarket.task.ExpiredListingTask; -import java.util.logging.Level; public final class CommunityMarket extends JavaPlugin { @@ -46,12 +44,10 @@ public final class CommunityMarket extends JavaPlugin { // Initialize economy economyManager = new EconomyManager(this); if (!economyManager.setupEconomy()) { - getLogger().severe("No economy plugin found! Please install Vault or EssentialsX."); - getLogger().severe("Disabling CommunityMarket..."); + getLogger().severe("Disabling CommunityMarket due to missing economy provider."); getServer().getPluginManager().disablePlugin(this); return; } - getLogger().info("Economy provider: " + economyManager.getProviderName()); // Initialize database databaseManager = new DatabaseManager(this); diff --git a/src/main/java/pt/henrique/communityMarket/economy/EconomyManager.java b/src/main/java/pt/henrique/communityMarket/economy/EconomyManager.java index 0f182d1..1e9759c 100644 --- a/src/main/java/pt/henrique/communityMarket/economy/EconomyManager.java +++ b/src/main/java/pt/henrique/communityMarket/economy/EconomyManager.java @@ -3,78 +3,192 @@ package pt.henrique.communityMarket.economy; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.RegisteredServiceProvider; import pt.henrique.communityMarket.CommunityMarket; +import java.math.BigDecimal; import java.util.UUID; +import java.util.concurrent.CompletableFuture; import java.util.logging.Level; /** - * Manages economy operations using Vault. + * Manages economy operations using Vault (preferred) or EssentialsX (fallback). *

- * Vault provides a unified economy API that works with many economy plugins - * including EssentialsX, CMI, and others. + * Priority order: + * 1. Vault with a registered economy provider + * 2. EssentialsX economy (direct integration) + *

+ * All economy operations can be called from any thread, but the actual + * economy API calls are dispatched to the main thread for safety. */ public class EconomyManager { private final CommunityMarket plugin; - private Economy vaultEconomy; + private EconomyAdapter adapter; + private String providerName = "None"; public EconomyManager(CommunityMarket plugin) { this.plugin = plugin; } /** - * Attempts to set up the Vault economy provider. + * Attempts to set up an economy provider. + * Tries Vault first, then EssentialsX as fallback. * - * @return true if Vault economy was found + * @return true if an economy provider was found */ public boolean setupEconomy() { - if (Bukkit.getPluginManager().getPlugin("Vault") == null) { - plugin.getLogger().severe("Vault plugin not found!"); - return false; + plugin.getLogger().info("=== Economy Detection ==="); + + // Step 1: Check for Vault + boolean vaultPresent = Bukkit.getPluginManager().getPlugin("Vault") != null; + plugin.getLogger().info("Vault detected: " + (vaultPresent ? "YES" : "NO")); + + if (vaultPresent) { + if (setupVaultEconomy()) { + plugin.getLogger().info("=== Economy Setup Complete ==="); + return true; + } + // Vault found but no provider - log and continue to fallback + plugin.getLogger().warning("Vault is installed but no economy provider is registered."); + plugin.getLogger().warning("This usually means you have Vault but no economy plugin (EssentialsX, CMI, etc)."); } + // Step 2: Try EssentialsX fallback + boolean essentialsPresent = Bukkit.getPluginManager().getPlugin("Essentials") != null; + plugin.getLogger().info("Essentials detected: " + (essentialsPresent ? "YES" : "NO")); + + if (essentialsPresent) { + if (setupEssentialsEconomy()) { + plugin.getLogger().info("=== Economy Setup Complete ==="); + return true; + } + } + + // Step 3: No economy available + plugin.getLogger().severe("=== Economy Setup FAILED ==="); + plugin.getLogger().severe("No compatible economy provider found!"); + plugin.getLogger().severe(""); + plugin.getLogger().severe("To fix this, install ONE of the following:"); + plugin.getLogger().severe(" Option A: Vault + an economy plugin (EssentialsX, CMI, etc)"); + plugin.getLogger().severe(" Option B: EssentialsX (with economy enabled in config)"); + plugin.getLogger().severe(""); + if (vaultPresent && !essentialsPresent) { + plugin.getLogger().severe("You have Vault installed but no economy plugin."); + plugin.getLogger().severe("Install EssentialsX or another Vault-compatible economy plugin."); + } else if (!vaultPresent && essentialsPresent) { + plugin.getLogger().severe("EssentialsX is installed but economy service failed to initialize."); + plugin.getLogger().severe("Check that economy is enabled in Essentials config.yml."); + } else if (!vaultPresent && !essentialsPresent) { + plugin.getLogger().severe("Neither Vault nor EssentialsX is installed."); + plugin.getLogger().severe("Please install an economy system."); + } + + return false; + } + + /** + * Attempts to set up Vault economy provider. + */ + private boolean setupVaultEconomy() { try { RegisteredServiceProvider rsp = Bukkit.getServicesManager().getRegistration(Economy.class); if (rsp == null) { - plugin.getLogger().severe("No economy provider registered with Vault! Please install an economy plugin like EssentialsX."); + plugin.getLogger().info("Vault economy provider: NONE REGISTERED"); return false; } - vaultEconomy = rsp.getProvider(); - if (vaultEconomy != null) { - plugin.getLogger().info("Using Vault economy provider: " + vaultEconomy.getName()); - return true; + Economy vaultEconomy = rsp.getProvider(); + if (vaultEconomy == null) { + plugin.getLogger().info("Vault economy provider: NULL (registration found but provider is null)"); + return false; } - return false; + + adapter = new VaultAdapter(vaultEconomy); + providerName = "Vault (" + vaultEconomy.getName() + ")"; + plugin.getLogger().info("Vault economy provider: " + vaultEconomy.getName()); + plugin.getLogger().info("Selected provider: " + providerName); + return true; } catch (Exception e) { plugin.getLogger().log(Level.SEVERE, "Failed to hook into Vault economy", e); return false; } } + /** + * Attempts to set up EssentialsX economy as fallback. + */ + private boolean setupEssentialsEconomy() { + try { + Plugin essPlugin = Bukkit.getPluginManager().getPlugin("Essentials"); + if (essPlugin == null || !essPlugin.isEnabled()) { + plugin.getLogger().info("Essentials plugin: NOT ENABLED"); + return false; + } + + // Check if it's actually EssentialsX (has the expected class) + if (!essPlugin.getClass().getName().equals("com.earth2me.essentials.Essentials")) { + plugin.getLogger().warning("Essentials plugin found but is not EssentialsX."); + plugin.getLogger().warning("Class: " + essPlugin.getClass().getName()); + return false; + } + + // Try to create the adapter + EssentialsAdapter essAdapter = new EssentialsAdapter(essPlugin); + if (!essAdapter.isAvailable()) { + plugin.getLogger().warning("EssentialsX found but economy service is not available."); + plugin.getLogger().warning("Check that economy is enabled in Essentials config.yml"); + return false; + } + + adapter = essAdapter; + providerName = "EssentialsX (Direct)"; + plugin.getLogger().info("Using EssentialsX direct economy integration."); + plugin.getLogger().info("Selected provider: " + providerName); + return true; + } catch (Exception e) { + plugin.getLogger().log(Level.WARNING, "Failed to set up EssentialsX economy fallback", e); + return false; + } + } + /** * Gets the name of the active economy provider */ public String getProviderName() { - return vaultEconomy != null ? "Vault (" + vaultEconomy.getName() + ")" : "None"; + return providerName; } /** - * Gets a player's current balance + * Checks if the economy manager is ready + */ + public boolean isReady() { + return adapter != null; + } + + /** + * Gets a player's current balance. + * Thread-safe: can be called from any thread. * * @param playerUuid The player's UUID * @return The player's balance */ public double getBalance(UUID playerUuid) { - if (vaultEconomy == null) return 0.0; - OfflinePlayer player = Bukkit.getOfflinePlayer(playerUuid); - return vaultEconomy.getBalance(player); + if (adapter == null) return 0.0; + + // If on main thread, call directly + if (Bukkit.isPrimaryThread()) { + return adapter.getBalance(playerUuid); + } + + // Off main thread - schedule sync and wait + return runSync(() -> adapter.getBalance(playerUuid)); } /** - * Checks if a player has at least the specified amount + * Checks if a player has at least the specified amount. + * Thread-safe: can be called from any thread. * * @param playerUuid The player's UUID * @param amount The amount to check @@ -85,7 +199,8 @@ public class EconomyManager { } /** - * Withdraws money from a player's account + * Withdraws money from a player's account. + * Thread-safe: can be called from any thread. * * @param playerUuid The player's UUID * @param amount The amount to withdraw @@ -93,17 +208,20 @@ public class EconomyManager { */ public boolean withdraw(UUID playerUuid, double amount) { if (amount <= 0) return true; - if (vaultEconomy == null) return false; + if (adapter == null) return false; - OfflinePlayer player = Bukkit.getOfflinePlayer(playerUuid); - if (!vaultEconomy.has(player, amount)) { - return false; + // If on main thread, call directly + if (Bukkit.isPrimaryThread()) { + return adapter.withdraw(playerUuid, amount); } - return vaultEconomy.withdrawPlayer(player, amount).transactionSuccess(); + + // Off main thread - schedule sync and wait + return runSync(() -> adapter.withdraw(playerUuid, amount)); } /** - * Deposits money into a player's account + * Deposits money into a player's account. + * Thread-safe: can be called from any thread. * * @param playerUuid The player's UUID * @param amount The amount to deposit @@ -111,14 +229,21 @@ public class EconomyManager { */ public boolean deposit(UUID playerUuid, double amount) { if (amount <= 0) return true; - if (vaultEconomy == null) return false; + if (adapter == null) return false; - OfflinePlayer player = Bukkit.getOfflinePlayer(playerUuid); - return vaultEconomy.depositPlayer(player, amount).transactionSuccess(); + // If on main thread, call directly + if (Bukkit.isPrimaryThread()) { + return adapter.deposit(playerUuid, amount); + } + + // Off main thread - schedule sync and wait + Boolean result = runSync(() -> adapter.deposit(playerUuid, amount)); + return result != null && result; } /** - * Transfers money between two players + * Transfers money between two players. + * Thread-safe: can be called from any thread. * * @param fromUuid The UUID of the payer * @param toUuid The UUID of the receiver @@ -143,15 +268,198 @@ public class EconomyManager { } /** - * Formats an amount according to the economy's formatting + * Formats an amount according to the economy's formatting. * * @param amount The amount to format * @return Formatted currency string */ public String format(double amount) { - if (vaultEconomy != null) { - return vaultEconomy.format(amount); + if (adapter != null) { + return adapter.format(amount); } return plugin.getMessageManager().formatCurrency(amount); } + + /** + * Runs a task synchronously on the main thread and waits for the result. + * If already on main thread, runs directly. + */ + private T runSync(java.util.function.Supplier task) { + if (Bukkit.isPrimaryThread()) { + return task.get(); + } + + CompletableFuture future = new CompletableFuture<>(); + Bukkit.getScheduler().runTask(plugin, () -> { + try { + future.complete(task.get()); + } catch (Exception e) { + future.completeExceptionally(e); + } + }); + + try { + return future.join(); + } catch (Exception e) { + plugin.getLogger().log(Level.SEVERE, "Economy operation failed", e); + return null; + } + } + + // ==================== ADAPTER INTERFACE ==================== + + /** + * Interface for economy adapters + */ + private interface EconomyAdapter { + double getBalance(UUID playerUuid); + boolean withdraw(UUID playerUuid, double amount); + boolean deposit(UUID playerUuid, double amount); + String format(double amount); + } + + // ==================== VAULT ADAPTER ==================== + + /** + * Adapter for Vault economy + */ + private static class VaultAdapter implements EconomyAdapter { + private final Economy economy; + + VaultAdapter(Economy economy) { + this.economy = economy; + } + + @Override + public double getBalance(UUID playerUuid) { + OfflinePlayer player = Bukkit.getOfflinePlayer(playerUuid); + return economy.getBalance(player); + } + + @Override + public boolean withdraw(UUID playerUuid, double amount) { + OfflinePlayer player = Bukkit.getOfflinePlayer(playerUuid); + if (!economy.has(player, amount)) { + return false; + } + return economy.withdrawPlayer(player, amount).transactionSuccess(); + } + + @Override + public boolean deposit(UUID playerUuid, double amount) { + OfflinePlayer player = Bukkit.getOfflinePlayer(playerUuid); + return economy.depositPlayer(player, amount).transactionSuccess(); + } + + @Override + public String format(double amount) { + return economy.format(amount); + } + } + + // ==================== ESSENTIALS ADAPTER ==================== + + /** + * Adapter for EssentialsX direct economy integration + */ + private static class EssentialsAdapter implements EconomyAdapter { + private final Object essentials; + private final java.lang.reflect.Method getUserMethod; + private final java.lang.reflect.Method getMoneyMethod; + private final java.lang.reflect.Method setMoneyMethod; + private final boolean available; + + EssentialsAdapter(Plugin essPlugin) { + this.essentials = essPlugin; + + java.lang.reflect.Method getUserTemp = null; + java.lang.reflect.Method getMoneyTemp = null; + java.lang.reflect.Method setMoneyTemp = null; + boolean availableTemp = false; + + try { + // Get the getUser method + Class essClass = essPlugin.getClass(); + getUserTemp = essClass.getMethod("getUser", UUID.class); + + // Get User class and its money methods + Class userClass = Class.forName("com.earth2me.essentials.User"); + getMoneyTemp = userClass.getMethod("getMoney"); + setMoneyTemp = userClass.getMethod("setMoney", BigDecimal.class); + + // Test that it works + availableTemp = true; + } catch (Exception e) { + // Methods not available + } + + this.getUserMethod = getUserTemp; + this.getMoneyMethod = getMoneyTemp; + this.setMoneyMethod = setMoneyTemp; + this.available = availableTemp; + } + + public boolean isAvailable() { + return available; + } + + @Override + public double getBalance(UUID playerUuid) { + try { + Object user = getUserMethod.invoke(essentials, playerUuid); + if (user == null) return 0.0; + + BigDecimal money = (BigDecimal) getMoneyMethod.invoke(user); + return money != null ? money.doubleValue() : 0.0; + } catch (Exception e) { + return 0.0; + } + } + + @Override + public boolean withdraw(UUID playerUuid, double amount) { + try { + Object user = getUserMethod.invoke(essentials, playerUuid); + if (user == null) return false; + + BigDecimal current = (BigDecimal) getMoneyMethod.invoke(user); + if (current == null) current = BigDecimal.ZERO; + + BigDecimal amountBD = BigDecimal.valueOf(amount); + if (current.compareTo(amountBD) < 0) { + return false; + } + + BigDecimal newBalance = current.subtract(amountBD); + setMoneyMethod.invoke(user, newBalance); + return true; + } catch (Exception e) { + return false; + } + } + + @Override + public boolean deposit(UUID playerUuid, double amount) { + try { + Object user = getUserMethod.invoke(essentials, playerUuid); + if (user == null) return false; + + BigDecimal current = (BigDecimal) getMoneyMethod.invoke(user); + if (current == null) current = BigDecimal.ZERO; + + BigDecimal newBalance = current.add(BigDecimal.valueOf(amount)); + setMoneyMethod.invoke(user, newBalance); + return true; + } catch (Exception e) { + return false; + } + } + + @Override + public String format(double amount) { + // EssentialsX doesn't have a simple format method accessible this way + // Return a reasonable default + return String.format("$%.2f", amount); + } + } } diff --git a/target/CommunityMarket-1.0.0.jar b/target/CommunityMarket-1.0.0.jar deleted file mode 100644 index 81607b2..0000000 Binary files a/target/CommunityMarket-1.0.0.jar and /dev/null differ diff --git a/target/classes/config.yml b/target/classes/config.yml deleted file mode 100644 index 1bd7524..0000000 --- a/target/classes/config.yml +++ /dev/null @@ -1,152 +0,0 @@ -# ============================================ -# CommunityMarket Configuration -# A GUI-only marketplace plugin -# ============================================ - -# Language setting (available: en_US, pt_PT) -language: en_US - -# Database Configuration -database: - # Type: sqlite or mysql - type: sqlite - - sqlite: - file: database.db - - mysql: - host: localhost - port: 3306 - database: communitymarket - username: root - password: "" - pool: - maximum-pool-size: 10 - minimum-idle: 2 - connection-timeout: 30000 - idle-timeout: 600000 - max-lifetime: 1800000 - -# Economy Settings -economy: - # Currency display format (uses Java DecimalFormat) - currency-format: "$#,##0.00" - currency-symbol: "$" - - taxes: - # Tax percentage for fixed-price market sales (seller pays) - market-tax: 5.0 - # Tax percentage for auction sales (seller pays) - auction-tax: 7.5 - -# Fixed-Price Market Settings -market: - # Maximum active listings per player - max-listings-per-player: 20 - # Cooldown between creating listings (seconds, 0 = disabled) - listing-cooldown: 0 - # Default listing duration in hours - default-duration-hours: 168 - # Available durations for players to choose (in hours) - available-durations: - - 24 - - 72 - - 168 - - 336 - # Price limits - min-price: 1.0 - max-price: 1000000000.0 - -# Auction Settings -auction: - # Maximum active auctions per player - max-auctions-per-player: 10 - # Duration limits (hours) - min-duration-hours: 1 - max-duration-hours: 168 - default-duration-hours: 24 - # Available durations for players to choose (in hours) - available-durations: - - 1 - - 6 - - 12 - - 24 - - 48 - - 72 - - 168 - # Price limits for starting bid - min-start-price: 1.0 - max-start-price: 1000000000.0 - # Minimum bid increment (percentage of current bid) - min-bid-increment-percent: 5.0 - # Minimum absolute bid increment - min-bid-increment-absolute: 1.0 - - # Anti-snipe protection - anti-snipe: - enabled: true - # If bid placed within this many seconds of end, extend auction - trigger-seconds: 30 - # How many seconds to extend - extension-seconds: 30 - # Maximum number of extensions (0 = unlimited) - max-extensions: 10 - -# Item Blacklist -blacklist: - # Materials that cannot be listed/auctioned - materials: - - BARRIER - - COMMAND_BLOCK - - CHAIN_COMMAND_BLOCK - - REPEATING_COMMAND_BLOCK - - COMMAND_BLOCK_MINECART - - STRUCTURE_BLOCK - - STRUCTURE_VOID - - JIGSAW - - DEBUG_STICK - - KNOWLEDGE_BOOK - - SPAWNER - - BEDROCK - # Items with these keywords in their name/lore are blocked - keywords: - - "admin" - - "illegal" - - "exploit" - -# GUI Settings -gui: - # Items displayed per page in browse views - items-per-page: 45 - - # Whether to show the Help button in the main menu - # Set to false to hide it (slot will be filled with glass) - show-help-button: true - - # Sound effects (use Bukkit Sound enum names) - sounds: - click: UI_BUTTON_CLICK - success: ENTITY_PLAYER_LEVELUP - error: ENTITY_VILLAGER_NO - purchase: ENTITY_EXPERIENCE_ORB_PICKUP - -# Notification Settings -notifications: - # Notify seller when their item sells - notify-on-sale: true - # Notify bidder when they are outbid - notify-on-outbid: true - # Notify winner when they win an auction - notify-on-win: true - # Notify seller when their listing expires - notify-on-expire: true - -# Performance Settings -performance: - # How often to cache listings/auctions (seconds) - cache-duration: 30 - # How often to check for ended auctions (seconds) - auction-check-interval: 5 - # How often to check for expired listings (minutes) - expired-check-interval: 5 - diff --git a/target/classes/lang/en_US.yml b/target/classes/lang/en_US.yml deleted file mode 100644 index a3793fe..0000000 --- a/target/classes/lang/en_US.yml +++ /dev/null @@ -1,448 +0,0 @@ -# ============================================ -# CommunityMarket Language File - English (US) -# ============================================ - -# General -prefix: "&8[&6Market&8] &r" - -# General Messages -messages: - no-permission: "&cYou don't have permission to do that." - player-only: "&cThis command can only be used by players." - reload-success: "&aConfiguration reloaded successfully!" - economy-not-found: "&cNo economy plugin found! Market disabled." - - # Listing Messages - listing-created: "&aListing created successfully! ID: #{id}" - listing-cancelled: "&aListing cancelled. Item returned to claim storage." - listing-expired: "&eYour listing #{id} has expired. Item moved to claim storage." - listing-purchased: "&aYou purchased {item} x{amount} for {price}!" - listing-sold: "&aYour {item} x{amount} was sold to {buyer} for {price}!" - listing-limit-reached: "&cYou've reached the maximum number of listings ({max})." - listing-cooldown: "&cPlease wait {time} before creating another listing." - listing-not-found: "&cListing not found or no longer available." - listing-own-item: "&cYou cannot buy your own listing." - listing-insufficient-funds: "&cYou don't have enough money. Required: {price}" - - # Auction Messages - auction-created: "&aAuction created successfully! ID: #{id}" - auction-cancelled: "&aAuction cancelled. Item returned to claim storage." - auction-ended-winner: "&aCongratulations! You won the auction for {item}! Paid: {price}" - auction-ended-seller: "&aYour auction for {item} ended! Winner: {winner}, Earned: {price}" - auction-ended-no-bids: "&eYour auction for {item} ended with no bids. Item moved to claim storage." - auction-limit-reached: "&cYou've reached the maximum number of auctions ({max})." - auction-not-found: "&cAuction not found or no longer available." - auction-own-item: "&cYou cannot bid on your own auction." - auction-bid-placed: "&aYou placed a bid of {amount} on {item}!" - auction-outbid: "&eYou've been outbid on {item}! New bid: {amount} by {bidder}" - auction-bid-too-low: "&cBid too low! Minimum bid: {min}" - auction-insufficient-funds: "&cYou don't have enough money. Required: {price}" - auction-buyout: "&aYou bought out the auction for {item} for {price}!" - auction-extended: "&eAuction extended by {seconds}s due to anti-snipe protection." - - # Claim Messages - claim-success: "&aItem claimed successfully!" - claim-empty: "&eYou have no items to claim." - claim-inventory-full: "&cYour inventory is full! Please make space." - claim-all-success: "&aClaimed {count} items!" - - # Earnings Messages - earnings-withdrawn: "&aWithdrew {amount}! New balance: {balance}" - earnings-empty: "&eYou have no pending earnings." - earnings-balance: "&aYour pending earnings: {amount}" - - # Item Validation - invalid-item: "&cPlease select a valid item." - item-no-longer-available: "&cThe selected item is no longer in your inventory." - item-changed: "&cThe selected item has changed. Please select again." - quantity-changed: "&cThe available quantity has changed. Please verify and try again." - blacklisted-item: "&cThis item type is not allowed on the market." - blacklisted-content: "&cThis item contains blacklisted content." - invalid-price: "&cInvalid price. Range: {min} - {max}" - invalid-amount: "&cInvalid amount." - invalid-duration: "&cInvalid duration." - - # Admin Messages - admin-listing-removed: "&aListing #{id} removed by admin." - admin-auction-cancelled: "&aAuction #{id} cancelled by admin." - admin-reload: "&aConfiguration reloaded." - -# GUI Titles (support color codes) -gui-titles: - main-menu: "&8&lCommunity Market" - browse-market: "&8&lBrowse Market &7(Page {page})" - browse-auctions: "&8&lBrowse Auctions &7(Page {page})" - create-listing: "&8&lCreate Listing" - create-auction: "&8&lCreate Auction" - select-item-listing: "&8&lSelect Item to Sell" - select-item-auction: "&8&lSelect Item to Auction" - quantity-select: "&8&lSelect Quantity" - my-listings: "&8&lMy Listings" - my-auctions: "&8&lMy Auctions" - claim-items: "&8&lClaim Items" - earnings: "&8&lEarnings" - confirm-purchase: "&8&lConfirm Purchase" - confirm-bid: "&8&lConfirm Bid" - confirm-cancel: "&8&lConfirm Cancellation" - number-input: "&8&lEnter Amount" - admin-panel: "&8&lAdmin Panel" - admin-listings: "&8&lAll Listings" - admin-auctions: "&8&lAll Auctions" - listing-details: "&8&lListing Details" - auction-details: "&8&lAuction Details" - filter-menu: "&8&lFilter Options" - sort-menu: "&8&lSort Options" - duration-select: "&8&lSelect Duration" - help: "&8&lHelp" - -# Button Names -buttons: - # Main Menu - browse-market: "&aBrowse Market" - browse-auctions: "&6Browse Auctions" - create-listing: "&eCreate Listing" - create-auction: "&eCreate Auction" - my-listings: "&bMy Listings" - my-auctions: "&bMy Auctions" - claim-items: "&dClaim Items" - earnings: "&aEarnings" - help: "&fHelp" - admin: "&cAdmin Panel" - - # Navigation - next-page: "&aNext Page →" - previous-page: "&a← Previous Page" - back: "&cBack" - close: "&cClose" - - # Actions - confirm: "&aConfirm" - cancel: "&cCancel" - buy: "&aBuy Now" - bid: "&6Place Bid" - buyout: "&eBuyout" - claim: "&aClaim" - claim-all: "&aClaim All" - withdraw: "&aWithdraw All" - remove: "&cRemove Listing" - cancel-auction: "&cCancel Auction" - - # Number Input - add-1: "&a+1" - add-10: "&a+10" - add-100: "&a+100" - add-1000: "&a+1,000" - subtract-1: "&c-1" - subtract-10: "&c-10" - subtract-100: "&c-100" - subtract-1000: "&c-1,000" - set-min: "&eSet Min" - set-max: "&eSet Max" - custom-amount: "&bCustom Amount" - - # Filters & Sort - filter: "&eFilter" - sort: "&eSort" - search: "&eSearch" - clear-filter: "&cClear Filters" - - # Duration - duration-1h: "&e1 Hour" - duration-6h: "&e6 Hours" - duration-12h: "&e12 Hours" - duration-24h: "&e24 Hours" - duration-48h: "&e48 Hours" - duration-72h: "&e3 Days" - duration-168h: "&e7 Days" - duration-336h: "&e14 Days" - - # Admin - admin-view-listings: "&aView All Listings" - admin-view-auctions: "&6View All Auctions" - admin-reload: "&eReload Config" - -# Button Lore (descriptions) -lore: - browse-market: - - "&7Browse all fixed-price" - - "&7listings from players." - - "" - - "&eClick to browse!" - browse-auctions: - - "&7Browse all active auctions" - - "&7and place bids." - - "" - - "&eClick to browse!" - create-listing: - - "&7Sell items at a fixed price." - - "&7Tax: &f{tax}%" - - "" - - "&eClick to create!" - create-auction: - - "&7Auction items to the" - - "&7highest bidder." - - "&7Tax: &f{tax}%" - - "" - - "&eClick to create!" - my-listings: - - "&7View and manage your" - - "&7active listings." - - "" - - "&7Active: &f{count}/{max}" - - "" - - "&eClick to view!" - my-auctions: - - "&7View and manage your" - - "&7active auctions." - - "" - - "&7Active: &f{count}/{max}" - - "" - - "&eClick to view!" - claim-items: - - "&7Claim items from expired" - - "&7listings or won auctions." - - "" - - "&7Pending: &f{count}" - - "" - - "&eClick to claim!" - earnings: - - "&7View and withdraw your" - - "&7pending earnings from sales." - - "" - - "&7Pending: &a{amount}" - - "" - - "&eClick to view!" - help: - - "&7Learn how to use the" - - "&7Community Market." - - "" - - "&eClick for help!" - admin: - - "&cAdmin Panel" - - "&7Manage listings and auctions." - - "" - - "&eClick to open!" - - # Listing Info - listing-info: - - "&7Seller: &f{seller}" - - "&7Price: &a{price}" - - "&7Amount: &f{amount}" - - "&7Expires: &f{expires}" - - "" - - "&eLeft-click to buy!" - - # Auction Info - auction-info: - - "&7Seller: &f{seller}" - - "&7Starting bid: &a{start_price}" - - "&7Current bid: &a{current_bid}" - - "&7Bidder: &f{bidder}" - - "&7Bids: &f{bid_count}" - - "&7Ends: &f{ends}" - - "" - - "&eLeft-click to bid!" - - "&eRight-click to buyout!" - - # My Listing Info - my-listing-info: - - "&7Price: &a{price}" - - "&7Amount: &f{amount}" - - "&7Created: &f{created}" - - "&7Expires: &f{expires}" - - "" - - "&cClick to cancel" - - # My Auction Info - my-auction-info: - - "&7Starting bid: &a{start_price}" - - "&7Current bid: &a{current_bid}" - - "&7Bidder: &f{bidder}" - - "&7Bids: &f{bid_count}" - - "&7Ends: &f{ends}" - - "" - - "&cClick to cancel (if no bids)" - - # Confirm Purchase - confirm-purchase-info: - - "&7You are purchasing:" - - "&f{item} x{amount}" - - "" - - "&7Price: &a{price}" - - "&7Tax: &e{tax}" - - "&7Total: &a{total}" - - "" - - "&aClick to confirm!" - - # Confirm Bid - confirm-bid-info: - - "&7You are bidding on:" - - "&f{item}" - - "" - - "&7Your bid: &a{bid}" - - "&7Current high: &e{current}" - - "" - - "&aClick to confirm!" - - # Claim Item - claim-item-info: - - "&7Reason: &f{reason}" - - "&7From: &f{source}" - - "&7Date: &f{date}" - - "" - - "&eClick to claim!" - - # Earnings Info - earnings-info: - - "&7Your pending earnings" - - "&7from market sales." - - "" - - "&7Total: &a{amount}" - - "" - - "&aClick to withdraw!" - - # Number Input Info - current-value: - - "&7Current: &a{value}" - -# Filter Options -filters: - all: "&fAll Items" - weapons: "&cWeapons" - armor: "&bArmor" - tools: "&eTools" - blocks: "&7Blocks" - food: "&6Food" - potions: "&dPotions" - materials: "&aMaterials" - enchanted: "&5Enchanted Items" - misc: "&8Miscellaneous" - -# Sort Options -sort: - newest: "&aNewest First" - oldest: "&eOldest First" - price-low: "&aPrice: Low to High" - price-high: "&cPrice: High to Low" - ending-soon: "&6Ending Soon" - most-bids: "&bMost Bids" - -# Time Formats -time: - expired: "&cExpired" - days: "{d}d" - hours: "{h}h" - minutes: "{m}m" - seconds: "{s}s" - -# Quantity Selector GUI -quantity-select: - title: "&6&lSelect Quantity" - info-line-1: "&7Choose how many items" - info-line-2: "&7you want to sell." - available: "&7Available: &f{amount}" - selected: "&7Selected: &f{amount}" - quantity-label: "Quantity" - minimum: "&7Minimum: &f{amount}" - maximum: "&7Maximum: &f{amount}" - use-buttons: "&eUse buttons to adjust" - click-adjust: "&7Click: &e{amount}" - set-minimum: "&6Set Minimum" - set-maximum: "&6Set Maximum" - set-to: "&7Set to: &f{amount}" - back-lore: "&7Return to item selection" - confirm-lore: "&7Quantity: &a{amount}" - -# Item Selection GUI -item-selection: - info-title: "&fSelect an Item" - info-lore-listing: "&7Click on an item from your|&7inventory to create a &eListing&7." - info-lore-auction: "&7Click on an item from your|&7inventory to create a &6Auction&7." - blacklisted-note: "&7Blacklisted items are shown in red." - click-to-select: "&a► Click to select" - blocked-title: "&c{material}" - blocked-lore-1: "&7This item cannot be listed." - blocked-lore-2: "&cBlacklisted or invalid." - back-lore: "&7Return to main menu" - -# Create Listing GUI -create-listing: - info-title: "&6&lCreate Listing" - info-lore-1: "&7Set a price and duration" - info-lore-2: "&7for your listing." - tax-info: "&7Tax: &f{tax}%" - item-lore: "&7Quantity: &f{amount}|&eThis item will be listed" - price-title: "&6Price: {price}" - price-tax: "&7Tax ({percent}%): &c{amount}" - price-earnings: "&7You receive: &a{amount}" - price-click: "&eClick to change price" - duration-title: "&eDuration: {duration}" - duration-lore: "&7Listing expires after this time" - duration-click: "&eClick to change duration" - back-lore: "&7Return to item selection" - confirm-item: "&7Item: &f{item} x{amount}" - confirm-price: "&7Price: &a{price}" - confirm-earnings: "&7You receive: &a{amount}" - confirm-duration: "&7Duration: &e{duration}" - confirm-click: "&aClick to create listing!" - -# Create Auction GUI -create-auction: - info-title: "&6&lCreate Auction" - info-lore-1: "&7Set starting price, optional buyout," - info-lore-2: "&7and duration for your auction." - tax-info: "&7Tax on sale: &f{tax}%" - item-lore: "&7Quantity: &f{amount}|&eThis item will be auctioned" - start-price-title: "&6Starting Price: {price}" - start-price-lore-1: "&7Minimum bid to start" - start-price-lore-2: "&7the auction." - start-price-click: "&eClick to change" - buyout-title-set: "&bBuyout: {price}" - buyout-title-unset: "&bBuyout: &7Not set" - buyout-lore-set-1: "&7Instant purchase price." - buyout-lore-set-2: "&eLeft-click to change" - buyout-lore-set-3: "&cRight-click to remove" - buyout-lore-unset-1: "&7Optional instant purchase" - buyout-lore-unset-2: "&7price for your auction." - buyout-lore-unset-click: "&eClick to set buyout price" - duration-title: "&eDuration: {duration}" - duration-lore: "&7Auction ends after this time." - duration-click: "&eClick to change duration" - back-lore: "&7Return to item selection" - confirm-item: "&7Item: &f{item} x{amount}" - confirm-start: "&7Start: &a{price}" - confirm-buyout: "&7Buyout: &b{price}" - confirm-buyout-none: "&7Buyout: &7None" - confirm-duration: "&7Duration: &e{duration}" - confirm-click: "&aClick to create auction!" - -# Number Input GUI -number-input: - display-title: "&6&l{value}" - minimum: "&7Minimum: &f{value}" - maximum: "&7Maximum: &f{value}" - use-buttons: "&eUse buttons to adjust" - click-adjust: "&7Click: &e{amount}" - shift-click: "&7Shift-click: &e{amount}" - set-minimum: "&6Set Minimum" - set-maximum: "&6Set Maximum" - set-to: "&7Set to: &f{value}" - cancel-lore: "&7Cancel and go back" - confirm-lore: "&7Confirm: &a{value}" - -# Help Content -help: - title: "&6&lCommunity Market Help" - content: - - "&eBrowse Market &7- View and buy fixed-price listings" - - "&eBrowse Auctions &7- View and bid on auctions" - - "&eCreate Listing &7- Sell items at a fixed price" - - "&eCreate Auction &7- Auction items to highest bidder" - - "&eMy Listings &7- Manage your active listings" - - "&eMy Auctions &7- Manage your active auctions" - - "&eClaim Items &7- Collect unsold/won items" - - "&eEarnings &7- Withdraw money from sales" - - "" - - "&7&oTip: All actions are done through GUIs!" - - "&7&oJust click on buttons to navigate." - diff --git a/target/classes/lang/pt_PT.yml b/target/classes/lang/pt_PT.yml deleted file mode 100644 index 019e495..0000000 --- a/target/classes/lang/pt_PT.yml +++ /dev/null @@ -1,448 +0,0 @@ -# ============================================ -# CommunityMarket Ficheiro de Idioma - Português (Portugal) -# ============================================ - -# Geral -prefix: "&8[&6Mercado&8] &r" - -# Mensagens Gerais -messages: - no-permission: "&cNão tens permissão para fazer isso." - player-only: "&cEste comando só pode ser usado por jogadores." - reload-success: "&aConfiguração recarregada com sucesso!" - economy-not-found: "&cNenhum plugin de economia encontrado! Mercado desativado." - - # Mensagens de Anúncios - listing-created: "&aAnúncio criado com sucesso! ID: #{id}" - listing-cancelled: "&aAnúncio cancelado. Item devolvido ao armazém." - listing-expired: "&eO teu anúncio #{id} expirou. Item movido para o armazém." - listing-purchased: "&aCompraste {item} x{amount} por {price}!" - listing-sold: "&aO teu {item} x{amount} foi vendido a {buyer} por {price}!" - listing-limit-reached: "&cAtingiste o número máximo de anúncios ({max})." - listing-cooldown: "&cPor favor aguarda {time} antes de criar outro anúncio." - listing-not-found: "&cAnúncio não encontrado ou já não está disponível." - listing-own-item: "&cNão podes comprar o teu próprio anúncio." - listing-insufficient-funds: "&cNão tens dinheiro suficiente. Necessário: {price}" - - # Mensagens de Leilões - auction-created: "&aLeilão criado com sucesso! ID: #{id}" - auction-cancelled: "&aLeilão cancelado. Item devolvido ao armazém." - auction-ended-winner: "&aParabéns! Ganhaste o leilão por {item}! Pagaste: {price}" - auction-ended-seller: "&aO teu leilão por {item} terminou! Vencedor: {winner}, Ganhaste: {price}" - auction-ended-no-bids: "&eO teu leilão por {item} terminou sem licitações. Item movido para o armazém." - auction-limit-reached: "&cAtingiste o número máximo de leilões ({max})." - auction-not-found: "&cLeilão não encontrado ou já não está disponível." - auction-own-item: "&cNão podes licitar no teu próprio leilão." - auction-bid-placed: "&aFizeste uma licitação de {amount} em {item}!" - auction-outbid: "&eForam feitas licitações superiores à tua em {item}! Nova licitação: {amount} por {bidder}" - auction-bid-too-low: "&cLicitação muito baixa! Mínimo: {min}" - auction-insufficient-funds: "&cNão tens dinheiro suficiente. Necessário: {price}" - auction-buyout: "&aCompraste o leilão de {item} por {price}!" - auction-extended: "&eLeilão prolongado por {seconds}s devido à proteção anti-snipe." - - # Mensagens de Reclamação - claim-success: "&aItem reclamado com sucesso!" - claim-empty: "&eNão tens itens para reclamar." - claim-inventory-full: "&cO teu inventário está cheio! Por favor liberta espaço." - claim-all-success: "&aReclamaste {count} itens!" - - # Mensagens de Ganhos - earnings-withdrawn: "&aLevantaste {amount}! Novo saldo: {balance}" - earnings-empty: "&eNão tens ganhos pendentes." - earnings-balance: "&aOs teus ganhos pendentes: {amount}" - - # Validação de Itens - invalid-item: "&cPor favor seleciona um item válido." - item-no-longer-available: "&cO item selecionado já não está no teu inventário." - item-changed: "&cO item selecionado foi alterado. Por favor seleciona novamente." - quantity-changed: "&cA quantidade disponível foi alterada. Por favor verifica e tenta novamente." - blacklisted-item: "&cEste tipo de item não é permitido no mercado." - blacklisted-content: "&cEste item contém conteúdo bloqueado." - invalid-price: "&cPreço inválido. Intervalo: {min} - {max}" - invalid-amount: "&cQuantidade inválida." - invalid-duration: "&cDuração inválida." - - # Mensagens de Admin - admin-listing-removed: "&aAnúncio #{id} removido pelo admin." - admin-auction-cancelled: "&aLeilão #{id} cancelado pelo admin." - admin-reload: "&aConfiguração recarregada." - -# Títulos GUI (suportam códigos de cor) -gui-titles: - main-menu: "&8&lMercado Comunitário" - browse-market: "&8&lExplorar Mercado &7(Página {page})" - browse-auctions: "&8&lExplorar Leilões &7(Página {page})" - create-listing: "&8&lCriar Anúncio" - create-auction: "&8&lCriar Leilão" - select-item-listing: "&8&lSelecionar Item para Vender" - select-item-auction: "&8&lSelecionar Item para Leilão" - quantity-select: "&8&lSelecionar Quantidade" - my-listings: "&8&lOs Meus Anúncios" - my-auctions: "&8&lOs Meus Leilões" - claim-items: "&8&lReclamar Itens" - earnings: "&8&lGanhos" - confirm-purchase: "&8&lConfirmar Compra" - confirm-bid: "&8&lConfirmar Licitação" - confirm-cancel: "&8&lConfirmar Cancelamento" - number-input: "&8&lIntroduzir Valor" - admin-panel: "&8&lPainel de Admin" - admin-listings: "&8&lTodos os Anúncios" - admin-auctions: "&8&lTodos os Leilões" - listing-details: "&8&lDetalhes do Anúncio" - auction-details: "&8&lDetalhes do Leilão" - filter-menu: "&8&lOpções de Filtro" - sort-menu: "&8&lOpções de Ordenação" - duration-select: "&8&lSelecionar Duração" - help: "&8&lAjuda" - -# Nomes dos Botões -buttons: - # Menu Principal - browse-market: "&aExplorar Mercado" - browse-auctions: "&6Explorar Leilões" - create-listing: "&eCriar Anúncio" - create-auction: "&eCriar Leilão" - my-listings: "&bOs Meus Anúncios" - my-auctions: "&bOs Meus Leilões" - claim-items: "&dReclamar Itens" - earnings: "&aGanhos" - help: "&fAjuda" - admin: "&cPainel de Admin" - - # Navegação - next-page: "&aPágina Seguinte →" - previous-page: "&a← Página Anterior" - back: "&cVoltar" - close: "&cFechar" - - # Ações - confirm: "&aConfirmar" - cancel: "&cCancelar" - buy: "&aComprar Agora" - bid: "&6Fazer Licitação" - buyout: "&eCompra Imediata" - claim: "&aReclamar" - claim-all: "&aReclamar Tudo" - withdraw: "&aLevantar Tudo" - remove: "&cRemover Anúncio" - cancel-auction: "&cCancelar Leilão" - - # Entrada Numérica - add-1: "&a+1" - add-10: "&a+10" - add-100: "&a+100" - add-1000: "&a+1.000" - subtract-1: "&c-1" - subtract-10: "&c-10" - subtract-100: "&c-100" - subtract-1000: "&c-1.000" - set-min: "&eDefinir Mín" - set-max: "&eDefinir Máx" - custom-amount: "&bValor Personalizado" - - # Filtros e Ordenação - filter: "&eFiltro" - sort: "&eOrdenar" - search: "&ePesquisar" - clear-filter: "&cLimpar Filtros" - - # Duração - duration-1h: "&e1 Hora" - duration-6h: "&e6 Horas" - duration-12h: "&e12 Horas" - duration-24h: "&e24 Horas" - duration-48h: "&e48 Horas" - duration-72h: "&e3 Dias" - duration-168h: "&e7 Dias" - duration-336h: "&e14 Dias" - - # Admin - admin-view-listings: "&aVer Todos os Anúncios" - admin-view-auctions: "&6Ver Todos os Leilões" - admin-reload: "&eRecarregar Config" - -# Lore dos Botões (descrições) -lore: - browse-market: - - "&7Explora todos os anúncios" - - "&7de preço fixo dos jogadores." - - "" - - "&eClica para explorar!" - browse-auctions: - - "&7Explora todos os leilões ativos" - - "&7e faz licitações." - - "" - - "&eClica para explorar!" - create-listing: - - "&7Vende itens a um preço fixo." - - "&7Taxa: &f{tax}%" - - "" - - "&eClica para criar!" - create-auction: - - "&7Leiloa itens ao" - - "&7maior licitador." - - "&7Taxa: &f{tax}%" - - "" - - "&eClica para criar!" - my-listings: - - "&7Vê e gere os teus" - - "&7anúncios ativos." - - "" - - "&7Ativos: &f{count}/{max}" - - "" - - "&eClica para ver!" - my-auctions: - - "&7Vê e gere os teus" - - "&7leilões ativos." - - "" - - "&7Ativos: &f{count}/{max}" - - "" - - "&eClica para ver!" - claim-items: - - "&7Reclama itens de anúncios" - - "&7expirados ou leilões ganhos." - - "" - - "&7Pendentes: &f{count}" - - "" - - "&eClica para reclamar!" - earnings: - - "&7Vê e levanta os teus" - - "&7ganhos pendentes das vendas." - - "" - - "&7Pendente: &a{amount}" - - "" - - "&eClica para ver!" - help: - - "&7Aprende a usar o" - - "&7Mercado Comunitário." - - "" - - "&eClica para ajuda!" - admin: - - "&cPainel de Admin" - - "&7Gere anúncios e leilões." - - "" - - "&eClica para abrir!" - - # Info do Anúncio - listing-info: - - "&7Vendedor: &f{seller}" - - "&7Preço: &a{price}" - - "&7Quantidade: &f{amount}" - - "&7Expira: &f{expires}" - - "" - - "&eClique esquerdo para comprar!" - - # Info do Leilão - auction-info: - - "&7Vendedor: &f{seller}" - - "&7Licitação inicial: &a{start_price}" - - "&7Licitação atual: &a{current_bid}" - - "&7Licitador: &f{bidder}" - - "&7Licitações: &f{bid_count}" - - "&7Termina: &f{ends}" - - "" - - "&eClique esquerdo para licitar!" - - "&eClique direito para compra imediata!" - - # Info do Meu Anúncio - my-listing-info: - - "&7Preço: &a{price}" - - "&7Quantidade: &f{amount}" - - "&7Criado: &f{created}" - - "&7Expira: &f{expires}" - - "" - - "&cClica para cancelar" - - # Info do Meu Leilão - my-auction-info: - - "&7Licitação inicial: &a{start_price}" - - "&7Licitação atual: &a{current_bid}" - - "&7Licitador: &f{bidder}" - - "&7Licitações: &f{bid_count}" - - "&7Termina: &f{ends}" - - "" - - "&cClica para cancelar (sem licitações)" - - # Confirmar Compra - confirm-purchase-info: - - "&7Estás a comprar:" - - "&f{item} x{amount}" - - "" - - "&7Preço: &a{price}" - - "&7Taxa: &e{tax}" - - "&7Total: &a{total}" - - "" - - "&aClica para confirmar!" - - # Confirmar Licitação - confirm-bid-info: - - "&7Estás a licitar em:" - - "&f{item}" - - "" - - "&7A tua licitação: &a{bid}" - - "&7Atual mais alta: &e{current}" - - "" - - "&aClica para confirmar!" - - # Reclamar Item - claim-item-info: - - "&7Razão: &f{reason}" - - "&7De: &f{source}" - - "&7Data: &f{date}" - - "" - - "&eClica para reclamar!" - - # Info de Ganhos - earnings-info: - - "&7Os teus ganhos pendentes" - - "&7das vendas no mercado." - - "" - - "&7Total: &a{amount}" - - "" - - "&aClica para levantar!" - - # Info de Entrada Numérica - current-value: - - "&7Atual: &a{value}" - -# Opções de Filtro -filters: - all: "&fTodos os Itens" - weapons: "&cArmas" - armor: "&bArmadura" - tools: "&eFerramentas" - blocks: "&7Blocos" - food: "&6Comida" - potions: "&dPoções" - materials: "&aMateriais" - enchanted: "&5Itens Encantados" - misc: "&8Diversos" - -# Opções de Ordenação -sort: - newest: "&aMais Recente" - oldest: "&eMais Antigo" - price-low: "&aPreço: Menor para Maior" - price-high: "&cPreço: Maior para Menor" - ending-soon: "&6A Terminar Em Breve" - most-bids: "&bMais Licitações" - -# Formatos de Tempo -time: - expired: "&cExpirado" - days: "{d}d" - hours: "{h}h" - minutes: "{m}m" - seconds: "{s}s" - -# GUI de Seleção de Quantidade -quantity-select: - title: "&6&lSelecionar Quantidade" - info-line-1: "&7Escolhe quantos itens" - info-line-2: "&7queres vender." - available: "&7Disponível: &f{amount}" - selected: "&7Selecionado: &f{amount}" - quantity-label: "Quantidade" - minimum: "&7Mínimo: &f{amount}" - maximum: "&7Máximo: &f{amount}" - use-buttons: "&eUsa os botões para ajustar" - click-adjust: "&7Clica: &e{amount}" - set-minimum: "&6Definir Mínimo" - set-maximum: "&6Definir Máximo" - set-to: "&7Definir para: &f{amount}" - back-lore: "&7Voltar à seleção de item" - confirm-lore: "&7Quantidade: &a{amount}" - -# GUI de Seleção de Item -item-selection: - info-title: "&fSelecionar um Item" - info-lore-listing: "&7Clica num item do teu|&7inventário para criar um &eAnúncio&7." - info-lore-auction: "&7Clica num item do teu|&7inventário para criar um &6Leilão&7." - blacklisted-note: "&7Itens bloqueados aparecem a vermelho." - click-to-select: "&a► Clica para selecionar" - blocked-title: "&c{material}" - blocked-lore-1: "&7Este item não pode ser listado." - blocked-lore-2: "&cBloqueado ou inválido." - back-lore: "&7Voltar ao menu principal" - -# GUI de Criar Anúncio -create-listing: - info-title: "&6&lCriar Anúncio" - info-lore-1: "&7Define um preço e duração" - info-lore-2: "&7para o teu anúncio." - tax-info: "&7Taxa: &f{tax}%" - item-lore: "&7Quantidade: &f{amount}|&eEste item será listado" - price-title: "&6Preço: {price}" - price-tax: "&7Taxa ({percent}%): &c{amount}" - price-earnings: "&7Recebes: &a{amount}" - price-click: "&eClica para alterar preço" - duration-title: "&eDuração: {duration}" - duration-lore: "&7O anúncio expira após este tempo" - duration-click: "&eClica para alterar duração" - back-lore: "&7Voltar à seleção de item" - confirm-item: "&7Item: &f{item} x{amount}" - confirm-price: "&7Preço: &a{price}" - confirm-earnings: "&7Recebes: &a{amount}" - confirm-duration: "&7Duração: &e{duration}" - confirm-click: "&aClica para criar anúncio!" - -# GUI de Criar Leilão -create-auction: - info-title: "&6&lCriar Leilão" - info-lore-1: "&7Define preço inicial, compra imediata opcional," - info-lore-2: "&7e duração para o teu leilão." - tax-info: "&7Taxa na venda: &f{tax}%" - item-lore: "&7Quantidade: &f{amount}|&eEste item será leiloado" - start-price-title: "&6Preço Inicial: {price}" - start-price-lore-1: "&7Licitação mínima para iniciar" - start-price-lore-2: "&7o leilão." - start-price-click: "&eClica para alterar" - buyout-title-set: "&bCompra Imediata: {price}" - buyout-title-unset: "&bCompra Imediata: &7Não definido" - buyout-lore-set-1: "&7Preço de compra instantânea." - buyout-lore-set-2: "&eClique esquerdo para alterar" - buyout-lore-set-3: "&cClique direito para remover" - buyout-lore-unset-1: "&7Preço opcional de compra" - buyout-lore-unset-2: "&7instantânea para o teu leilão." - buyout-lore-unset-click: "&eClica para definir preço de compra imediata" - duration-title: "&eDuração: {duration}" - duration-lore: "&7O leilão termina após este tempo." - duration-click: "&eClica para alterar duração" - back-lore: "&7Voltar à seleção de item" - confirm-item: "&7Item: &f{item} x{amount}" - confirm-start: "&7Início: &a{price}" - confirm-buyout: "&7Compra Imediata: &b{price}" - confirm-buyout-none: "&7Compra Imediata: &7Nenhum" - confirm-duration: "&7Duração: &e{duration}" - confirm-click: "&aClica para criar leilão!" - -# GUI de Entrada Numérica -number-input: - display-title: "&6&l{value}" - minimum: "&7Mínimo: &f{value}" - maximum: "&7Máximo: &f{value}" - use-buttons: "&eUsa os botões para ajustar" - click-adjust: "&7Clica: &e{amount}" - shift-click: "&7Shift-clica: &e{amount}" - set-minimum: "&6Definir Mínimo" - set-maximum: "&6Definir Máximo" - set-to: "&7Definir para: &f{value}" - cancel-lore: "&7Cancelar e voltar" - confirm-lore: "&7Confirmar: &a{value}" - -# Conteúdo de Ajuda -help: - title: "&6&lAjuda do Mercado Comunitário" - content: - - "&eExplorar Mercado &7- Ver e comprar anúncios de preço fixo" - - "&eExplorar Leilões &7- Ver e licitar em leilões" - - "&eCriar Anúncio &7- Vender itens a um preço fixo" - - "&eCriar Leilão &7- Leiloar itens ao maior licitador" - - "&eOs Meus Anúncios &7- Gerir os teus anúncios ativos" - - "&eOs Meus Leilões &7- Gerir os teus leilões ativos" - - "&eReclamar Itens &7- Recolher itens não vendidos/ganhos" - - "&eGanhos &7- Levantar dinheiro das vendas" - - "" - - "&7&oDica: Todas as ações são feitas através de GUIs!" - - "&7&oBasta clicar nos botões para navegar." - diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml deleted file mode 100644 index 844bcb7..0000000 --- a/target/classes/plugin.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: CommunityMarket -version: '1.0.0' -main: pt.henrique.communityMarket.CommunityMarket -api-version: '1.21' -description: A GUI-only marketplace plugin for fixed-price listings and auctions -author: Henrique -website: https://github.com/henrique/CommunityMarket - -# Soft dependencies - plugin will detect and use these if available -softdepend: - - Vault - - Essentials - -load: POSTWORLD - -commands: - market: - description: Opens the Community Market main menu - usage: / - aliases: [cmarket] - permission: communitymarket.use - -permissions: - communitymarket.*: - description: Grants all CommunityMarket permissions - default: op - children: - communitymarket.use: true - communitymarket.sell: true - communitymarket.auction: true - communitymarket.buy: true - communitymarket.bid: true - communitymarket.claim: true - communitymarket.withdraw: true - communitymarket.admin: true - - communitymarket.use: - description: Allows access to the market GUI - default: true - - communitymarket.sell: - description: Allows creating fixed-price listings - default: true - - communitymarket.auction: - description: Allows creating auctions - default: true - - communitymarket.buy: - description: Allows purchasing from the market - default: true - - communitymarket.bid: - description: Allows bidding on auctions - default: true - - communitymarket.claim: - description: Allows claiming items from storage - default: true - - communitymarket.withdraw: - description: Allows withdrawing earnings - default: true - - communitymarket.admin: - description: Allows access to admin functions - default: op - children: - communitymarket.admin.viewall: true - communitymarket.admin.remove: true - communitymarket.admin.reload: true - - communitymarket.admin.viewall: - description: Allows viewing all listings/auctions - default: op - - communitymarket.admin.remove: - description: Allows removing any listing or auction - default: op - - communitymarket.admin.reload: - description: Allows reloading configuration - default: op diff --git a/target/classes/pt/henrique/communityMarket/CommunityMarket.class b/target/classes/pt/henrique/communityMarket/CommunityMarket.class deleted file mode 100644 index 6faa8a5..0000000 Binary files a/target/classes/pt/henrique/communityMarket/CommunityMarket.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/command/MarketCommand.class b/target/classes/pt/henrique/communityMarket/command/MarketCommand.class deleted file mode 100644 index d14c080..0000000 Binary files a/target/classes/pt/henrique/communityMarket/command/MarketCommand.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/config/ConfigManager.class b/target/classes/pt/henrique/communityMarket/config/ConfigManager.class deleted file mode 100644 index e35a8e1..0000000 Binary files a/target/classes/pt/henrique/communityMarket/config/ConfigManager.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/config/MessageManager.class b/target/classes/pt/henrique/communityMarket/config/MessageManager.class deleted file mode 100644 index d65cc1b..0000000 Binary files a/target/classes/pt/henrique/communityMarket/config/MessageManager.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/db/DatabaseManager.class b/target/classes/pt/henrique/communityMarket/db/DatabaseManager.class deleted file mode 100644 index 3ef9cb6..0000000 Binary files a/target/classes/pt/henrique/communityMarket/db/DatabaseManager.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/economy/EconomyManager.class b/target/classes/pt/henrique/communityMarket/economy/EconomyManager.class deleted file mode 100644 index df82d94..0000000 Binary files a/target/classes/pt/henrique/communityMarket/economy/EconomyManager.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/AdminGui$AdminAuctionsGui.class b/target/classes/pt/henrique/communityMarket/gui/AdminGui$AdminAuctionsGui.class deleted file mode 100644 index 12e28bd..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/AdminGui$AdminAuctionsGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/AdminGui$AdminListingsGui.class b/target/classes/pt/henrique/communityMarket/gui/AdminGui$AdminListingsGui.class deleted file mode 100644 index 36848ad..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/AdminGui$AdminListingsGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/AdminGui.class b/target/classes/pt/henrique/communityMarket/gui/AdminGui.class deleted file mode 100644 index 154db21..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/AdminGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/BrowseAuctionsGui$1.class b/target/classes/pt/henrique/communityMarket/gui/BrowseAuctionsGui$1.class deleted file mode 100644 index 4d68a81..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/BrowseAuctionsGui$1.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/BrowseAuctionsGui.class b/target/classes/pt/henrique/communityMarket/gui/BrowseAuctionsGui.class deleted file mode 100644 index 67a1a02..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/BrowseAuctionsGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/BrowseMarketGui$1.class b/target/classes/pt/henrique/communityMarket/gui/BrowseMarketGui$1.class deleted file mode 100644 index e317f6c..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/BrowseMarketGui$1.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/BrowseMarketGui.class b/target/classes/pt/henrique/communityMarket/gui/BrowseMarketGui.class deleted file mode 100644 index 8466800..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/BrowseMarketGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/ClaimGui$1.class b/target/classes/pt/henrique/communityMarket/gui/ClaimGui$1.class deleted file mode 100644 index b49505f..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/ClaimGui$1.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/ClaimGui.class b/target/classes/pt/henrique/communityMarket/gui/ClaimGui.class deleted file mode 100644 index 6617c12..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/ClaimGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/ConfirmationGui$ConfirmCallback.class b/target/classes/pt/henrique/communityMarket/gui/ConfirmationGui$ConfirmCallback.class deleted file mode 100644 index 3b64abd..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/ConfirmationGui$ConfirmCallback.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/ConfirmationGui.class b/target/classes/pt/henrique/communityMarket/gui/ConfirmationGui.class deleted file mode 100644 index a35cd01..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/ConfirmationGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/CreateAuctionGui.class b/target/classes/pt/henrique/communityMarket/gui/CreateAuctionGui.class deleted file mode 100644 index c00038b..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/CreateAuctionGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/CreateListingGui.class b/target/classes/pt/henrique/communityMarket/gui/CreateListingGui.class deleted file mode 100644 index 62ea03f..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/CreateListingGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/EarningsGui.class b/target/classes/pt/henrique/communityMarket/gui/EarningsGui.class deleted file mode 100644 index 6a5a6e1..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/EarningsGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/GuiManager.class b/target/classes/pt/henrique/communityMarket/gui/GuiManager.class deleted file mode 100644 index 4e854ad..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/GuiManager.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/HelpGui.class b/target/classes/pt/henrique/communityMarket/gui/HelpGui.class deleted file mode 100644 index a531317..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/HelpGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/ItemSelectionGui$SelectionMode.class b/target/classes/pt/henrique/communityMarket/gui/ItemSelectionGui$SelectionMode.class deleted file mode 100644 index e1e708a..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/ItemSelectionGui$SelectionMode.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/ItemSelectionGui.class b/target/classes/pt/henrique/communityMarket/gui/ItemSelectionGui.class deleted file mode 100644 index 29dc14c..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/ItemSelectionGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/MainMenuGui.class b/target/classes/pt/henrique/communityMarket/gui/MainMenuGui.class deleted file mode 100644 index 0a650c7..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/MainMenuGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/MarketGui$GuiType.class b/target/classes/pt/henrique/communityMarket/gui/MarketGui$GuiType.class deleted file mode 100644 index e17d295..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/MarketGui$GuiType.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/MarketGui.class b/target/classes/pt/henrique/communityMarket/gui/MarketGui.class deleted file mode 100644 index 36ea701..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/MarketGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/MyAuctionsGui.class b/target/classes/pt/henrique/communityMarket/gui/MyAuctionsGui.class deleted file mode 100644 index d93c075..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/MyAuctionsGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/MyListingsGui.class b/target/classes/pt/henrique/communityMarket/gui/MyListingsGui.class deleted file mode 100644 index 3f69f61..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/MyListingsGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/NumberInputGui$NumberInputCallback.class b/target/classes/pt/henrique/communityMarket/gui/NumberInputGui$NumberInputCallback.class deleted file mode 100644 index c4fe151..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/NumberInputGui$NumberInputCallback.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/NumberInputGui.class b/target/classes/pt/henrique/communityMarket/gui/NumberInputGui.class deleted file mode 100644 index cc3136d..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/NumberInputGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/QuantitySelectGui$QuantityCallback.class b/target/classes/pt/henrique/communityMarket/gui/QuantitySelectGui$QuantityCallback.class deleted file mode 100644 index 1135df2..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/QuantitySelectGui$QuantityCallback.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/gui/QuantitySelectGui.class b/target/classes/pt/henrique/communityMarket/gui/QuantitySelectGui.class deleted file mode 100644 index 7b39d2b..0000000 Binary files a/target/classes/pt/henrique/communityMarket/gui/QuantitySelectGui.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/listener/GuiListener$1.class b/target/classes/pt/henrique/communityMarket/listener/GuiListener$1.class deleted file mode 100644 index d3d3890..0000000 Binary files a/target/classes/pt/henrique/communityMarket/listener/GuiListener$1.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/listener/GuiListener.class b/target/classes/pt/henrique/communityMarket/listener/GuiListener.class deleted file mode 100644 index b6d82cc..0000000 Binary files a/target/classes/pt/henrique/communityMarket/listener/GuiListener.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/listener/PlayerListener.class b/target/classes/pt/henrique/communityMarket/listener/PlayerListener.class deleted file mode 100644 index 0d9b212..0000000 Binary files a/target/classes/pt/henrique/communityMarket/listener/PlayerListener.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/Auction$AuctionStatus.class b/target/classes/pt/henrique/communityMarket/model/Auction$AuctionStatus.class deleted file mode 100644 index 2723f9d..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/Auction$AuctionStatus.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/Auction.class b/target/classes/pt/henrique/communityMarket/model/Auction.class deleted file mode 100644 index 456743c..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/Auction.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/Bid.class b/target/classes/pt/henrique/communityMarket/model/Bid.class deleted file mode 100644 index 128fea0..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/Bid.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/ClaimItem$ClaimReason.class b/target/classes/pt/henrique/communityMarket/model/ClaimItem$ClaimReason.class deleted file mode 100644 index 8f871f0..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/ClaimItem$ClaimReason.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/ClaimItem.class b/target/classes/pt/henrique/communityMarket/model/ClaimItem.class deleted file mode 100644 index 16dc042..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/ClaimItem.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/Listing$ListingStatus.class b/target/classes/pt/henrique/communityMarket/model/Listing$ListingStatus.class deleted file mode 100644 index f1e58f4..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/Listing$ListingStatus.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/Listing.class b/target/classes/pt/henrique/communityMarket/model/Listing.class deleted file mode 100644 index 35634db..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/Listing.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/model/PendingEarnings.class b/target/classes/pt/henrique/communityMarket/model/PendingEarnings.class deleted file mode 100644 index b5e85ed..0000000 Binary files a/target/classes/pt/henrique/communityMarket/model/PendingEarnings.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/AuctionService$BidResult.class b/target/classes/pt/henrique/communityMarket/service/AuctionService$BidResult.class deleted file mode 100644 index 94da621..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/AuctionService$BidResult.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/AuctionService$CancelResult.class b/target/classes/pt/henrique/communityMarket/service/AuctionService$CancelResult.class deleted file mode 100644 index 33e6fb7..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/AuctionService$CancelResult.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/AuctionService.class b/target/classes/pt/henrique/communityMarket/service/AuctionService.class deleted file mode 100644 index dbbc037..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/AuctionService.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/ClaimService$ClaimResult.class b/target/classes/pt/henrique/communityMarket/service/ClaimService$ClaimResult.class deleted file mode 100644 index 082b7eb..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/ClaimService$ClaimResult.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/ClaimService.class b/target/classes/pt/henrique/communityMarket/service/ClaimService.class deleted file mode 100644 index a9f67e0..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/ClaimService.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/EarningsService$WithdrawResult.class b/target/classes/pt/henrique/communityMarket/service/EarningsService$WithdrawResult.class deleted file mode 100644 index caeda88..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/EarningsService$WithdrawResult.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/EarningsService.class b/target/classes/pt/henrique/communityMarket/service/EarningsService.class deleted file mode 100644 index 159cc3a..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/EarningsService.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/ListingService$PurchaseResult.class b/target/classes/pt/henrique/communityMarket/service/ListingService$PurchaseResult.class deleted file mode 100644 index a13f586..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/ListingService$PurchaseResult.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/ListingService.class b/target/classes/pt/henrique/communityMarket/service/ListingService.class deleted file mode 100644 index a7dbca2..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/ListingService.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/TransactionService$TransactionResult.class b/target/classes/pt/henrique/communityMarket/service/TransactionService$TransactionResult.class deleted file mode 100644 index 4ea8986..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/TransactionService$TransactionResult.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/TransactionService$ValidationResult.class b/target/classes/pt/henrique/communityMarket/service/TransactionService$ValidationResult.class deleted file mode 100644 index 9c7c550..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/TransactionService$ValidationResult.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/service/TransactionService.class b/target/classes/pt/henrique/communityMarket/service/TransactionService.class deleted file mode 100644 index e8e46c5..0000000 Binary files a/target/classes/pt/henrique/communityMarket/service/TransactionService.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/task/AuctionTask.class b/target/classes/pt/henrique/communityMarket/task/AuctionTask.class deleted file mode 100644 index cbb6099..0000000 Binary files a/target/classes/pt/henrique/communityMarket/task/AuctionTask.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/task/ExpiredListingTask.class b/target/classes/pt/henrique/communityMarket/task/ExpiredListingTask.class deleted file mode 100644 index b92cf5e..0000000 Binary files a/target/classes/pt/henrique/communityMarket/task/ExpiredListingTask.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/util/InventoryUtil$ItemCategory.class b/target/classes/pt/henrique/communityMarket/util/InventoryUtil$ItemCategory.class deleted file mode 100644 index f47c23b..0000000 Binary files a/target/classes/pt/henrique/communityMarket/util/InventoryUtil$ItemCategory.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/util/InventoryUtil.class b/target/classes/pt/henrique/communityMarket/util/InventoryUtil.class deleted file mode 100644 index d5fbeb8..0000000 Binary files a/target/classes/pt/henrique/communityMarket/util/InventoryUtil.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/util/ItemBuilder.class b/target/classes/pt/henrique/communityMarket/util/ItemBuilder.class deleted file mode 100644 index 37508ac..0000000 Binary files a/target/classes/pt/henrique/communityMarket/util/ItemBuilder.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/util/ItemSerializer.class b/target/classes/pt/henrique/communityMarket/util/ItemSerializer.class deleted file mode 100644 index a03f75b..0000000 Binary files a/target/classes/pt/henrique/communityMarket/util/ItemSerializer.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/util/SoundUtil.class b/target/classes/pt/henrique/communityMarket/util/SoundUtil.class deleted file mode 100644 index 3880429..0000000 Binary files a/target/classes/pt/henrique/communityMarket/util/SoundUtil.class and /dev/null differ diff --git a/target/classes/pt/henrique/communityMarket/util/TextUtil.class b/target/classes/pt/henrique/communityMarket/util/TextUtil.class deleted file mode 100644 index f88cdea..0000000 Binary files a/target/classes/pt/henrique/communityMarket/util/TextUtil.class and /dev/null differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties deleted file mode 100644 index dd5d5c3..0000000 --- a/target/maven-archiver/pom.properties +++ /dev/null @@ -1,3 +0,0 @@ -artifactId=communitymarket -groupId=pt.henrique -version=1.0.0 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 3fcd82f..0000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,64 +0,0 @@ -pt\henrique\communityMarket\gui\BrowseAuctionsGui$1.class -pt\henrique\communityMarket\CommunityMarket.class -pt\henrique\communityMarket\gui\BrowseAuctionsGui.class -pt\henrique\communityMarket\gui\MainMenuGui.class -pt\henrique\communityMarket\gui\HelpGui.class -pt\henrique\communityMarket\gui\ClaimGui$1.class -pt\henrique\communityMarket\service\AuctionService.class -pt\henrique\communityMarket\gui\EarningsGui.class -pt\henrique\communityMarket\model\Auction$AuctionStatus.class -pt\henrique\communityMarket\command\MarketCommand.class -pt\henrique\communityMarket\gui\ItemSelectionGui$SelectionMode.class -pt\henrique\communityMarket\gui\MarketGui$GuiType.class -pt\henrique\communityMarket\model\ClaimItem$ClaimReason.class -pt\henrique\communityMarket\service\ListingService.class -pt\henrique\communityMarket\gui\ClaimGui.class -pt\henrique\communityMarket\gui\QuantitySelectGui$QuantityCallback.class -pt\henrique\communityMarket\service\TransactionService$TransactionResult.class -pt\henrique\communityMarket\util\TextUtil.class -pt\henrique\communityMarket\model\Listing.class -pt\henrique\communityMarket\gui\AdminGui.class -pt\henrique\communityMarket\util\ItemBuilder.class -pt\henrique\communityMarket\util\ItemSerializer.class -pt\henrique\communityMarket\gui\BrowseMarketGui$1.class -pt\henrique\communityMarket\gui\QuantitySelectGui.class -pt\henrique\communityMarket\gui\AdminGui$AdminAuctionsGui.class -pt\henrique\communityMarket\gui\MyAuctionsGui.class -pt\henrique\communityMarket\service\ClaimService$ClaimResult.class -pt\henrique\communityMarket\gui\NumberInputGui$NumberInputCallback.class -pt\henrique\communityMarket\gui\NumberInputGui.class -pt\henrique\communityMarket\service\AuctionService$CancelResult.class -pt\henrique\communityMarket\service\AuctionService$BidResult.class -pt\henrique\communityMarket\gui\BrowseMarketGui.class -pt\henrique\communityMarket\service\EarningsService.class -pt\henrique\communityMarket\config\MessageManager.class -pt\henrique\communityMarket\model\Auction.class -pt\henrique\communityMarket\model\ClaimItem.class -pt\henrique\communityMarket\gui\CreateAuctionGui.class -pt\henrique\communityMarket\task\AuctionTask.class -pt\henrique\communityMarket\util\SoundUtil.class -pt\henrique\communityMarket\model\Listing$ListingStatus.class -pt\henrique\communityMarket\util\InventoryUtil.class -pt\henrique\communityMarket\gui\MarketGui.class -pt\henrique\communityMarket\gui\GuiManager.class -pt\henrique\communityMarket\gui\CreateListingGui.class -pt\henrique\communityMarket\listener\GuiListener$1.class -pt\henrique\communityMarket\service\ClaimService.class -pt\henrique\communityMarket\service\TransactionService.class -pt\henrique\communityMarket\gui\MyListingsGui.class -pt\henrique\communityMarket\db\DatabaseManager.class -pt\henrique\communityMarket\task\ExpiredListingTask.class -pt\henrique\communityMarket\gui\AdminGui$AdminListingsGui.class -pt\henrique\communityMarket\gui\ConfirmationGui.class -pt\henrique\communityMarket\config\ConfigManager.class -pt\henrique\communityMarket\listener\GuiListener.class -pt\henrique\communityMarket\service\EarningsService$WithdrawResult.class -pt\henrique\communityMarket\gui\ItemSelectionGui.class -pt\henrique\communityMarket\util\InventoryUtil$ItemCategory.class -pt\henrique\communityMarket\listener\PlayerListener.class -pt\henrique\communityMarket\model\PendingEarnings.class -pt\henrique\communityMarket\service\TransactionService$ValidationResult.class -pt\henrique\communityMarket\model\Bid.class -pt\henrique\communityMarket\gui\ConfirmationGui$ConfirmCallback.class -pt\henrique\communityMarket\service\ListingService$PurchaseResult.class -pt\henrique\communityMarket\economy\EconomyManager.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 309208c..0000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,42 +0,0 @@ -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\command\MarketCommand.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\CommunityMarket.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\config\ConfigManager.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\config\MessageManager.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\db\DatabaseManager.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\economy\EconomyManager.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\AdminGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\BrowseAuctionsGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\BrowseMarketGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\ClaimGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\ConfirmationGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\CreateAuctionGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\CreateListingGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\EarningsGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\GuiManager.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\HelpGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\ItemSelectionGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\MainMenuGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\MarketGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\MyAuctionsGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\MyListingsGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\NumberInputGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\gui\QuantitySelectGui.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\listener\GuiListener.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\listener\PlayerListener.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\model\Auction.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\model\Bid.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\model\ClaimItem.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\model\Listing.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\model\PendingEarnings.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\service\AuctionService.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\service\ClaimService.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\service\EarningsService.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\service\ListingService.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\service\TransactionService.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\task\AuctionTask.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\task\ExpiredListingTask.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\util\InventoryUtil.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\util\ItemBuilder.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\util\ItemSerializer.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\util\SoundUtil.java -C:\Users\imrog\IdeaProjects\CommunityMarket\src\main\java\pt\henrique\communityMarket\util\TextUtil.java diff --git a/target/original-CommunityMarket-1.0.0.jar b/target/original-CommunityMarket-1.0.0.jar deleted file mode 100644 index eb703b2..0000000 Binary files a/target/original-CommunityMarket-1.0.0.jar and /dev/null differ