Skip to content

Developers

Each plugin exposes a small Kotlin-friendly API to other plugins on the same server, and each backend has a REST API documented with OpenAPI.

What Where
Bukkit events fired by the plugins Events
Bukkit services (SaunaCache, AnchorPoint) SaunaCache developer guide
Backend REST APIs REST API
Shipping your own plugin through ForgeRelay Publishing
  • API classes live in me.soknight.<plugin>.api and are kept binary compatible within a major version.
  • Everything that does network I/O is a suspend function, with a CompletableFuture twin ending in Async for Java callers.
  • Nullable means “not found”, never “error”. Errors are exceptions from me.soknight.common.SoKnightException.
  • Depend on the plugin in plugin.yml with depend or softdepend; never shade the API classes.