Scheduling (Cron)

Execute eventos em horários específicos

O sistema de scheduling permite executar código em horários específicos, similar ao cron em sistemas Unix.

Eventos Diários

every day at 12:00:
    broadcast "&aNoon announcement!"

every day at 00:00:
    broadcast "&7Server daily reset..."
    # Reset diário
    delete {daily_quests::*}

Eventos Semanais

every monday at 09:00:
    broadcast "&aWeekly reset completed!"
    # Reset semanal

every friday at 17:00:
    broadcast "&6Weekend is here! Double XP enabled!"
    set {double_xp} to true

every sunday at 23:59:
    set {double_xp} to false

Eventos por Hora

every hour at :00:
    broadcast "&7Hourly tip: Use /help!"

every hour at :30:
    # Verifica players AFK a cada meia hora
    loop all players:
        if {afk::%loop-player's uuid%} is set:
            kick loop-player for "AFK timeout"

Eventos Mensais

every month on 1 at 00:00:
    broadcast "&a&lMonthly rewards reset!"
    # Reset mensal de rewards
    delete {monthly_rewards::*}
    
every month on 15 at 12:00:
    broadcast "&6Mid-month bonus event started!"

Exemplo: Sistema de Eventos

eventos-programados.lzl
# Sistema de eventos programados

# === DIÁRIO ===

every day at 06:00:
    broadcast "&e☀ Good morning! The server is waking up!"

every day at 12:00:
    broadcast "&6🌞 It's noon! Lunch break bonus active for 1 hour!"
    set {lunch_bonus} to true
    
every day at 13:00:
    set {lunch_bonus} to false

every day at 18:00:
    broadcast "&e🌅 Evening time! Relaxed gameplay hours."

every day at 00:00:
    # Daily reset
    loop all players:
        set {daily_login::%loop-player's uuid%} to false
    broadcast "&7🔄 Daily challenges have been reset!"

# === SEMANAL ===

every saturday at 14:00:
    broadcast "&a&l🎉 WEEKEND EVENT STARTED!"
    broadcast "&7Double drops for the next 24 hours!"
    set {weekend_event} to true

every sunday at 14:00:
    set {weekend_event} to false
    broadcast "&7Weekend event has ended. See you next week!"

# === MANUTENÇÃO ===

every day at 04:00:
    broadcast "&c⚠ Server restart in 5 minutes for maintenance..."
    wait 4 minutes
    broadcast "&c⚠ Server restart in 1 minute!"
    wait 50 seconds
    broadcast "&c⚠ Server restart in 10 seconds!"
    wait 10 seconds
    execute console command "stop"

Fuso Horário

Os horários são baseados no fuso horário do servidor. Certifique-se de configurar o fuso horário correto no seu servidor.

Combinando com Variáveis

# Track login diário
on join:
    if {daily_login::%player's uuid%} is not set:
        set {daily_login::%player's uuid%} to true
        add 1 to {daily_streak::%player's uuid%}
        set {_streak} to {daily_streak::%player's uuid%}
        send "&a🔥 Daily streak: %{_streak}% days!" to player
        
        # Bonus por streak
        if {_streak} >= 7:
            give 10 diamond to player
            send "&6Weekly streak bonus: 10 diamonds!" to player

every day at 00:00:
    # Reset daily login para todos
    loop all players:
        if {daily_login::%loop-player's uuid%} is not set:
            # Player não logou hoje, quebra streak
            set {daily_streak::%loop-player's uuid%} to 0
        set {daily_login::%loop-player's uuid%} to false

Dica

Use scheduling para tarefas que precisam acontecer em horários específicos. Para intervalos regulares, use every X seconds/minutes em eventos periódicos.