API Reference
Java plugin API for ArenaLite integration and extension
Initialization
Get the ArenaLite singleton instance to access all managers:
ArenaLite plugin = ArenaLite.getInstance();ArenaManager
Manage arenas, regions, and spawn locations
ArenaManager arenaManager = plugin.getArenaManager();
Arena arena = arenaManager.getArena("desert");
Set<String> names = arenaManager.getArenaNames();
if (arena != null && arena.isInRegion(player.getLocation())) {
// Player is inside the arena region
}Key Methods:
- •
getArena(String) / getArenaNames() - •
loadArenas() / saveArenas() - •
Arena: getPos1(), getPos2(), isInRegion(Location) - •
Arena: getSpawn(), isRegenEnabled(), setBuildEnabled(boolean)
KitManager
Handle kit creation, application, and previews
KitManager kitManager = plugin.getKitManager();
Kit kit = kitManager.getKit("diamond");
Set<String> kits = kitManager.getKitNames();
if (kit != null) {
kitManager.applyKit(player, kit);
}Key Methods:
- •
createKit(String) / deleteKit(String) - •
populateKitFromPlayer(Kit, Player) - •
applyKit(Player, Kit) - •
openPreview(Player, Kit) - honours configuration flags
StatsManager
Track player statistics and arena performance
StatsManager stats = plugin.getStatsManager(); PlayerData data = stats.getPlayerData(player); data.addKill(); stats.savePlayerData(data); // async
Key Methods:
- •
getPlayerData(Player) - •
savePlayerData(PlayerData) - async via CompletableFuture - •
PlayerData: current arena context, kills, deaths, streak
RegenManager
Handle safe arena regeneration with player protection
RegenManager regen = plugin.getRegenManager(); // Trigger safe regeneration (teleports players, locks movement) regen.regenArena(arena); // Check if player is frozen during regen boolean frozen = regen.isFrozen(player);
Key Methods:
- •
regenArena(Arena) - safe regeneration with player protection - •
isFrozen(Player) - check freeze state during regen - •
Block restoration throttled via regen.blocks-per-tick
Hooks
Optional integrations with other plugins
FAWEHook fawe = plugin.getFAWEHook();
if (fawe != null && fawe.isAvailable()) {
// Use FAWE for faster regeneration
fawe.regenArena(arena);
} else {
// Fallback to built-in snapshot regen
plugin.getRegenManager().regenArena(arena);
}Key Methods:
- •
getFAWEHook() - optional FastAsyncWorldEdit integration - •
getPlaceholderAPIHook() - PlaceholderAPI placeholders - •
getVaultHook() - Vault economy integration - •
Always null-check hooks before use
Storage Layer
Abstracted player data storage with multiple backends
PlayerDataStorage storage = plugin.getPlayerDataStorage(); // storage.reload() will re-read configuration settings // Supports YAML (default) and MYSQL // Configure in config.yml: // storage: // type: YAML|MYSQL // mysql: ...
Key Methods:
- •
PlayerDataStorage - abstracted storage interface - •
Supports YAML and MYSQL backends - •
storage.reload() - re-read configuration
Reload Semantics
ArenaLite#reload() reloads configuration, arenas, kits, and propagates changes to the storage layer. If you hook into ArenaLite, listen for configuration changes by re-querying the managers after reload.
plugin.reload(); // Reloads configuration, arenas, kits, and storageIntegration Notes
- •Kits store slot-perfect copies of player storage contents including armor and off-hand items
- •Built-in snapshot regeneration works without FAWE, but FAWE improves performance on large regions
- •Player data saving is performed asynchronously to avoid blocking the main thread
- •Always check if optional hooks are available before using them