# KartaBattlePass
KartaBattlePass 是一个灵活且功能丰富的 Spigot 版本的 Minecraft 服务器的战斗通行证插件。它允许服务器所有者创建季节性或持续性的战斗通行证,具有可自定义的等级、经验来源和强大的奖励系统。
## 功能
- **等级系统:** 玩家赚取经验并提升他们的战斗通行证等级。
- **顺序任务系统:** 玩家完成按顺序排列的类别中的任务。这提供了一个结构化的进度系统。
- **灵活的奖励系统:**
- 在专用的 `rewards.yml` 中定义每个等级的复杂奖励。
- 多种奖励类型:物品、命令、资金(通过 Vault)和权限(通过 Vault)。
- 支持 `free` 和 `premium` 独立的奖励轨道。
- **交互式 GUI:**
- `/bp` 打开主菜单以导航到其他 GUI。
- `/bp rewards`:一个用户友好的 GUI,供玩家查看和领取他们赚取的奖励。
- `/bp quests`:一个 GUI,用于查看任务类别和其中的任务,显示当前的进度。
- `/bp top`:一个排行榜,显示等级最高的玩家。
- **自动授予或手动领取:** 选择奖励是在升级时自动授予,还是玩家必须手动领取。
- **PlaceholderAPI 支持:** 集成占位符以显示战斗通行证信息。
- **管理员命令:** 用于管理玩家进度和重新加载插件的强大命令。
- **离线玩家支持:** 玩家数据被可靠地保存和加载。
## 依赖项
- **[Spigot/Paper/Folia](https://papermc.io/downloads)** (或其他 Bukkit 的分支) 1.21+
- **[PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)** (必需)
- **[Vault](https://www.spigotmc.org/resources/vault.34315/)** (可选,但对于 `money` 和 `permission` 奖励是必需的)
## 配置
#### 等级进度
您可以使用 `battlepass.exp-per-level-base` 设置来控制提升等级所需的经验量。使用的公式是 `EXP 需要 = current_level * exp-per-level-base`。
例如,如果 `exp-per-level-base` 是 `100`:
- 要从等级 1 提升到等级 2,你需要 `1 * 100 = 100` EXP。
- 要从等级 10 提升到等级 11,你需要 `10 * 100 = 1000` EXP。
### `quests.yml`
```yaml
# 在这里定义你的类别。
# 每个类别下的 'quests' 列表定义了顺序。
quest-categories:
mining:
display-name: "&b⛏ 挖掘任务"
display-item: "DIAMOND_PICKAXE"
quests:
- "mine_stone"
- "mine_coal"
- "mine_diamonds"
combat:
display-name: "&c⚔ 战斗任务"
display-item: "DIAMOND_SWORD"
quests:
- "kill_zombies"
- "kill_skeletons"
# 在这里定义单个任务。
# ID 必须与上面类别中使用的 ID 相匹配。
quests:
mine_stone:
type: "block-break"
target: "STONE"
amount: 64
exp: 50
display-name: "&7挖掘 64 块石头"
rewards:
- "eco give %player% 100"
kill_zombies:
type: "kill-mob"
target: "ZOMBIE"
amount: 10
exp: 25
display-name: "&2杀死 10 个僵尸"
rewards:
- "minecraft:give %player% minecraft:iron_sword 1"
# ... 以及所有其他任务
```
## 命令
- `/battlepass`, `/bp` - 主命令别名。
- `/bp rewards` - 打开奖励领取 GUI。
- `/bp quests` - 打开任务类别 GUI。
- `/bp top` - 打开排行榜 GUI。
- `/bp progress [player]` - 检查你或另一位玩家的进度。
- `/bp help` - 显示帮助消息。
### 管理员命令
- `/bp reload` - 重新加载插件配置。
- `/bp setxp ` - 设置玩家的经验。
- `/bp addxp ` - 向玩家添加经验。
- `/bp setlevel ` - 设置玩家的等级。
## 权限
- `kbattlepass.admin` - 授予访问所有管理员命令的权限。
- `kbattlepass.open` - 允许打开战斗通行证 GUI。
- `kbattlepass.claim` - 允许领取奖励。
- `kbattlepass.progress.others` - 允许查看其他玩家的进度。
- `kartabattlepass.premium` - 授予访问高级奖励轨道的权限。
## 占位符
- `%kartabattlepass_level%` - 玩家当前的战斗通行证等级。
- `%kartabattlepass_exp%` - 玩家当前的经验。
- `%kartabattlepass_exp_required%` - 下一个等级所需的经验。
- `%kartabattlepass_unclaimed_rewards%` - 玩家尚未领取的奖励数量。
- `%kartabattlepass_next_reward_level%` - 具有奖励的下一个等级。