Свой сервер

Таймер на экране: обратный отсчёт

«До старта 04:59» полосой босса у всех игроков, по нулю — надпись во весь экран, звонок и ваши команды. Датапак для ивентов, турниров и мини-игр на Minecraft 1.21.9 — 26.3.

Сколько ждать

Что написать

По окончании

Таймер

Датапак · 1.21.9 — 26.3

До старта 05:00

Запустить (права оператора)

/function timer:start

Остановить

/function timer:stop
Скачать датапак
Что внутри архива — 9 файлов

data/minecraft/tags/function/load.json

Тег load: игра зовёт эти функции при загрузке мира и после /reload.

{
  "values": [
    "timer:load"
  ]
}

data/timer/function/load.mcfunction

При загрузке мира: счёт для отсчёта.

scoreboard objectives add timer dummy

data/timer/function/finish.mcfunction

По нулю: надпись, звук и ваши команды.

title @a title {"text":"Время вышло!","color":"yellow"}
execute as @a at @s run playsound minecraft:block.bell.use master @s ~ ~ ~ 1 1

data/timer/function/main/start.mcfunction

Старт отсчёта: 300 с полосой босса.

bossbar remove timer:main
bossbar add timer:main {"text":"До старта"}
bossbar set timer:main color yellow
bossbar set timer:main max 300
scoreboard players set #main timer 300
function timer:main/second

data/timer/function/main/second.mcfunction

Раз в секунду: полоса и надпись «мм:сс», по нулю — конец.

execute if score #main timer matches ..0 run return run function timer:main/end
bossbar set timer:main players @a
execute store result bossbar timer:main value run scoreboard players get #main timer
scoreboard players operation #m timer = #main timer
scoreboard players operation #s timer = #main timer
scoreboard players set #60 timer 60
scoreboard players operation #m timer /= #60 timer
scoreboard players operation #s timer %= #60 timer
execute if score #s timer matches 10.. run bossbar set timer:main name ["",{"text":"До старта "},{"score":{"name":"#m","objective":"timer"}},{"text":":"},{"score":{"name":"#s","objective":"timer"}}]
execute if score #s timer matches ..9 run bossbar set timer:main name ["",{"text":"До старта "},{"score":{"name":"#m","objective":"timer"}},{"text":":0"},{"score":{"name":"#s","objective":"timer"}}]
scoreboard players remove #main timer 1
schedule function timer:main/second 1s

data/timer/function/main/end.mcfunction

Время вышло: полосу убрать, дальше — своё.

bossbar remove timer:main
function timer:finish

data/timer/function/main/stop.mcfunction

Остановить отсчёт.

schedule clear timer:main/second
bossbar remove timer:main

data/timer/function/start.mcfunction

/function timer:start — запустить таймер.

function timer:main/start

data/timer/function/stop.mcfunction

/function timer:stop — остановить и убрать полосу.

function timer:main/stop

Как поставить

  1. Скачайте датапак

    Распаковывать не нужно: игра читает его прямо из zip.

  2. Положите в мир

    В одиночной игре — saves/<мир>/datapacks, на сервере — world/datapacks, потом /reload.

  3. Запустите

    /function timer:start — полоса появится у всех, и у тех, кто зайдёт позже.

Что нужно знать

  • Секунда — по часам сервера. Отсчёт идёт schedule … 1s, а не счётчиком в тике: /reload не запустит второй таймер рядом с первым.
  • Свои команды — команды игры. Телепорт на арену, выдать кит, открыть ворота /fill — что угодно, кроме команд плагинов: в датапаке они не работают.
  • Перезапуск — тем же стартом. Повторный timer:start начинает отсчёт заново.

Команды по расписанию без отсчёта — датапак с функциями, свою полосу босса с моба — свой босс.

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

Как сделать таймер на экране в Майнкрафте?

Датапаком: впишите время и подпись, скачайте и положите в мир. /function timer:start покажет у всех полосу босса с обратным отсчётом.

Можно ли выполнить команду, когда таймер закончится?

Да: впишите свои команды — телепорт на арену, выдачу кита, /fill ворот. Они выполнятся по нулю вместе с надписью и звонком.

Как остановить таймер?

Командой /function timer:stop — полоса пропадёт. Повторный старт начнёт отсчёт заново.