Purpur Sentinel
Passive, explainable movement-pattern observation for Purpur servers.
Sentinel gives permitted operators bounded evidence of suspicious on-foot speed, unauthorized unsupported flight, unsupported boat travel, source-less elytra propulsion, and statistically implausible elytra wear. Elytra analysis correlates server-recognized gliding, equipped-item identity, observed rocket use, external propulsion, altitude conversion, wear opportunities, Unbreaking, Mending/XP repair, and unbreakable items; high speed alone is never evidence. Sentinel does not cancel movement, alter vehicles or items, consume rockets, change flight permissions, or punish players.
Each generated alert is also appended asynchronously as a CloudEvents 1.0 JSON object to plugins/PurpurSentinel/events/YYYY-MM-DD.jsonl. Dates and timestamps use UTC, files retain 30 UTC days, and durable events identify the subject by UUID without display names, coordinates, raw trajectories, inventory contents, IP addresses, or permission state. Queue or disk failures never interrupt detection or gameplay.
Development
Requires Java 25 and Node.js 20.
./gradlew clean check jar
The output JAR is written to build/libs/. Production installation and deployment are separately gated operations.