# Other plugin types

## Summary

1. [PLACEHOLDER](#placeholder)
2. [PYRO\_FISH](#pyro_fish)
3. [EMF\_FISH](#emf_fish)
4. [MYTHIC\_MOBS & ELITE\_MOBS](#mythic_mobs-and-elite_mobs)
5. [CRATE\_OPEN](#crate_open)

## PLACEHOLDER

* Supported plugins: PlaceholderAPI

Since the 2.1.0, you can create quests that requires a placeholder to be a specific value.\
This functionnality is only compatible with PlaceholderAPI at the moment.&#x20;

On a placeholder quest, you need to specify a placeholder, an operator, an expected value and an error message. You can also use placeholders in `value` and `expected` parameters.

### Operators

There is currently the following operators:

<table><thead><tr><th width="273">Operator</th><th width="372.3333333333333">Description</th><th>Type</th></tr></thead><tbody><tr><td>EQUALS</td><td>The value of the parsed placeholder must be equal to the required value.</td><td>TEXT</td></tr><tr><td>NOT_EQUALS</td><td>The value of the parsed placeholder must be different of the required value.</td><td>TEXT</td></tr><tr><td>CONTAINS</td><td>The parsed placeholder must contain the required value.</td><td>TEXT</td></tr><tr><td>NOT_CONTAINS</td><td>The parsed placeholder must not contain the required value.</td><td>TEXT</td></tr><tr><td>STARTS_WITH</td><td>The parsed placeholder must begin with the required value.</td><td>TEXT</td></tr><tr><td>ENDS_WITH</td><td>The parsed placeholder must end with the required value.</td><td>TEXT</td></tr><tr><td>GREATER_THAN</td><td>The value of the parsed placeholder must be greater than the required value.</td><td>NUMBER</td></tr><tr><td>GREATER_THAN_OR_EQUALS</td><td>The value of the parsed placeholder can be greater or equal to the required value.</td><td>NUMBER</td></tr><tr><td>LESS_THAN</td><td>The value of the parsed placeholder must be lower than the required value.</td><td>NUMBER</td></tr><tr><td>LESS_THAN_OR_EQUALS</td><td>The value of the parsed placeholder can be lower or equal to the required value.</td><td>NUMBER</td></tr></tbody></table>

Here is some examples:

```yaml
1:
  name: "Be rich"
  menu_item: PAPER
  description:
    - "&cGet more than 1,000,000$."
    - "&aWin &b50 000 &a$."
  quest_type: PLACEHOLDER
  placeholder:
    value: "%vault_eco_balance%"
    operator: GREATER_THAN
    expected: 1000000
    error_message: "&cYou need more than 1,000,000$ to complete this quest."
  reward:
    reward_type: MONEY
    amount: 50000
    
2:
  name: "Be a VIP"
  menu_item: GOLD_INGOT
  description:
    - "&6Become a VIP and..."
    - "&6show it to the world."
  quest_type: PLACEHOLDER
  placeholder:
    value: "%luckperms_in_group_vip%"
    operator: EQUALS
    expected: "true"
    error_message: "&cYou are not a VIP!"
  reward:
    reward_type: COMMAND
    commands:
      - "bc &6%player% &bis now a VIP!"
```

#### Compare durations

In addition, you can compare durations returned by placeholders using the following types :

<table><thead><tr><th width="490">Operator</th><th>Format</th></tr></thead><tbody><tr><td>DURATION_GREATER_THAN</td><td>hh:mm:ss:SSS</td></tr><tr><td>DURATION_GREATER_THAN_OR_EQUALS</td><td>hh:mm:ss:SSS</td></tr><tr><td>DURATION_LESS_THAN</td><td>hh:mm:ss:SSS</td></tr><tr><td>DURATION_LESS_THAN_OR_EQUALS</td><td>hh:mm:ss:SSS</td></tr></tbody></table>

`hh` are hours, `mm` are minutes, `ss` are seconds and `SSS` are milliseconds.

Here is an example :

<pre class="language-yaml"><code class="lang-yaml">1:
  name: "Be fast"
  menu_item: PAPER
  description:
    - "&#x26;cComplete the parkour in under 25 seconds."
    - "&#x26;aWin &#x26;b50 000 &#x26;a$."
  quest_type: PLACEHOLDER
  placeholder:
    value: "%parkour_player_best_time%"
<strong>    operator: DURATION_LESS_THAN_OR_EQUALS
</strong>    expected: "00:00:25:000"
    error_message: "&#x26;cYou are too slow! You must be under 25 seconds."
  reward:
    reward_type: MONEY
    amount: 50000
</code></pre>

## PYRO\_FISH

* Supported plugins: PyroFishingPro

{% hint style="warning" %}
To use this type of quest, you must install the [associated addon](https://github.com/Ordwen/ODQ-PyroFishingPro/releases).
{% endhint %}

In this quest, you can specify the tier and number of the fish &#x20;

```yaml
1:
  name: "Get some custom fishes"
  menu_item: COD
  description:
    - "&6Win &b5000 &6$."
  quest_type: PYRO_FISH
  required:
    - "bronze:1"
    - "silver:51"
  required_amount: 1
  reward:
    reward_type: MONEY
    amount: 5000
```

It's not case-sensitive.\
If you don't put `required` section it will progress regardless the fish caught.

## EMF\_FISH

* Supported plugin: EvenMoreFish

In this quest, you must specify the name of the fish, without color codes.  &#x20;

```yaml
1:
  name: "Get some custom fishes 2"
  menu_item: COD
  description:
    - "&6Win &b5000 &6$."
  quest_type: EMF_FISH
  required:
    - "Grass Carp"
    - "Rockfish"
  required_amount: 1
  reward:
    reward_type: MONEY
    amount: 5000
```

It's not case-sensitive.\
If you don't put `required` section it will progress regardless the fish caught.

## MYTHIC\_MOBS & ELITE\_MOBS

* Supported plugins: obvious, I hope!

For these types, you must specify the name of the entity to be killed in the quest information with `entity_name`. There is no need to specify the type of entity.

### MythicMobs specificities

For <mark style="color:$danger;">**MythicMobs**</mark>, you must put in `entity_name` the **internal name** of the mob.\
For example, if you have a custom mob like that in your file :

```
SkeletonKing:
  Type: WITHER_SKELETON
  Display: '&6Skeleton King'
  Health: 50
  Damage: 10
```

Your quest will look like this :

<pre><code>1:
  name: ...
<strong>  menu_item: ...
</strong>  description: ...
  quest_type: MYTHIC_MOBS
  entity_name: "SkeletonKing"
  required_amount: 1
  reward:
  ...
</code></pre>

With **MythicMobs** again and only, there is the `shared_mobs` option. \
With this option, all players involved in the mob's death will see their quests progress if they have it.

```
1:
  name: ...
  menu_item: ...
  description: ...
  quest_type: MYTHIC_MOBS
  entity_name: "SkeletonKing"
  shared_mobs: true
  required_amount: 1
  reward:
  ...
```

### EliteMobs specificities

For <mark style="color:$danger;">**EliteMobs**</mark>, you should NOT put the boss level in the entity name. \
For example, if your boss file looks like this: \
\&#xNAN;*`name: $normalLevel &cThe Big Boss`*\
You need to put only *`&cThe Big Boss`* in your quest config.

```
1:
  name: ...
  menu_item: ...
  description: ...
  quest_type: ELITE_MOBS
  entity_name: "&cThe Big Boss"
  shared_mobs: true
  required_amount: 1
  reward:
  ...
```

### Multiple entities

For both MYTHIC\_MOBS and ELITE\_MOBS, you can also specify several entity names:

```
entity_name: 
  - "&cThe Big Boss"
  - "&eLittle Pig"
```

## CRATE\_OPEN

* Supported plugins: ExcellentCrates

For this type of query, simply enter the name displayed for the crate as defined in your configuration. \
For example, if your crate is configured like this:

<pre class="language-yaml"><code class="lang-yaml"><strong># ExcellentCrates/crates/vote.yml
</strong><strong>Name: '&#x26;b&#x26;lVote Crate'
</strong>Description: []
</code></pre>

Your quest will look like this:

```yaml
1:
  ...
  quest_type: CRATE_OPEN
  required: "&b&lVote Crate" # don't forget color codes!
  required_amount: 1
  ...
```

You can also specify several crates:

```yaml
1:
  ...
  quest_type: CRATE_OPEN
  required: 
    - "&7&lMini-VIP Crate"
    - "&6&lVIP Crate"
    - "&b&lVIP+ Crate"
  required_amount: 1
  ...
```
