DPC Zettelkasten Open in the explorer

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.

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.

Sources

Linked from