Content generated with AI — it may contain mistakes.

Getting started

Installation

Dependencies, the files it writes on first start, and what to do after.

Installing

Drop in the jars

ExyliaClasses.jar, plus ExyliaLib and packetevents, into plugins/. PlaceholderAPI is optional and only needed if you want the placeholders outside Exylia plugins.

Start the server

It writes config.yml, messages.yml and the six class files under classes/.

Put the armour on

Nothing else is needed. A full leather set makes a player an Archer after a five-second warmup.

Edit or add classes

Every class is a file. Change one, add one, delete one, then /classes reload.

packetevents is a hard dependency

It is declared as depend, so the server refuses to enable this plugin without it. ExyliaLib is a softdepend for load ordering, but the plugin is built on it and will not work without it either.

Requirements

RequirementNotes
Minecraft 1.21+Built against the 1.20 API, tested on 1.21.
Java 21The jar is compiled for 21.
Paper, or FoliaIt uses Paper's armour-change event, so Spigot alone is not enough. Folia is supported.
ExyliaLibConfiguration, text, effects, tasks, placeholders and the clan bridge.
packeteventsRequired.
PlaceholderAPIOptional. Only for exposing the placeholders to other plugins.

Files

FileContents
config.ymlThe debug flag and the two boss bars.
messages.ymlEvery message the plugin sends.
classes/Archer.ymlThe Archer, and the mark weapon.
classes/Bard.ymlThe Bard, energy and the clan buffs.
classes/Miner.ymlThe Miner and its below-Y passive.
classes/Rogue.ymlThe Rogue and the backstab weapon.
classes/Sorcerer.ymlThe Sorcerer and the enemy debuffs.
classes/Tank.ymlThe Tank.

There is no database. Nothing about a player is written to disk.

The six defaults are only written when missing

On every start the plugin checks for those six file names and writes back any that are absent. Delete Bard.yml and it comes back on the next start; rename it and you get a new file next to your copy.

Loading

Every .yml file inside classes/ is loaded, whatever it is called. The file name, lowercased, is the class id — Archer.yml is the class archer. A file that fails to parse is logged and skipped; the rest still load.

Updating

Replace the jar and restart. /classes reload re-reads config.yml, messages.yml and every class file, and re-checks every online player's armour against the new definitions.

Something missing on this page? Tell us on Discord