# Config files

## schedulers.yml

```yaml
########################################################################################################################
#
#  ███████╗░██████╗░█████╗░██╗░░██╗███████╗██████╗░██╗░░░██╗██╗░░░░░███████╗██████╗░░██████╗
#  ╚════██║██╔════╝██╔══██╗██║░░██║██╔════╝██╔══██╗██║░░░██║██║░░░░░██╔════╝██╔══██╗██╔════╝
#  ░░███╔═╝╚█████╗░██║░░╚═╝███████║█████╗░░██║░░██║██║░░░██║██║░░░░░█████╗░░██████╔╝╚█████╗░
#  ██╔══╝░░░╚═══██╗██║░░██╗██╔══██║██╔══╝░░██║░░██║██║░░░██║██║░░░░░██╔══╝░░██╔══██╗░╚═══██╗
#  ███████╗██████╔╝╚█████╔╝██║░░██║███████╗██████╔╝╚██████╔╝███████╗███████╗██║░░██║██████╔╝
#  ╚══════╝╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚═════╝░░╚═════╝░╚══════╝╚══════╝╚═╝░░╚═╝╚═════╝░
#
# Documentation: https://scheduler.groupez.dev/
#
# Scheduler type:
# - HOURLY : Runs every hour at the same minute.
# - DAILY : Runs all days, you must provide hours and minutes.
# - WEEKLY : Runs every week, you must provide day of week, hours and minutes.
# - MONTHLY : Runs every month, you must provide hours and minutes.
# - YEARLY : Runs every year, you must provide month, day of month, hours and minutes.
#
# Type: HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY
# Days: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
# Month: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
#
# Placeholders:
#   - %zschedulers_time_<scheduler name>% - Displays the time remaining before the next placeholder run
#   - %zschedulers_date_<scheduler name>% - Displays the date for the next placeholder run
#   - %zschedulers_second_<scheduler name>% - Displays the seconds between now and the next scheduler
#
# Commands:
#   - /zschedulers list - Display scheduler list
#   - /zschedulers reload - Reload configuration files
#
# SPONSOR : Serveur Minecraft Vote
# 10€ of credit with code: ZSCHEDULERS
# Use the code here: https://serveur-minecraft-vote.fr/utiliser/un/code/cadeau?code=ZSCHEDULERS
#
########################################################################################################################

schedulers:
  example0: # Every hour at 0 minute
    type: HOURLY
    minute: 0
    second: 0
    # minPlayer: 10 # The minimum number of players for commands to execute
    # timeZone: "America/New_York" # Set the timezone to a specific one, for example, "America/New_York"
    commands:
      - "bc &fDont forget to add your server here : &chttps://serveur-minecraft-vote.fr/"
  example1: # Every day at 18h00
    type: DAILY
    hour: 18
    minute: 0
    second: 0
    minPlayer: 10 # The minimum number of players for commands to execute
    # timeZone: "America/New_York" # Set the timezone to a specific one, for example, "America/New_York"
    commands:
      - "bc Daily broadcast message everyday at 18h00"
  example2: # Every monday at 15h30
    type: WEEKLY
    day: MONDAY
    hour: 15
    minute: 30
    implementation: # Custom implementation
      name: ZKOTH # zKoth implementation
      koth_name: "koth_name" # koth name
      start_now: false # start without cooldown
  example3: # every 14th of the month at 12h01
    type: MONTHLY
    day: 14
    hour: 12
    minute: 1
    commands:
      - "bc Broadcast message every 14th of the month at 12h01"
  example4: # every 1er of january at 00:00
    type: YEARLY
    month: JANUARY
    day: 1
    hour: 0
    minute: 0
    commands:
      - "bc Broadcast message every first of year at 00h00"

#  example5:
#    type: EVERY_MINUTE
#    initialDelay: 0
#    period: 1
#    saveTimer: true
#    commands:
#      - "bc &fHey its run every minute !"
```

## messages.yml

```yaml
messages:
  prefix:
    message: '&8(&6zScheduler&8) '
  teleport:
    move:
      message: '&cYou must not move!'
    message:
      message: '&7Teleportation in &3%second% &7seconds!'
    error:
      message: '&cYou already have a teleportation in progress!'
    success:
      message: '&7Teleportation done!'
  inventory:
    clone:
      'null':
        message: '&cThe inventory clone is null!'
    open:
      error:
        message: '&cAn error occurred with the opening of the inventory &6%id%&c.'
  time:
    day:
      message: '%02d %day% %02d %hour% %02d %minute% %02d %second%'
    hour:
      message: '%02d %hour% %02d minute(s) %02d %second%'
    minute:
      message: '%02d %minute% %02d %second%'
    second:
      message: '%02d %second%'
  format:
    second:
      message: second
    seconds:
      message: seconds
    minute:
      message: minute
    minutes:
      message: minutes
    hour:
      message: hour
    hours:
      message: hours
    day:
      message: d
    days:
      message: days
  command:
    syntaxe:
      error:
        message: '&cYou must execute the command like this&7: &a%syntax%'
      help:
        message: '&f%syntax% &7» &7%description%'
    'no':
      permission:
        message: '&cYou do not have permission to run this command.'
      console:
        message: '&cOnly one player can execute this command.'
      arg:
        message: '&cImpossible to find the command with its arguments.'
  reload:
    message: '&aYou have just reloaded the configuration files.'
  description:
    reload:
      message: Reload configuration files
    list:
      message: Reload configuration files
    version:
      message: Show plugin version
  scheduler:
    list:
      header:
        message: '&fSchedulers&8:'
      line:
        message: '&b%name% &8- &7%date%'
```

## config.json

```json
{
  "enableDebug": true,
  "enableDebugTime": false,
  "dateFormat": "EEEE, d MMM yyyy HH:mm:ss"
}
```


---

# Agent Instructions: 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:

```
GET https://scheduler.groupez.dev/config-files.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
