▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/invertoTimer
invertoTimer

invertoTimer

A lightweight Velocity plugin for global countdowns and scheduled server-wide events.

12
0

invertoTimer 0.2.0

release3 февраля 2026 г.

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.
  • 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>}.

invertoTimer 0.1.0

release3 февраля 2026 г.

invertoTimer 0.1.0 — Release Notes

Highlights

0.1.0 focuses on much richer player-facing output, a more consistent configuration format, and better runtime behavior for long-running countdowns (New Year events, server-wide timers, etc.).

New Features

1) MiniMessage + {i18n:key} support in player-visible texts

All texts that are shown to players now support:

  • {i18n:key} replacement (language file lookup)
  • MiniMessage formatting (e.g. <red>, <gold>, <gradient:...>)
  • Existing placeholders like {remaining}, {id}, {target}, etc.

This applies to:

  • showcases (actionbar / bossbar / text / title)
  • text actions (message / actionbar / title / subtitle)

2) Showcase “after” stage (post-target display)

Actionbar / Bossbar / Title showcases can optionally keep displaying a different message after the countdown hits 0, for a configured duration:

after:
  text: "Happy New Year!"
  duration: 10m

For title showcases, after.text supports the same title-array format (see below).

3) Unified Title showcase format

Title showcases now use a single title: showcase entry and support both title & subtitle together.

Instead of configuring separate “title” and “subtitle” showcases, you configure one:

title:
  text:
    - "<gold>New Year</gold>"
    - "<gray>{remaining}</gray>"

4) Title timing support (fadeIn/stay/fadeOut)

Title text now supports optional timing parameters (in seconds), matching Title.Times:

text: [title, subtitle, fadeIn, stay, fadeOut]

Missing values fall back to defaults.

5) Bossbar color configuration

Bossbar showcases now support an optional color field:

bossbar:
  color: red

Invalid/missing values fall back to a safe default.

6) Regex-based transfer targeting

Transfer action no longer uses all. Instead, it uses a regex pattern:

transferee: ".*"

This matches online player usernames using Java regex matches().

Improvements

1) Runtime refactor: factories + slots + runtime context

The runtime has been restructured into clearer components:

  • ActionFactory / ShowcaseFactory for constructing behaviors from config
  • ShowcaseSlot for interval rate limiting
  • RuntimeContext for shared access to proxy + filtering + rendering

This makes the project easier to extend and keeps timer logic cleaner.

2) Reload behavior improvements

Reload now properly disposes active runtime objects and avoids leaving stale UI elements behind (e.g. repeated bossbars).

Fixes

  • Fixed bossbar duplication issues after reload by ensuring existing bossbars are hidden/cleaned up before rebuilding.
  • Reduced countdown jitter by improving how remaining seconds are derived and displayed (especially under scheduler drift).

Configuration Notes (Breaking / Behavior Changes)

  • transfer action:
    • Removed all
    • Now expects a regex in transferee
  • Title showcases:
    • Should be configured using text: [...] array format if you need timings
    • Subtitle is no longer a separate showcase type; it is part of the title showcase

invertoTimer 0.0.1

release31 декабря 2025 г.

invertoTimer v0.0.1 — Release Notes

This is the first public release of invertoTimer, a lightweight Velocity plugin for network-wide countdowns and scheduled events.

Highlights

invertoTimer introduces a simple but flexible timer system built around two core ideas: Timers (when an event happens) and Outputs (what players see and what actions run).

Timers

Timers can be scheduled using either:

  • Cron (repeatable schedules)
  • Fixed time (one-shot, absolute timestamp)

Showcases (Countdown Displays)

Timers can broadcast countdown information using multiple showcase types:

  • Actionbar
  • Bossbar
  • Chat text
  • Title showcase (supports both title and subtitle under a single showcases.title configuration)

Player-visible showcase text supports:

  • Placeholders such as {remaining}, {days}, {hours}, {minutes}, {seconds}, {id}, {description}, {target}
  • MiniMessage formatting for rich colors and styles
  • {i18n:key} tokens for language-based text substitution

Actions (Scheduled Triggers)

Timers can trigger actions at offsets relative to the target time:

  • Text action: message/actionbar/title/subtitle output
  • Transfer action: send matched players to a target backend server
  • Command action: run commands as console or as matched players

Player selection for transfer and command (executor=player) uses:

  • transferee as a Java regex matching online player usernames (matches()), with ".*" selecting all players.

Server Limitations

Both global and per-timer server limitations are supported to control where timers apply (blacklist/whitelist by backend server name).

i18n

The plugin supports language files via .properties bundles and can be reloaded with configuration reload.

Notes

  • This is an early release (0.0.1). Configuration format and features may evolve based on feedback.
  • Please report issues and suggestions via GitHub Issues, including config files and logs when possible.

Совместимость

Minecraft: Java Edition

1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.13.x

Платформы

Поддерживаемые окружения

Сервер

Детали

Лицензия:MIT
Опубликован:2 месяца назад
Обновлён:1 месяц назад
Главная