Skip to content

feat(spigot): extended event logging framework - #25

Open
shiftySenpai wants to merge 21 commits into
splunk:developfrom
shiftySenpai:pr2-extended-logging
Open

feat(spigot): extended event logging framework#25
shiftySenpai wants to merge 21 commits into
splunk:developfrom
shiftySenpai:pr2-extended-logging

Conversation

@shiftySenpai

Copy link
Copy Markdown

Summary

Split out of #23 (extended-logging slice). Stacked on #24 (build/deps) — this branch includes #24's commits, so the diff below will look large until #24 merges, after which GitHub will automatically shrink it to just this PR's commits.

  • Adds shared-mc loggable-event types (Combat/Item/Progression/Server/Performance) plus session-detail fields, a Bukkit-free EventThrottle helper, and per-category enable toggles on AbstractEventLogger.
  • Adds the Spigot event loggers for all five categories (CombatEventLogger, ItemEventLogger, ProgressionEventLogger, ScheduledMetricLogger/PerformanceSampler/ServerEventLogger), teleport/gamemode/bed/world-change/login session detail, and registers them all gated by splunk.craft.enable.* toggles.
  • Documents the new toggles in splunk.properties.
  • Fixes a duplicate mob-kill log entry and gates session-detail behind its toggle.
  • Adds javadoc to the new/modified classes (throttle rationale, toggle gating, Paper-only API gaps, why combat kills don't duplicate DeathEventLogger).

Note: the original commit here also added docs/ENHANCEMENTS-2026-06-22.md and a PR-description doc for the old monolithic #23 — both dropped from this split since they describe scope that's now spread across 5 PRs.

Test plan

Part of the #23 split.

Extract buildHecEnvelope() helper in SingleSplunkConnection using gson
(already a shared-mc dependency) instead of the unmaintained json-simple
1.1 library. Wire format is unchanged: {"event": <message>}. Adds unit
tests covering basic wrapping and quote escaping, and removes the
json-simple dependency from shared-mc/pom.xml and the parent pom's
dependencyManagement.
…'d deps

Adds per-platform MC-version Maven profiles (spigot: 1.21.1 default plus
1.20.1/1.20.4/1.20.6), a shade-plugin build producing
logtosplunk-<mc.version>-<loader>-<loader.version>.jar per module, and marks
server-provided deps (log4j, spigot-api) as provided scope so they aren't
shaded into the plugin jar. Pins kotlin-stdlib to 2.0.21 to clear
CVE-2026-53914 pulled in transitively via splunk-library-javalogging ->
okhttp3 -> kotlin-stdlib:1.6.20. Tunes the OWASP dependency-check plugin to
skip provided-scope CVEs (server operator's responsibility) and not fail on
Sonatype OSS Index 401s (paid-only), while still enforcing the CVSS 7.0 gate.
…ments writeup

Adds repo-convention javadoc to all new/modified classes from the extended-logging
feature (combat/item/progression/server/performance/session-detail), explaining the
non-obvious bits: throttle rationale, ENABLE_* toggle gating, Paper-only API gaps
(TPS/MSPT/protocol-version), and why combat kills don't duplicate DeathEventLogger.
Adds a PR description and a comprehensive enhancements writeup for review.
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