# Classes

## Classes in AdvancedSkills

Classes in AdvancedSkills provide players with a way to specialize their character and gain advantages in specific skills. This system adds depth to player progression and encourages diverse playstyles.

### How Classes Work

Players can select a class that aligns with their preferred playstyle. Each class provides bonuses to specific skills, allowing players to excel in certain areas. Classes can be configured to be a one-time choice or allow switching with a cooldown.

### Configuring the Class System

The class system is configured in the `classes.yml` file. Let's break down the configuration:

{% code title="classes.yml " lineNumbers="true" %}

```yaml
# classes.yml
enabled: true

# Classes can be edited in `classes` folder!
allow-class-change: true  # Whether players can change their class
class-change-cooldown: 604800  # Cooldown in seconds for changing class, default 604800 = 7 days

# Should players be reminded after login if they have not selected a class?
# They will be sent a message few seconds after logging in
remind-class-selection: true
```

{% endcode %}

1. `enabled`: Set to `true` to activate the class system.
2. `allow-class-change`: If `true`, players can switch classes.
3. `class-change-cooldown`: The time (in seconds) players must wait before changing classes again. Default is 604800 (7 days).
4. `remind-class-selection`: If `true`, players without a class will be reminded to choose one after logging in.

### Creating a Class

Classes are defined in individual YAML files within the `classes` folder. Let's examine the "Craftsman" class example:

```yaml
name: "Craftsman"
description: "A master of creation and resource gathering."
icon:
  type: CRAFTING_TABLE
skills:
  mining: 1.2
  woodcutting: 1.2
  repair: 1.2
  smelting: 1.2
  alchemy: 1.1
```

Let's break down each part:

1. `name`: The display name of the class.
2. `description`: A brief explanation of the class's strengths.
3. `icon`: The item used to represent the class in menus.
   * `type`: The Minecraft material type. Refer to the [Material List](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html) for options.
4. `skills`: This section defines the skill bonuses for the class.
   * Each skill is listed with a multiplier. For example, `mining: 1.2` means the Craftsman gains 20% more experience in the Mining skill.


---

# 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://skills.advancedplugins.net/features/classes.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.
