Список изменений
v0.1.5
Cleanup/refactor release — no user-facing behavior changes, no config/permission changes.
- Extracted
Notifier, a reusable base class for any feature that sends an in-game notification gated by a permission node plus a live-checked "is this enabled right now" flag.UpdateNotifier(the update-check feature from v0.1.4) is its first user.Notifierlives incore, built on the platform-agnosticPlatformPlayer/PlayerGrowthCorerather than Bukkit'sCommandSender— any future platform module could reuse it as-is.- Sends via
messages().get(...)directly rather than throughminecraft/bukkit's FlectonePulse-dispatch entry point: a plugin-update notice has no business being relayed through FlectonePulse's own pipeline (e.g. a Discord bridge) just because the recipient is online.
- Sends via
- Redundancy cleanup, following a full audit of the codebase for
duplicated logic:
GrowthEngine.effectiveScale(PlatformPlayer)replaces a "current-scale-or-minimum" computation that had been copy-pasted into four different call sites (a command, the PlaceholderAPI hook, and the public API implementation).PlayerGrowthCore.genderDisplayName(...)replaces a gender display-name lookup that had been copy-pasted into five call sites.CommandGuards.requirePlayercentralizes the "this command needs an online player, not console" check, previously duplicated (and inconsistently — one copy existed as an unused private helper) across three command classes.SchemaVersionStoreextracts the schema-version read/compare/ migrate/write bookkeeping that the H2 and MySQL/MariaDB storage backends each carried as separate, nearly-identical implementations. Verified against a live H2 database (fresh install and reopen of an existing database) after the change.
- Minor: dropped a noisy
<fcolor:N>diagnostic log line that printed the full resolved color map on every startup/reload.
v0.1.4
Architecture consolidation + two new features.
- Merged the
minecraft/papermodule intominecraft/bukkit. A full audit found the only genuine Paper-only API the separate Paper module used was Brigadier-native command registration (CommandSourceStack) — and Cloud's ordinaryCommandSender-based command manager already works identically on Paper, so that split bought nothing but double the maintenance. The other apparent Paper-only behavior — sending native AdventureComponents instead of legacy-formatted strings — was never actually gated on the Paper API either; it's now a runtime capability check (does this server'sCommandSenderimplement Adventure'sAudience?) with no separate build required.- Practical effect: one plugin jar (
PlayerGrowth-Bukkit-<version>.jar) now covers Spigot, CraftBukkit, Paper, and Purpur. If you were previously running the Paper-specific jar, switch to the Bukkit jar on your next upgrade — it behaves identically and still gets native message delivery on Paper/Purpur automatically.
- Practical effect: one plugin jar (
- Added a
/pgalias for/playergrowth—/pg reloadand/pg helpnow work exactly like their/playergrowthequivalents. - Added an update checker. On startup, PlayerGrowth checks this
project's GitHub repository for a newer release; if one exists, it logs
a console warning and notifies online players holding
playergrowth.update-notify(default: op) the next time they join.- New config key:
update-checker.enabled(defaulttrue) — set tofalseto disable both the console warning and the in-game notification. Existing installs pick up this key automatically on upgrade. - New permission:
playergrowth.update-notify(default: op).
- New config key:
v0.1.3
Reliability and integration-depth release.
/playergrowth reloadno longer blocks the main thread. Reading config/localization files and reconnecting to the database now happen off the main thread; only the final step (restarting the growth ticker, refreshing already-online players) touches Bukkit's API and runs synchronously. A reload that previously could stall the server for a moment (especially on a slow DB reconnect) no longer does.- The reload command now reports back how long it took, formatted as
seconds to three decimal places (e.g.
0.042s).
- The reload command now reports back how long it took, formatted as
seconds to three decimal places (e.g.
- Database schema version unified with the plugin's own version.
Previously an independent integer counter; now the same semver string
config.ymlalready tracks. A migration step widens the existing version column automatically for upgrading installs. - Localization files are now replaced wholesale on upgrade (after a
timestamped backup) instead of merged. Previously, only new message
keys reached an upgrading install — if a release changed the wording or
color tags of an existing message, that change silently never reached
anyone who'd already installed the plugin. Now translation updates
actually land. (
config.yml/gender.ymlstill use the merge behavior, since those carry admin customization that must be preserved.) - Messages now route through FlectonePulse's own pipeline when the
recipient is an online player FlectonePulse is already tracking — so
<fcolor:N>and delivery match how FlectonePulse's own messages behave, instead of PlayerGrowth reimplementing that formatting itself. Falls back to PlayerGrowth's own rendering for console senders or whenever FlectonePulse isn't installed/ready.
v0.1.2
FlectonePulse integration + theming + config restructure.
- FlectonePulse server-ID resolution now uses FlectonePulse's real Java
API (
FlectonePulseAPI→FileFacade) instead of re-parsing itsconfig.ymloff disk, with the old file-read approach kept only as a fallback for older/unreachable FlectonePulse versions. - Added
<primary>/<secondary>theme-color tags (configurable viaconfig.yml'scolors.*) and<fcolor:N>support (FlectonePulse's own configured color palette), so every bundled message can be reskinned from one place, and stays visually consistent with FlectonePulse's own colors when it's installed. - Fixed a real bug where color gradients collapsed to a single flat
color on plain Spigot/CraftBukkit (non-Paper) servers — the legacy
text serializer used only the 16 basic legacy colors instead of full
RGB, so a gradient like FlectonePulse's default
<fcolor:1>rendered as one solid color instead of a gradient. Fixed by using full hex-color legacy serialization. - Added a diagnostics log reporting exactly why
<fcolor:N>isn't resolving when it doesn't (FlectonePulse not installed, its API not ready yet, or its fcolor module disabled in its own config), instead of failing silently with no way to tell which case applied. - Restructured
config.yml: the old separateconfig-versionandplugin-versionkeys were merged into oneversionfield (the plugin's own semver, which also now drives config migration), and theserveridentifier moved from nested undernetwork.*to a top-level key. Existing installs are migrated automatically; nothing to do manually.
Файлы
PlayerGrowth-Bukkit-0.1.6.jar(13.85 MiB)
ОсновнойМетаданные
Канал релиза
Beta
Номер версии
0.1.6
Загрузчики
BukkitPaperPurpur
Версии игры
26.2
Загрузок
5
Дата публикации
28.07.2026

