Changelog
Changelog
Release history for CoreJobs.
Where the multiplier comes from, and raw keys on the action bar
%corejobs_total_<type>_source%names everything giving a player more than 1.0, the CoreJobs boost first and then the registered plugins.%corejobs_external_<type>_source%keeps meaning providers only.placeholder.self-sourcein the language file is what CoreJobs calls its own boost in that list, so it can read as “Server Boost” or whatever the shop sells.- Fixed on a scoreboard: a player with only a CoreJobs boost running saw the no-source wording, which read as having no boost.
{block_id}and{job_id}onjob.xp-actionbar, the raw material key and the job id. Both are filled before PlaceholderAPI runs, so another plugin’s placeholder can be built out of them.{block}still readsoak logon a break.{block_id}is the same break asoak_log, which is the shape a placeholder identifier needs.- Fishing and enchanting now name what they paid for.
{block}readscodordiamond swordwhere it used to readfishandenchantfor every catch and every enchant. - The action bar tokens are now on the placeholders page as well as the config page.
A developer API
- Three cancellable Bukkit events in
cc.arrowtan.corejobs.api.event:CoreJobsXpGainEvent,CoreJobsMoneyGainEventandCoreJobsFarmpointsGainEvent. - Each one carries the player, the job, the base value, the CoreJobs boost multiplier, and a settable final value that is what actually gets paid.
- They fire after the CoreJobs boost and before the payout, so another plugin multiplies on top of a running boost instead of underneath it.
- Cancelling the xp banks nothing and skips the level check, while the money and farmpoints from the same action still pay.
- Admin commands fire nothing, and a payout of 0 fires nothing.
- Nothing changes for a server with no plugin listening. No new config keys and no new messages.
Shop entries from in game, and a placeholder check
/corejobs shop boost,shop add,shop removeandshop listwrite ordinaryshop.ymlentries without opening the file.enabled: falsetakes a shop entry out of the shop without deleting it, which is how a bundled entry is removed for good.- The console names what is wrong with a shop entry on load: no boost block, a duration of 0, a multiplier of 1, an unknown job, a slot outside the menu, two entries on one slot.
- An entry that says
type: boostbut cannot grant one is kept out of the shop instead of taking farmpoints for nothing. /corejobs papi <text>runs text through PlaceholderAPI and says whether each identifier in it is registered.- Without PlaceholderAPI, the console names the language lines holding a
%placeholder%on start instead of staying quiet. - Fixed: a shop entry on the same slot as the balance item, the close button or the filler was drawn and then covered up.
- Fixed: a shop entry with no
giveblock handed over a stone block.
Money and farmpoints boosts
- Boosts now come in three categories,
xp,moneyandfarmpoints. One of each runs at the same time, and a second boost of the same category still waits its turn. boosts.affect-farmpoints, andboosts.xp-also-moneyfor the old behaviour where an xp boost also multiplied money.boost-typeon a shop entry, an optional category argument on/corejobs boostand/corejobs boost item, andboosts.item-moneyandboosts.item-farmpointsfor how those items look.- Per-category placeholders:
%corejobs_boost_<type>_active%,_multiplier%,_amount%,_time%,_seconds%and_job%, with an optional job in the middle. job.xp-actionbaraccepts another plugin’s placeholders when PlaceholderAPI is installed, so a collection counter can sit next to the job progress.- Comments in your yml files are brought in line with the bundled ones on start, so a reworded explanation reaches a key you already had.
- Fixed: a boost item right clicked in open air was thrown by vanilla instead of starting the boost.
- Fixed: a leftover
multi-block.connectedlist is now deleted on start instead of warning on every start.
Boost items, live timers, a fuller action bar
boosts.as-itemhands a bought boost over as an item. The player right clicks it when they want it, the item is used up and the boost starts then. A shop entry can override it withas-itemunder its ownboostblock./corejobs boost item <player> <job|all> <multiplier> <seconds> [amount]for handing them out.- The boosts menu counts down while it is open, at
feedback.boost-menu-refresh-ticks. - The action bar carries the money paid, the block that paid, a
{bar}progress bar, and the farmpoints from the same block instead of being wiped by them. job-prestigeinmenus.ymlputs the prestige level and what it is worth under a job icon in/jobs.
Boosts take turns
boosts.queue-lower, on by default. A 2x freezes with its full time saved while a 3x over the same jobs runs, and starts again the second the 3x ends.- Boosts store the time they have left instead of an end time, so a clean shutdown costs no boost time at all.
- The boosts menu shows a waiting boost with its own item, and buying one that has to wait says so.
Boost stacking, offline pause, faster leaderboards
boosts.stackingwithhighest,addandmultiply. Two boosts no longer multiply into one huge number by default.boosts.same-boost: extendtops up a boost you already have running instead of starting a second one.boosts.pause-while-offlinegives back the time the server spent down.- A level up saves and refreshes the leaderboards straight away instead of waiting for the autosave, with
leaderboards.min-delay-secondsas the floor. how-to-earn.linesinmenus.ymland a per-jobhow-to-earnlist injobs.ymlreplace the generated block and mob list.
First release
Nine tester rounds went in before this one. Everything below shipped together.
- Six jobs with configurable money formulas, xp curves, and prestige.
- Head-grid
/jobsmenu, per-job hub, and tier pages. - Level rewards with a Claim All button.
- Drop tables and farmpoint rules per material.
- Farmpoints shop, boosts, and a monthly ranking with a Discord webhook.
- Multi-stage plant support for sugar cane, cactus, bamboo, kelp, chorus, and vines.
- Place-and-break protection.
- SQLite and MySQL storage, English, French, and Spanish.
Thanks Luxioz
Prime tester through every round. Most of the fixes below came straight off his reports.
Versioning
Release jars are named plainly, like CoreJobs-1.0.0.jar. A jar with an extra number on the end, like 1.0.0-9, is a test build from before the release and is not meant for a live server.