Como Detectar Jogadores na Água no Minecraft com Command Block
Minecraft Java Edition 1.21+ e 26+ – Timer com Scoreboard e Execute if Block Water
Neste tutorial você vai aprender como detectar automaticamente quando um jogador está dentro da água no Minecraft usando blocos de comando.
O sistema funciona no Minecraft Java Edition 1.21+ e 26+ e utiliza scoreboard como temporizador para contar quantos segundos o jogador permanece na água.
Com isso, você pode executar comandos depois de um tempo específico, como aplicar dano, teleportar, dar efeitos ou ativar funções em mapas e minigames.
Para começar, vamos criar este scoreboard que vai contar o tempo que estamos na água
scoreboard objectives add time_in_water dummy
Caso você queira ver o tempo que o jogador está na água, pode utilizar este comando
scoreboard objectives setdisplay sidebar time_in_water
A cada valor 20 no scoreboard é 1 segundo na água, ou seja, o valor 60 no scoreboard equivale a 3 segundos e assim em diante
Agora precisamos detectar quando o jogador estiver na água e contabilizar
Para isso, coloque esse comando em um bloco de comando Repeat como Always Active (Sempre Ativo)
execute as @a at @s run execute if block ~ ~ ~ water run scoreboard players add @s time_in_water 1
Este comando abaixo vai executar uma função após o jogador ficar mais de 3 segundos na água
execute as @a if entity @s[scores={time_in_water=90..}] run function comandos:time_in_water
A função vai resetar o tempo e aplicar dano ao jogador
Você pode trocar por um outro comando a partir do run
Baixe a função que eu criei clicando aqui
Não sabe o que é uma função ou como criar? Veja este tutorial no site clicando aqui