Как сделать, чтобы команда в Minecraft выполнялась автоматически, а не вручную?
Я понял, как вводить команды в чат, но мне надоело каждый раз набирать их руками. Хочу, чтобы, например, всем игрокам постоянно давался эффект или проверялось условие. Как сделать команду автоматической?
2 ответа
Есть несколько способов, от простого к серьёзному:
1. Командный блок в режиме Repeat. Поставь командный блок, переключи его в Repeat + Always Active — и он будет выполнять команду каждый игровой тик (20 раз в секунду) без сигнала. Например:
effect give @a night_vision 5 0 true
Теперь у всех всегда есть ночное зрение.
2. Датапак с tick.mcfunction. Это «правильный» способ. В датапаке есть специальная функция, которая запускается каждый тик. Команды в ней выполняются автоматически, пока загружен мир. По сути это главный цикл твоего датапака — как while True в программе.
Для начала проще командный блок Repeat, а когда логики станет много — переноси её в tick.mcfunction, чтобы не строить лес из блоков.
Осторожно с командами «каждый тик»: если повесить туда что-то тяжёлое (например, /fill огромной области каждый тик), сервер начнёт лагать. Часто хватает выполнять проверку реже — например, через scoreboard-таймер раз в секунду, а не 20 раз. Это та же мысль, что «не делай лишней работы в цикле» в обычном программировании.