integrate-vaultlisted
Install: claude install-skill MrPippi/MJP-Claude-Skills
# Integrate Vault Skill
## 目標
為 Bukkit/Paper 插件正確接入 Vault 經濟 API,產生 `EconomyManager` 類別,封裝常用的餘額查詢、存款、扣款操作,並處理 Vault 未安裝時的降級或停用邏輯。
---
## 使用流程
1. **確認基本資訊**:插件名稱、套件名、Vault 是 `depend`(必裝)還是 `softdepend`(選裝)
2. **更新 pom.xml**:加入 Vault API 依賴(`provided` scope)
3. **更新 plugin.yml**:宣告 `depend` 或 `softdepend`
4. **產生 EconomyManager.java**:含初始化、存取餘額、存款、扣款、關閉
---
## pom.xml 依賴
```xml
<!-- Vault API(不需打包進 JAR,伺服器端提供) -->
<dependency>
<groupId>com.github.MilkBowl</groupId>
<artifactId>VaultAPI</artifactId>
<version>1.7.1</version>
<scope>provided</scope>
</dependency>
```
需在 `pom.xml` 的 `<repositories>` 加入 JitPack:
```xml
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
```
---
## plugin.yml 宣告
**必裝模式(depend):**
```yaml
depend: [Vault]
```
**選裝模式(softdepend):**
```yaml
softdepend: [Vault]
```
---
## 代碼範本
### EconomyManager.java
```java
package com.example.myplugin.managers;
import com.example.myplugin.MyPlugin;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.economy.EconomyResponse;
import org.bukkit.OfflinePlayer;
import org.bukkit.plugin.RegisteredServiceProvider;
public class EconomyManager {
private final MyPlugin plugin;
private Economy economy;
public EconomyManager(MyPlugin plugin) {
this.plugin = plugin;
}
// ---- 初始化 ----
/**
* 嘗試取得 Vault Economy 服務。
* @return true 若成功取得,false 若 Vault 未安裝或無經濟插件
*/
public boolean setupEconomy() {