# Advent Calendar

## Module

If you are using this resource because of other features and Advent Calendar is not used, you can to disable this module and increase performance of the server.

```yaml
Options:
  AdventCalendar:
    Active: true #false, if module is not used
```

## Season duration

Range of days, while module is active.

```yaml
Options:
  AdventCalendar:
    Season:
      DateFormat: "dd.MM.yyyy HH:mm"
      StartDateTime: "01.12.2022 00:00" #The datetime when the season starts.
      EndDateTime: "24.12.2022 23:59" #The datetime when the season ends.
```

{% hint style="warning" %}
Before and after this season, players won't be able to open Advent Calendar.
{% endhint %}

### Window

Window at Calendar opens once a day at specified time.

```yaml
Options:
  AdventCalendar:
    Season:
      Window:
        OpeningTime: "00:00"
```

If player misses to open the window for specific day, he won't able to open in next day!

This **strict** behaviour can be changed to **benevolent** and player is able to open any previous windows.

```yaml
Options:
  AdventCalendar:
    Season:
      Window:
        OpeningType: "STRICT" #STRICT or BENEVOLENT
```

## Reward

By click to open window, you can choose one of the follwoing actions, what to do next.

#### List of actions

* `QUICK__BASE` - After click, the **first** reward from list selected for that day will be claimed.
* `QUICK__RANDOM` - After click, **random** reward from list selected for that day will be claimed.
* `QUICK__CHANCE` - After click, **random** reward in order to its probability will be claimed.
* `LUCKY_WHEEL` - After click, new GUI will be opened. There, **random** reward from list selected for that day will be claimed. It is the same option as `QUICK__RANDOM`, but here is an animation.
* `LUCKY_WHEEL__CHANCE` - After click, new GUI will be opened. There, **random** reward in order to its probability will be claimed. It is the same option as `QUICK__CHANCE`, but here is an animation.

For two options below. After click, new GUI will be opened. There, player can choose one of X rewards from list selected for that day.

* `SELECTOR__HIDDEN` - All rewards are hidden, so player does not know what reward he is claiming.
* `SELECTOR__VISIBLE` - All rewards are visible, represented by icon, so player knows what reward he is claiming.

Default choice type, if type is not assigned to specific day.

```yaml
Options:
  AdventCalendar:
    Reward:
      DefaultChoiceType: "QUICK__BASE"
```

### Benefit

By opening all windows in calendar, you can reward players with **extra** gift.

```yaml
Options:
  AdventCalendar:
    Reward:
      Benefit:
        Active: true
```

## Figure (Santa)

Via **Figure**, players are able to open Advent Calendar. Santa also displays current status of the season.

System offers pre-defined **Armor Stand**, with clothes and head. All values can be changed in the configuration file. System also supports **NPC**, you can aslo equip it with armor or items.

{% hint style="warning" %}
Warning at placing the Figure. Santa copies your locations and also facing direction!
{% endhint %}

{% hint style="info" %}
To place Santa type: `/AdventCalendar Figure Place`
{% endhint %}

If you have own Armor Stand, you can link it with Advent Figure. It only creates Holograms above the Armor Stand.

{% hint style="info" %}
To link Advent Calendar with the nearest Armor Stand in your range type: `/AdventCalendar Figure Link`
{% endhint %}

### Mode

List of modes mentioned above:

* NONE
* ARMOR\_STAND
* PLAYER
* HOLOGRAM

```yaml
Options:
  AdventCalendar:
    Figure:
      Mode: "ARMOR_STAND"
```

### Particle

At location where the Santa is placed, **particles** are spawned.

```yaml
Options:
  AdventCalendar:
    Figure:
      Particle:
        Active: true
```

## Calendar Interface (GUI)

Calendar interface is the main part of the whole module, that's the reason it must looks perfect. And you can configure it to your requirements.

### Slots

Specify slots, where the windows will be placed.

```yaml
Options:
  GUI:
    AdventCalendar:
      AdventCalendarGUI:
        Window:
          Slots: [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 22, 26, 29, 31, 33, 36, 38, 40, 42, 44, 46, 48, 50, 52 ]ml
```

{% hint style="warning" %}
Count of slots must equal to duration of the season.
{% endhint %}

### Order

Specify the order of the day assigned to slot of the window.

* `RANDOM` - Days are assigned to window in random order. Shuffle order is created after loading of the plugin.
* `ASCENDING` - Days are assigned to window in ascending order. The first one is on the left top side, and the last one is on the right down side.
* `DESCENDING` - Days are assigned to window in descending order. The first one is on the right down side, and the last one is on the left top side.

```yaml
Options:
  GUI:
    AdventCalendar:
      AdventCalendarGUI:
        Window:
          Order: "RANDOM"
```

### Window's icon

Opened window has another visual icon as closed or missed window.

* `ICON` - Icon of reward is used as opened window.
* `DEFAULT` - Item from configuration is used as opened window.

```yaml
Options:
  GUI:
    AdventCalendar:
      AdventCalendarGUI:
        Window:
          ItemType: "ICON"
```


---

# 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://wiki.innouniq.com/plugins/archieve/advent-season-2022-edition/configuration/options/advent-calendar.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.
