Loops
Repetir código várias vezes
Loop Times
Repita um bloco de código um número específico de vezes:
loop 5 times:
send "Hello!" to player
loop 10 times:
give diamond to playerLoop Range
Itere sobre um intervalo de números:
loop numbers from 1 to 10:
send "Number: %loop-number%" to player
loop numbers from 0 to 5:
set {slot::%loop-number%} to loop-numberLoop List
Itere sobre uma lista de valores:
# Adicionar itens à lista
add "apple" to {fruits::*}
add "banana" to {fruits::*}
add "orange" to {fruits::*}
# Loop pela lista
loop {fruits::*}:
send "Fruit: %loop-value%" to playerLoop Players
Itere sobre todos os jogadores online:
loop all players:
send "Hello %loop-player%!" to loop-player
loop all players:
if loop-player has permission "vip":
give diamond to loop-playerExpressões de Loop
| Expressão | Descrição |
|---|---|
loop-number | Número atual em loops numéricos |
loop-value | Valor atual em loops de lista |
loop-player | Player atual em loops de players |
loop-index | Índice atual (1-based) |
Continue & Stop
Continue
Pula para a próxima iteração:
loop all players:
if loop-player has permission "admin":
continue # Pula admins
send "Regular player: %loop-player%" to consoleStop Loop
Para o loop completamente:
loop {items::*}:
if loop-value is "stop":
stop loop # Para o loop
send "%loop-value%" to playerLoops Aninhados
loop numbers from 1 to 3:
set {_outer} to loop-number
loop numbers from 1 to 3:
set {_inner} to loop-number
send "%{_outer}% x %{_inner}% = %{_outer} * {_inner}%" to playerPerformance
Evite loops muito grandes ou aninhados demais. O Lazuli tem um limite configurável de iterações para prevenir travamentos.
Exemplos Práticos
Countdown
command /countdown:
permission: admin.countdown
trigger:
loop numbers from 10 to 1:
broadcast "&e%loop-number%..."
wait 1 second
broadcast "&a&lGO!"Top Players
command /top:
trigger:
send "&6=== Top Players ===" to player
set {_count} to 0
loop {kills::*}:
add 1 to {_count}
if {_count} > 10:
stop loop
send "&e%{_count}%. &f%loop-index%: &a%loop-value% kills" to playerVIP Broadcast
every 10 minutes:
set {_vips} to 0
loop all players:
if loop-player has permission "vip":
add 1 to {_vips}
if {_vips} > 0:
broadcast "&6There are %{_vips}% VIP players online!"