插件介绍

它不是“充值接口”,而是“充值数据中枢”

对接点券/宝石后,你最缺的通常不是“加点”,而是统计、奖励、风控、礼品券这些运营能力。MythicPlayerPoints 就是为这块准备的。

MythicPlayerPoints 是一个围绕 PlayerPoints(宝石)搭建的运营插件,提供累计充值统计、充值奖励领取、礼品券发放与兑换、排行榜展示/奖励,以及异常变动监控(冻结/确认)等能力。

说人话:它帮你把“宝石变动”变成可运营的数据:能查、能控、能发奖励、能做榜单、还能做礼品券礼包。

主要功能

  • 累计充值统计 —— 记录玩家累计宝石、等值金额、充值次数、最后充值时间
  • 异常监控/冻结 —— 监控宝石异常增量并进入冻结处理流程(阈值/时间窗可配)
  • 累计充值奖励 —— 按档位发放奖励,支持命令奖励与物品奖励(GUI 展示/编辑)
  • 礼品券系统 —— 支持配置多种礼品券类型(面额/显示名),可发放、扣除、查询、展示总价值
  • 礼品券礼包 —— 通过 GUI 预览与兑换(用 1 张券换 1 份礼包内容)
  • 充值排行榜 —— 支持周期榜(如日/周/月),并可配置排行榜奖励
  • 存储可选 —— YAML(本地文件)或 MySQL(表前缀可配)
  • PAPI 占位符 —— 计分板/TAB/聊天前缀快速展示“累计充值、金额、礼品券、排行”等

命令列表

主命令:/cz(别名:/czadmin/gemmonitor

命令说明权限
/cz help帮助无(部分子命令需权限)
/cz reward打开累计充值奖励界面(领取/查看)默认可用(具体以服内设定为准)
/cz rank打开充值排行榜界面默认可用(具体以服内设定为准)
/cz add <玩家> <数量>给玩家增加宝石(PlayerPoints)mythicplayerpoints.command.add
/cz open打开冻结管理等管理界面(视实现)mythicplayerpoints.command.open
/cz create创建/初始化相关数据(视实现)mythicplayerpoints.command.create
/cz remove移除/清理相关数据(视实现)mythicplayerpoints.command.remove
/cz player ...玩家数据相关管理命令(视实现)mythicplayerpoints.command.player
/cz serverstats服务器统计(视实现)mythicplayerpoints.command.player
/cz reload重载配置mythicplayerpoints.command.reload
/cz lp ...礼品券礼包编辑(管理员)mythicplayerpoints.voucher.admin
/cz lpq查询礼品券礼包信息(视实现)无/或管理员(以服内为准)

礼品券管理命令:/czs(别名:/vouchercmd/giftcard

命令说明权限
/czs give <类型> <玩家> <数量>给在线玩家发放礼品券mythicplayerpoints.voucher.give
/czs take <类型> <玩家> <数量>扣除在线玩家礼品券mythicplayerpoints.voucher.take
/czs check <玩家>查看在线玩家礼品券明细与总价值mythicplayerpoints.voucher.check
/czs list列出所有礼品券类型(面额/名字)mythicplayerpoints.voucher.admin
/czs help帮助mythicplayerpoints.voucher.admin

/czs 当前只支持对在线玩家操作(give/take/check)。

权限节点

权限说明默认
mythicplayerpoints.admin管理员总权限(包含 add/open/create/remove/player/reload 等子权限)OP
mythicplayerpoints.command.add允许 /cz addOP
mythicplayerpoints.command.open允许 /cz openOP
mythicplayerpoints.command.create允许 /cz createOP
mythicplayerpoints.command.remove允许 /cz removeOP
mythicplayerpoints.command.player允许 /cz playerOP
mythicplayerpoints.command.reload允许 /cz reloadOP
mythicplayerpoints.voucher.admin礼品券系统管理员(包含 give/take/check)OP
mythicplayerpoints.voucher.give允许 /czs giveOP
mythicplayerpoints.voucher.take允许 /czs takeOP
mythicplayerpoints.voucher.check允许 /czs checkOP

PlaceholderAPI 占位符

需要安装 PlaceholderAPI 才能使用。插件注册的占位符标识符为 mpp

累计充值

占位符说明
%mpp_recharge%累计充值宝石数(整数)
%mpp_recharge_formatted%累计充值宝石数(千分位)
%mpp_recharge_currency%等值金额(按比例换算,整数/字符串)
%mpp_recharge_currency_formatted%等值金额(两位小数)
%mpp_recharge_with_unit%完整金额显示(货币符号 + 金额 + 单位)
%mpp_recharge_count%充值次数
%mpp_has_recharged%是否充值过(true/false)
%mpp_last_recharge_time%最后充值时间(yyyy-MM-dd HH:mm:ss)
%mpp_last_recharge_time_short%最后充值时间(MM-dd HH:mm)
%mpp_currency_symbol%货币符号(来自配置)
%mpp_currency_unit%货币单位(来自配置)

礼品券

占位符说明
%mpp_voucher_<类型>%指定类型礼品券数量(类型=配置里的键名,例如 328元礼品券)
%mpp_voucher_total_value%所有礼品券总价值(元)
%mpp_voucher_total_value_formatted%所有礼品券总价值(千分位)

排行榜(PAPI 高级用法)

支持按周期取榜单/自身信息(period 可用:daily/weekly/monthly):

占位符说明
%mpp_rank_<period>_self_rank%自己名次(无则 N/A)
%mpp_rank_<period>_self_amount%自己本期充值宝石数
%mpp_rank_<period>_self_currency%自己本期充值等值金额
%mpp_rank_<period>_1_name%第 1 名玩家名
%mpp_rank_<period>_1_amount%第 1 名充值宝石数
%mpp_rank_<period>_1_currency%第 1 名等值金额

使用教程

安装依赖

安装 VaultPlayerPoints(这两个是硬依赖)。如需计分板变量,再装 PlaceholderAPI。

选择存储

config.yml 里设置 storage.typeYAMLMYSQL,并填好数据库信息。

配置礼品券类型

gift_vouchers 下添加礼品券类型(面额 value、显示名 display_name)。

配置累计充值奖励

recharge_rewards 下配置档位;或用 GUI 编辑(如你已做了编辑器入口)。

重载配置

/cz reload

发券与展示

/czs give 328元礼品券 玩家 1,然后用 %mpp_voucher_328元礼品券% 在计分板展示。

存储方式

默认支持两种存储:

YAML(本地文件)

配置简单、无需数据库,适合单服小规模使用。

MySQL

更稳定,适合数据量大或需要更强一致性的环境;支持表前缀。

关键配置

配置文件路径:plugins/MythicPlayerPoints/config.yml

存储配置

YAMLconfig.yml
storage:
  type: MYSQL  # YAML / MYSQL
  mysql:
    host: 127.0.0.1
    port: 3306
    database: playerpoints
    username: root
    password: password
    table-prefix: mpp_

异常监控

YAMLconfig.yml
detection:
  threshold: 10000     # 异常阈值(宝石)
  time-window: 12      # 时间窗口(小时)
  monitor-duration: 120
  max-retry: 3

转账限制与手续费

YAMLconfig.yml
transfer:
  daily_limit: 50000
  fee_percent: 15

显示(宝石 → 金额)

YAMLconfig.yml
display:
  gems_to_currency_ratio: 100
  currency_unit: "元"
  currency_symbol: "¥"

礼品券系统

礼品券类型在 gift_vouchers 下配置。键名就是“类型”,会同时用于 /czs 命令与 PAPI 变量。

YAMLconfig.yml
gift_vouchers:
  328元礼品券:
    value: 328
    display_name: "§6328元礼品券"
  648元礼品券:
    value: 648
    display_name: "§b648元礼品券"

如果你的礼品券类型里带空格或特殊符号,会影响命令输入体验。建议用“中文+数字”这种不含空格的命名。

累计充值奖励

累计充值奖励位于 recharge_rewards 下,每个档位包含:显示名、门槛、图标,以及命令奖励等。

YAMLconfig.yml
recharge_rewards:
  reward_001:
    name: "§6累计充值6元奖励 §7[第1档]"
    required_amount: 600
    icon:
      material: PAPER
      custom_model_data: 11997
    commands:
      - "vault:1000"

required_amount 是“宝石门槛”。如果你设置了 gems_to_currency_ratio: 100,那“100 宝石=1 元”,则 6 元对应 600 宝石。

充值排行榜

插件内置排行榜管理与 GUI 展示,并提供 PAPI 占位符读取榜单名次与金额。适合做“每日/每周/每月”充值榜与对应奖励。

依赖插件

插件是否必须说明
Vault必须用于经济相关与依赖检查(plugin.yml depend)
PlayerPoints必须宝石系统核心(plugin.yml depend)
PlaceholderAPI可选启用 %mpp_*% 占位符
MySQL可选storage.type=MYSQL 时需要

常见问题

确认已安装 PlaceholderAPI,并重启服务器(或确保扩展已注册)。变量标识符为 mpp
当前礼品券命令对目标玩家使用 Bukkit 在线对象处理,因此仅支持在线玩家。需要离线发券的话,可以后续扩展为离线玩家名解析 + UUID 存储。
required_amount 为宝石门槛;显示金额是通过 display.gems_to_currency_ratio 换算出来的。