Content generated with AI — it may contain mistakes.

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.

MethodReturns
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).

EventCancellableFired whenAccessors
JobJoinEventyesA player is about to join a job.getPlayer(), getJobId()
JobLeaveEventyesA player is about to leave a job.getPlayer(), getJobId()
JobLevelUpEventnoOne level reached (one event per level), after it is stored.getJobId(), getOldLevel(), getNewLevel()
JobPayoutEventyesAfter every payout step, before money and xp are given.getJobId(), getAction(), getTarget(), getMoney()/setMoney, getXp()/setXp
JobPerkChosenEventyesA perk is about to be chosen or swapped.getJobId(), getTier(), getPerkKey(), isSwap()
JobPrestigeEventyesBefore the level is reset.getJobId(), getNewStars()
WorkOrderFilledEventnoUnits 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