API Overview
Importing the API
To start using the Polar API, you need to include it as your project dependency. Do not shade it. Add https://repo.polar.top/repository/polar/ to your dependency manager:
Gradle example
Basic usage
The top.polar.api.PolarApiAccessor class is a convenient way to access the Polar API object. It provides a method to retrieve the PolarApi object supplied as a WeakReference.
Important nuances regarding events
Polar API provides a flexible and robust event system to handle various server events. Events are represented by the PolarApiEvent class, and the API defines a hierarchy of event classes that extend from it.
Polar class loading strategy
Polar classes are loaded asynchronously to Bukkit main thread. There may be a condition, at which, a plugin dependent on Polar was already loaded, but the PolarApiAccessor class has not been loaded yet.
PolarLoader plugin includes a LoaderApi class, allowing to set up a preliminary listener, which is called the moment Polar is loaded completely.
To do so, make your API-dependant plugin depend on PolarLoader (through plugin.yml).
Listening to events
Polar Api has a custom-built event system, which is completely independent of the Bukkit one.
Events are registered through EventListenerRepository, which is accessible through the Events class, which is accessible through PolarApi.