Skip to content

2.4.0

Choose a tag to compare

@dmccoystephenson dmccoystephenson released this 19 Sep 16:57
8a6aba2

2.4.0

Servers on 2.3.0 can drop in this release without any migration. The headline change is opt-out usage reporting: on startup and on each /de command the plugin sends its name, version and the command name to the author's trace server, off the main thread, and logs on every startup whether reporting is on and why. A usage-reporting block is added to plugins/DansEssentials/config.yml (existing settings are kept) and a server-wide switch file plugins/trace/config.yml is created if it does not exist. The rest of the release is bug fixes to /de back, /de mute, /de unmute and /de fly.

Changes

Usage reporting

  • Report a startup event and one event per /de command to the trace server, sent from a bounded daemon thread that never blocks a tick and drops silently if the server is unreachable (#152)
  • Add usage-reporting.enabled, usage-reporting.endpoint and usage-reporting.key to config.yml, and write the block into an existing config.yml that predates it so the switch is on disk (#152, #155)
  • Honour the server-wide opt-out in plugins/trace/config.yml and the TRACE_USAGE_REPORTING=off / DO_NOT_TRACK=1 environment variables, and print the reporting status and how to turn it off on every startup (#155)

Commands

  • /de back no longer throws IllegalArgumentException when there is no stored location; it now tells the player there is nothing to return to. A player's join location is recorded as their initial back location and cleared on quit, and /de back is listed in /de help (#136)
  • /de mute and /de unmute key the mute on the resolved player's real name rather than the typed text, so muting by a partial name now actually silences the player and unmuting finds them again (#148)
  • /de fly <player> names the correct de.fly.others permission in its error message and reports "That player isn't online." instead of crashing when the target is offline (#147)

Upgrade notes

  • Usage reporting is on by default. To turn it off for this plugin, set usage-reporting.enabled: false in plugins/DansEssentials/config.yml. To turn it off for every trace-reporting plugin on the server, set enabled: false in plugins/trace/config.yml (created on first start). The environment variables TRACE_USAGE_REPORTING=off or DO_NOT_TRACK=1 also disable it and take precedence over both files.
  • If you run a hardened or read-only plugins/ directory, note that the plugin will attempt to create plugins/trace/config.yml; a failure to do so is logged at FINE and reporting stays on.

Version

2.3.0 → 2.4.0 — MINOR. Mechanical floor from comparing the two jars: MINOR.
Judgment: Nothing in the diff breaks an existing 2.3.0 server: the config gains a new usage-reporting block (written in place, other keys preserved) and a new plugins/trace/config.yml is created, both additive; no schema, command argument, or API contract changes incompatibly. The plugin.yml permission rename de.placewarpsign -> de.placeWarpSign is a no-op because Bukkit lowercases permission names, and the /de back, mute and fly changes are bug fixes that narrow behaviour rather than alter it. Usage reporting is on by default and phones home, which operators should know about, but it is new opt-out behaviour rather than a breaking change, so the minor floor stands even though the pom is labelled 3.0.0-SNAPSHOT.

  • minor: default config key added: usage-reporting.enabled
  • minor: default config key added: usage-reporting.endpoint
  • minor: default config key added: usage-reporting.key
Java API changes (informational — nothing depends on this plugin)
  • public class added: dansplugins.dansessentials.listeners.QuitListener
  • public class added: dansplugins.dansessentials.trace.TraceClient
  • public class added: dansplugins.dansessentials.trace.TraceClient$Builder
  • dansplugins.dansessentials.services.ConfigService: added public boolean isUsageReportingEnabled();
  • dansplugins.dansessentials.services.ConfigService: added public java.lang.String getUsageReportingEndpoint();
  • dansplugins.dansessentials.services.ConfigService: added public java.lang.String getUsageReportingKey();
  • dansplugins.dansessentials.services.ConfigService: added public void saveUsageReportingDefaultsIfMissing();

Verification

Booted twice on a real Spigot server before publication — boot gate run (10 assertions passed). This release carries the exact jar that was verified.

Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.


drafted by Claude on behalf of Daniel Stephenson