> For the complete documentation index, see [llms.txt](https://horizons-cite-plugin.gitbook.io/horizons-cite-plugin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://horizons-cite-plugin.gitbook.io/horizons-cite-plugin/commandes/schedule.md).

# Schedule

## 📝 Introduction

La commande `/serverschedule` permet aux administrateurs de planifier l'ouverture et la fermeture automatique du serveur selon des horaires définis tout en gardant le serveur allumé. Le système peut envoyer des avertissements avant la fermeture et exécuter différentes actions (kick, changement de gamemode, ou shutdown).

## 🔑 Permission

* `horizons.serverschedule`

## 📋 Syntaxe

**Syntaxe principale:** `/serverschedule [sous-commande]`

**Alias:** `/schedule`, `/serversched`, `/sched`

## 🧪 Sous-commandes

### Ouvrir/Fermer manuellement

* `/serverschedule open` - Ouvre le serveur manuellement
* `/serverschedule close` - Ferme le serveur manuellement

### Statut et configuration

* `/serverschedule status` - Affiche le statut actuel du système
* `/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
* `/serverschedule set day <jour> <heure-début> <heure-fin>` - Définit les horaires pour un jour spécifique

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

**Format d'heure:** `HH:mm` (ex: `08:00`, `22:30`)

## 💡 Exemples d'utilisation

### Définir les horaires globaux

```
/serverschedule set global 08:00 22:00
```

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

### Définir des horaires spécifiques pour un jour

```
/serverschedule set day MONDAY 09:00 21:00
```

Le lundi, le serveur sera ouvert de 9h à 21h.

### Vérifier le statut

```
/serverschedule status
```

Affiche si le système est activé et l'état actuel du serveur.

### Ouvrir/fermer manuellement

```
/serverschedule close
/serverschedule open
```

## ⚙️ Configuration

La configuration se fait dans le fichier `config.yml`:

```yaml
server-schedule:
  enabled: false  # Activer/désactiver le système
  server-closed: false  # État actuel (géré automatiquement)
  
  # Horaires globaux
  global:
    start-time: "08:00"
    end-time: "22:00"
  
  # Horaires par jour (optionnel)
  days:
    MONDAY:
      start-time: "09:00"
      end-time: "21:00"
  
  # Action lors de la fermeture
  close-action: "kick"  # Options: "shutdown", "kick", "gamemode"
  
  # Gamemode si close-action = "gamemode"
  close-gamemode: "SPECTATOR"
  
  # Message de kick
  kick-message: |
    &c&l[FERMETURE]
    &7Le serveur est fermé.
    &7Réouverture prévue à {open-time}.
  
  # Messages d'avertissement
  warning-messages:
    - "&c&l[AVERTISSEMENT] &7Fermeture dans {time}"
```

## 🔔 Avertissements

Le système envoie automatiquement des avertissements avant la fermeture aux moments suivants:

* 1 heure avant
* 30 minutes avant
* 15 minutes avant
* 5 minutes avant
* 1 minute avant
* 30 secondes avant

## 🎯 Actions de fermeture

### Kick

Kick tous les participants (joueurs dans une équipe) avec le message configuré. Les admins peuvent rester.

### Gamemode

Change le gamemode des participants vers celui configuré. Les admins ne sont pas affectés.

### Shutdown

Éteint complètement le serveur après 2 secondes. Tous les joueurs seront déconnectés.

## 👥 Gestion des joueurs

* **Participants**: Les joueurs dans une équipe sont considérés comme participants
* **Admins**: Les joueurs avec la permission `horizons.staff` ou OP peuvent toujours se connecter et rester pendant la fermeture
* **Blocage**: Les participants ne peuvent pas se connecter pendant la fermeture (sauf admins)

## 🔒 Restrictions

* Seuls les joueurs avec la permission `horizons.serverschedule` peuvent utiliser cette commande
* Les horaires doivent être au format `HH:mm` (24 heures)
* Les jours doivent être en anglais et en majuscules


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://horizons-cite-plugin.gitbook.io/horizons-cite-plugin/commandes/schedule.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
