Skip to content

1.5.2

Choose a tag to compare

@dmccoystephenson dmccoystephenson released this 18 Oct 01:51
a7a00fc

1.5.2

For a server on v1.5.1 this is a bug-fix release that can replace the old jar directly. Mail data, commands and permissions work as before. /m config set now refuses keys it cannot safely change instead of writing them to config.yml as text. The developer API now returns null when a lookup finds nothing.

Changes

Configuration

  • /m config set now refuses keys it does not support, such as anything under usage-reporting, with the message "That config option can't be changed with /m config set." Before, these keys were saved as plain text. That could leave a value like usage-reporting.enabled that the plugin could not read as true or false, or replace the whole usage-reporting section with a single string. (#137)

Developer API

  • MailboxesAPI.getMailbox(Player) and MailboxesAPI.getMessage(int) now return null when no mailbox or message is found. Before, they returned a wrapper around nothing, which failed when used. The API version is now v0.0.4. (#133)

Upgrade notes

  • If anyone used /m config set on a usage-reporting key under an earlier version, open config.yml and check that the usage-reporting section is intact and that enabled is a plain true or false, not a quoted string. Fix it by hand if needed, then reload or restart.
  • Plugins that use the Mailboxes API should check the results of getMailbox and getMessage for null.

Version

v1.5.1 → 1.5.2 — PATCH. Mechanical floor from comparing the two jars: PATCH.
Judgment: Both functional changes fix bugs and add nothing new. /m config set stops writing broken values: before, any key it didn't recognise was saved as a string, which could turn usage-reporting.enabled into the unreadable string "false" or replace the whole usage-reporting section. The API lookups now return null instead of a wrapper around a missing object, and calling a method on that wrapper would almost certainly have failed anyway (API version v0.0.3 to v0.0.4). Neither change takes away anything that worked before, and there is no new behaviour or data format, so the patch floor stands. One caveat: the diff only shows the end of the setter, so I am assuming every key meant to be settable is handled before the old catch-all string branch.

  • no interface or storage difference observed between the jars

Verification

Verified on a real Spigot server before publication; this release carries the exact jar that was verified.

  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
  • save-compatibility gate run: data written by v1.5.1 was loaded by this release across two restarts with nothing lost (16 assertions passed).

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


drafted by Claude on behalf of Daniel Stephenson