# Options

## Season duration

Range of days, while module is active.

```yaml
Options:
  Season:
    StartDateTime: "05.12.2023 00:00" #The datetime when the season starts.
    GapDateTime: "06.12.2023 05:00" #The datetime when the cleaning mode is turned to claiming mode.
    EndDateTime: "06.12.2023 23:59" #The datetime when the season ends.
```

{% hint style="warning" %}
Before and after this season, players won't be able to interact with Figure.
{% endhint %}

## Sound

Sounds make the game more attractive. Currently played at various situations while interacting with figure.

#### Actions, when the Sounds are played.

* Consume - Sound played when the player hands over the item.
* Claim - Sound played to player when he claims the reward.

List of latest sounds are available at <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html>

```yaml
Options:
  Sound: #Sounds valid for 1.12.X.
    Consume: "BLOCK_PORTAL_TRAVEL"
    Claim: "ENTITY_FIREWORK_TWINKLE"
```

## Reward

{% 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 %}

{% embed url="<https://youtu.be/FK_LnRMi-JA>" %}

Choice Types:

* `QUICK_ALL` - All assigned rewards are given to player
* `QUICK_CHANCE` - One reward is selected from assigned list by probability

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
Options:
  Reward:
    List:
    - DiamondTools:90.0
    - MoneyPocket:10.0
    ChoiceType: QUICK_CHANCE
```

#### Grinch

Set the probability of the Grinch swiping a present.

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

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

## PlayTime Restriction

To prevent abuse from fake accounts opening windows or to enhance the gameplay experience, you can require players to spend a specified amount of time on your server before being able to leave cleaned shoes at St. Nicholas.

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 leave cleaned shoes at St. Nicholas.
* `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 leave cleaned shoes at St. Nicholas.
* `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 leave cleaned shoes at St. Nicholas.

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

{% hint style="warning" %}
To disable PlayTime Restriction, keep all values to `0`.
{% endhint %}

## Consumer

List of items that figure accept

```yaml
Options:
  Consumer:
    MaterialList:
      - LEATHER_BOOTS
```

## Visual

Section represents components displayed at chat, boss bars and titles.

### Boss Bar

Players are able to see current information about upcoming event.

```yaml
Options:
  Visual:
    BossBar:
      Active: true
      Color: "PURPLE"
      Style: "SEGMENTED_20"
```

#### Available colors

`PINK`, `BLUE`, `RED`, `GREEN`, `YELLOW`, `PURPLE`, `WHITE`

#### Available styles

`SOLID`, `SEGMENTED_6`, `SEGMENTED_10`, `SEGMENTED_12`, `SEGMENTED_20`

### Information intervals

Information can be displayed in specified **intervals** and these itervals are mainly associtated with **BossBar**.

Imagine interval in math, but reversed because of countdown which is decresing.

\
If we want to display BossBar since **30** seconds to **10** seconds, we use interval `30:11`(`FROM:TO+1`). Plus **1** because of we want to hide BossBar in 10 seconds. (If we keep 10 seconds in the interval, BossBar will be hidden in 9 seconds.)

```yaml
Options:
  Visual:
    Info:
      Active: true
      Interval:
       - "60:56"
       - "10:1"
```

## Restriction

You can disable performing some actions while using the resource.

```yaml
Options:
  Restriction:
    World:
      - world_the_end
      - world_nether
      - SomeAnotherRestrictedWrold
```

If you want to allow all worlds, you need to set **Empty Collections(`[]`)** here!

```yaml
Options:
  Restriction:
    World: []
```

## Figure (Assistant)

St. Nicholas cannot be everywhere, so you have to invite Assistant, who helps him to collect items. Assistant 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. Assistant copies your locations and also facing direction!
{% endhint %}

{% hint style="info" %}
To place Assistant type: `/SaintNicholas 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 Assistant with the nearest Armor Stand in your range type: `/SaintNicholas Figure Link`
{% endhint %}

### Mode

List of modes mentioned above:

* NONE
* ARMOR\_STAND
* PLAYER
* HOLOGRAM

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

### Particle

Particles are spawning around the spawned Figure. You can keep them active or disable them. Also you can change Effect, Color, Speed and Amount.

```yaml
Options:
  Figure:
    Particle:
      Active: true
      TickDelay: 13 #How fast particles are spawned. (20 ticks = 1 second)
      Data:
        Effect: SPELL_WITCH
        Amount: 35
        Speed: 1.0 #Optional, Default 1.0
        Color: "255:255:255" #Optional, Default White
        Offest: #Optional, Offset from Figures's location. (Vector)
          X: .5
          Y: .5
          Z: .5
```
