Свой сервер
Таймер на экране: обратный отсчёт
«До старта 04:59» полосой босса у всех игроков, по нулю — надпись во весь экран, звонок и ваши команды. Датапак для ивентов, турниров и мини-игр на Minecraft 1.21.9 — 26.3.
Таймер
Датапак · 1.21.9 — 26.3Запустить (права оператора)
/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
Как поставить
- Скачайте датапак
Распаковывать не нужно: игра читает его прямо из zip.
- Положите в мир
В одиночной игре — saves/<мир>/datapacks, на сервере — world/datapacks, потом /reload.
- Запустите
/function timer:start — полоса появится у всех, и у тех, кто зайдёт позже.
Что нужно знать
- Секунда — по часам сервера. Отсчёт идёт schedule … 1s, а не счётчиком в тике: /reload не запустит второй таймер рядом с первым.
- Свои команды — команды игры. Телепорт на арену, выдать кит, открыть ворота /fill — что угодно, кроме команд плагинов: в датапаке они не работают.
- Перезапуск — тем же стартом. Повторный timer:start начинает отсчёт заново.
Команды по расписанию без отсчёта — датапак с функциями, свою полосу босса с моба — свой босс.
Частые вопросы
Как сделать таймер на экране в Майнкрафте?
Датапаком: впишите время и подпись, скачайте и положите в мир. /function timer:start покажет у всех полосу босса с обратным отсчётом.
Можно ли выполнить команду, когда таймер закончится?
Да: впишите свои команды — телепорт на арену, выдачу кита, /fill ворот. Они выполнятся по нулю вместе с надписью и звонком.
Как остановить таймер?
Командой /function timer:stop — полоса пропадёт. Повторный старт начнёт отсчёт заново.
