Referencedev
API
JobsService and the seven events of the Exylia API.
ExyliaJobs publishes JobsService and seven events in exylia-api (net.exylia.lib.api.jobs), shipped from ExyliaLib v1.480.0. See the ExyliaLib API page to add the artifact (compileOnly).
int mining = ExyliaAPI.get(JobsService.class)
.map(jobs -> jobs.level(player.getUniqueId(), "miner"))
.orElse(0);JobsService
Read from memory: online players only (offline players answer as having no jobs). Safe from any thread.
| Method | Returns |
|---|---|
jobIds() | Every job id the server knows, enabled or not. |
jobsOf(UUID) | A JobLevel(jobId, level, xp, prestige) per held job. |
level(UUID, String jobId) | The level, or 0 when not held. |
Events
All in net.exylia.lib.api.jobs.event, fired on the player's thread (a cancellable one fires before anything is written).
| Event | Cancellable | Fired when | Accessors |
|---|---|---|---|
JobJoinEvent | yes | A player is about to join a job. | getPlayer(), getJobId() |
JobLeaveEvent | yes | A player is about to leave a job. | getPlayer(), getJobId() |
JobLevelUpEvent | no | One level reached (one event per level), after it is stored. | getJobId(), getOldLevel(), getNewLevel() |
JobPayoutEvent | yes | After every payout step, before money and xp are given. | getJobId(), getAction(), getTarget(), getMoney()/setMoney, getXp()/setXp |
JobPerkChosenEvent | yes | A perk is about to be chosen or swapped. | getJobId(), getTier(), getPerkKey(), isSwap() |
JobPrestigeEvent | yes | Before the level is reset. | getJobId(), getNewStars() |
WorkOrderFilledEvent | no | Units were delivered and paid. | getOrderId(), getBuyer(), getDeliverer(), getJobId(), getItemId(), getUnits(), getPaid() |
getAction() is the upper-case action name (BREAK, KILL, FISH...).
Something missing on this page? Tell us on Discord