插件变量
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-amount为0时,不会保留该宝箱的中奖记录。
记录格式
记录显示格式由 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 后需要重启服务器。