Repository navigation
2.0.0
2.0.0
A server on 1.2.0 upgrading to this release gets a set of long-standing bug fixes to spawn selection, sign detection and /resetspawn, and a new opt-out usage-reporting feature that is enabled by default. The permission nodes declared in plugin.yml have been renamed to the spawnsystem.* names the plugin actually checks, so any grants written against the old dansplugins.* names need updating. The plugin now ships a config.yml, which is created on first start and gains a usage-reporting block on upgraded installations.
Changes
Spawn selection and signs
- A player's chosen spawn is now kept once set; previously every click on a
[Spawn]sign silently overwrote it. Use/resetspawnto pick a new one. (#63) - Spawn signs are only activated by right-clicking; left-clicking or stepping on a pressure plate next to one no longer sets a spawn. (#80)
- A
[Spawn]sign whose coordinates cannot be read now tells the player to see an admin and logs a warning through the plugin logger with the sign's location, instead of failing silently. (#80) - All sign types added after 1.15 (crimson, warped, mangrove, bamboo, cherry, hanging signs) are now recognised as spawn signs. (#74)
- Saved spawns with a 0 on any axis are no longer discarded on load; only missing or unreadable values are skipped. (#74)
Commands
/resetspawnnow tells the console it is player-only, reports when a named player cannot be found instead of claiming success, and only notifies the target if they are online. (#73)
Permissions
- Declared permission nodes are now
spawnsystem.reset.self,spawnsystem.reset.others,spawnsystem.placeSpawnSign,spawnsystem.breakSpawnSignand the newspawnsystem.admin(all default to op), matching the nodes the plugin checks. Thedansplugins.*nodes are no longer declared. (#62)
Usage reporting
- The plugin now sends a small usage event on startup (plugin name and version) and on each command (command name) to
https://trace.danielstephenson.dev. Nothing about players or the server is included; sending happens off the main thread and is dropped if the server cannot be reached. (#81) - A startup log line states whether reporting is on and, if off, why. Reporting can be turned off per plugin with
usage-reporting.enabled: falseinconfig.yml, server-wide withenabled: falseinplugins/trace/config.yml, or via theTRACE_USAGE_REPORTING=off/DO_NOT_TRACK=1environment variables. (#81, #86) - On upgraded servers the
usage-reportingblock is written intoconfig.ymlso the switch is visible on disk; an existing block is left untouched. (#86)
Upgrade notes
- If your permissions plugin grants any
dansplugins.spawnsystem.*,dansplugins.placeSpawnSignordansplugins.breakSpawnSignnodes, change them to thespawnsystem.*names above. - Usage reporting is on by default. To opt out before the first report is sent, set
usage-reporting.enabled: falseinplugins/DansSpawnSystem/config.yml, or createplugins/trace/config.ymlcontainingenabled: false, before starting the server with the new jar. - Players who relied on re-clicking a sign to change their spawn now need to run
/resetspawnfirst.
Version
1.2.0 → 2.0.0 — MAJOR. Mechanical floor from comparing the two jars: MAJOR.
Judgment: The mechanical floor of major stands: every permission node declared in plugin.yml moves from the dansplugins.* prefix to spawnsystem.*, so any permission-plugin grants written against the old names no longer match what is declared. Nothing in the source raises above that, but two behaviour changes are worth surfacing for operators: usage reporting to an external endpoint is now on by default and writes config.yml and plugins/trace/config.yml, and a spawn-selection fix means a player's first sign choice now sticks until reset rather than being overwritten by every click. The remaining changes are bug fixes, tests, CI and repository housekeeping that do not affect the level.
- major: permission removed: dansplugins.breakspawnsign
- major: permission removed: dansplugins.placespawnsign
- major: permission removed: dansplugins.spawnsystem.reset.others
- major: permission removed: dansplugins.spawnsystem.reset.self
- minor: permission added: spawnsystem.admin
- minor: permission added: spawnsystem.breakspawnsign
- minor: permission added: spawnsystem.placespawnsign
- minor: permission added: spawnsystem.reset.others
- minor: permission added: spawnsystem.reset.self
- minor: default config key added: usage-reporting.enabled
- minor: default config key added: usage-reporting.endpoint
- minor: default config key added: usage-reporting.key
- minor: storage path changed: src/main/java/dansplugins/spawnsystem/data/PersistentData.java
- minor: storage path changed: src/main/java/dansplugins/spawnsystem/services/StorageService.java
Java API changes (informational — nothing depends on this plugin)
- public class added: dansplugins.spawnsystem.config.ConfigManager
- public class added: dansplugins.spawnsystem.trace.TraceClient
- public class added: dansplugins.spawnsystem.trace.TraceClient$Builder
- dansplugins.spawnsystem.commands.ResetSpawnCommand: removed/changed public dansplugins.spawnsystem.commands.ResetSpawnCommand(dansplugins.spawnsystem.data.PersistentData, dansplugins.spawnsystem.utils.UUIDChecker, dansplugins.spawnsystem.DansSpawnSystem);
- dansplugins.spawnsystem.commands.ResetSpawnCommand: added public dansplugins.spawnsystem.commands.ResetSpawnCommand(dansplugins.spawnsystem.data.PersistentData, dansplugins.spawnsystem.utils.UUIDChecker, org.bukkit.Server);
- dansplugins.spawnsystem.listeners.PlayerInteractListener: removed/changed public dansplugins.spawnsystem.listeners.PlayerInteractListener(dansplugins.spawnsystem.utils.BlockChecker, dansplugins.spawnsystem.data.PersistentData);
- dansplugins.spawnsystem.listeners.PlayerInteractListener: added public dansplugins.spawnsystem.listeners.PlayerInteractListener(dansplugins.spawnsystem.utils.BlockChecker, dansplugins.spawnsystem.data.PersistentData, java.util.logging.Logger);
- dansplugins.spawnsystem.listeners.PlayerRespawnListener: removed/changed public dansplugins.spawnsystem.listeners.PlayerRespawnListener(dansplugins.spawnsystem.data.PersistentData, dansplugins.spawnsystem.DansSpawnSystem);
- dansplugins.spawnsystem.listeners.PlayerRespawnListener: added public dansplugins.spawnsystem.listeners.PlayerRespawnListener(dansplugins.spawnsystem.data.PersistentData, org.bukkit.plugin.Plugin);
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