# Calendar

{% hint style="warning" %}
There is expected that rewards are created, yet! To create rewards, check this tutorial: [How to create Reward](https://wiki.innouniq.com/plugins/thecore/configuration/centralized-reward-repository)
{% endhint %}

## Reward assignment

Again, there are two options how to assign them. By in-game UI or Manually in the confiuration file.

### **Using in-game Reward UI**

{% hint style="info" %}
To open GUI type `/AdventCalendar Settings`
{% endhint %}

{% embed url="<https://youtu.be/qkVBlaHgFgQ>" %}

### **Manually in the file**

Configuration file `Calendar.yml` is located at main folder of Advent Calendar.

#### Template of the CalendarUnit

```yaml
DAY_1:
  Type: "WINDOW"
  Day: 1
  Slot: 0
  Grinch:
    Loot:
      Probability: 25.0
  Icon:
    Material: SKULL_ITEM
    MaterialData: 3
    SkullData: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTllMzlkOTFjMDRjMzBjYzFmNTMwZmVlNzk4ZWVkMjc5ZGRlNjBmOTVjMmUxZDE1NWMwZmRkMzYxZDA5NjJlZCJ9fX0=
    CustomModelData: 0
    Enchantment: false
    Color: 255:255:255
    ItemFlagList:
    - HIDE_ENCHANTS
    - HIDE_ATTRIBUTES
  Reward:
    ChoiceType: "QUICK__ALL"
    List: []
  PlayTime:
    TotalMinute: 0
    TodayMinute: 0
    SessionMinute: 0
```

## Type

Defines type of CalendarUnit

Allowed types:

* `WINDOW`
* `BENEFIT`

## Day

Assigns day with window

## Slot

Defines, where the window is located in Calendar GUI.

{% hint style="info" %}
At `RANDOM` WindowOrderingType(See Options.yml, GUI section), these slots are also used, but random assigned to days.
{% endhint %}

#### Reward

Choice Types:

* `QUICK__ALL` - All assigned rewards are given to player
* `QUICK__CHANCE` - One reward is selected from assigned list by probability
* `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__CHANCE`, but here is an animation

Example for **probability**. `DiamondTools` has 90% chance, `MoneyPocket` has 10% chance to win.&#x20;

{% hint style="danger" %}
Summary of probability at assinged rewards has to be **100.0**! Otherwise, system won't work correctly!
{% endhint %}

```yaml
Reward:
  List:
  - DiamondTools:90.0
  - MoneyPocket:10.0
  ChoiceType: QUICK__CHANCE
```

## Grinch

Set the probability of the Grinch swiping a present.

```yaml
Grinch:
  Loot:
    Probability: 35.0 #Percentage ratio. Allowed range <O;100>
```

{% hint style="danger" %}
Plugin **Grinch** must be installed on the server!
{% endhint %}

## Icon

This icon is optional and it's used at Locked windows.

I personally recommend to setup this icon through in-game GUI. It's much simple.

## PlayTime Restriction

To override Default PlayTime Restriction, you need to specify values in this confiugration file.

> **Example** As default, player has to play at least 30 Minutes that day, but I want that in 24th of December, player has to play at least 60 Minutes.&#x20;

Types of Restriction:

* `Total` - Total time spent on the server.
  * Example: Player has to play for at least 5 Days(7200 Minutes) to be able to open a window.
* `Today` - Today's time spent on the server. Probably most used
  * Example: Player has to play for at least 30 Minutes **that day** to be able to open a window.
* `Session` -  Time spent on the server since player logged in.
  * Example: Player has to be **online** for at least 30 Minutes to be able to open a window.

<pre class="language-yaml"><code class="lang-yaml"><strong>PlayTime:
</strong>  TotalMinute: 0
  TodayMinute: 0
  SessionMinute: 0
</code></pre>

## Benefit

By claiming all windows, player are able to claim one **extra** gift. SetUp is the same as above. Just Day and Slot are ignored, and type is required to change to `BENEFIT`
