Skip to content

Migration recreates the old plugin's auction house in ProtonAuctions. It only reads the old plugin's data, and recreating a listing charges no one.

Steps

  1. Back up first

    Copy the plugins/ProtonAuctions/ folder, including proton.lock, and the database too if ProtonAuctions runs on MySQL or PostgreSQL. Keep a copy of the old plugin's folder as well. If an import stops halfway, restoring this backup is the clean way back.

  2. Take the old plugin off the server

    Stop the server, remove the old plugin's jar from plugins/ and leave its data folder where it is. Then start the server again. A real import is refused while the old plugin is still running, because players could otherwise collect the same items and money from both plugins.

  3. Check the licence

    Run /ahadmin license. Listings can only be created with a valid licence, and a dry run does not check it.

  4. Do a dry run

    Run /ahadmin migrate <source>, for example /ahadmin migrate zauctionhouse. Nothing is written. You get a summary of what the import would create, and notes on anything that needs your attention.

  5. Import for real

    Run the same command with confirm at the end, for example /ahadmin migrate zauctionhouse confirm. The import runs in the background, so the summary arrives a moment later. Run it from the console if you want the whole summary in your server log.

The command

/ahadmin migrate <source> [path] [confirm] needs protonauctions.admin. The source names are listed on Supported Auction Plugins.

CommandWhat it does
/ahadmin migrate <source>A dry run. The importer finds the old plugin's data in its own folder under plugins/, and reads its MySQL or PostgreSQL settings from its config when it uses one.
/ahadmin migrate <source> confirmThe real import.
/ahadmin migrate <source> <path> confirmReads the data at a path you give instead: a database file, or for AuctionHouse, AxAuctions and Kiranhart's Auction House also their data folder. Leave confirm off for a dry run. Use a path without spaces.
/ahadmin migrate zauctionhouse all confirmzAuctionHouse only. Imports every server in a shared zAuctionHouse database, not only the server named in its config.
/ahadmin migrate <source> forceImports again after an earlier import. Read the warning below first.

For data in MySQL or PostgreSQL, leave the path out, so the importer reads the old plugin's config.

What comes across

In the old pluginIn ProtonAuctions
A running listingA listing at the same price, with the time it had left. Creating it charges no one.
A listing priced outside your minPrice and maxPriceListed at the nearest limit.
A listing over the seller's listing limit, or an item on your blacklistThe item goes to the seller's claim bin.
A bid auction with live bidsIt restarts without the bids. Money the old plugin had already taken from the bidders comes back to them as money claims.
A listing that cannot become one ProtonAuctions listing, such as several stacks at once, no valid price, or a currency ProtonAuctions does not haveThe item goes to the seller's claim bin, so it can be listed again.
An expired, unsold itemBack to the seller's claim bin.
An item bought or won but not collected yetThe buyer's claim bin.
Money the old plugin still owed a player, such as an unpaid saleA money claim, collected with /ah claim.
A past saleAdded to the price engine, marked as imported.

Prices keep their currency when ProtonAuctions has a currency of the same name, and a price with no currency name is read as your Vault economy. Money in a currency ProtonAuctions does not have is not imported, and the summary says so. When that money is a bid the old plugin had already taken, the summary names the bidder and the amount, so you can refund it by hand.

Past sales go to the price engine only while it is on. They keep their original date, they are never added twice, even when you import again, and each player's imported sales count toward their trading history for trust scoring.

Reading the summary

LineWhat it counts
Listings readRows read from the old plugin.
Auctions createdNew ProtonAuctions listings.
Seller claimsItems sent back to their sellers' claim bins.
Buyer claimsItems waiting for their buyers.
Money claimsMoney waiting for players in /ah claim.
SkippedRows left out, for example an item that could not be read.
ErrorsRows that failed.
Past salesSales handed to the price engine.

Notes follow the summary, for anything that needs your attention. A dry run cannot check price limits, listing limits, the blacklist or the licence, so the real import can still move a few prices or send a few listings to claim bins.

Importing twice

ProtonAuctions remembers a finished import, in a .<source>-migrated file in its folder, and refuses a second confirm for the same plugin, because every listing and claim would be created twice. A dry run always works, and importing from two different plugins is fine.

On a network where several servers share one ProtonAuctions database, take the old plugin off every server first, then run each import on one server only. The finished-import file is kept per server, so a second server would import everything again. For a zAuctionHouse database that holds several servers, add all on that one server to bring every server's listings across in one go.

force runs a second import on top of the first, so every listing and claim is created again. Only past sales are skipped, because the price engine recognises them. To redo an import cleanly, restore the backup from before the first import and run it again with confirm, without force.