福利·查看玩家信息 LyLookAt
LyLookAt 用于通过箱子界面查看在线玩家的装备、背包槽位或扩展插件槽位。玩家可以 Shift + 右键其他玩家打开默认界面,也可以通过命令指定目标玩家与界面 ID。
界面支持 PlaceholderAPI 变量、点击动作、条件判断、刷新与关闭,并可从原版背包或多个扩展背包插件中读取物品。
插件信息
| 项目 | 内容 |
|---|---|
| 插件名称 | LyLookAt |
| 项目版本 | 1.0.1 |
| Java 版本 | Java 8 |
| 构建 API | Paper 1.16.5-R0.1-SNAPSHOT |
| 主命令 | /lla |
| 作者 | 离渊 |
项目使用 Paper 1.16.5 API 编译,并包含旧版数字物品 ID与新版本英文材质名的兼容处理。项目文件没有声明完整的 Minecraft 支持版本范围,因此不能据此保证所有服务端版本均可正常运行。
玩法说明
- 玩家按住 Shift 右键另一名在线玩家时,打开
config.yml指定的界面。 - 玩家可以使用
/lla look [玩家] [界面ID]查看指定在线玩家。 - 每个界面由
plugins/LyLookAt/gui目录中的 YAML 文件定义。 - 一个界面可以同时展示目标玩家的原版装备、背包物品和扩展插件槽位。
- 查看者不能直接移动界面中的物品,界面内的点击事件会被取消。
- 关闭界面后,插件会清除本次查看状态。
- 界面按钮可以刷新物品、关闭界面、发送消息或执行指令。
clone动作允许 OP 将指定槽位物品的副本放入自己的背包。
目标玩家必须在线。目标离线、界面 ID 不存在时,插件会向命令执行者发送错误提示。
依赖说明
PlaceholderAPI
plugin.yml 将 PlaceholderAPI 声明为软依赖,但插件的界面标题、物品名称、Lore、条件判断、动作内容和目标玩家变量均通过 PlaceholderAPI 解析,因此实际使用时应安装并正常启动 PlaceholderAPI。
PlaceholderAPI 未启动时,插件会在控制台输出提示,lla 变量扩展也不会注册。
扩展槽位插件
扩展槽位插件仅在界面配置使用对应 plugin-item 来源时需要安装。
| 槽位来源 | plugin-item 格式 | 说明 |
|---|---|---|
| DragonCore | DragonCore#槽位名 | 读取龙核缓存槽位物品。 |
| GermPlugin | GermPlugin#槽位名 | 读取萌芽槽位物品。 |
| APInventory | APInventory#分页ID#槽位ID | 槽位 ID 按配置说明使用 0 至 53。 |
| LyInventory | LyInventory#背包ID#类型 | 读取离渊背包指定分类物品。 |
| LyInventoryReload | LyInventoryReload#背包ID#类型 | 与 LyInventory 使用相同的读取接口。 |
| YeeJewelry | YeeJewelry#背包ID#槽位ID | 读取清守饰品背包槽位。 |
| PXRPG | PXRPG#类型#背包ID#槽位 | 读取 PXRPG 装备容器中的物品。 |
插件没有 MySQL 存储功能,不需要 LyMySQLCore。
功能概览
玩家查看
- 支持 Shift + 右键玩家打开指定界面。
- 支持通过命令选择在线玩家和界面 ID。
- 支持同时存在多个 YAML 界面文件。
- 支持界面标题使用目标玩家的 PlaceholderAPI 变量。
- 支持手动刷新当前界面中的物品。
物品展示
- 支持读取目标玩家主手、副手和盔甲物品。
- 支持读取目标玩家原版背包
0至35号槽位。 - 支持读取 DragonCore、GermPlugin、APInventory、LyInventory、YeeJewelry 与 PXRPG 槽位。
- 扩展槽位为空、返回空气或未配置
plugin-item时,显示该槽位配置的默认物品。 - 默认物品支持数字 ID、英文材质名和子 ID。
- 默认物品名称与 Lore 支持颜色代码和 PlaceholderAPI 变量。
界面动作
- 支持不同点击方式执行不同动作。
- 支持直接执行动作列表。
- 支持根据变量表达式、拥有权限或缺少权限选择成功与失败动作。
- 支持向查看者或目标玩家发送消息。
- 支持由控制台、普通玩家或临时 OP 身份执行指令。
- 支持关闭或刷新当前界面。
- 支持 OP 复制槽位物品。
命令
| 命令 | 执行者 | 权限要求 | 说明 |
|---|---|---|---|
/lla | 控制台或玩家 | OP | 显示插件命令帮助。非 OP 执行时不会显示帮助内容。 |
/lla reload | 控制台或玩家 | OP | 重载 config.yml 和所有界面 YAML 文件。 |
/lla look [玩家] [界面ID] | 玩家 | 无独立权限检查 | 查看指定在线玩家的指定界面。控制台不能执行。 |
插件没有在 plugin.yml 中声明权限节点。管理命令通过是否为 OP 判断,look 子命令没有额外权限判断。
Tab 补全只向 OP 提供。代码会补全 reload、look 和界面 ID;普通玩家虽然可以执行 look,但不会获得插件提供的补全内容。
主配置
主配置文件为 plugins/LyLookAt/config.yml。
| 配置键 | 默认值 | 说明 |
|---|---|---|
shift-right-open-gui | 装备 | 玩家 Shift + 右键其他玩家时打开的界面 ID。留空或删除可用于停用该交互;填写的 ID 应与界面文件中的 id 一致。 |
yaml
# 是否启用 Shift + 右键玩家打开界面
# 填写界面 ID;留空时不指定默认界面
shift-right-open-gui: '装备'默认配置将 Shift + 右键界面设为 装备。
界面配置
界面文件存放在 plugins/LyLookAt/gui 目录。插件会递归读取该目录及子目录中的所有 .yml 文件。
重载时,插件会保留已有的默认 gui/装备.yml,不会覆盖管理员已经修改的同名文件。
界面基础配置
| 配置键 | 类型 | 默认行为 | 说明 |
|---|---|---|---|
id | 字符串 | 无有效默认 ID | 界面唯一 ID,供命令和 shift-right-open-gui 使用。 |
title | 字符串 | 使用 id | 界面标题,支持目标玩家的 PlaceholderAPI 变量。 |
size | 整数 | 6 | 界面行数,实际格数为行数乘以 9。 |
slot | 节点 | 必须存在 | 界面槽位配置,子键为界面格子编号。 |
yaml
id: '装备'
title: '&0查看装备: &n&l%player_name%'
size: 6
slot: {}槽位配置
| 配置键 | 默认值 | 说明 |
|---|---|---|
slot.编号.plugin-item | 空字符串 | 要读取的目标玩家槽位来源。留空、读取失败或物品为空时使用默认物品。 |
slot.编号.item | 160:0 | 默认物品材质,可填写英文材质名、数字 ID 或带子 ID 的格式。 |
slot.编号.name | 空字符串 | 默认物品名称,支持 & 颜色代码和 PlaceholderAPI 变量。 |
slot.编号.lore | 空列表 | 默认物品 Lore,支持 & 颜色代码和 PlaceholderAPI 变量。 |
slot.编号.action | 无 | 该槽位在不同点击方式下执行的动作。 |
plugin-item 成功读取到物品时,会直接展示读取到的物品;此时该槽位的 item、name 和 lore 仅作为空槽位的后备内容。
yaml
slot:
0:
plugin-item: 'Origin#MainHand'
item: '267:0'
name: '&f主手物品'
8:
item: 'BOOK:0'
name: '&f玩家信息'
lore:
- '&7名称: &b%player_name%'
- '&7等级: &b%player_level%'
- ''
- '&a[点击刷新]'原版槽位来源
plugin-item | 读取内容 |
|---|---|
Origin#MainHand | 目标玩家主手物品。 |
Origin#OffHand | 目标玩家副手物品。 |
Origin#Helmet | 目标玩家头盔。 |
Origin#ChestPlate | 目标玩家胸甲。 |
Origin#Legging | 目标玩家护腿。 |
Origin#Boots | 目标玩家靴子。 |
Origin2#MainHand | 使用旧版 Bukkit 接口读取目标玩家手中物品。 |
Minecraft#槽位ID | 读取目标玩家原版背包槽位,配置说明限定为 0 至 35。 |
yaml
slot:
0:
plugin-item: 'Origin#MainHand'
item: 'IRON_SWORD:0'
name: '&f主手为空'
1:
plugin-item: 'Minecraft#0'
item: 'STONE:0'
name: '&f背包槽位为空'点击方式
动作节点的键必须与 Bukkit 点击类型名称一致。
| 点击类型 | 触发方式 |
|---|---|
LEFT | 左键。 |
SHIFT_LEFT | Shift + 左键。 |
RIGHT | 右键。 |
SHIFT_RIGHT | Shift + 右键。 |
MIDDLE | 鼠标中键。 |
NUMBER_KEY | 数字键。 |
DOUBLE_CLICK | 双击。 |
DROP | 丢弃键。 |
CONTROL_DROP | Ctrl + 丢弃键。 |
CREATIVE | 创造模式复制点击。 |
动作列表
| 动作格式 | 说明 |
|---|---|
update | 重新读取目标玩家物品并刷新当前界面。 |
close | 关闭当前界面。 |
clone | 复制该槽位展示的物品到查看者背包,仅 OP 可以触发。 |
tell:target:内容 | 向被查看的目标玩家发送消息。 |
tell:me:内容 | 向查看者发送消息。 |
command_console:target:指令 | 由控制台执行指令,变量以目标玩家为上下文解析。 |
command_console:me:指令 | 由控制台执行指令,变量以查看者为上下文解析。 |
command_op:target:指令 | 查看者临时以 OP 身份执行指令,变量以目标玩家为上下文解析。 |
command_op:me:指令 | 查看者临时以 OP 身份执行指令,变量以查看者为上下文解析。 |
command:target:指令 | 查看者以普通身份执行指令,变量以目标玩家为上下文解析。 |
command:me:指令 | 查看者以普通身份执行指令,变量以查看者为上下文解析。 |
target 和 me 决定 PlaceholderAPI 变量的解析上下文。对于玩家执行类动作,真正执行指令的玩家始终是查看者。
动作解析使用冒号分隔参数,消息或指令内容不应继续包含未处理的冒号,否则后续内容可能无法被完整读取。
yaml
slot:
7:
item: 'PLAYER_HEAD:0'
name: '&f打招呼'
lore:
- '&a[点击]'
action:
LEFT:
- 'tell:target:你好,我是%player_name%'
MIDDLE:
- 'tell:me:我点击了中键'
RIGHT:
- 'close'条件动作
点击动作可以直接配置动作列表,也可以配置 condition、true-result 和 false-result。
| 配置键 | 说明 |
|---|---|
condition | 条件列表。全部条件通过时结果为真。 |
true-result | 条件全部通过后执行的动作。 |
false-result | 任意条件不通过后执行的动作。 |
条件类型
| 条件格式 | 说明 |
|---|---|
papi:{表达式} | 解析 PlaceholderAPI 变量后判断表达式。 |
permission:{权限节点} | 查看者拥有指定权限时通过。 |
nopermission:{权限节点} | 查看者没有指定权限时通过。 |
权限条件检查的是打开界面的查看者,不是被查看的目标玩家。
yaml
slot:
8:
item: 'BOOK:0'
name: '&f玩家信息'
action:
RIGHT:
condition:
- 'papi:{%player_level% > 0}'
- 'permission:{vip.1}'
true-result:
- 'update'
false-result:
- 'tell:me:你的条件不足'表达式能力
papi 条件支持以下运算:
| 类型 | 支持内容 |
|---|---|
| 数值比较 | >、<、>=、<=、==、!= |
| 数学运算 | +、-、*、/、圆括号 |
| 逻辑运算 | &&、` |
| 字符串比较 | 使用单引号或双引号包裹的字符串,可使用 ==、!= |
| 布尔值 | 无比较符时,只有 true 被判断为真。 |
逻辑判断会先按 || 分组,再判断每组中的 && 条件。
yaml
condition:
- 'papi:{%player_level% >= 10 && %player_level% < 50}'
- 'papi:{"%player_name%" != "Steve"}'PlaceholderAPI 变量
插件注册的变量标识符为 lla。这些变量依赖当前玩家正在进行的 LyLookAt 查看状态;没有打开 LyLookAt 界面时返回空字符串。
| 变量 | 返回内容 |
|---|---|
%lla_lookat_name% | 当前被查看目标玩家的名称。 |
%lla_lookat_变量名% | 使用目标玩家作为上下文解析 %变量名%。 |
例如 %lla_lookat_player_level% 会尝试读取目标玩家的 %player_level%。
text
%lla_lookat_name%
%lla_lookat_player_level%界面标题、默认物品名称和默认物品 Lore 本身已经使用目标玩家作为 PlaceholderAPI 上下文,因此这些位置可以直接填写 %player_name%、%player_level% 等变量。
默认界面
插件自带 装备 界面,默认包含以下内容:
- 目标玩家主手与副手物品。
- 目标玩家头盔、胸甲、护腿和靴子。
- 一个带多种点击消息动作的玩家头颅按钮。
- 一个显示玩家名称与等级的书本按钮。
- 书本按钮左键刷新界面。
- 书本按钮右键演示变量、拥有权限和缺少权限条件。
默认界面 ID 为 装备,也是 shift-right-open-gui 的默认值。
重载机制
执行 /lla reload 后,插件会:
- 保存缺失的默认配置文件。
- 重新读取
config.yml。 - 确保默认的
gui/装备.yml存在,但不覆盖已有文件。 - 清空内存中的旧界面数据。
- 递归加载
gui目录中的全部 YAML 界面。
每个界面文件会分别输出加载信息。文件内容无法解析时,控制台会输出该文件加载失败及异常信息。
注意事项
/lla look只能由玩家执行。- 命令目标必须是在线玩家。
- 界面 ID 区分具体字符串,应与 YAML 中的
id完全一致。 - 多个界面文件使用相同
id时,后加载的数据会覆盖先加载的数据。 size表示箱子行数,槽位编号必须处于实际界面范围内。- 所有 LyLookAt 界面点击都会被取消,不能直接取走展示物品。
clone只允许 OP 使用,但复制结果取决于该槽位最终构建出的物品。- 引用扩展插件槽位前,必须确保对应插件及其 API 在服务器中可用。
- PlaceholderAPI 扩展标识符
lla被其他扩展占用时,注册会失败并在控制台提示。