Перейти к содержимому

PlayerTimer

Этот проект добавляет таймер, который можно запустить игроком или командным блоком. Таймер уникален для каждого игрока, и у каждого игрока может быть свой запущенный таймер. Это серверная установка для проведения мини-игр и испытаний на время.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
268
Подписчиков на Modrinth
1
версии
2
Обновлён
26 июня 202626 июн.
Опубликован
в 2026

Коротко о моде

Работает на Fabric
Для Minecraft 26.1.2–26.2
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.4.0 от 26 июня 2026
Лицензия MIT — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

Версии игры26.1.2–26.2
Описание переведено автоматическиПоказать оригинал (EN)

PlayerTimer Fabric

Fabric-мод, добавляющий независимые таймеры для каждого игрока на серверах Minecraft и в одиночных мирах. Текущая сборка Fabric:

  • Minecraft 26.2
  • Fabric Loader 0.19.3 или новее
  • Fabric API 0.153.0+26.2
  • Java 25 или новее У каждого игрока свой таймер, который может:
  • считать вверх
  • считать вниз
  • ставиться на паузу и возобновляться
  • скрываться или отображаться независимо
  • запускаться командами или командными блоками Предназначен для:
  • мини-игр
  • эскейп-румов
  • испытаний на время
  • паркура
  • спидранов
  • мультиплеерных ивентов
  • приключенческих карт

Возможности

  • Независимый таймер для каждого игрока
  • Режимы счёта вверх и вниз
  • Поддержка команд Brigadier
  • Поддержка паузы и возобновления
  • Управление видимостью таймера
  • Уведомление о завершении обратного отсчёта
  • Звуковые эффекты при завершении
  • Несколько форматов ввода длительности
  • Совместимость с командными блоками через /execute as
  • Админ-команды для управления таймерами
  • Сохранение таймеров между перезапусками и крашами
  • Создан для Fabric
  • Поддержка Java 25

Команды

КомандаОписание
/playertimer startcountupЗапустить таймер счёта вверх с настроенным цветом по умолчанию
`/playertimer startcountup `Запустить цветной таймер счёта вверх
/playertimer startcountdownЗапустить обратный отсчёт на 5 минут с настроенным цветом по умолчанию
`/playertimer startcountdown `Запустить обратный отсчёт с заданной длительностью и настроенным цветом по умолчанию
`/playertimer startcountdown `Запустить цветной обратный отсчёт
/playertimer pauseПоставить таймер на паузу
/playertimer resumeВозобновить таймер с паузы
/playertimer stopОстановить таймер и сбросить его на 00:00
/playertimer resetСбросить таймер на 00:00
/playertimer hideСкрыть отображение таймера
/playertimer showПоказать отображение таймера
`/playertimer admin clear `Очистить таймер игрока `` (уровень оператора 2+)
/playertimer admin clearallОчистить таймеры всех игроков (уровень оператора 2+)

Форматы длительности

Команда обратного отсчёта принимает несколько форматов ввода.

1. Секунды

/playertimer startcountdown 300

Запускает обратный отсчёт на 300 секунд.

2. мм:сс

/playertimer startcountdown 05:30

Запускает обратный отсчёт на 5 минут 30 секунд. Правила:

  • мм должно быть от 0 до 59
  • сс должно быть от 0 до 59 Примеры:
05:30   ✓ верно
59:59   ✓ верно
60:00   ✗ неверно
05:60   ✗ неверно
99:99   ✗ неверно

3. чч:мм:сс

/playertimer startcountdown 01:40:05

Запускает обратный отсчёт на 1 час 40 минут 5 секунд. Правила:

  • мм должно быть от 0 до 59
  • сс должно быть от 0 до 59 Примеры:
01:40:05   ✓ верно
10:59:59   ✓ верно
01:60:05   ✗ неверно
01:40:60   ✗ неверно

4. Текстовый формат

/playertimer startcountdown 1h40m5s
/playertimer startcountdown 10m
/playertimer startcountdown 45s
/playertimer startcountdown 2h
/playertimer startcountdown 1h5s

Поддерживает:

  • часы (h)
  • минуты (m)
  • секунды (s) Можно использовать любую комбинацию. Правила:
  • m должно быть от 0 до 59
  • s должно быть от 0 до 59 Примеры:
1h40m5s   ✓ верно
10m30s    ✓ верно
59m59s    ✓ верно
1h60m     ✗ неверно
10m90s    ✗ неверно
10s49m    ✗ неверно

Максимальная длительность

Максимально допустимая длительность:

2147483647 секунд

что примерно равно:

68 лет

Это ограничение существует потому, что внутри таймер использует значения Java int.

Цвета таймера

Таймеры можно опционально запускать с аргументом цвета.

Поддерживаемые цвета

Цвет
black
dark_blue
dark_green
dark_aqua
dark_red
dark_purple
gold
gray
dark_gray
blue
green
aqua
red
light_purple
yellow
white

Примеры:

/playertimer startcountup red
/playertimer startcountdown 5m gold
/playertimer startcountdown 01:30 dark_blue

Состояния таймера

Внутри мод отслеживает состояние таймера с помощью модели конечных состояний.

СостояниеЗначение
READYТаймер существует, но не запущен
RUNNINGТаймер активно считает
PAUSEDТаймер временно приостановлен
STOPPEDТаймер был остановлен вручную
FINISHEDОбратный отсчёт достиг нуля

Это предотвращает недопустимые операции, такие как:

  • возобновление завершённых таймеров
  • запуск нескольких таймеров одновременно
  • возобновление остановленных таймеров

Поведение видимости

Видимость таймера не зависит от его состояния.

ДействиеРезультат
Запуск таймераТаймер становится видимым
Пауза таймераТаймер остаётся видимым
Возобновление таймераТаймер становится видимым
Остановка таймераТаймер остаётся без изменений
Сброс таймераТаймер остаётся видимым
Команда hideТаймер становится скрытым
Команда showТаймер становится видимым

Завершение обратного отсчёта

Когда обратный отсчёт достигает нуля:

  • таймер останавливается автоматически
  • таймер переходит в состояние FINISHED
  • игрок получает уведомление
  • проигрывается звук колокола

Поддержка командных блоков

Команды можно запускать через командные блоки с помощью команды Minecraft execute. Пример:

execute as @p run playertimer startcountdown 5m

Это позволяет использовать:

  • кнопки
  • нажимные плиты
  • редстоун-системы
  • триггеры по регионам
  • интеграцию с приключенческими картами

Сохранение

Все таймеры сохраняются на диск и восстанавливаются при перезапуске сервера или после краша. Данные таймеров хранятся в:

config/playertimer/timers.json

Конфигурация хранится в:

config/playertimer/config.toml

Текущая конфигурация поддерживает:

defaultColor = "WHITE"

Сохранение происходит:

  • при каждом изменении состояния таймера (запуск, пауза, возобновление, остановка, сброс, скрытие, показ, завершение)
  • каждые 30 секунд автоматически
  • при отключении игрока
  • при остановке сервера

Когда таймер восстанавливается после перезапуска, его состояние устанавливается в PAUSED независимо от того, был ли он запущен до этого — сервер не тикал, поэтому таймер не отсчитывал время. Если таймер был запущен игроком напрямую, именно он отвечает за его возобновление. Если таймер был запущен мини-игрой или картой приключения, за его возобновление отвечает игра.

Поведение при сбое

При загрузке: если у записи таймера повреждён UUID, она пропускается и в лог записывается предупреждение. Если файл вообще не удаётся прочитать, выбрасывается RuntimeException, что не даёт моду инициализироваться. При сохранении: если файл не удаётся записать, в лог записывается ошибка и выбрасывается RuntimeException. Поскольку таймер считается критически важной инфраструктурой (например, для мини-игр), это приведёт к падению сервера, а не к продолжению работы с несохранённым состоянием.

Сборка

Требования

  • Java 25
  • Gradle
  • Fabric Loader 0.19.3 или новее
  • Fabric API 0.153.0+26.2

Сборка

./gradlew build

Скомпилированные jar-файлы появятся в:

build/libs/

Версионирование

PlayerTimer использует следующую схему версионирования:

[mod-version]

Пример:

1.4.0

Совместимость с Minecraft отслеживается в fabric.mod.json, gradle.properties и записи changelog для каждого релиза.

Планируемые изменения

  • Опции конфигурации для:

    • длительности обратного отсчёта по умолчанию
    • включения/выключения звукового сигнала по завершении таймера обратного отсчёта
    • включения/выключения предупреждающего сигнала раз в секунду перед завершением обратного отсчёта
    • длительности предупреждающих сигналов перед завершением обратного отсчёта
    • поведения при сбое сохранения (критический → падение сервера, некритический → запись в лог и продолжение работы)
  • API — интерфейс, позволяющий разработчикам игр и карт приключений обращаться к функциям таймера напрямую из своего кода

Changelog

1.4.0 - Minecraft 26.2

  • Целевая версия Fabric обновлена до Minecraft 26.2
  • Требование к Fabric Loader обновлено до 0.19.3 или новее
  • Зависимость Fabric API обновлена до 0.153.0+26.2
  • Подтверждена сборка модуля Fabric с набором зависимостей Minecraft 26.2

26.1.x-1.2

  • Таймеры теперь сохраняются между перезапусками и падениями сервера
  • Добавлены админ-команды (clear, clearall), доступные с уровнем оператора 2
  • Логика таймера перенесена в доменную модель PlayerTimer
  • Анемичные сеттеры заменены доменными операциями (start, pause, resume, stop, reset)
  • Введён enum TimerOperationResult, заменяющий управление потоком через исключения
  • Класс PlayerTimerCommand выделен из PlayerTimerMod
  • Добавлен TimerStore для JSON-персистентности через Gson
  • Добавлено периодическое автосохранение и сохранение при изменении состояния
  • Единообразные сообщения источника команд через TimerCommandContext
  • Отключение игрока теперь удаляет таймер из памяти и запускает сохранение

26.1.x-1.1

  • Добавлена поддержка цветных таймеров
  • Добавлены необязательные аргументы цвета для команд запуска таймера

26.1.x-1.0

  • Первый релиз для Fabric
  • PlayerTimer портирован с Paper на Fabric
  • Добавлены таймеры для каждого игрока
  • Добавлены режимы обратного и прямого отсчёта
  • Добавлена система состояний таймера
  • Добавлена система видимости
  • Добавлена поддержка команд Brigadier
  • Добавлена совместимость с командными блоками
  • Добавлен парсинг длительности с несколькими форматами
  • Добавлено отображение таймера в action bar
  • Добавлены звуки завершения обратного отсчёта
  • Добавлена поддержка Java 25
  • Логика таймера отрефакторена в PlayerTimerService

Лицензия

MIT License

Частые вопросы

Как установить PlayerTimer?

Установите Fabric под свою версию Minecraft, скачайте PlayerTimer под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть PlayerTimer?

У PlayerTimer есть сборки для Minecraft 26.1.2–26.2.

Нужен ли PlayerTimer на сервере?

Ставится только на сервер; игрокам ставить не нужно

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее