AdventurePlayerPoints
AdventurePlayerPoints 是 PlayerPoints 的兼容实现。它保留原插件名称、包名、API、事件和 /points 命令,但实际余额由 AdventureMoney 的 G币提供。
无缝映射
PlayerPoints 点数直接读取和修改 G币,避免维护两套余额。
API 兼容
提供常用 PlayerPointsAPI 调用与变更、重置事件。
命令兼容
保留 me、pay、give、take、set、reset、lead 等命令。
旧插件接入
优先于 TrMenu、AdventureMarket、AdventureMedal 加载。
| 项目版本 | 1.0.0 |
|---|---|
| 对外插件名 | PlayerPoints |
| 服务端 | Spigot / Paper 1.21.4,Java 21 |
| 必需依赖 | AdventureMoney |
| 余额来源 | AdventureMoney G币 |
所有 API 与命令最终作用于 G币;安装后不要再同时运行原版 PlayerPoints。
安装与迁移
- 先安装并启动 AdventureMoney 1.0.3。
- 停服并移除原版 PlayerPoints JAR,避免重复插件名。
- 将本项目产物
PlayerPoints-AdventureMoney.jar放入plugins/。 - 启动后确认 PlayerPoints 在 AdventureMoney 之后加载。
- 使用
/points me与/coin balance对照余额。
桥接插件只改变余额后端,不会读取原 PlayerPoints 数据库。迁移前需将旧点数批量转换或导入为 G币。
G币映射
| PlayerPoints 操作 | AdventureMoney 行为 |
|---|---|
look(UUID) | 读取 G币并向下取整为整数 |
give(UUID, n) | 增加 n G币 |
take(UUID, n) | 扣除 n G币 |
set(UUID, n) | 设置 G币 |
reset(UUID) | 将 G币归零 |
| 排行榜 | 按 G币降序生成 |
AdventureMoney 原生 G币支持一位小数,而 PlayerPoints API 使用整数。通过 PlayerPoints 读取时会向下取整;原生小数余额仍保留在 AdventureMoney 中。
API 与事件
插件沿用 org.black_ixx.playerpoints 命名空间,兼容常见的:
PlayerPoints#getAPI()PlayerPointsAPI#look/give/take/set/reset- 排序玩家与排行榜查询
PlayerPointsChangeEventPlayerPointsResetEventTransactionType
目标是服务器现有插件所需的常用 API,而非复刻原版所有内部类。使用冷门反射接口的插件应先在测试服验证。
插件兼容
| 插件 | 用途 |
|---|---|
| AdventureMoney | 必需,提供 G币账户和存储 |
| PlaceholderAPI | 由 AdventureMoney 提供 %amoney_points% 等变量 |
| Vault | 可选,供 AdventureMoney 银币系统使用 |
| TrMenu | 以 PlayerPoints 名称/API 读取点数 |
| AdventureMarket | 兼容点数支付 |
| AdventureMedal | playerPoints 购买类型 |
loadbefore 会让兼容桥先于 TrMenu、AdventureMarket、AdventureMedal 可用。
命令
根命令 /points,别名 /playerpoints。
| 命令 | 说明 |
|---|---|
/points me | 查看自己的点数 |
/points look <玩家> | 查看他人 |
/points pay <玩家> <数量> | 转账 |
/points lead [页码] | 排行榜 |
/points give|take|set <玩家> <数量> | 管理员修改 |
/points giveall <数量> | 发给全部在线玩家 |
/points reset <玩家> | 归零 |
/points broadcast <玩家> | 广播玩家点数 |
/points reload | 兼容命令 |
/points version | 版本 |
权限
| 权限 | 默认 |
|---|---|
playerpoints.basecommand | 所有人 |
playerpoints.me | 所有人 |
playerpoints.pay | 所有人 |
playerpoints.lead | 所有人 |
playerpoints.look | OP |
playerpoints.give/giveall/take/set/reset | OP |
playerpoints.reload/broadcast/version | OP |
playerpoints.* | OP,包含全部节点 |
故障排查
提示缺少 AdventureMoney
确认插件名精确为 AdventureMoney,版本已启用 CoinManager,且兼容桥没有被提前强制加载。
重复插件错误
删除原 PlayerPoints JAR。两者都声明 name: PlayerPoints,不能共存。
余额带小数但 points 显示整数
这是兼容设计:PlayerPoints API 为整数,读取时对 G币向下取整。使用 /coin balance 可查看原始一位小数。
第三方插件找不到类
确认其使用的是公开 PlayerPoints API;若依赖未实现的内部类,需要单独补充兼容层。