Skip to content

福利·查看玩家信息 LyLookAt

LyLookAt 用于通过箱子界面查看在线玩家的装备、背包槽位或扩展插件槽位。玩家可以 Shift + 右键其他玩家打开默认界面,也可以通过命令指定目标玩家与界面 ID。

界面支持 PlaceholderAPI 变量、点击动作、条件判断、刷新与关闭,并可从原版背包或多个扩展背包插件中读取物品。

插件信息

项目内容
插件名称LyLookAt
项目版本1.0.1
Java 版本Java 8
构建 APIPaper 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 格式说明
DragonCoreDragonCore#槽位名读取龙核缓存槽位物品。
GermPluginGermPlugin#槽位名读取萌芽槽位物品。
APInventoryAPInventory#分页ID#槽位ID槽位 ID 按配置说明使用 053
LyInventoryLyInventory#背包ID#类型读取离渊背包指定分类物品。
LyInventoryReloadLyInventoryReload#背包ID#类型LyInventory 使用相同的读取接口。
YeeJewelryYeeJewelry#背包ID#槽位ID读取清守饰品背包槽位。
PXRPGPXRPG#类型#背包ID#槽位读取 PXRPG 装备容器中的物品。

插件没有 MySQL 存储功能,不需要 LyMySQLCore。

功能概览

玩家查看

  • 支持 Shift + 右键玩家打开指定界面。
  • 支持通过命令选择在线玩家和界面 ID。
  • 支持同时存在多个 YAML 界面文件。
  • 支持界面标题使用目标玩家的 PlaceholderAPI 变量。
  • 支持手动刷新当前界面中的物品。

物品展示

  • 支持读取目标玩家主手、副手和盔甲物品。
  • 支持读取目标玩家原版背包 035 号槽位。
  • 支持读取 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 提供。代码会补全 reloadlook 和界面 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.编号.item160:0默认物品材质,可填写英文材质名、数字 ID 或带子 ID 的格式。
slot.编号.name空字符串默认物品名称,支持 & 颜色代码和 PlaceholderAPI 变量。
slot.编号.lore空列表默认物品 Lore,支持 & 颜色代码和 PlaceholderAPI 变量。
slot.编号.action该槽位在不同点击方式下执行的动作。

plugin-item 成功读取到物品时,会直接展示读取到的物品;此时该槽位的 itemnamelore 仅作为空槽位的后备内容。

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读取目标玩家原版背包槽位,配置说明限定为 035
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_LEFTShift + 左键。
RIGHT右键。
SHIFT_RIGHTShift + 右键。
MIDDLE鼠标中键。
NUMBER_KEY数字键。
DOUBLE_CLICK双击。
DROP丢弃键。
CONTROL_DROPCtrl + 丢弃键。
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:指令查看者以普通身份执行指令,变量以查看者为上下文解析。

targetme 决定 PlaceholderAPI 变量的解析上下文。对于玩家执行类动作,真正执行指令的玩家始终是查看者。

动作解析使用冒号分隔参数,消息或指令内容不应继续包含未处理的冒号,否则后续内容可能无法被完整读取。

yaml
slot:
  7:
    item: 'PLAYER_HEAD:0'
    name: '&f打招呼'
    lore:
      - '&a[点击]'
    action:
      LEFT:
        - 'tell:target:你好,我是%player_name%'
      MIDDLE:
        - 'tell:me:我点击了中键'
      RIGHT:
        - 'close'

条件动作

点击动作可以直接配置动作列表,也可以配置 conditiontrue-resultfalse-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 后,插件会:

  1. 保存缺失的默认配置文件。
  2. 重新读取 config.yml
  3. 确保默认的 gui/装备.yml 存在,但不覆盖已有文件。
  4. 清空内存中的旧界面数据。
  5. 递归加载 gui 目录中的全部 YAML 界面。

每个界面文件会分别输出加载信息。文件内容无法解析时,控制台会输出该文件加载失败及异常信息。

注意事项

  • /lla look 只能由玩家执行。
  • 命令目标必须是在线玩家。
  • 界面 ID 区分具体字符串,应与 YAML 中的 id 完全一致。
  • 多个界面文件使用相同 id 时,后加载的数据会覆盖先加载的数据。
  • size 表示箱子行数,槽位编号必须处于实际界面范围内。
  • 所有 LyLookAt 界面点击都会被取消,不能直接取走展示物品。
  • clone 只允许 OP 使用,但复制结果取决于该槽位最终构建出的物品。
  • 引用扩展插件槽位前,必须确保对应插件及其 API 在服务器中可用。
  • PlaceholderAPI 扩展标识符 lla 被其他扩展占用时,注册会失败并在控制台提示。