Files
bladwin-RP/lua/bladw_announcement/shared/sh_schedule.lua
T
nocode 49a6a085af feat(announcement): add schedule configuration for automated announcements
Create a new schedule configuration file that allows defining automated announcements with flexible scheduling options.

Supports two scheduling methods:
- Interval-based: every X seconds/minutes/hours/days
- Cron-based: standard 5-field cron syntax for precise scheduling

Announcements can use presets (discord, restart, event) or custom title/text combinations.
Includes comprehensive documentation and commented examples.
2026-07-20 13:49:45 +02:00

55 lines
2.3 KiB
Lua

BladW = BladW or {}
BladW.Announcement = BladW.Announcement or {}
-- ─────────────────────────────────────────────
-- Annonces automatiques (mon petit cron maison)
-- Chaque ligne = une annonce qui part toute seule.
--
-- QUAND ? une seule des deux clés :
--
-- every = "30m" -> ça répète tous les X. Unités : s (sec), m (min), h (heure), d (jour)
-- ex : "45s", "10m", "2h", "1d"
--
-- cron = "0 3 * * *" -> comme sur Linux, 5 champs séparés par un espace :
-- 1) minute 0-59
-- 2) heure 0-23
-- 3) jour du mois 1-31
-- 4) mois 1-12
-- 5) jour semaine 0-6 (0 = dimanche)
--
-- dans chaque champ je peux mettre :
-- * -> tout le temps
-- */5 -> tous les 5 (0, 5, 10...)
-- 1-5 -> une plage (de 1 à 5)
-- 1,3,5 -> une liste
--
-- quelques exemples qui parlent :
-- "*/15 * * * *" -> toutes les 15 min
-- "0 * * * *" -> à chaque heure pile
-- "0 */2 * * *" -> toutes les 2 heures
-- "0 20 * * 5" -> tous les vendredis à 20h
-- "30 4 1 * *" -> le 1er du mois à 4h30
-- (c'est l'heure du serveur qui compte)
--
-- QUOI ? soit un preset, soit du sur-mesure :
-- preset = "restart" -> reprend un preset (voir sh_presets.lua)
-- title = "...", text = "..." -> annonce perso
-- (si je mets les deux, title/text passent devant le preset)
--
-- Pour couper une ligne : je la commente (--) ou je la dégage.
-- ─────────────────────────────────────────────
BladW.Announcement.Schedules = {
-- rappel Discord toutes les 30 min
{ every = "30m", preset = "discord" },
-- petite astuce à chaque heure pile
{ cron = "0 * * * *", title = "Astuce", text = "Tapez /bannonce pour gérer les annonces." },
-- exemples à décommenter au besoin
-- { cron = "0 5 * * *", preset = "restart" }, -- reboot tous les jours à 5h
-- { cron = "0 20 * * 5", preset = "event" }, -- event le vendredi à 20h
-- { every = "2h", preset = "discord" }, -- rappel Discord toutes les 2h
}