Skip to content

插件变量

LyLotteryReload 通过 PlaceholderAPI 提供玩家抽奖数据变量,标识符为 lycj。可读取指定抽奖宝箱的中奖记录、累计抽奖次数、稀有奖池触发次数和累计奖励最大档位。

使用条件

  • 需要安装并启用 PlaceholderAPI。
  • LyLotteryReload 检测到 PlaceholderAPI 已启用后,才会注册 lycj 变量扩展。
  • 需要玩家上下文的变量只能由玩家解析。
  • 玩家数据尚未加载时,变量不会返回抽奖数据。

变量列表

变量返回内容返回类型
%lycj_log_宝箱id%玩家在指定宝箱中的中奖记录多行文本
%lycj_lottery_count_宝箱id%玩家在指定宝箱中的累计抽奖次数整数
%lycj_rare_count_宝箱id%玩家在指定宝箱中触发稀有奖池的次数整数
%lycj_count_reward_max_宝箱id%指定宝箱累计奖励配置中的最大次数档位整数

变量中的 宝箱id 必须对应宝箱配置文件中的 id 值,不是文件名,也不是奖池 ID。

例如宝箱配置为:

yaml
id: '示例宝箱'

读取该宝箱累计抽奖次数时,使用:

text
%lycj_lottery_count_示例宝箱%

current 参数

所有变量都支持将宝箱 ID 写为 current。当玩家当前打开的是 LyLotteryReload 抽奖界面时,插件会读取该界面绑定的宝箱 ID。

变量返回内容
%lycj_log_current%当前抽奖界面的中奖记录
%lycj_lottery_count_current%当前抽奖界面的累计抽奖次数
%lycj_rare_count_current%当前抽奖界面的稀有奖池触发次数
%lycj_count_reward_max_current%当前抽奖界面的累计奖励最大档位

current 只有在变量解析时,玩家的顶部容器确实是 LyLotteryReload 抽奖界面时,才会被替换为当前宝箱 ID。

以下情况无法取得当前宝箱 ID:

  • 玩家没有打开顶部界面。
  • 玩家打开的不是 LyLotteryReload 抽奖界面。
  • 变量解析时没有玩家对象。
  • 玩家数据尚未加载。

当无法解析当前界面时,插件会继续使用字符串 current 作为宝箱 ID。因此,次数类变量通常返回 0,记录变量返回空文本;累计奖励最大档位变量在找不到对应宝箱时返回代码中的默认值 9999999

中奖记录

text
%lycj_log_宝箱id%

返回玩家在指定宝箱中的中奖记录。

  • 多条记录使用换行符连接。
  • 最新记录位于最前面。
  • 没有记录时返回空文本。
  • 宝箱是否保存记录由宝箱配置中的 lottery-log-amount 决定。
  • lottery-log-amount0 时,不会保留该宝箱的中奖记录。

记录格式

记录显示格式由 config.yml 中的 lottery-log-format 控制:

yaml
lottery-log-format: '&7[{time}] &f{name}x{amount}'
占位内容说明
{time}中奖时间,格式为 月-日 时:分
{name}奖励展示物品名称;没有自定义名称时使用物品类型名称
{amount}奖励配置中的物品数量

记录中的内容在生成时会将 & 颜色代码转换为 Minecraft 颜色代码。

宝箱配置

yaml
lottery-log-amount: 10

该配置表示最多保留多少条该宝箱的中奖记录。新记录会插入到最前面,超过数量后从末尾删除旧记录。

累计抽奖次数

text
%lycj_lottery_count_宝箱id%

返回玩家在指定宝箱中的累计抽奖次数。

抽奖流程成功确定可用奖励后,插件会增加该宝箱的抽奖次数;如果抽奖条件不满足、奖池没有可用奖励或数据未加载,则不会通过该流程增加次数。

玩家没有该宝箱的抽奖次数数据时返回:

text
0

稀有奖池触发次数

text
%lycj_rare_count_宝箱id%

返回玩家在指定宝箱中触发稀有奖池的累计次数。

当本次抽奖通过低保次数或随机概率触发稀有奖池时,插件会增加该宝箱的稀有奖池次数。

以下情况返回:

text
0
  • 玩家尚未触发过该宝箱的稀有奖池。
  • 宝箱没有配置稀有奖池。
  • 玩家没有该宝箱的稀有奖池次数数据。

宝箱是否配置稀有奖池由 rare-reward 决定。例如:

yaml
rare-reward: '示例奖池'

如果删除该配置或配置的奖池不存在,稀有奖池不会生效。

累计奖励最大档位

text
%lycj_count_reward_max_宝箱id%

返回指定宝箱 accumulated-count-of-rewards 配置中的最大次数档位。

例如:

yaml
accumulated-count-of-rewards:
  10:
    item: 'CHEST:0'
    name: '&6累计抽奖{now_count}/10次礼包'
  30:
    item: 'CHEST:0'
    name: '&6累计抽奖{now_count}/30次礼包'
  70:
    item: 'CHEST:0'
    name: '&6累计抽奖{now_count}/70次礼包'

变量返回:

text
70

该变量表示配置中的最大次数档位,不表示玩家已经领取的档位,也不表示玩家当前可以领取的档位。变量读取的是宝箱配置,不读取玩家的累计奖励领取记录。

如果指定宝箱不存在,插件会返回代码中的默认值:

text
9999999

变量示例

用法说明
%lycj_log_示例宝箱%读取玩家在“示例宝箱”中的中奖记录
%lycj_lottery_count_示例宝箱%读取玩家在“示例宝箱”中的累计抽奖次数
%lycj_rare_count_示例宝箱%读取玩家在“示例宝箱”中触发稀有奖池的次数
%lycj_count_reward_max_示例宝箱%读取“示例宝箱”的累计奖励最大档位
%lycj_log_current%读取当前抽奖界面的中奖记录
%lycj_lottery_count_current%读取当前抽奖界面的累计抽奖次数
%lycj_rare_count_current%读取当前抽奖界面的稀有奖池触发次数
%lycj_count_reward_max_current%读取当前抽奖界面的累计奖励最大档位

返回规则

情况返回内容
玩家对象为空空文本
玩家数据尚未加载空文本
玩家没有指定宝箱的累计抽奖次数0
玩家没有指定宝箱的稀有奖池次数0
玩家没有指定宝箱的中奖记录空文本
变量名称不匹配已支持的格式红色“错误”文本
指定宝箱不存在,读取中奖记录空文本
指定宝箱不存在,读取累计抽奖次数0
指定宝箱不存在,读取稀有奖池次数0
指定宝箱不存在,读取累计奖励最大档位9999999

变量名称必须以以下格式开头:

text
log_
lottery_count_
rare_count_
count_reward_max_

数据存储

变量读取当前已加载的玩家抽奖数据,包括:

  • 各宝箱累计抽奖次数。
  • 各宝箱稀有奖池触发次数。
  • 各宝箱中奖记录。
  • 奖池内各奖励的抽中次数不由本页面变量直接提供。

默认情况下,玩家数据保存在插件数据目录中的 YAML 文件。启用 config.yml 中的 mysql.enable 后,玩家数据改为通过 MySQL 读取和保存。

yaml
mysql:
  enable: false

使用 MySQL 存储时必须满足以下条件:

  • 安装 LyMySQLCore。
  • LyMySQLCore 成功连接数据库。
  • LyLotteryReload 成功从数据库加载玩家数据。

如果没有安装 LyMySQLCore、数据库连接失败或玩家数据加载失败,依赖玩家数据的变量无法正常返回结果。修改 mysql.enable 后需要重启服务器。