Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
216c419
Initial plan
Copilot Sep 21, 2025
c24abd2
Changes before error encountered
Copilot Sep 21, 2025
984321c
Complete skill activation persistence implementation
Copilot Sep 23, 2025
a68533e
Initial plan
Copilot Jan 2, 2026
640e024
Add enhanced level-up notifications with titles, sounds, and action bars
Copilot Jan 2, 2026
ef7c8a2
Update README with notification features documentation
Copilot Jan 2, 2026
8ad7041
Add comprehensive notification features documentation
Copilot Jan 2, 2026
0c2577a
Fix null pointer exceptions in notification code
Copilot Jan 2, 2026
443a0e9
Add implementation summary document
Copilot Jan 2, 2026
05c0865
Merge pull request #136 from Dans-Plugins/develop
dmccoystephenson Jan 6, 2026
7bbf0ca
Address review feedback: fix config key mismatches, consistent getNam…
Copilot Mar 6, 2026
4486143
Merge branch 'main' into copilot/fix-751a9037-3a32-417b-8065-948a85ff…
dmccoystephenson Mar 6, 2026
ebbeddf
Merge branch 'copilot/fix-751a9037-3a32-417b-8065-948a85ffe2bd' of gi…
invalid-email-address Mar 6, 2026
fa11661
Fix /ss info showing deactivated skills and /ss top including them in…
Copilot Mar 6, 2026
04eee3f
chore: update project version to 2.4.1 in pom.xml
dmccoystephenson Mar 6, 2026
602146b
Merge pull request #104 from Dans-Plugins/copilot/fix-751a9037-3a32-4…
dmccoystephenson Mar 6, 2026
88eeae0
Initial plan
Copilot Mar 22, 2026
e416c4d
Align documentation with Medieval Factions plugin practices
Copilot Mar 22, 2026
a3c614a
Address review comments: fix Lumberjack naming, Monster Hunting confi…
Copilot Mar 22, 2026
8382919
Merge pull request #142 from Dans-Plugins/copilot/align-documentation…
dmccoystephenson Mar 22, 2026
e0f5520
Merge branch 'main' into copilot/improve-skill-level-notifications
dmccoystephenson Mar 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions COMMANDS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# SimpleSkills - Commands Reference

This document provides a comprehensive list of all commands available in the SimpleSkills plugin.

## Table of Contents

- [Command Aliases](#command-aliases)
- [General Commands](#general-commands)
- [Admin Commands](#admin-commands)

## Command Aliases

The main SimpleSkills command can be accessed using any of the following aliases:

- `/simpleskills`
- `/ss`
- `/skills`

---

## General Commands

### `/ss help`

**Permission:** `ss.help` (default: true)
**Description:** Displays a list of helpful commands and usage information.
**Usage:** `/ss help`

---

### `/ss info [player]`

**Permission:** `ss.info` (default: true)
**Description:** Displays skill levels and experience for a player. If no player name is provided, shows your own skills.
**Usage:**
- `/ss info` – View your own skills
- `/ss info <playerName>` – View another player's skills

---

### `/ss skill <skillName>`

**Permission:** `ss.skill` (default: true)
**Description:** Displays detailed information about a specific skill, including its active status, max level, base experience requirement, and experience increase factor.
**Usage:** `/ss skill <skillName>`
**Example:** `/ss skill Mining`

---

### `/ss top [skillName]`

**Permission:** `ss.top` (default: true)
**Description:** Displays the top players ranked by skill level. If a skill name is provided, shows the leaderboard for that skill specifically.
**Usage:**
- `/ss top` – View top players overall
- `/ss top <skillName>` – View top players in a specific skill

**Example:** `/ss top Farming`

---

### `/ss stats`

**Permission:** `ss.stats` (default: true)
**Description:** Displays server-wide statistics, including the total number of skills, player records, and unknown skills.
**Usage:** `/ss stats`

---

## Admin Commands

### `/ss reload`

**Permission:** `ss.reload` (default: op)
**Description:** Reloads the plugin configuration and language files without restarting the server.
**Usage:** `/ss reload`

---

### `/ss force wipe`

**Permission:** `ss.force.wipe` (default: op, console only)
**Description:** Clears all player skill records from the server. **This action is irreversible.**
**Usage:** `/ss force wipe`
**Notes:** This command can only be run from the console.

---

### `/ss force activate <skillName>`

**Permission:** `ss.force.activate` (default: op)
**Description:** Activates a skill so it can be gained by players and its benefits can trigger.
**Usage:** `/ss force activate <skillName>`
**Example:** `/ss force activate Mining`

---

### `/ss force deactivate <skillName>`

**Permission:** `ss.force.deactivate` (default: op)
**Description:** Deactivates a skill so players cannot gain experience in it and its benefits will not trigger.
**Usage:** `/ss force deactivate <skillName>`
**Example:** `/ss force deactivate Mining`

---

## Permissions Summary

| Permission | Default | Description |
|---|---|---|
| `ss.help` | Everyone | Use `/ss help` |
| `ss.info` | Everyone | Use `/ss info` |
| `ss.skill` | Everyone | Use `/ss skill` |
| `ss.top` | Everyone | Use `/ss top` |
| `ss.stats` | Everyone | Use `/ss stats` |
| `ss.reload` | Op | Use `/ss reload` |
| `ss.force` | Op | Use `/ss force` |
| `ss.force.wipe` | Op | Use `/ss force wipe` |
| `ss.force.activate` | Op | Use `/ss force activate` |
| `ss.force.deactivate` | Op | Use `/ss force deactivate` |
171 changes: 171 additions & 0 deletions CONFIG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
# SimpleSkills - Configuration Guide

This document provides detailed information about all configuration options available in SimpleSkills.

## Table of Contents

- [config.yml](#configyml)
- [General Settings](#general-settings)
- [Alert Settings](#alert-settings)
- [Skill Activation](#skill-activation)
- [message.yml](#messageyml)

---

## config.yml

The `config.yml` file is located in `plugins/SimpleSkills/config.yml` on your server.

### General Settings

#### `config-version`

**Type:** String
**Default:** `0.1`
**Description:** Internal version identifier for the config file. Do not modify this manually. If this does not match the expected version, you will see an error in the server console prompting you to update your config.

---

#### `debugMode`

**Type:** Boolean
**Default:** `false`
**Description:** When `true`, enables additional debug logging to help diagnose issues.

---

#### `defaultMaxLevel`

**Type:** Integer
**Default:** `100`
**Description:** The maximum level a skill can reach.
**Range:** Any positive integer

---

#### `defaultBaseExperienceRequirement`

**Type:** Integer
**Default:** `10`
**Description:** The amount of experience required to reach level 2. Each subsequent level requires more experience based on the `defaultExperienceIncreaseFactor`.
**Range:** Any positive integer

---

#### `defaultExperienceIncreaseFactor`

**Type:** Float
**Default:** `1.2`
**Description:** The multiplier applied to the experience requirement at each level. For example, with a base requirement of 10 and a factor of 1.2, level 2 requires 10 XP, level 3 requires 12 XP, level 4 requires ~14.4 XP, and so on.
**Range:** Any value greater than 1.0

---

### Alert Settings

#### `levelUpAlert`

**Type:** Boolean
**Default:** `true`
**Description:** When `true`, players receive a chat message when they level up a skill.

---

#### `benefitAlert`

**Type:** Boolean
**Default:** `true`
**Description:** When `true`, players receive a chat message when a skill benefit triggers.

---

### Skill Activation

Each skill can be individually activated or deactivated. Skills that are deactivated will not grant experience and will not trigger their benefits.

Skill activation states are stored under the `skills` key in `config.yml`:

```yaml
skills:
Mining:
active: true
Farming:
active: false
```

**Available skills and their config keys:**

| Skill | Config Key |
|---|---|
| Athlete | `skills.Athlete.active` |
| Boating | `skills.Boating.active` |
| Breeding | `skills.Breeding.active` |
| Cardio | `skills.Cardio.active` |
| Crafting | `skills.Crafting.active` |
| Digging | `skills.Digging.active` |
| Dueling | `skills.Dueling.active` |
| Enchanting | `skills.Enchanting.active` |
| Farming | `skills.Farming.active` |
| Fishing | `skills.Fishing.active` |
| Floriculture | `skills.Floriculture.active` |
| Gliding | `skills.Gliding.active` |
| Hardiness | `skills.Hardiness.active` |
| Mining | `skills.Mining.active` |
| Monster Hunting | `skills.Monster Hunting.active` |
| Pyromaniac | `skills.Pyromaniac.active` |
| Quarrying | `skills.Quarrying.active` |
| Riding | `skills.Riding.active` |
| Strength | `skills.Strength.active` |
| Woodcutting | `skills.Lumberjack.active` |

> **Note:** Skill names with spaces (e.g., Monster Hunting) must be quoted as YAML keys, but the config path used by the plugin does **not** include quotes:
> ```yaml
> skills:
> "Monster Hunting":
> active: false
> ```

> **Note:** The Woodcutting skill uses `Lumberjack` as its internal config key. Use `Lumberjack` when referencing it in `config.yml`. The `/ss force activate` and `/ss force deactivate` commands currently only accept single-word skill keys (e.g., `Lumberjack`, `Mining`) and cannot target skills whose names contain spaces such as `Monster Hunting`; toggle those via `config.yml` instead.

Skills can also be toggled at runtime using the admin commands `/ss force activate <skillName>` and `/ss force deactivate <skillName>` without restarting the server.

---

## message.yml

The `message.yml` file is located in `plugins/SimpleSkills/message.yml` on your server. It controls all user-facing messages displayed by the plugin.

### `message-version`

**Type:** String
**Default:** `0.2`
**Description:** Internal version identifier for the message file. Do not modify this manually.

---

### Message Keys

All message strings support Minecraft color codes using the `&` prefix (e.g., `&a` for green, `&b` for aqua, `&c` for red).

The following placeholders are available in specific messages:

| Placeholder | Used In | Description |
|---|---|---|
| `%version%` | `Default-Command` | The plugin version |
| `%author%` | `Default-Command` | The plugin author |
| `%nos%` | `Stats` | Number of skills |
| `%nopr%` | `Stats` | Number of player records |
| `%uns%` | `Stats` | Number of unknown skills |
| `%skill%` | `NoTop`, `Top-Header` | Skill name |
| `%rank%` | `Top-Body` | Player rank position |
| `%player%` | `Top-Body`, `SendInfo-Header` | Player name |
| `%top%` | `Top-Body` | Top player's level |
| `%skill%` | `SendInfo-Body` | Skill name |
| `%level%` | `SendInfo-Body`, `LevelUp` | Current skill level |
| `%min%` | `SendInfo-Body` | Current experience |
| `%max%` | `SendInfo-Body` | Experience required for next level |
| `%skillname%` | `Skill-Info` | Skill name |
| `%active%` | `Skill-Info` | Whether the skill is active |
| `%mlevel%` | `Skill-Info` | Max level of the skill |
| `%ber%` | `Skill-Info` | Base experience requirement |
| `%eif%` | `Skill-Info` | Experience increase factor |
Loading