All Mods Resource Packs Data Packs Shaders Modpacks Plugins
PlayerAuctions

PlayerAuctions

by Unknown • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

PlayerAuctions

PlayerAuctions is a modern and feature-rich auction house plugin for PaperMC servers. It provides a robust, intuitive, and scalable platform for players to buy and sell items, fully integrated with Vault-based economies and PlaceholderAPI.

logo

✨ Overview

PlayerAuctions provides a robust, intuitive, and scalable platform for players to buy and sell items securely. Fully integrated with Vault-based economies and the latest Paper 1.21 API, PlayerAuctions brings a premium marketplace experience to your server.

What's new in v3.1.0?

  • Mailbox Integration: Canceled auctions and sold item revenues are securely routed to the player's personal mailbox, solving inventory management issues!
  • Cloud Command Framework (CCF): Extremely reliable, zero-latency commands with intelligent Tab Completions.
  • Adventure MiniMessage: 100% native MiniMessage GUI item formatting including Hex, Gradients, and auto-italic removal.
  • Strictly Paper 1.21: Dropped legacy version support for maximum performance and zero bloat.

🚀 Core Features

📬 Mailbox System (NEW)

No more dropped items when a player's inventory is full!

  • Canceled Listing Recovery: Canceling an active auction routes the item safely into the Mailbox.
  • Revenue Deposit Receipts: Sold items send a "Revenue Notification" to the seller's Mailbox. Claiming it deposits the Vault money—acting as a satisfying transaction receipt.
  • Expiration Protection: Items automatically expire after a configurable duration (default: 30 days).

📢 Global Broadcast Notifications

  • Keep the economy active! Broadcasts when items are listed and bought.
  • Clickable Links: Click "View Auction" right in chat.
  • Configurable Range: Broadcast to GLOBAL, WORLD, or NONE.

🎨 Premium GUI Interface

  • Native MiniMessage: Fully supports Hex RGB colors and gradients for borders, titles, and formats.
  • Smart Category Filtering: Quickly jump between categories like Blocks, Tools, Weapons, etc.
  • Dynamic Sorting: Sort auctions by Price (Ascending/Descending), Time Left, and Newest.
  • Search Engine: In-game robust search to filter active items.

🛡️ Secure Transactions

  • Atomic Locking: Prevents duplicate purchase exploits (race conditions) using optimistic database locking.
  • Persistent JSON Storage: Lightweight, concurrent-safe flat-file storage with auto-backups on writes.

⌨️ Commands & Permissions

Command Aliases: /ah, /auction, /auctionhouse

Command Description Permission Default
/ah Opens the main Auction House GUI playerauctions.use true
/ah sell <price> [buy_now] [time] List the item in your hand on the AH playerauctions.sell true
/ah myauctions View and manage your current listings playerauctions.use true
/ah mailbox Open your Mailbox to claim money and items playerauctions.use true
/ah search <keyword> Search for a specific item playerauctions.search true
/ah categories Browse items by predefined categories playerauctions.categories true
/ah history [player] View your (or others') transaction history playerauctions.history(.others) true (op)
/ah notify <on/off> Toggle personal auction notifications playerauctions.notify true
/ah reload Reload configuration files playerauctions.reload op

Admin Permissions

  • playerauctions.admin - Grants all administrative commands and bypasses.

🔧 Configuration Guide

PlayerAuctions is highly modular. Check your config.yml to customize the experience:

auction:
  max-auctions-per-player: 5
  tax-percentage: 5.0 # Removes 5% from all successful sales

  broadcast:
    enabled: true
    on-listing: true
    on-purchase: true
    range: GLOBAL # GLOBAL, WORLD, NONE

mailbox:
  enabled: true
  retention-days: 30 # Days before Mailbox items auto-expire

💬 Placeholders (PlaceholderAPI)

Integrate statistics into your scoreboard or tablist!

  • %playerauctions_total_auctions% - Tracks globally active auctions.
  • %playerauctions_player_listings% - Tracks the viewer's active listing count.

📦 Installation

  1. Ensure your server is running Paper 1.21+.
  2. Install Vault and an economy provider (e.g., EssentialsX).
  3. Drop PlayerAuctions-3.1.0.jar into your plugins/ folder.
  4. Restart the server.
  5. (Optional) Modify config.yml and messages.yml using standard <color> MiniMessage syntax!

🤝 Support & Issues

Developed by MinekartaStudio. Found a bug or need support? Please reach out via our GitHub repository issues tab or our Discord server.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.x
Paper Purpur Spigot
6h ago 1
1.21.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
1.21.x 1.20.x 1.19.x
Paper Purpur Spigot
6h ago 1
## Version 3.1.0 (February 25, 2026)

### Added
  • Mailbox Integration for Auctions**: Items and revenues are now safely routed through the Mailbox system!
  • Cancelled Auctions**: Instead of forcefully dropping returned items on the ground or cluttering the inventory, cancelling an auction now instantly sends the item to the Mailbox for asynchronous retrieval.
  • Auction Sales**: When an item is bought, the revenue is sent to the seller's Mailbox as a distinct money notification instead of spontaneously appearing in the player's balance. Claiming the money notification within the Mailbox deposits the balance seamlessly and serves as a read receipt for the transaction.
## Version 3.0.0 (February 25, 2026)

### Major Changes
  • Migrated to Cloud Command Framework (CCF)**: Rebuilt the entire command system for robust and native Paper command execution, including dynamic tab completions and strict argument parsing.
  • Removed Legacy Support**: Discontinued support for Minecraft versions 1.18 to 1.20 to fully standardize compatibility and features with the latest Paper 1.21 API.
  • Modernized GUI Formatting**: Fully integrated the Adventure Component API and MiniMessage formatting internally.

### Fixed
  • Fixed MiniMessage and Gradient Parsing Issues**: Resolved bugs where MiniMessage and Hex gradients were explicitly stripped down to legacy ampersands, destroying formats in GUIs.
  • Removed Default Minecraft Italicization**: Removed forced default italics on GUI item names and lores across all PlayerAuctions menus. Let your configurations shine!
  • Fixed My Listings GUI Blank Page Bug**: Fixed a misapplied SQL offset argument that caused active items from an individual player to not load correctly within the player's personal listings interface.
  • Resolved NoSuchMethodError for native component formatting caused by old Maven shade relocations on the Adventure API.
  • Re-implemented the missing MiniMessage tag checking regex inside MessageParser to accurately detect Hex tags natively.

### Added - Broadcast Notifications System
  • Global Broadcast Notifications** for auction events
  • Broadcast when players list items for auction
  • Broadcast when players purchase items
  • Clickable "View Auction" link in listing broadcasts
  • Beautiful hex-colored messages with emojis

  • BroadcastManager Service**
  • Centralized broadcast management
  • Configurable broadcast ranges (GLOBAL, WORLD, NONE)
  • Individual toggles for listing and purchase broadcasts
  • Smart player name resolution for offline sellers
  • World-based broadcasting support

### Configuration Options
``yaml
auction:
broadcast:
enabled: true # Master toggle
on-listing: true # Broadcast new listings
on-purchase: true # Broadcast purchases
range: GLOBAL # GLOBAL, WORLD, or NONE
``

### Broadcast Messages
  • Item Listed**: Shows player, item name, quantity, and price with clickable link
  • Item Purchased**: Shows buyer, seller, item, quantity, and price

### Technical Implementation
  • Integrated BroadcastManager into PlayerAuction main class
  • Broadcasts triggered from AuctionCommand (/ah sell)
  • Broadcasts triggered from AuctionService (purchase completion)
  • MiniMessage support for rich text formatting
  • Click events for interactive messages
  • Proper thread handling (main thread for Bukkit operations)

### Benefits
  • Server Activity**: Players see active marketplace
  • Price Discovery**: Players learn market prices
  • Engagement**: Encourages trading and competition
  • Transparency**: All trades are visible to community
  • Configurable**: Can disable per feature or globally

### Fixed
  • Fixed NullPointerException in ConfigManager.getMessage()**
  • Added null check for replacements parameter to prevent crashes
  • Now handles calls with null varargs gracefully
  • Fixes GUI opening errors in MainAuctionGui and MailboxGui

  • Fixed file I/O errors in JsonAuctionStorage**
  • Implemented retry logic with 3 attempts for file rename operations
  • Added automatic old file deletion before rename to prevent conflicts
  • Improved error logging with detailed diagnostics
  • Reduced "Failed to rename temporary file" errors significantly

  • Fixed ResourceLocationException for notification sounds**
  • Implemented smart sound name handling (supports both enum and resource location formats)
  • Added automatic format conversion from enum names to resource locations
  • Added fallback to safe default sound (ENTITY_EXPERIENCE_ORB_PICKUP) if playback fails
  • Prevents crashes from malformed sound names like "BLOCK_NOTE_BLOCK_PLING"

### Removed
  • Removed search feature from auction house menu**
  • Deleted SearchManager class and all search-related functionality
  • Removed search button from /ah GUI (slot 48 now empty)
  • Removed search query parameter from auction methods
  • Cleaned up search-related messages from messages.yml
  • Removed playerauctions.search permission from plugin.yml

## v2.5.2 - Critical Security & Stability Update

### **🛡️ CRITICAL SECURITY FIX**
  • Patched Double Purchase Item Duplication Exploit**

Fixed a critical vulnerability where multiple players could purchase the same auction item simultaneously, allowing item duplication and economic exploitation.

### **What Was Fixed:**
  • Multi-purchase exploit**: Players could spam-click to buy the same auction item
  • Seller overpayment**: Sellers received multiple payments for a single item
  • Item duplication**: Buyers could duplicate items through concurrent purchases
  • Economic instability**: Server economy could be unfairly manipulated

### **Technical Changes:**
  • Implemented **Atomic Reservation Pattern** - items are reserved before currency transfer
  • Added **Optimistic Locking** - prevents concurrent purchases with version checking
  • Enhanced **Automatic Rollback** - auctions revert to ACTIVE status if transactions fail
  • Improved **Thread-Safe Operations** - inventory operations moved to main thread
  • Added **Clear Error Feedback** - users receive explicit messages for failed purchases

  • Update Recommendation**: ⚠️ **IMMEDIATE UPDATE REQUIRED** - This fix addresses a severe game-breaking exploit.
# PlayerAuctions Changelog - v2.5.1 (Critical Bug Fix)

## 📋 Summary
  • Fixes severe race condition allowing multiple simultaneous purchases of the same auction item, leading to duplicates, multiple payments, and economy exploits.
  • Impact: Ensures atomic transactions, preventing economic damage and maintaining server fairness.

## 🔴 Bug Details
  • Problem**: Auction remained ACTIVE during money/item transfers, enabling concurrent buys.
  • Old Flow: Check → Transfers → Mark FINISHED (vulnerable window).

  • Root Cause**: Non-atomic operations in multi-threaded environment.

  • Solution**: Atomic reservation with optimistic locking.
  • New Flow: Check → Reserve (mark FINISHED) → If fails, abort → Transfers with rollbacks → Log/notify.
  • Improvements: Rollbacks on errors; main-thread inventory; enhanced logging/feedback.


## 🔒 Security
  • Prevents item duplication, economy drains, and unfair advantages.

## 🐛 Bug Fixes
  • Search Button Functionality**:
  • Previously, the search button did not function due to a slot conflict (likely overlapping inventory positions in the GUI, a common Spigot API issue where clicks register incorrectly).
  • Solution: Resolved the conflict by adjusting slot mappings or event handlers (e.g., via InventoryClickEvent prioritization).
  • Impact: Players can now use the search feature reliably to find auctions, improving efficiency and user experience in large servers.

  • Player Profile Statistics Display**:
  • Previously, the balance was not displayed correctly (possibly due to Vault economy API mismatches, formatting errors, or async data fetching issues).
  • Solution: Updated the display logic to fetch and format balance accurately (e.g., using Economy.getBalance() with proper synchronization and color/hex integration from the modern palette).
  • Impact: Provides precise player stats, helping users make informed decisions on bids/purchases and preventing confusion in transactions.
# PlayerAuctions Changelog - v2.4.0

  • Release Date**: January 25, 2026
  • Build**: PlayerAuctions-2.4.0-Modern.jar
  • Status**: ✅ Production Ready
  • Compatibility**: Minecraft 1.19 - 1.21; Java 21; Paper API 1.21.8

## 📋 Summary
  • Version 2.4.0 adds complete information to auctioned items in /ah, including starting bid, current bid, buy now price, reserve price, bid count & highest bidder, listed date & time remaining, and item quantity.
  • Impact: Enhances transparency and player engagement in auctions by providing detailed stats at a glance, reducing guesswork.

## ✨ New Features
  • Complete Auction Statistics in Item Lore**:
  • Expanded lore display with sections for pricing (start bid, current bid, buy now, reserve), stats (total bids, highest bidder), time (listed date, ends in, duration), and status.
  • Before: Basic seller, price, ends in, and status.
  • After: Structured with dividers, colors, and small caps for a professional look (e.g., "ᴘʀɪᴄɪɴɢ" headers).
  • Impact: Makes auctions more informative, helping players make better bids.

  • New Placeholders**:
  • Added 17 placeholders for dynamic data, e.g., {seller}, {quantity}, {starting_price}, {buy_now_display} (with color), {bid_count}, {listed_date}, {time_left} with urgency color, and {needed_amount}.
  • Examples: {time_color} uses hex based on time left; {status_color} for visual cues.
  • Impact: Enables customizable messaging in configs, preparing for future bid systems.

  • Time Color Coding**:
  • Colors based on remaining time: Emerald (#2ECC71) for >24h (plenty), Carrot (#E67E22) for 1-24h (warning), Coral Red (#E74C3C) for <1h or expired (urgent).
  • Impact: Provides intuitive visual urgency, improving user awareness without reading full text.

  • Context-Aware Action Buttons**:
  • For others' auctions: "Buy Now / Place Bid" if affordable; "Insufficient Funds" with needed amount if not.
  • For own auctions: "Your Auction - Click to manage".
  • Impact: Reduces errors (e.g., failed buys) and streamlines interactions with conditional prompts.

## 📁 Files Changed and Implementation
  • messages.yml**:
  • Updated gui.item-lore with full stats template using hex colors and placeholders.
  • Added gui.item-action for conditional buttons (can-purchase, insufficient-funds, own-auction).

  • MainAuctionGui.java**:
  • Added placeholder context, time color coding, own-auction detection, needed_amount calc, and listed_date formatting (~80 lines changed).

  • MyListingsGui.java**:
  • Aligned with main GUI: Same placeholders, time coding, formatItemName helper, and hex status (~60 lines changed).

  • Other**: pom.xml and plugin.yml updated to v2.4.0 (~30 lines in messages.yml).
  • Total: 4 files modified; New placeholders: 17; Build size: ~3.83 MB.

## ✅ Testing and Deployment Notes
  • Testing Checklist Summary**: Verified seller/quantity/pricing/bids/time/status displays; action buttons for afford/own cases; my listings consistency.
  • Deployment Steps**: Stop server, backup/delete old messages.yml (config changed), install new JAR, start, verify with /version PlayerAuctions.
  • Future Prep**: Placeholders like {current_bid} and {bid_count} ready for upcoming bid tracking.
  • No breaking changes beyond config updates—report issues on GitHub.

  • PlayerAuctions v2.4.0 - Complete Auction Statistics is ready!** 🚀✨
## 🎨 New Modern Color Palette
  • Introduced a consistent, hex-based color scheme to replace outdated legacy Minecraft colors (&a, &c, etc.), ensuring better visual precision and compatibility with Minecraft 1.16+.
  • Primary Colors**: Amber Gold (#F5A623) for prices/accents/prefixes; Emerald (#2ECC71) for success/buy buttons; Coral Red (#E74C3C) for errors/affordability checks; Sky Blue (#3498DB) for info/duration/search; Orchid Purple (#9B59B6) for history/special features.
  • Neutral Colors**: Cloud White (#ECF0F1) for primary text; Silver (#BDC3C7) for secondary text; Slate Gray (#7F8C8D) for labels/subtle text; Charcoal (#2C3E50) for separators/borders.
  • Accent Colors**: Sunflower (#F1C40F) for warnings/attention; Carrot (#E67E22) for secondary accents/my listings.
  • Impact: Enhances UI readability and professionalism, making auctions more engaging without relying on deprecated color codes.

## 🐛 Bug Fixes and UI Improvements
  • Fixed {duration} Placeholder Issue**:
  • Previously, the {duration} placeholder didn't display in chat during item listings due to missing parameters in AuctionCommand.java (only {item} and {price} were included).
  • Solution: Added {duration} to message parameters and formatted it using TimeUtil.formatDuration().
  • Impact: Ensures complete auction info is shown, reducing user confusion during listings.

  • Switched to Modern Hex Colors Exclusively**:
  • Eliminated all legacy Minecraft color codes (&a, &c, §6) to avoid inconsistencies.
  • Solution: Replaced with a unique, modern palette for all elements.
  • Impact: Improves cross-client rendering and aligns with current Minecraft standards.

  • Enhanced Clean & Professional UI**:
  • Overhauled display for a more modern look, addressing previous clutter.
  • Changes: Minimal prefix (PA ›); Consistent icons (● for success, ✕ for error, ○ for neutral, ★ for sold); Modern separators (› and ━━━━━━━━━━━━━━━); Small caps GUI text (ᴘʟᴀʏᴇʀᴀᴜᴄᴛɪᴏɴs).
  • Impact: Makes the plugin feel premium and less intrusive in gameplay, improving overall user experience.
First initial PlayerAuctions
PlayerAuctions Icon
Download PlayerAuctions
Select game version
Select platform