DistrictWarden
Keep your shopping district open for business.
DistrictWarden is a Paper plugin that manages a player-run commercial shopping district. It links a land-management plugin (GriefDefender) to a chest-shop plugin (QuickShop-Hikari), records every claim and shop in the worlds you nominate, watches shop stock levels, sends staged warnings for shops that sit empty, and lets staff archive, remove and later restore an abandoned shop.
It carries no server-specific branding, world names or messages, so any server can install it without touching the source.
DistrictWarden never clears, removes, releases or restores anything on its own. Warnings and scans only observe and notify. Removing or restoring a shop is always one explicit staff command.
How it works
- You list the worlds your shopping district lives in under
worlds.enabled. DistrictWarden ignores everything else on the server. - At startup — and whenever a staff member runs
/dw reconcile— DistrictWarden reads every player-owned GriefDefender claim in those worlds and records it as a property. - It discovers the QuickShop-Hikari shops inside each property and tracks whether each one can trade.
- A daily scan checks stock. A shop that stays unable to trade past
stale-shop-daysearns a warning to its owner, repeated on an interval until the shop recovers. - If staff decide a shop should go, they archive it (saving its settings), which removes the in-game shop. The archive can be restored once, later, on command.
Key features
- Links claims to shops — each player-owned GriefDefender claim is one property, and the QuickShop-Hikari shops inside it are tracked against it. See Commands.
- Per-world scope, or a radius within a world — DistrictWarden manages only the worlds you list, and optionally only a circle within one, so the district can share a world with the rest of the server. Set it in game with
/dw setcenter. See Configuration. - Staged stale-shop warnings — an empty shop is noticed after a configurable number of days and the owner is reminded on an interval until it can trade again. See Shop Lifecycle.
- Staff-approved archive, removal and restore — archiving saves a shop's settings and removes it; a saved archive can be restored once. See Shop Lifecycle.
- Visual inspection patrol — during the scan a single temporary, harmless Warden mob walks a short loop past each loaded shop. It has no AI, cannot be hurt or collide, touches nothing, and is removed after each visit.
- Underground mob-spawn prevention — creature spawns below the surface inside a managed claim are cancelled automatically, keeping shopping tunnels clear. See Configuration.
- Discord and MineMail notices — warnings can also go to a Discord webhook and to players' in-game MineMail mailboxes. See Configuration.
- SQLite or MySQL — HikariCP-pooled storage with numbered migrations applied automatically at startup. See Configuration.
- Degrades gracefully — a missing GriefDefender, QuickShop-Hikari or WorldEdit disables only the feature that needs it and logs a clear reason, rather than stopping the plugin from loading.
Status
DistrictWarden is mid-build. The GriefDefender and QuickShop-Hikari integrations are covered by unit tests against fakes, but neither has been exercised against a live instance of either plugin. Try it on a test server before production.
Some permission nodes and the WorldEdit property-block archive are declared for forthcoming features and do nothing yet. The Permissions and Troubleshooting pages mark what is and is not wired up.
Where to go next
- Setting it up? Start with Installation, then Configuration.
- Running the commands? See Commands and Permissions.
- Handling an abandoned shop? See Shop Lifecycle.
- A player asking what it does? Point them at the Player Guide.
- Building an integration? See the Public API.
- Something not showing up? Check Troubleshooting.