TimeManager v2.1.0
What's new
Release of the unified 2.1.0 build. Adds the post-release fixes that surfaced during cross-version testing on top of v2.1.0 (B1).
Compared to 2.1.0 B1
- Refreshing signs no longer freeze on their first rendered value. The
SignChangeEventlistener that read the template ran after the placeholder resolver, so it captured the resolved string and stored that as the template. Moving the listener toLOWESTpriority lets it capture the raw{tm_X}text before any resolution. - Sign first line shows the localised TM prefix (e.g.
&e&l[Time]) read fromlang.ymlinstead of the raw[tm]marker. Players still type the marker to register a sign; it's just hidden from the rendered output. - Refreshing signs work across every version. The refresh loop uses the legacy
Sign#setLineAPI directly with a reflection fallback toSign$Sidefor modern Paper, so the same code path runs from 1.8 through 26.x withoutNoClassDefFoundErroron either end. - Sleep animation is gated to MC 1.9+. Pre-1.9 the
ParticleandSoundenums the animation depends on do not exist, so the entire animation block is skipped on legacy versions. The GUI hides the animation toggle on pre-1.9 to match. %tm_serverday%now reports real wall-clock days since TimeManager was first enabled on the server. The previous code divided two values that were both reduced modulo 1 day, so the result oscillated between 0 and 71 instead of growing monotonically.- Five season placeholders register with PlaceholderAPI and appear in
/tm placeholders:%tm_season%,%tm_season_preset%,%tm_season_dayofyear%,%tm_season_daylight%,%tm_season_hemisphere%. Previously they were resolved only via the in-message{tm_X}form.
What's in the unified 2.1.0 build (inherited from B1)
The same build runs on Paper 1.9.4 through 26.x. The GUI works on every supported version through a slot-map dispatcher with InventoryHolder marker; no PersistentDataContainer needed. Item icons resolve at runtime via a name-based fallback chain. /time day|night|noon|midnight|dawn|dusk|morning|sunset route to the TM time setter. Seasons engine and admin GUI are available on legacy versions.
Toggles in the GUI no longer look stuck on OFF (they were reading the wrong config file). Date math no longer crashes on older Java runtimes (TimeUnit.convert(Duration) is a Java 11 only overload). Glow effect falls back to the DURABILITY enchantment on pre-1.13. Update checker no longer crashes on older Gson bundles. GUI navigation no longer clears the slot map mid-swap. Pocket watch button is hidden on servers older than 1.13.
Compatibility
| Minecraft version | Plugin loads | Commands | In-game GUI | Seasons engine | Sleep animation |
|---|---|---|---|---|---|
| 1.9.4 to 26.x | Yes | Yes | Yes | Yes | Yes |
| 1.8.x | Yes | Yes | Yes | Yes | No (gated to 1.9+) |
| 1.7.10 | Yes | Yes | No | Untested | No |
| 1.6.4 and older | No | - | - | - | - |
Tested on: Paper 1.9.4 build 775, Spigot 1.7.10 (build b1657), Spigot 1.8, Paper 1.16.5, Paper 1.21.4, Paper 26.2 build 34.
Upgrading from older versions
The plugin does not migrate existing lang.yml files on upgrade. If you had an older TimeManager installed, delete the lang.yml in plugins/TimeManager/ before starting the server (or remove the whole plugins/TimeManager/ folder for a clean slate, config.yml and cmds.yml will be regenerated too). Leaving the old lang.yml in place will show missing or broken translation lines for the new GUI and command messages.
This mod has no additional files