generate-message-systemlisted
Install: claude install-skill MrPippi/MJP-Claude-Skills
# Generate Message System Skill
## 目標
依使用者提供的訊息鍵值清單,自動產生:
- `messages.yml` 設定檔(含前綴、所有訊息鍵值、繁體中文預設值)
- `MessageManager.java` 工具類別(讀取、替換佔位符、傳送給玩家/控制台)
---
## 使用流程
1. **詢問訊息鍵值清單**:使用者列出需要的訊息 key(例:`no-permission`, `reload-success`)
2. **詢問格式化系統**:`minimessage`(推薦)或 `legacy`(舊版色碼)
3. **詢問是否整合 PlaceholderAPI**:是否需要 `%player_name%` 等佔位符
4. **產生 messages.yml**:含前綴與所有訊息鍵值的繁體中文預設值
5. **產生 MessageManager.java**:依選擇格式輸出對應版本
6. **說明在主類中的初始化方式**
---
## 輸入參數說明
| 參數 | 說明 | 範例 |
|------|------|------|
| `message_keys` | 訊息鍵值清單 | `no-permission`, `player-only`, `reload-success` |
| `format` | 格式化系統 | `minimessage`(預設)或 `legacy`(&a, &c 色碼) |
| `use_papi` | 是否整合 PlaceholderAPI | `true` / `false` |
---
## 代碼範本
### 1. messages.yml
```yaml
# MPS — messages.yml
# 支援 MiniMessage 格式:https://docs.advntr.dev/minimessage/format.html
# 顏色標籤範例:<green>成功</green>、<red>錯誤</red>、<yellow>警告</yellow>
# 若使用 Legacy 格式(legacy: true),請使用 &a、&c、&e 等色碼。
prefix: "<dark_aqua>[MyPlugin]</dark_aqua> "
messages:
no-permission: "<red>你沒有執行此操作的權限。</red>"
player-only: "<yellow>此指令僅限玩家執行。</yellow>"
reload-success: "<green>設定檔已重新載入。</green>"
invalid-args: "<red>用法錯誤。請輸入 /<command> help 查看說明。</red>"
```
**規則:**
- 前綴統一放在 `prefix` 鍵,MessageManager 自動附加
- MiniMessage 格式使用 `<tag>` 語法;Legacy 格式使用 `&` 色碼
- 使用 `{placeholder}` 表示動態替換的佔位符
---
### 2. MessageManager.java(MiniMessage 版本)
```java
package com.example.myplugin.manager;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimes