Package-level declarations
Types
Small shared helpers for the Brigadier command executors: coloured feedback and the "block you're looking at" lookup. Kept separate so both the command tree and the testable DespiActions can use them.
The behaviour behind every /despi subcommand, separated from Brigadier registration (DespiCommand) so the logic is straightforward to follow and to exercise. Each method takes an already-resolved sender and arguments and reports its own feedback.
Registers /despi and /recycle using Paper's modern Brigadier command API via the lifecycle event system — replacing the old plugin.yml command + hand-rolled string parsing. Brigadier gives typed arguments, permission-scoped visibility, native tab-completion, and client-side validation. All behaviour lives in DespiActions.
The /recycle behaviour: despawn the held item and track reward progress in the player's org.bukkit.persistence.PersistentDataContainer. Permission and player-sender checks are handled by the Brigadier registration in DespiCommand.