AT-AuctionHouse logoAT-AuctionHouse

Selling

The two ways to list an item, the price prompt, listing slot limits, the blacklist and the high-value broadcast.

There are two routes to a listing. Both end at the same confirm screen, and both hand your item back if anything goes wrong.

The command route

/ah sell <price>

Lists the item in your main hand at that price. The item leaves your hand straight away and a confirm screen opens showing it at the price you typed.

/ah sell

With no price, this opens the sell menu instead.

Both need atauctionhouse.sell, which is granted to everyone by default.

The menu route

Open the sell menu

Run /ah sell with no price.

Drop your item into the insert slot

The sell menu has exactly one slot you can put something into. Everything else is locked.

Type the price in chat

The menu closes and the plugin asks for a price. Type a number, or type cancel to abort and get your item straight back.

Confirm

The confirm screen shows the item and the price. Click confirm to list it, or cancel to get it back.

ITEMS.INSERT in gui.yml ships with MATERIAL: AIR, which leaves the insert slot genuinely empty. Give it a real material and it becomes a visual hint sitting in the slot. The hint is decoration only. It can never be taken, listed or dragged out, and it is not handed to you when the menu closes.

One item at a time

You can only have one sell in flight. If you are sitting at the chat price prompt and run /ah sell 500, the plugin re-sends the price prompt rather than taking a second item into custody. The same applies to opening the sell menu again.

Price rules

SettingWhat it doesDefault
AUCTION.MIN-PRICELowest accepted price10.0
AUCTION.MAX-PRICEHighest accepted price1000000.0
AUCTION.COMPACT-PRICE-INPUTAccept shorthand like 1.5k, 10k, 1m, 2.5bfalse

With COMPACT-PRICE-INPUT set to false, only plain numbers are accepted. That removes any chance of a player meaning to type 1k and getting 1000000. Turn it on and the suffixes k, m, b, t and q all work, in /ah sell <price> and at the chat prompt.

Those suffixes are not fixed. They follow FORMATTING.MAGNITUDE-SUFFIXES in config.yml, so whatever you list there is exactly what the price prompt accepts. Rename K to mil and 2.5mil becomes a valid thing to type. Matching ignores case, and the longest suffix wins, so a short m never shadows a longer mil.

The currency symbol is optional at the prompt. With the shipped $, both $1500 and 1500 are read as the same price. Only a leading symbol is stripped, so 1$500 is refused rather than quietly read as something else.

Prices are shown back to players in compact form with a leading currency symbol, for example $12.5K. Both parts come from FORMATTING, see Configuration.

If you set MIN-PRICE above MAX-PRICE, the plugin swaps them at load time and logs a warning, so listings stay possible.

Listing slots

AUCTION.MAX-LISTINGS-PER-PLAYER is the floor for everyone. It defaults to 10.

Raise it per rank with permissions. Grant atauctionhouse.limit.<number> for that many slots, or atauctionhouse.limit.unlimited (or atauctionhouse.limit.*) to remove the cap entirely. The highest value a player holds wins, and the config value is never lowered by a permission.

atauctionhouse.limit.25          25 slots
atauctionhouse.limit.100         100 slots
atauctionhouse.limit.unlimited   no cap

This works with any permissions plugin. See Permissions for the full picture.

In "Your Listings", every slot past your allowance is drawn as the locked item from YOUR-ITEMS.ITEMS.LOCKED in gui.yml, which by default tells the player how many slots they have and to rank up for more. The {slots} placeholder there is the viewer's own allowance, not the config default.

The slot check runs when the listing is created, against the number of listings you already have active. Hitting the cap returns your item, it does not consume it.

Duration

AUCTION.DEFAULT-DURATION-SECONDS sets how long a new listing stays up. It defaults to 86400, which is 24 hours.

When a listing expires it is marked expired and the item goes back to the seller. If the seller is online and has room it goes straight into their inventory. Otherwise it goes to their collection box.

AUCTION.EXPIRY-SWEEP-INTERVAL-SECONDS is how often the server checks for expired listings. It defaults to 60. Lower is more responsive, higher is cheaper. Below 20 is not useful, and the plugin clamps anything under 5 seconds.

The blacklist

AUCTION.BLACKLIST is a list of Bukkit material names that can never be listed. The check runs on both routes, before the item leaves the player's hand on the command route and again when the listing is created.

The shipped list covers items that are exploitable, hold hidden inventories, or run commands:

  • Every bundle variant, because a bundle can hold other items
  • Command blocks, command block minecarts, structure blocks, structure voids and jigsaws
  • Barriers, light blocks, debug sticks and knowledge books
  • AIR

Add your own custom-item materials to it as needed. Matching is on the material name and is case-insensitive.

The blacklist matches materials, not custom items. Two different custom items that share a material are either both allowed or both blocked.

The broadcast

AUCTION.BROADCAST-PRICE-THRESHOLD announces expensive listings to the whole server. Any listing created at or above that price sends the SELL.BROADCAST message from your language file to everyone online. It defaults to 500000.0.

To turn it off, set the threshold higher than AUCTION.MAX-PRICE so nothing can ever reach it, or blank the SELL.BROADCAST message in your language file. A message configured as an empty string is skipped silently.

Cancelling a listing

Open "Your Listings" from the auction house menu, or press the button in the main menu, and click one of your own listings to cancel it. The item comes back to you, or goes to your collection box if you have no room.

Admins can force-remove any listing with /ah remove <id>. The item still goes back to the seller.

What happens if something goes wrong

Every failure path returns the item:

SituationResult
Price below the minimum or above the maximumItem returned, message sent
Item is blacklistedItem returned, message sent
You are already at your slot limitItem returned, message sent
The database write failsItem returned, message sent
You cancel at the confirm screenItem returned
You close the confirm screenItem returned
You log out mid-flowItem written to your collection box
The server shuts down mid-flowItem written to your collection box

The handover point is the moment the listing row exists in the database. Before it, the item is owed to you. After it, the listing owns the item and no late callback can hand you a second copy.

On this page