Links
Tags
Creators
Details
0.2.0
Compatibility
Changes
invertoTimer 0.2.0 — Release Notes
Highlights
0.2.0 is a major usability & extensibility update: it introduces text animations, upgrades cron to a full 5-field standard implementation, and delivers a large placeholder overhaul including MiniPlaceholders integration for richer player-aware rendering. It also modernizes the build and configuration stack (Kotlin DSL + SnakeYAML).
New Features
1) Full standard 5-field cron expression support (#2)
Cron parsing has been upgraded to a complete 5-field cron implementation, enabling common cron features typically found in Unix/Vixie-style cron:
- Lists (
1,2,3) - Ranges (
1-5) - Steps (
*/5,1-10/2) - Month / weekday names (
JAN..DEC,MON..SUN) - DOM/DOW semantics aligned with traditional cron expectations
This makes repeating timers far more expressive for real production schedules.
2) {animation:<id>} placeholder + animations.yml (#3)
You can now reference time-based animated text via:
text: "{animation:new-year-bossbar}"
Animations are defined in a new animations.yml file and can be used anywhere player-visible text is rendered (showcases, after.text, text actions, etc.). Animation frames themselves support normal placeholder rendering and MiniMessage.
3) Placeholder expansion + MiniPlaceholders integration (#4)
The placeholder system has been significantly extended:
- More built-in placeholders and better formatting options
- Parameterized time units:
{days: Days}/{hours: h}/{minutes: m}/{seconds: s}- When a suffix is provided, zero-valued units can be hidden to keep output clean
- Custom remaining formatting:
{remaining:hh:mm:ss}(and other pattern styles supported by the implementation)
MiniPlaceholders is now supported as an optional dependency, enabling richer placeholders when installed, without requiring it for normal operation.
Improvements
1) Config parsing migrated to SnakeYAML
Configuration handling was refactored to use SnakeYAML for YAML parsing, improving compatibility and maintainability of config loading.
2) Build modernization: Gradle 9.3.1 + Kotlin DSL
The build setup has been updated:
- Gradle bumped to 9.3.1
- Project build script migrated to
build.gradle.kts
This improves IDE integration and keeps the project aligned with modern Gradle workflows.
3) General refactors and cleanup
A round of code cleanup and refactoring improves readability and makes future feature work easier.
Fixes
- Reduced edge-case behavior gaps in cron parsing by moving to a complete standard 5-field implementation.
- Improved placeholder rendering correctness and consistency via the placeholder overhaul (especially for player-aware rendering when MiniPlaceholders is available).
Configuration Notes (Breaking / Behavior Changes)
- New config file:
animations.yml- Required only if you use
{animation:<id>}placeholders.
- Required only if you use
- Cron behavior:
- Cron parsing is now stricter and more standard-compliant; invalid expressions that previously “worked by accident” may now error.
- Placeholder behavior:
- Time-unit placeholders now support suffix and zero-hiding semantics when parameters are used.
- Remaining time can be formatted using
{remaining:<pattern>}.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:wi8i7ZIl:PbyLPK77"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:wi8i7ZIl:PbyLPK77"
}

