# Requirements

List of the available requirements:

### Permission

Check if the player has the permission.

```
[permission] example.permission
```

### Money

Check whether the player has enough money or not. The last argument (economy provider plugin name) can be ommited.

```
[money] 1000 Vault
```

### Exp level

Check if the player has the required vanilla exp level.

```
[exp-level] 10
```

### Items

Check if the player has the required items in his inventory. This only supports custom items, defined in [item-config](https://docs.auroramc.gg/aurora/item-config "mention"). List your items separated by spaces and add /number at the end to specify how many of that item the player should have in his inventory.

```yaml
[has-items] oraxen:some_item/32 mythicmobs:super_sword/1
```

### Placeholder

Check placeholder comparisons

```
[placeholder] %some_placeholder% == some value
[placeholder] %some_number_placeholder% === some number value
[placeholder] %some_number_placeholder% >= 10
[placeholder] %some_number_placeholder% <= 10
[placeholder] %some_number_placeholder% > 10
[placeholder] %some_number_placeholder% < 10
```

### Argument

Check menu argument comparisons

```
[arg] some_arg == some value
[arg] some_number_arg === some number value
[arg] some_number_arg >= 10
[arg] some_number_arg <= 10
[arg] some_number_arg > 10
[arg] some_number_arg < 10
```

### Meta

Check menu argument comparisons

```
[meta] some_arg == some value
[meta] some_number_meta_key === some number value
[meta] some_number_meta_key >= 10
[meta] some_number_meta_key <= 10
[meta] some_number_meta_key > 10
[meta] some_number_meta_key < 10
```

## API Usage

You can register your own requirements to use it everywhere in the menus.

{% hint style="warning" %}
Prefix can't contain spaces! First arg will always be the prefix.
{% endhint %}

```java
AuroraAPI.registerRequirementHandler("my-requirement", (args) -> {
  // You need to return a boolean here. args is a String array.
  return args.length > 2;
});
```

Then you can use it in your menus like:

```yaml
view-requirements:
  - "[my-requirement] arg1 arg2 arg3"
```
