Skip to content

Developer API

The KOTL API exposes synchronous Bukkit events for arena entry, arena exit, crown claims, statistic changes, and completed game cleanup.


KOTL is available through JitPack.

repositories {
maven { url = 'https://jitpack.io' }
}
dependencies {
compileOnly group: 'com.github.Despical', name: 'KOTL', version: 'main-SNAPSHOT'
}
name: YourPlugin
version: 1.0.0
main: your.package.Main
depend: [KOTL]

All custom events extend:

dev.despical.kotl.api.events.KOTLEvent

KOTLEvent is a shared marker. Concrete classes own their own Bukkit HandlerList, so register listeners for concrete events.


EventType maps stable identifiers to concrete event classes:

EventTypeEvent Class
GAME_STOPGameStopEvent
PLAYER_ENTER_ARENAPlayerEnterArenaEvent
PLAYER_LEAVE_ARENAPlayerLeaveArenaEvent
PLAYER_BECOME_KINGPlayerBecomeKingEvent
PLAYER_STAT_CHANGEPlayerStatisticChangeEvent

EventRegistry.getRegisteredTypes() returns the complete unmodifiable set. getEventClass(type) resolves a class, and matches(type, event) performs a type check.

EventManager is an internal dispatcher. External plugins should listen to events instead of manually calling lifecycle factory methods.


import dev.despical.kotl.api.events.player.PlayerBecomeKingEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public final class CrownListener implements Listener {
@EventHandler
public void onBecomeKing(PlayerBecomeKingEvent event) {
String player = event.getPlayer().getName();
String arena = event.getArena().getId();
System.out.println(player + " claimed the crown in " + arena);
}
}

Next: