How Migration Works
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
Back up first
Copy the
plugins/ProtonAuctions/folder, includingproton.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.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.Check the licence
Run
/ahadmin license. Listings can only be created with a valid licence, and a dry run does not check it.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.Import for real
Run the same command with
confirmat 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.
| Command | What 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> confirm | The real import. |
/ahadmin migrate <source> <path> confirm | Reads 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 confirm | zAuctionHouse only. Imports every server in a shared zAuctionHouse database, not only the server named in its config. |
/ahadmin migrate <source> force | Imports 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 plugin | In ProtonAuctions |
|---|---|
| A running listing | A listing at the same price, with the time it had left. Creating it charges no one. |
A listing priced outside your minPrice and maxPrice | Listed at the nearest limit. |
| A listing over the seller's listing limit, or an item on your blacklist | The item goes to the seller's claim bin. |
| A bid auction with live bids | It 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 have | The item goes to the seller's claim bin, so it can be listed again. |
| An expired, unsold item | Back to the seller's claim bin. |
| An item bought or won but not collected yet | The buyer's claim bin. |
| Money the old plugin still owed a player, such as an unpaid sale | A money claim, collected with /ah claim. |
| A past sale | Added 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
| Line | What it counts |
|---|---|
| Listings read | Rows read from the old plugin. |
| Auctions created | New ProtonAuctions listings. |
| Seller claims | Items sent back to their sellers' claim bins. |
| Buyer claims | Items waiting for their buyers. |
| Money claims | Money waiting for players in /ah claim. |
| Skipped | Rows left out, for example an item that could not be read. |
| Errors | Rows that failed. |
| Past sales | Sales 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.