Ponder
The community's shared Java/Kotlin library — a multi-module Gradle build providing command abstraction, caching, and Bukkit helpers.
Ponder is the shared library DPC plugins build on. It is small — three modules, each a handful of files — and published as Maven artifacts rather than shaded into each plugin.
The three modules
| Module | Contents |
|---|---|
ponder-bukkit |
Bukkit/Spigot helpers — distance calculations, plugin lookups |
ponder-cache |
A generic Cache<K, V> interface with a default implementation and a CacheManager |
ponder-commands |
A Command abstraction, a CommandService registry, and typed CommandResult values |
ponder-commands is the interesting one architecturally. CommandService is a two-method interface — addCommand(name, command) and getCommand(name) — and results are typed values such as IncorrectUsageFailure rather than booleans. That is the same "failures are values" instinct visible in the flagship's Service Layer.
Published, not vendored
Modules are consumed from repo.dansplugins.com (the community's Nexus) and from GitHub Packages, under the com.dansplugins group. Publishing rather than copying means a fix reaches every consumer on the next dependency bump.
The caveat is version skew across the fleet. Fiefs still builds against a vendored Ponder-v0.15-alpha-2.jar predating the current module layout, so "which Ponder?" is a real question when reading an older plugin.
Related
Ponder lives in the Dans-Plugins organization but is named for Preponderous, and its package root is still preponderous.ponder while its Maven group is com.dansplugins. No source in the repository explains the mismatch, so treat it as a naming artefact rather than a boundary that means something.