📅Schedule

📝 Introduction

Le système de planning serveur permet de planifier automatiquement l'ouverture et la fermeture du serveur selon des horaires définis. Le système surveille en permanence l'heure actuelle et exécute automatiquement les actions de fermeture/ouverture aux moments appropriés. Il peut également envoyer des avertissements aux joueurs avant la fermeture et exécuter différentes actions selon votre configuration.

🎯 Fonctionnalités principales

  • Planification automatique : Ouverture et fermeture automatiques selon des horaires définis

  • Horaires flexibles : Horaires globaux ou spécifiques par jour de la semaine

  • Avertissements automatiques : Notifications envoyées aux joueurs avant la fermeture

  • Actions personnalisables : Kick, changement de gamemode, ou shutdown du serveur

  • Messages personnalisables : Tous les messages peuvent être personnalisés dans la configuration

  • Gestion des admins : Les membres du staff peuvent toujours rester sur le serveur pendant la fermeture

⚙️ Configuration

La configuration se fait dans le fichier config.yml dans la section server-schedule:

server-schedule:
  # Activer/désactiver le système
  enabled: false
  
  # État actuel du serveur (géré automatiquement, ne pas modifier manuellement)
  server-closed: false
  
  # Horaires globaux (utilisés par défaut si aucun horaire spécifique n'est défini)
  global:
    start-time: "08:00"  # Format: HH:mm (24 heures)
    end-time: "22:00"
  
  # Horaires par jour (optionnel, remplace les horaires globaux pour les jours spécifiés)
  days:
    MONDAY:
      start-time: "09:00"
      end-time: "21:00"
    FRIDAY:
      start-time: "10:00"
      end-time: "23:00"
  
  # Action à exécuter lors de la fermeture
  # Options: "shutdown" (éteint le serveur), "kick" (kick les participants), "gamemode" (change le gamemode)
  close-action: "kick"
  
  # Gamemode à appliquer si close-action = "gamemode"
  # Options: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR
  close-gamemode: "SPECTATOR"
  
  # Message envoyé aux joueurs lorsqu'ils sont kickés (si close-action = "kick")
  # Placeholders disponibles: {open-time} - heure de réouverture prévue
  kick-message: |
    &c&l[FERMETURE]
    &7Le serveur est fermé.
    &7Réouverture prévue à {open-time}.
  
  # Message envoyé lorsque le serveur s'ouvre
  open-message: "&a&l[OUVERTURE] &7Le serveur est maintenant ouvert!"
  
  # Message envoyé aux joueurs lorsque leur gamemode est changé (si close-action = "gamemode")
  gamemode-message: "&c&l[FERMETURE] &7Votre mode de jeu a été changé. Le serveur est fermé."
  
  # Message envoyé aux admins lors de la fermeture (ils peuvent rester)
  admin-info-message: "&7[INFO] &7Le serveur est fermé selon le planning, mais vous pouvez rester en tant qu'admin."
  
  # Messages d'avertissement envoyés avant la fermeture
  # Placeholders disponibles: {time} - temps restant jusqu'à la fermeture
  warning-messages:
    - "&c&l[AVERTISSEMENT] &7Fermeture dans {time}"

🔔 Système d'avertissements

Le système envoie automatiquement des avertissements à tous les joueurs en ligne avant la fermeture du serveur. Les avertissements sont envoyés aux moments suivants :

  • 1 heure avant la fermeture

  • 30 minutes avant la fermeture

  • 15 minutes avant la fermeture

  • 5 minutes avant la fermeture

  • 1 minute avant la fermeture

  • 30 secondes avant la fermeture

Les messages d'avertissement peuvent être personnalisés dans la configuration. Le placeholder {time} sera remplacé par le temps restant formaté (ex: "1h 30min", "5min", "30sec").

🎯 Actions de fermeture

Le système peut exécuter différentes actions lors de la fermeture du serveur :

Kick (close-action: "kick")

Kick tous les participants (joueurs dans une équipe) avec le message configuré dans kick-message. Les admins (joueurs avec la permission horizons.staff ou OP) ne sont pas affectés et peuvent rester sur le serveur.

Avantages :

  • Les joueurs sont informés de la fermeture

  • Les admins peuvent continuer à travailler

  • Le serveur reste en ligne pour la maintenance

Gamemode (close-action: "gamemode")

Change le gamemode des participants vers celui configuré dans close-gamemode (par défaut SPECTATOR). Les admins ne sont pas affectés et reçoivent le message admin-info-message.

Avantages :

  • Les joueurs peuvent rester sur le serveur mais ne peuvent plus jouer

  • Les admins peuvent continuer à travailler normalement

  • Le serveur reste en ligne

Shutdown (close-action: "shutdown")

Éteint complètement le serveur après un délai de 2 secondes. Tous les joueurs seront déconnectés, y compris les admins.

⚠️ Attention : Cette action arrête complètement le serveur. Utilisez-la uniquement si vous souhaitez vraiment éteindre le serveur.

👥 Gestion des joueurs

Participants

Les joueurs qui sont dans une équipe sont considérés comme participants. Ce sont eux qui seront affectés par les actions de fermeture (kick ou changement de gamemode).

Admins/Staff

Les joueurs avec la permission horizons.staff ou qui sont OP sont considérés comme admins. Ils peuvent :

  • Se connecter même lorsque le serveur est fermé

  • Rester sur le serveur pendant la fermeture

  • Ne sont pas affectés par les actions de fermeture (sauf shutdown)

Blocage des connexions

Pendant la fermeture, les participants ne peuvent pas se connecter au serveur. Seuls les admins peuvent se connecter.

📅 Horaires

Horaires globaux

Les horaires globaux définis dans global.start-time et global.end-time sont utilisés par défaut pour tous les jours de la semaine.

Exemple :

Le serveur sera ouvert de 8h à 22h tous les jours.

Horaires par jour

Vous pouvez définir des horaires spécifiques pour certains jours de la semaine. Ces horaires remplacent les horaires globaux pour les jours concernés.

Jours disponibles : MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY

Exemple :

Le lundi, le serveur sera ouvert de 9h à 21h. Le vendredi, de 10h à 23h. Les autres jours utiliseront les horaires globaux.

Format d'heure

Les heures doivent être au format HH:mm en notation 24 heures :

  • 08:00 = 8h00 du matin

  • 14:30 = 14h30 (2h30 de l'après-midi)

  • 22:00 = 22h00 (10h00 du soir)

Plages horaires traversant minuit

Le système supporte les plages horaires qui traversent minuit. Par exemple, si vous définissez :

Le serveur sera ouvert de 22h à 8h du matin (ouvert toute la nuit).

💬 Messages personnalisables

Tous les messages peuvent être personnalisés dans la configuration :

Placeholders disponibles

  • {time} : Temps restant jusqu'à la fermeture (utilisé dans les avertissements)

  • {open-time} : Heure de réouverture prévue (utilisé dans le message de kick)

Codes de couleur

Vous pouvez utiliser les codes de couleur Minecraft avec & :

  • &a = Vert

  • &c = Rouge

  • &e = Jaune

  • &7 = Gris

  • &l = Gras

  • &n = Souligné

  • etc.

Exemples de messages

Message d'ouverture personnalisé :

Message de kick personnalisé :

Messages d'avertissement personnalisés :

🎮 Commande de gestion

La commande /serverschedule permet de gérer le système de planning.

Permission

  • horizons.serverschedule - Permet d'utiliser la commande

Syntaxe

Syntaxe principale: /serverschedule [sous-commande]

Alias: /schedule, /serversched, /sched

Sous-commandes

Ouvrir/Fermer manuellement

  • /serverschedule open - Ouvre le serveur manuellement (ignore le planning)

  • /serverschedule close - Ferme le serveur manuellement (ignore le planning)

Statut et activation

  • /serverschedule status - Affiche le statut actuel du système (activé/désactivé, ouvert/fermé, temps jusqu'à la prochaine fermeture)

  • /serverschedule enable - Active le système de planning

  • /serverschedule disable - Désactive le système de planning

Configuration des horaires

  • /serverschedule set global <heure-début> <heure-fin> - Définit les horaires globaux

    • Exemple: /serverschedule set global 08:00 22:00

  • /serverschedule set day <jour> <heure-début> <heure-fin> - Définit les horaires pour un jour spécifique

    • Exemple: /serverschedule set day MONDAY 09:00 21:00

    • Jours: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY

  • /serverschedule remove day <jour> - Supprime les horaires spécifiques pour un jour (utilisera les horaires globaux)

Exemples d'utilisation

Définir les horaires globaux :

Définir des horaires spécifiques pour le lundi :

Vérifier le statut :

Ouvrir/fermer manuellement :

🔄 Fonctionnement automatique

Une fois activé, le système fonctionne automatiquement :

  1. Vérification continue : Le système vérifie toutes les secondes si le serveur doit être ouvert ou fermé

  2. Application des horaires : Les horaires spécifiques par jour ont la priorité sur les horaires globaux

  3. Avertissements : Les avertissements sont envoyés automatiquement aux moments définis

  4. Actions de fermeture : L'action configurée est exécutée automatiquement à l'heure de fermeture

  5. Réouverture : Le serveur s'ouvre automatiquement à l'heure de réouverture

⚠️ Notes importantes

  • Les horaires doivent être au format HH:mm (24 heures)

  • Les jours doivent être en anglais et en majuscules (ex: MONDAY, pas monday ou Lundi)

  • L'état server-closed est géré automatiquement par le système, ne le modifiez pas manuellement dans le fichier de configuration

  • Les messages peuvent contenir plusieurs lignes en utilisant | dans YAML

  • Les placeholders {time} et {open-time} sont remplacés automatiquement

  • Les codes de couleur utilisent & et non §

🔒 Restrictions

  • Seuls les joueurs avec la permission horizons.serverschedule peuvent utiliser la commande

  • Les participants ne peuvent pas se connecter pendant la fermeture (sauf admins)

  • L'action "shutdown" arrête complètement le serveur (utilisez avec précaution)

Mis à jour