Running a server
Importing from another plugin
Two importers: EssentialsX for player data, QuickShop for chest shops.
Both follow the same three rules.
- Nothing in the other plugin's folder is touched. Every file and every database is opened for reading. If you change your mind, putting the old plugin back is all it takes.
- Nothing already in Chorus is overwritten. Anything that is already here is counted as
left alone. Add
overwriteafterrunfor the other behaviour. - It can be run without doing anything. Without
runit reads everything and reports exactly what a real run would write, down to the count.
Coming from EssentialsX#
/chorus import essentials read everything, write nothing
/chorus import essentials run do it
/chorus import essentials run overwriteBrings across:
| Homes | Every home of every player |
| Balances | Into the built-in ledger |
| Warps | Position, name |
| Unread letters | |
| Nicknames | |
| First and last seen | |
| Addresses | |
| Sell prices | From worth.yml |
The check pass prints something like:
» CHORUSCORE « Found 1,284 players. Nothing was written.
▪ Homes 2,930 ▪ Balances 1,284 ▪ Warps 41
▪ Mail 88 ▪ Nicknames 173 ▪ Prices 96
▪ Left alone because Chorus already had them » 3A file it cannot read is reported by name and skipped; the rest still come across.
Kits are deliberately not imported#
Essentials writes them as its own item strings, and a kit that came across half right is worse than one that never came across at all — nobody checks a kit until a player complains about what was in it.
Build those in /kitedit, which takes a few minutes and gives you claim actions and
requirements along the way. See Kits.
After the real run#
Restart the server. The balances and the warps are read into memory when the plugin starts, so that is when the imported ones appear.
Then take EssentialsX out. Leaving both installed means two plugins answering /home.
Coming from QuickShop#
/chorus import quickshop read everything, write nothing
/chorus import quickshop run do it
/chorus import quickshop run overwriteBrings every player shop across: where it is, who owns it, what it sells, at what price, which way round the trade goes, and whether it is unlimited.
A server with four thousand player shops cannot change chest shop plugins at all without this.
» CHORUSCORE « Would bring across 3,914 shops from H2. Nothing was written.
▪ Read 3,940 ▪ Already here 12 ▪ Unreadable 14Where the shops are found#
QuickShop's own config.yml says whether it keeps them in MySQL or in a file beside itself,
and this reads that rather than guessing.
| Storage | Supported |
|---|---|
| MySQL / MariaDB | Yes, with the driver this plugin already loads |
| H2 | Yes, if the server has an H2 driver. Recent QuickShop-Hikari uses this by default |
| SQLite | Yes, older QuickShop |
If the H2 driver is missing the import says so by name instead of failing with something unreadable. Pointing QuickShop at MySQL first is the way through.
The folder is found as QuickShop-Hikari, QuickShopHikari or QuickShop, in that order.
A row that cannot be read is skipped, never guessed at#
An owner that is not a readable id, or an item the running version no longer understands, would otherwise become a shop selling the wrong thing for somebody else — which is worse than a shop that did not come across.
Each one is counted and reported with enough of the row to find it:
The item of the shop at world -1082,68,771 could not be readThe signs rewrite themselves#
An imported shop still has QuickShop's sign on it until the chunk is loaded again, at which point Chorus writes its own four lines.
That happens for every shop, not just imported ones, so a sign another plugin or a rollback left saying the wrong thing heals itself too.
After the real run#
Restart the server — the shops are read into memory at startup — and only then take QuickShop out.
Check the direction#
Once the shops are in, look at a few signs. A shop that sold should read Selling, and one
that bought should read Buying. It is a ten-second check and worth doing before players
start trading, because a shop running the wrong way round is the kind of thing nobody notices
until somebody has made a lot of money out of it.
Importing into a server that is already running#
Both check passes are safe on a live server: they read and write nothing.
The real run writes into the Chorus database, which is fine while players are on, but the imported data does not appear until the restart. Doing it during a quiet hour and restarting straight afterwards is the tidy way.
What is not imported#
| From Essentials | Why |
|---|---|
| Kits | See above |
| Jails, bans, mutes | Not in this plugin. Use a moderation plugin |
| Signs in the world | A [Warp] sign keeps working; the rest are another plugin's |
Per-player settings like /socialspy state |
Trivially reset in game |
Ban and mute data belongs to whatever moderation plugin you run, which is deliberately not this one. See Home.
