Skip to content

feat: Auto-install CatalystAnalytics plugin on server creation#16

Closed
kilo-code-bot[bot] wants to merge 1 commit intomainfrom
session/agent_e5db6370-6774-48e5-9dde-dcad76ff40e2
Closed

feat: Auto-install CatalystAnalytics plugin on server creation#16
kilo-code-bot[bot] wants to merge 1 commit intomainfrom
session/agent_e5db6370-6774-48e5-9dde-dcad76ff40e2

Conversation

@kilo-code-bot
Copy link
Contributor

@kilo-code-bot kilo-code-bot bot commented Feb 13, 2026

Summary

This PR makes the CatalystAnalytics plugin "just work" end-to-end by:

1. Pre-built JAR

  • Added Gradle wrapper (gradlew/gradlew.bat) to catalyst-plugin/
  • Fixed compilation error: getClientBrandName() now uses reflection for Spigot API compatibility
  • Built and committed the plugin JAR to resources/plugins/CatalystAnalytics.jar
  • Added CI workflow (.github/workflows/build-plugin.yml) that rebuilds the JAR on plugin changes

2. Auto-install on server creation

  • Added enableAnalytics field to CreateServerParams type
  • The existing UI toggle (Paper/Purpur only) now passes enableAnalytics to the backend
  • createServer() in server-manager.ts copies the bundled JAR into the server's plugins/ directory when enabled
  • Added analyticsEnabled field to ServerRecord for tracking

3. Integration check

  • Verified all 6 API endpoints match between the plugin's HTTP server and the frontend's AnalyticsTab:
    • /api/analytics/overview, /players, /tps, /memory, /geo, /timeline
  • Port 7845 and Bearer token auth are consistent
  • Plugin writes JSON data to plugins/CatalystAnalytics/data/ and serves it via HTTP — frontend reads via HTTP

4. Documentation

  • Added catalyst-plugin/README.md with features, configuration, API endpoints, and build instructions
  • Added analytics section to the main README.md

5. No errors

  • Fixed getClientBrandName() compilation error (Spigot API doesn't have this method — now uses reflection)
  • Added catalyst-plugin/.gradle/ and catalyst-plugin/build/ to .gitignore
  • All changes are backward-compatible (new fields are optional)

Built for 87wf9xdgz8 by Kilo for Slack

- Add pre-built CatalystAnalytics.jar to resources/plugins/
- Add Gradle wrapper (gradlew/gradlew.bat) to catalyst-plugin/
- Add CI workflow to build plugin JAR on changes
- Wire enableAnalytics toggle from UI through to server creation
- Copy plugin JAR to server's plugins/ dir when analytics enabled
- Fix compilation error: use reflection for getClientBrandName()
- Add catalyst-plugin/README.md with full documentation
- Add analytics section to main README
- Add catalyst-plugin build artifacts to .gitignore
@leifiyoo leifiyoo closed this Feb 14, 2026
@leifiyoo leifiyoo deleted the session/agent_e5db6370-6774-48e5-9dde-dcad76ff40e2 branch February 14, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant