COWMODSКаталог модов

Market

GUI marketplace combining a server shop, player-to-player listings, and auctions with anti-snipe, taxes, and MultiBank/Vault economy support.

Автор: roguiii6941обновлён 1 окт. 2026 г.
Экономика

Описание

Market

Modrinth Downloads GitHub License

A unified, GUI-only marketplace plugin for Minecraft Paper/Purpur. Version 2.2.0 ships two jars from the same source: +mc26.3 for Minecraft 26.3 and +mc26.2 for 26.2. On 1.21.x use 2.1.0 (+mc1.21.11).

One command (/market) opens a hub GUI with three main sections: Server Market — Buy/sell any item from the server at fixed prices (large spread encourages player trading) Community Market — Player-to-player fixed-price listings Auctions — Player-to-player bidding with anti-snipe protection

Plus: Claim Storage, Earnings Withdrawal, My Listings/Auctions, Admin Panel — all GUI-driven.

Features

Server Market

  • Every item in the game available for buy/sell
  • Category-based GUI (Blocks, Ores, Farming, Food, Mob Drops, Redstone, Decoration, Tools, Combat, Brewing, Misc)
  • Search, pagination, quantity selector (-32/-16/-8/-1 / +1/+8/+16/+32 / MIN/MAX)
  • Large spread between buy/sell prices (default 75%) to keep the Community Market valuable
  • Three ways to sell, all reachable from /sell (also /vender): the inventory grid, the item in your hand, or a nearby chest, barrel, shulker or ender chest
  • Selling is per item, not per material — a Power V bow and a plain bow are two entries at two prices, and selling one never takes the other
  • Durability-based pricing — worn items sell for less (up to -50%), with Mending/Unbreaking adjustments
  • Enchantment bonus pricing — enchanted items sell for more (a configurable % of each enchantment's store buy price)
  • Enchanted books are worth the sum of their enchantments — Efficiency V + Unbreaking III + Fortune III is priced as all three
  • Dedicated Armor Row in Sell Inventory — equipped gear is visually separated and protected from accidental sale
  • Bulk sales hold back enchanted, renamed and modded gear by default, and say how many they skipped
  • Per-item and per-category price overrides in prices.yml
  • Transaction logging to SQLite

Economy: MultiBank Integration

  • Uses MultiBank as the sole economy provider (no Vault/Essentials)
  • All monetary values handled in cents (long) for precision
  • Fully async — economy operations never block the main thread
  • Configurable server shop bank account for auditable transfers
  • Automatic balance re-check at confirm time to prevent exploits

Community Market (Player Listings)

  • Create listings with custom prices and durations
  • 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 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

Claim Storage

  • Items from expired listings go to claim storage
  • Won auction items are safely delivered
  • Handles full inventories gracefully

Earnings Management

  • 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 or cancel auctions
  • Force-end auctions
  • Reload configuration in-game

Hub GUI Flow /market opens the Market Hub with:

  1. Server Market — Browse the server shop categories
  2. Community Market — Browse player listings
  3. Auctions — Browse player auctions
  4. Create Listing / Create Auction — Quick access
  5. Claim Items / Earnings — With live counters
  6. My Listings / My Auctions — Manage your stuff
  7. Help / Admin — Info and admin tools

Requirements

RequirementVersion
ServerPaper or Purpur 26.3 or 26.2 (2.1.0 for 1.21.x)
JavaJava 25
EconomyMultiBank

Economy Setup

Market uses MultiBank for all economy operations:

  1. Install MultiBank on your server
  2. Create a server shop bank account (default ID: server-shop)
  3. Set the account ID in config.yml:
    economy:
      server-account-id: "server-shop"
    
  4. Start/restart the server

All server shop transactions (buy/sell) transfer money to/from this dedicated account, providing a full audit trail.

Installation

  1. Download the latest market-x.x.x.jar from Modrinth
  2. Place it in your server's plugins/ folder
  3. Ensure you have an economy system installed (see above)
  4. Start or restart your server
  5. Edit plugins/Market/config.yml and plugins/Market/prices.yml as needed
  6. Use /market to open everything!

Upgrading from CommunityMarket

If you previously used CommunityMarket, the plugin will automatically migrate your data folder (plugins/CommunityMarket/ → plugins/Market/). Your database, configs, and language files are preserved.

Migrating from Vault/Essentials

If you previously used Market with Vault or EssentialsX:

  1. Install MultiBank and set up player accounts
  2. Remove Vault dependency from your server (if no other plugins need it)
  3. Update config.yml with the economy.server-account-id setting
  4. Restart the server

Commands

CommandAliasesDescriptionPermission
/market/m, /shop, /cmarket, /servershopOpens the Market Hub GUImarket.use
/market reload—Reloads all configuration and pricesmarket.admin.reload
/sell/s, /vender, /vendaAsks how you want to sellmarket.sell
/sell inventory|hand|container—Goes straight to that onemarket.sell

Everything else is done through GUIs.

Permissions

PermissionDescriptionDefault
market.*All permissionsop
market.useAccess the market hub GUIeveryone
market.serverAccess the server shopeveryone
market.communityAccess the community marketeveryone
market.auctionsAccess auctionseveryone
market.sellCreate fixed-price listingseveryone
market.auctionCreate auctionseveryone
market.claimClaim items from storageeveryone
market.adminAccess admin functionsop
market.admin.reloadReload configuration & pricesop

Configuration

config.yml Highlights

# Language setting (available: en_US, pt_PT)
language: en_US

# Database: sqlite (default) or mysql
database:
  type: sqlite

# Economy settings (MultiBank)
economy:
  currency-format: "$#,##0.00"
  server-account-id: "server-shop"  # MultiBank account for server shop
  taxes:
    market-tax: 5.0
    auction-tax: 7.5

# Server Shop settings
server-shop:
  default-sell-multiplier: 0.25  # 75% spread
  sell-tax: 0.0
  full-inventory-action: drop
  max-transaction-quantity: 2304
  include-special-items: false

# Sell Inventory safety
sell-inventory:
  allow-equipped-selling: false  # Prevents accidental armor selling

# Quantity selector — pack (stack) buttons
gui:
  quantity:
    pack-selectors:
      enabled: true   # Show pack buttons for stackable items
      max-packs: 4    # Number of pack buttons per side (1–4)

Server Shop Pricing (prices.yml)

The server shop uses a large spread model:

Buy Price  = what players PAY to buy from the server
Sell Price = what players RECEIVE when selling to the server
Spread     = (buy - sell) / buy × 100%

Default: sell price = buy price × 0.25 → 75% spread.

A Diamond costs $1,000 to buy, but only $250 when selling back. Players prefer selling to each other on the Community Market!

Configuration hierarchy:

  1. Per-item override in prices.yml → overrides:
  2. Category default → default-prices: + category sell-multiplier:
  3. Global default → config.yml → server-shop.default-sell-multiplier
# Example overrides in prices.yml:
overrides:
  DIAMOND:
    buy-price: 1000.0
  ELYTRA:
    buy-price: 50000.0
    sell-enabled: false
  BEDROCK:
    buy-enabled: false
    sell-enabled: false

Enchantment Pricing

When selling enchanted items to the Server Market, each enchantment adds a bonus:

Bonus per enchantment = Store Buy Price of that enchantment × 25%

Configure enchantment buy prices in prices.yml:

enchant-prices:
  SHARPNESS:
    perLevelBuyCents:
      1: 100000    # $1,000.00
      2: 200000    # $2,000.00
      3: 350000
      4: 600000
      5: 1000000   # $10,000.00
  MENDING:
    buyCents: 2500000  # $25,000.00 (flat, any level)
  UNBREAKING:
    perLevelBuyCents:
      1: 80000
      2: 160000
      3: 300000

Example: A Diamond Sword with Sharpness V and Unbreaking III:

  • Base sell price: $250.00 (from config)
  • Sharpness V bonus: $10,000 × 25% = +$2,500.00
  • Unbreaking III bonus: $3,000 × 25% = +$750.00
  • Total before wear: $3,500.00

Durability-Based Sell Pricing

Items with durability (tools, armor, weapons) have their sell price reduced based on wear:

wearRatio = currentDamage / maxDamage
effectiveWear = wearRatio / (UnbreakingLevel + 1)   ← Unbreaking reduces penalty
reduction = effectiveWear × 0.50
finalMultiplier = max(0.50, 1.0 - reduction)         ← Min 50% of base value

Special rules:

  • Mending items: durability penalty is completely waived (full value regardless of wear)
  • Unbreaking items: effective wear is divided by (level + 1), reflecting that visible damage represents less real usage
  • The minimum payout is always 50% of the base sell value (including enchant bonuses)

Example: A half-damaged Diamond Pickaxe (Eff V, Unbreaking III):

  • wearRatio = 0.5
  • effectiveWear = 0.5 / (3+1) = 0.125
  • reduction = 0.125 × 0.50 = 0.0625 → 6.25% penalty
  • Player receives 93.75% of full value

Sell Inventory — Equipped Gear Safety

The Sell Inventory GUI has a dedicated top row for equipped gear:

SlotContent
0Helmet
1Chestplate
2Leggings
3Boots
4Offhand/Shield
5–8Yellow label filler

Default behavior (allow-equipped-selling: false):

  • Clicking equipped items shows a warning and does nothing
  • Players must unequip gear before selling

Optional (allow-equipped-selling: true):

  • Equipped items can be sold but require a 2-step click confirmation
  • Shift-clicking is always blocked to prevent accidents

Pack Selectors (Stack Buttons)

The item detail quantity selector includes pack buttons that let players adjust quantity by full stacks at once:

ButtonEffect
-4 Stack / +4 Stack±256 items (for 64-stack items)
-3 Stack / +3 Stack±192 items
-2 Stack / +2 Stack±128 items
-1 Stack / +1 Stack±64 items

Stack size is per-item:

  • Most blocks/items: 1 stack = 64 items
  • Ender pearls, snowballs, eggs: 1 stack = 16 items
  • Non-stackable items (swords, armor, etc.): pack buttons are hidden

Configuration:

gui:
  quantity:
    pack-selectors:
      enabled: true   # Set to false to hide pack buttons entirely
      max-packs: 4    # Number of pack buttons per side (1–4)

Safety:

  • Pack buttons respect all existing bounds (max transaction quantity, max affordable, max inventory)
  • Quantity is always clamped to valid range after any pack button press
  • Affordability and availability are always re-checked at confirmation time

Available Languages

  • en_US - English (default)
  • pt_PT - Portuguese

Language files are in plugins/Market/lang/ and can be customized.

Troubleshooting

"No compatible economy provider found!"

This error appears when Market cannot find an economy system.

Solutions:

  1. Install Vault + an economy plugin:

  2. Using EssentialsX without Vault:

    • Make sure EssentialsX is installed and enabled
    • Check that economy is not disabled in EssentialsX's config.yml

"MultiBank not found!"

This error appears when Market cannot find the MultiBank plugin.

Solutions:

  1. Install MultiBank on your server
  2. Ensure MultiBank is enabled and loads before Market
  3. Check that MultiBank's API service is registered

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, Market uses SQLite (no setup required). For larger servers, MySQL is recommended:

database:
  type: mysql
  mysql:
    host: localhost
    port: 3306
    database: communitymarket
    username: your_user
    password: your_password

API

Market does not currently provide a public API. If you need integration capabilities, please open an issue on GitHub.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

  • Built for the Paper/Spigot community
  • Uses MultiBank for economy integration
  • Uses HikariCP for database connection pooling

Последние версии

Все версии →
release

2.2.0+mc26.2

2.2.0+mc26.2
1 окт. 2026 г.120Minecraft: 26.2paper, purpur
Скачать
Что нового
## 2.2.0 Requires Minecraft 26.3 or 26.2 and Java 25. Two jars from the same source: `market-2.2.0+mc26.3.jar` and `market-2.2.0+mc26.2.jar`. On 1.21.x use 2.1.0. ### Fixed - **2.1.0 for 26.2 had lost the 2.0.0 fixes.** It was built from the 1.21.x line, which never had them. This release joins the two lines: everything 2.1.0 added (selling the exact item picked, enchanted books worth all their enchantments, the `/sell` chooser) together with the 2.0.0 container rules. - **A loaded container was sold as an empty one again.** Under 2.1.0 a chest sale listed filled shulker boxes, and sell-all did too when `sell-inventory.shulker-sell.enabled` was off; both paid the empty-box price and deleted what was inside. No sell screen offers a stack that holds other stacks any more: shulker boxes, bundles, loaded sulfur cube buckets and loaded crossbows. Filled shulker boxes still go to the three-way shulker chooser. - Selling a loaded container from the hand says why it was refused instead of "not sellable", and a chest sale tells the player how many loaded containers it left alone. - **Thirteen default prices paid more for an item than its ingredients cost in the shop.** Buying the ingredients, crafting and selling back made money every time. The worst: a diamond shovel sold for 1540 against 901 for one diamond and two sticks, a name tag for 63.75 against 3.50 of paper and copper nugget, a lodestone for 191.25 against 83. Each of these now sells for 65% of the cheapest shop cost of its ingredients, the rule the potion prices already follow. Lowered: diamond shovel 1540 → 585.65, lodestone 191.25 → 53.95, saddle 93.50 → 42.25, brewing stand 63.75 → 40.95, name tag 63.75 → 2.27, flower and bordure indented banner patterns 25.50 → 2.93, field masoned banner pattern 25.50 → 7.48, grindstone 5.50 → 3.41, chiseled polished blackstone 4.25 → 2.60, stone spear 3.00 → 1.30, chiseled deepslate 2.00 → 0.98, nether brick 1.62 → 0.49. This changes the shipped `prices.yml` only: a server that already has its own keeps its numbers and should apply these by hand. - `FROSTED_ICE` is no longer in the item list. It is not an item, and every start logged a warning about it. ### Added - **Prices and categories for the 105 tradable items of Minecraft 26.3.** Every price comes from an item already in the table, so the tier spreads hold: - poplar wood set = cherry wood set, item for item; poplar leaves and sapling = cherry leaves and sapling; - wool and concrete slabs = half the block of the same colour; stairs = the block, because the stonecutter makes one stair from one concrete block; - cushions = three wool slabs of their colour, which is the recipe; - straw bed = three quarters of a hay bale (three bales make four beds); - shelf mushroom = brown mushroom; red shrub = bush. - Every recipe in the 26.3 data pack was checked for a buy-craft-sell loop against the whole table: 1661 recipes, none left. - **The 16 explorer maps are not for sale.** 26.3 turned them into items of their own (`OCEAN_MONUMENT_MAP`, `WOODLAND_MANSION_MAP` and so on). Cartographers sell them without limit, and a map bought from the shop would carry no map data. They are in Disabled / OP Items, with buying and selling switched off in `prices.yml` as well, so an existing server that never sees the new `items.yml` still cannot trade them. ### Changed - Built against Paper 26.3 on Java 25 and tested on Paper 26.3 build 140, which Paper still marks as beta: there was no stable 26.3 build when this was released. The 26.2 jar is built against Paper 26.2 from the same source. - On an existing server, prices for the new items come from the jar's defaults until `prices.yml` names them. `items.yml` on disk is not merged, so new items land in a category picked from their name until they are added to it. - Tests run against MockBukkit for 26.2: 22 pass, 4 of them new, covering what counts as a stack holding other stacks.
release

2.2.0+mc26.3

2.2.0+mc26.3
1 окт. 2026 г.217Minecraft: 26.3paper, purpur
Скачать
Что нового
## 2.2.0 Requires Minecraft 26.3 or 26.2 and Java 25. Two jars from the same source: `market-2.2.0+mc26.3.jar` and `market-2.2.0+mc26.2.jar`. On 1.21.x use 2.1.0. ### Fixed - **2.1.0 for 26.2 had lost the 2.0.0 fixes.** It was built from the 1.21.x line, which never had them. This release joins the two lines: everything 2.1.0 added (selling the exact item picked, enchanted books worth all their enchantments, the `/sell` chooser) together with the 2.0.0 container rules. - **A loaded container was sold as an empty one again.** Under 2.1.0 a chest sale listed filled shulker boxes, and sell-all did too when `sell-inventory.shulker-sell.enabled` was off; both paid the empty-box price and deleted what was inside. No sell screen offers a stack that holds other stacks any more: shulker boxes, bundles, loaded sulfur cube buckets and loaded crossbows. Filled shulker boxes still go to the three-way shulker chooser. - Selling a loaded container from the hand says why it was refused instead of "not sellable", and a chest sale tells the player how many loaded containers it left alone. - **Thirteen default prices paid more for an item than its ingredients cost in the shop.** Buying the ingredients, crafting and selling back made money every time. The worst: a diamond shovel sold for 1540 against 901 for one diamond and two sticks, a name tag for 63.75 against 3.50 of paper and copper nugget, a lodestone for 191.25 against 83. Each of these now sells for 65% of the cheapest shop cost of its ingredients, the rule the potion prices already follow. Lowered: diamond shovel 1540 → 585.65, lodestone 191.25 → 53.95, saddle 93.50 → 42.25, brewing stand 63.75 → 40.95, name tag 63.75 → 2.27, flower and bordure indented banner patterns 25.50 → 2.93, field masoned banner pattern 25.50 → 7.48, grindstone 5.50 → 3.41, chiseled polished blackstone 4.25 → 2.60, stone spear 3.00 → 1.30, chiseled deepslate 2.00 → 0.98, nether brick 1.62 → 0.49. This changes the shipped `prices.yml` only: a server that already has its own keeps its numbers and should apply these by hand. - `FROSTED_ICE` is no longer in the item list. It is not an item, and every start logged a warning about it. ### Added - **Prices and categories for the 105 tradable items of Minecraft 26.3.** Every price comes from an item already in the table, so the tier spreads hold: - poplar wood set = cherry wood set, item for item; poplar leaves and sapling = cherry leaves and sapling; - wool and concrete slabs = half the block of the same colour; stairs = the block, because the stonecutter makes one stair from one concrete block; - cushions = three wool slabs of their colour, which is the recipe; - straw bed = three quarters of a hay bale (three bales make four beds); - shelf mushroom = brown mushroom; red shrub = bush. - Every recipe in the 26.3 data pack was checked for a buy-craft-sell loop against the whole table: 1661 recipes, none left. - **The 16 explorer maps are not for sale.** 26.3 turned them into items of their own (`OCEAN_MONUMENT_MAP`, `WOODLAND_MANSION_MAP` and so on). Cartographers sell them without limit, and a map bought from the shop would carry no map data. They are in Disabled / OP Items, with buying and selling switched off in `prices.yml` as well, so an existing server that never sees the new `items.yml` still cannot trade them. ### Changed - Built against Paper 26.3 on Java 25 and tested on Paper 26.3 build 140, which Paper still marks as beta: there was no stable 26.3 build when this was released. The 26.2 jar is built against Paper 26.2 from the same source. - On an existing server, prices for the new items come from the jar's defaults until `prices.yml` names them. `items.yml` on disk is not merged, so new items land in a category picked from their name until they are added to it. - Tests run against MockBukkit for 26.2: 22 pass, 4 of them new, covering what counts as a stack holding other stacks.
release

2.1.0 for 26.2

2.1.0+mc26.2
20 авг. 2026 г.173Minecraft: 26.2paper, purpur
Скачать
Что нового
## 2.1.0 ### Fixed - **Selling told enchanted items apart from plain ones.** The sell flows grouped and removed items by material, so a Power V / Flame / Infinity / Unbreaking III bow and a plain Unbreaking I bow were one entry at one price, and selling "a bow" could hand over the good one. Every sell flow — inventory grid, hand, sell-all, multi-select, chest and shulker — now groups by the item itself and removes only stacks identical to the one shown. - **Enchanted books are worth all their enchantments.** Book prices came from whichever single `ENCHANTED_BOOK_*` row matched, so Efficiency V + Unbreaking III + Fortune III sold for the price of Efficiency V alone; books with more than one enchantment matched no row at all. A book is now worth the sum of its enchantments. The enchantment bonus also read `ItemMeta#getEnchants()`, which is empty for books — it reads stored enchantments now. - **`/sell` offers all three ways to sell.** It went straight to the inventory grid, leaving the hand and container routes reachable only from inside the shop menu. It now opens a chooser, with `/sell inventory|hand|container` to skip it. Added `/vender` and `/venda`. - **Search asks in chat everywhere.** The category and search-result screens forced the sign editor regardless of `server-shop.search-mode`, which the main menu already honoured. - **A failed payout refunds the item that was taken**, not a plain one of the same type. - **Language files pick up new strings on update.** Only `en_US` merged the jar's defaults, so strings added by an update were missing — or English — in every other locale. ### Added - Sell grid pagination, and a per-material filter when several versions of an item are owned. - Per-item price breakdown on the sell screen, including what each enchantment on a book adds. - `sell-inventory.sell-all.skip-special-gear` (default true): bulk sales hold back enchanted, renamed and ToolMods-fitted items, and report how many were skipped. `skip-damaged-gear` (default false) extends that to worn tools and armour. - `server-shop.enchanted-book.sum-enchantments` (default true) to switch book summing off. ### Removed - The "sell to server / community / auction" chooser screen, which nothing opened.
release

2.1.0 for 1.21.x

2.1.0+mc1.21.11
20 авг. 2026 г.117Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Скачать
Что нового
## 2.1.0 ### Fixed - **Selling told enchanted items apart from plain ones.** The sell flows grouped and removed items by material, so a Power V / Flame / Infinity / Unbreaking III bow and a plain Unbreaking I bow were one entry at one price, and selling "a bow" could hand over the good one. Every sell flow — inventory grid, hand, sell-all, multi-select, chest and shulker — now groups by the item itself and removes only stacks identical to the one shown. - **Enchanted books are worth all their enchantments.** Book prices came from whichever single `ENCHANTED_BOOK_*` row matched, so Efficiency V + Unbreaking III + Fortune III sold for the price of Efficiency V alone; books with more than one enchantment matched no row at all. A book is now worth the sum of its enchantments. The enchantment bonus also read `ItemMeta#getEnchants()`, which is empty for books — it reads stored enchantments now. - **`/sell` offers all three ways to sell.** It went straight to the inventory grid, leaving the hand and container routes reachable only from inside the shop menu. It now opens a chooser, with `/sell inventory|hand|container` to skip it. Added `/vender` and `/venda`. - **Search asks in chat everywhere.** The category and search-result screens forced the sign editor regardless of `server-shop.search-mode`, which the main menu already honoured. - **A failed payout refunds the item that was taken**, not a plain one of the same type. - **Language files pick up new strings on update.** Only `en_US` merged the jar's defaults, so strings added by an update were missing — or English — in every other locale. ### Added - Sell grid pagination, and a per-material filter when several versions of an item are owned. - Per-item price breakdown on the sell screen, including what each enchantment on a book adds. - `sell-inventory.sell-all.skip-special-gear` (default true): bulk sales hold back enchanted, renamed and ToolMods-fitted items, and report how many were skipped. `skip-damaged-gear` (default false) extends that to worn tools and armour. - `server-shop.enchanted-book.sum-enchantments` (default true) to switch book summing off. ### Removed - The "sell to server / community / auction" chooser screen, which nothing opened.
release

2.0.0

2.0.0
6 авг. 2026 г.46Minecraft: 26.2paper, purpur
Скачать
Что нового
## 2.0.0 Build for Minecraft 26.2 on Paper and Purpur, compiled against paper-api 26.2 with Java 25. The build for 1.21.x stays available as version 1.0.0.
release

1.0.0

1.0.0
11 июл. 2026 г.21Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Скачать