Duration.between(LocalDate, LocalDate) was replaced by Duration.between(LocalDateTime, LocalDateTime) in tickFromFormattedDate(String date) method to avoid an exception related to java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Seconds (as described in issue #37).
When calculating the number of the day in the week, UTC format was not properly recognized and the Minecraft world name was searched for instead of an actual date.
The weekday number was miscalculated for UTC time.
Improved cmds scheduler time detection.
PLAYERS_SLEEPING_PERCENTAGE only exists since MC 1.17. (issue #38).
In the lang.yml file, if the plugin version was null, it caused an error. (issue #38).
Due to incompatibility with most plugins that manage sleep, TimeManager has been modified to introduce its own sleep management with an "instant" option and an "animation" option to spend the night.
A system of number of players required to sleep has been implemented.
New permissions have also been created.
Placeholders
Added the placeholder {tm_dayname}
Added translations in the lang.yml file
Changed some calculation methods for dates, using java.time.LocalDate
Leap years are now taken into account in the calculations
Bug fixes
Commands: Fixed misinterpretation of negative UTC values in the 'set start' command
Config.yml : 'start' now accepts a UTC+/-n formatted value
Backwards compatibility
The entire plugin's backwards compatibility has been reworked to work up to Minecraft version 1.9.4.
In the cmds.yml file, the 'time' value must remain placed in single quotes after the file was reloaded. Which is impossible when the value starts with 0. On the other hand, removing single quotes is not a problem for values less than 1:00. This solves issue #28.
Prevented clearing all '/' in commands (issue #31).
Added new placeholder {tm_yearday} that dispays the number of the day in the year (from 1 to 365).
Added a new argument for cmds repeatFreq : 'week'. (asked by Pro245Mc in issue #30)
Added hexadecimal colors support in lang.yml and cmds.yml files.
Added an AsyncPlayerChatEvent listener that allows the use of placeholders in the chat (wich can be disabled in the config file).
Added a ServerCommandEvent and PlayerCommandPreprocessEvent listener that allows the use of placeholders in any command (wich can be disabled in the config file).
Placed YAML headers in separate .txt files, to make them easier to update.
1.4.2 release, correction of some errors and addition of a new command
Fixed sleep problems.
Fixed "/ tm set time", "/ tm set start", "/ tm set initialTick", when using ticks as units.
Addition of the "/ tm set date [today|yyyy-mm-dd] [all|world]" command which can sometimes be more practical than defining the number of days elapsed. So "/ tm set elapsedDays" has no more "today" argument.
Fixed resynchronization which caused (most of the time) the date to advance by 1 day.
Cleaned up some help and errors messages.
Added bStats plugin metrics.
Updated the POM.xml but there is still a bug with the MVdWPlaceholderAPI plugin.
1.4.0 release, adding date and external placeholder compatibilty
New command '/tm set elapsedDays [today|0 → ∞] [all|world]' : Sets current fullTime for the specified world (or all of them). Could be today or an integer between 0 and infinity (or almost). A year always lasts 365 days.
New placeholders for the '/now' command are available :
{elapsedDays} & {currentDay} > used to display a day count.
{dd}, {mm}, {yy} and {yyyy} > used to display a date.
{monthName} > used to display the name of the current month based on the lang file.
{yearWeek} > used to display the number of the week in the year (1 to 52).
Added soft dependencies for PlaceholderAPI and MVdWPlaceholderAPI.
From now on, asynchronous speeds smaller than 1.0 will be calculated with a tick/refreshRate fraction system.
Fixed the 6am/7pm bug, which froze worlds, when going from decelerated to normal speed, due to the doDaylightCycle gamerule not being updated. So issue #6 is now closed.
Added a wakeUpTick for lazy players who like to sleep until noon
From now on the plugin uses a better distribution of the parts of the day (0-dawn, 1000-day, 12000-night, 13000-dusk)
The day now includes dawn AND dusk (day = 13000 ticks & night = 11000 ticks)
After a complete sleep (100 ticks), the plugin will be able to wait for the coming of the following morning for another 500 ticks. This should allow some other plugins to display animation for the night shift. (Because in some cases, sleeping caused wrong speed or freeze at morning.)
Using commands "/tm set speedDay" or "/tm set speedNight" with a value of "24.00" will now change both speeds in the configuration.
Fixed timers of synchronized worlds which, on startup, did not display the correct times.
Correction of a small problem with a pretty high incidence in time calculation.
Fixed the "/tm set time" command who did not handle two speeds recognation.
Lib change : Now using the mc 1.13 library (the 'setGameRuleValue' was actualized)
Cmd change : '/tm checktimers' became '/tm checktime [world|server|all]' and allows admins to target the parameters they want to check.
New cmd : '/tm checkconfig' displays a summary of the configuration file.
New cmd : '/tm set initialtick' changes the initialTickNb value in the configuration file and the MySQL database if it is active.
OnReload changes :
Now, manually change the initialTickNb in the yaml file could updates the value in the MySQL database and forces a resynchronization of all the timers.
If someone on your network has changed the initialTickNb in the MySQL database, the change will immediately be reflected on your server when the configuration is reloaded.
New scheduleSyncDelayedTask : If someone on your network has changed the initialTickNb in the MySQL database, the change will be reflected on every other servers within the next 2 minutes.
1.1.0 release, this update mostly improves synchronization (but not only)
Fixes the calculation of speeds below 1.0, which could be falsified by rounding off some decimal.
Adds a per world "sync" option that avoids tick offsets. When activated, it will keep the tick constantly synchronized with the server. It prevent any "/tm set time" command and replace it by a "/tm set start", sleep until the next dawn will become impossible, warning messages are displayed and/or related options are automatically changed.
Lowers the minimum refresh rate to 2 ticks, it seems to work properly.
Adds a public debug mode, which can be activated through the 'debugMode' option in the config file or the related command. It will display colored messages in the console, allowing for more accurate reporting.
Server version detection is upgraded too, so it should close issue #1
Renames and reworks some sub commands and related classes and options, for a more convenient usage, especially when using the tab completer.
Now if a player omits to specify the 'world' argument in a command, it will be replaced by the world in which it stands.
Tab completer has been upgraded, but still contains a hack for managing spaces in world names.