EmberPvP Classes - Spigot 1.8.8
A dependency-free class-selection plugin for a world named Classes.
Build and install
- Install Java 8+ and Maven.
- Run
mvn clean packagein this directory. - Copy
target/EmberPvP-Classes-2.2.0.jarto the server'spluginsfolder. - Ensure the world folder is named
Classesand loaded by the server. - Start the server, then edit
plugins/Classes/config.ymlor use/class settings.
The default player spawn is 11.5, 23, -74.5 in world Classes. The default Class Master NPC is at -21, 23, -74 in the same world.
Player flow
- A player without a class is teleported to the configured lobby and shown the picker.
- The native villager Class Master opens the same picker on right-click.
- Commands are blocked until a selection is made, except
/classand/classes. - A selection is permanent until an administrator resets it.
- Class state is restored on join and respawn.
Administration
/class settings- polished dashboard for locations, toggles, NPC controls, statistics, paged player management, preview, reload, and safe map reset./class setspawn- set the player spawn to your current position./class setnpc- set the NPC spawn to your current position and move it immediately./class give <player> [amount]- give an online player one or more Class Reset Gems./class reset <player>- reset one player, including offline players./class list- show every saved player and class./class stats- show totals for each class./class reload- reloadconfig.ymlandplayers.yml./class resetall confirm- reset all class choices for a new map.
Permissions: classes.admin and classes.bypass (both default to server operators).
Class Reset Gem
The glowing reset gem can be distributed as an event, crate, quest, or competition reward. A player right-clicks it to erase their active class. One gem is consumed only on successful use, and the class picker is then forced open until a new class is selected. The forced state persists through death, disconnects, and server restarts. Its material, name, glow, lore, and messages are configurable.
All menu items, slots, data values, glow settings, lore, perk percentages, messages, locations, command allowlists, and selection-lock behavior are editable in config.yml. Player choices are stored by UUID in players.yml.
Classes and perks
- Farmer: 10% hoe-upgrade discount, +10% hoe token rewards, +10% hoe money rewards.
- Grinder: 10% mob-sword upgrade discount, +10% mob-sword tokens, +10% mob-farming money, +10% outpost capture speed.
- Raider: +25% collector-box TNT and +10% throwable-creeper blast radius.
- Fighter: +5% damage and 5% damage reduction while in water.
Fighter's combat perks are handled natively by this plugin. The public EmberClassesAPI remains available to other EmberPvP plugins with getPlayerClass, hasClass, getClassDisplayName, getPerkPercent, applyBoost, and applyDiscount.
MobSword 3.2.1 integration
When MobSword 3.2.1 is installed, Classes connects automatically through the MobSword soft dependency. It uses MobSword's real tool detection, internal/Scorge token provider, tool-soul data, Vault provider, configured rewards, and upgrade calculations.
- Farmer receives +10% of actual Harvester Hoe token and Vault-money rewards.
- Farmer pays 10% less for token-priced and soul-priced Harvester Hoe upgrades.
- Grinder receives +10% of actual Mob Sword token and Vault-money rewards.
- Grinder pays 10% less for token-priced and soul-priced Mob Sword upgrades.
- Failed or invalid upgrade clicks roll back the temporary class subsidy.
- Low-value integer rewards use fractional probability so their long-term boost remains exactly 10% instead of rounding permanently to zero.
Fishing Rod systems remain detected by MobSword but currently have no class perk in the supplied four-class design. The bridge can be disabled under integrations.mob-sword.enabled; changing that toggle requires a restart.
PlaceholderAPI
PlaceholderAPI is optional. When installed, the internal expansion registers automatically; no eCloud download is required.
%classes_class%- colored display name, or the configured colored Classless value.%classes_class_raw%- uncoloredFarmer,Grinder,Raider,Fighter, orClassless.%classes_class_plain%- alias of the raw placeholder.%classes_has_class%-trueorfalse.%classes_forced_selection%- whether the player is locked into reselection.%classes_perk_<key>%- the player's configured perk percentage, such as%classes_perk_harvester_tokens_boost%.%classes_count_total%- total saved class selections.%classes_count_farmer%,%classes_count_grinder%,%classes_count_raider%,%classes_count_fighter%- class totals.
Test a player placeholder with /papi parse me %classes_class%. The colored and raw Classless values are configurable under settings.no-class-placeholder and settings.no-class-raw-placeholder.