• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
资源图标

原创 闭源 娱乐 HangProfile - 航式面板 1.0.5

请登录后获取
版权类型
原创
插件中文名称
航式面板
插件英文名称
HangProfile
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Folia
  4. Purpur
  5. PufferFish
  6. SpongeVanilla
  7. Leaves
  8. 其他核心
语言支持
中文(简体)
适配版本(Java)
  1. 最新版本
  2. 26.x
  3. 1.21
  4. 1.20
  5. 1.19
  6. 1.18
  7. 1.17
  8. 1.16
  9. 1.15
  10. 1.14
  11. 1.13
  12. 1.12
  13. 1.11
  14. 1.10
  15. 1.9
  16. 1.8
[MD] # HangProfile - 玩家信息面板插件 ![版本](https://img.shields.io/badge/版本-1.0.0-blue) ![兼容](https://img.shields.io/badge/兼容-1.8--26.2-green) ![Folia](https://img.shields.io/badge/Folia-已支持-brightgreen) ![作者](https://img.shields.io/badge/作者-hangzong%28航总%29-orange) > **Hang系列插件 - 蹲下右键身边的玩家,当场看清他的装备、血量与坐标** --- ## 📖 插件简介 **HangProfile** 是一款**玩家信息面板**插件。蹲下右键任意玩家即可弹出他的信息面板:头颅换成他的皮肤,头盔到靴子连附魔和耐久一起原样展示,主手副手同样在列,再配上血量、等级、坐标、金钱、Ping。也可以用 `/hp <玩家>` 隔着地图查看。 面板布局**完全写在配置里**:头颅位、六个装备位、按钮任意增删,槽位、物品、名称、描述、点击动作全部可改,改完 `/hangprofile reload` 就生效,不用重启。物品名支持 PlaceholderAPI 变量,也支持 CraftEngine 自定义物品,同一个格子能按被查看者的身份显示不同图标。 > 🎯 适用于生存服、RPG 服、PvP 服等需要快速查看他人信息的服务器 --- ## 🎮 玩法说明 1. 玩家**蹲下右键**另一个玩家,信息面板立刻打开 2. 面板中央是对方的**头颅**,皮肤自动换成被查看者 3. 左右两侧按配置摆出**头盔 / 胸甲 / 护腿 / 靴子 / 主手 / 副手**,附魔与耐久原样保留,空位显示占位玻璃板 4. 描述里给出**血量、等级、坐标、金钱、Ping**,金钱需要 Vault + 经济插件 5. 点击下方按钮可**加好友 / 请求传送 / 私聊 / 请求交易**,按钮内容与命令都能改 6. 也可以用 `/hp <玩家>` **隔着地图**打开,不必贴身 被查看者持有 `hangprofile.exempt` 时会被拦下,但管理员无视这条限制。隐身玩家(Vanish 类插件走的 `hidePlayer`)对查看者一律视为不在线,连 Tab 补全都不出现,免得命令变成隐身探测器。Citizens 这类 NPC 虽然也是 Player 实体,但没有真实玩家数据,直接放行不干扰它自己的商店与任务交互。 --- ## ✨ 功能特性 ### 查看方式 - 👆 **蹲下右键** — 是否需要蹲下可关,关掉就是直接右键。两个 interact 事件都接:Bukkit 的 HandlerList 不是继承式的,只注册父事件会在 INTERACT_AT 被别的插件消耗时表现为「右键毫无反应」 - ⌨️ **命令查看** — `/hp <玩家>` 隔空查看,可单独关闭;`allow-self` 允许查看自己,这是蹲下右键做不到的事 - ⏱️ **共用冷却** — 右键与命令共用同一份冷却记录,玩家无法交替使用两种方式绕过频率限制;命令拼错、玩家不在线这类失败不消耗冷却 - 📏 **距离限制** — 命令查看可限制最远格数,跨世界先比对世界 UID 再算距离,避免 `distanceSquared` 直接抛异常 ### 面板内容 - 🎽 **六个装备位** — 头盔 / 胸甲 / 护腿 / 靴子 / 主手 / 副手,含附魔与耐久原样展示,槽位填 `-1` 即不展示 - 🧤 **副手自动降级** — 1.8 没有副手概念,该槽位显示占位物品而不是报错 - 👤 **头颅换皮肤** — 头颅自动换成被查看者的皮肤,非头颅物品自动跳过;拿贴图写死的装饰性头颅当图标时可用 `use-target-skin: false` 关掉 - 🔒 **只读保护** — 点击与拖拽一律取消,shift 点击往面板里塞东西同样拦下 ### 按钮与外观 - 🎛️ **按钮任意增删** — 槽位、物品、名称、描述、动作全在 `gui.yml`,加按钮不用改代码 - ⚡ **四种点击动作** — `COMMAND` 以控制台或查看者身份执行命令 / `MESSAGE` 发消息 / `CLOSE` 关闭面板 / `NONE` 纯展示;命令会先关面板再延迟一 tick 执行,避免与容器状态打架 - 🧱 **背景填充** — 空槽位用玻璃板填满,物品与名称可改 - ✂️ **标题自动裁剪** — 1.8~1.12 的容器标题上限 32 字符,超出会让客户端收到畸形数据包,插件按版本自动裁剪并去掉末尾残留的半个颜色代码 ### 变量与集成 - 🔤 **9 个内置变量** — `%target%` `%viewer%` `%health%` `%max_health%` `%level%` `%world%` `%x%` `%y%` `%z%` `%ping%` `%money%`,均以被查看者为对象 - 🧩 **PlaceholderAPI** — 装了就自动启用,反射调用,面板里任何文本都能写第三方变量 - 💰 **Vault 经济** — `%money%` 走 Vault,取不到显示 `N/A`;经济插件可能比本插件晚注册服务,所以每次取不到都会重试而不是启动时放弃一次就永久关闭 - 🎨 **CraftEngine 物品** — `material: ce:命名空间:物品id` 直接调用它的自定义物品,前缀后整段原样交给 CraftEngine 解析 - 🖼️ **物品名可用变量** — `material: "%myplugin_vip_icon%"` 让不同玩家看到不同图标;不含变量的物品名只在启动时解析一次,含变量的每次开面板重新解析 ### 执行与管理 - 📜 **打开面板执行命令** — 右键与命令两条路径共用同一份列表,可按**控制台 / 查看者 / 被查看者**三种身份执行,每条命令的延迟可单独配 - 🛡️ **免被查看权限** — `hangprofile.exempt` 让玩家不被他人查看,管理员无视此限制 - 👻 **隐身兼容** — 对查看者不可见的玩家一律视为不在线,Tab 补全里也不出现 - 🤖 **NPC 兼容** — Citizens 这类 NPC 直接放行,不吃掉它自己的交互事件 - 📍 **报错带行号** — 物品名写错、`executor` 填错时,控制台警告直接指出是哪个文件第几行,照着改即可 - 🔄 **热重载** — `/hangprofile reload` 重载全部配置 - 🧵 **Folia 支持** — 按全局 / 实体两类调度器分派:控制台命令走 `GlobalRegionScheduler`,玩家相关操作走 `EntityScheduler`;命令路径先跳目标区域读数据、再跳回查看者区域开界面 - 📊 **启动自检横幅** — 服务端核心、物品体系、按钮数、装备位数、触发方式、PlaceholderAPI / Vault / CraftEngine / Folia 接入状态一次列清 --- ## 📋 指令列表 | 指令 | 说明 | 权限 | |------|------|------| | `/hangprofile` | 查看插件信息与可用用法 | 无 | | `/hangprofile view <玩家>` | 打开该玩家的信息面板 | `hangprofile.command` | | `/hangprofile <玩家>` | 同上,`view` 的简写 | `hangprofile.command` | | `/hangprofile reload` | 重载全部配置文件 | `hangprofile.admin` | > 💡 命令别名:`/hp`、`/hangp`,例如 `/hp Steve` > > 玩家名支持 Tab 补全,精确匹配优先、其次前缀匹配。隐身玩家与 NPC 不参与补全。 > > 子命令拼错(如 `/hp reloa`)会走简写路径,除「玩家不在线」外还会补一行正确用法。 --- ## 🔑 权限节点 | 权限 | 说明 | 默认 | |------|------|------| | `hangprofile.use` | 允许蹲下右键查看玩家信息面板 | 所有玩家 | | `hangprofile.command` | 允许用 `/hangprofile view <玩家>` 命令查看 | 所有玩家 | | `hangprofile.exempt` | 持有者不会被其他人查看(管理员除外) | 关闭 | | `hangprofile.admin` | 允许重载配置,并可无视 `hangprofile.exempt` | OP | 面板默认显示被查看者的坐标,PvP / 生存服若不希望玩家隔空查坐标,把 `hangprofile.command` 收回给管理员即可,普通玩家仍可蹲下右键查看。 --- ## ⚙️ 配置文件 配置分三个文件,各管一件事:`config.yml` 管触发与冷却,`messages.yml` 管全部提示消息,`gui.yml` 管面板外观。 ### 触发方式与冷却(config.yml) ```yaml settings: trigger: # 是否需要蹲下才能触发 (防止误触,日常右键交互不受影响) sneak: true # 是否启用右键触发 (关闭则禁用蹲下右键查看功能) right-click: true command: enabled: true # 是否允许用命令查看自己的面板 (蹲下右键做不到这件事,只能靠命令) allow-self: true # 命令查看的最大距离(方块),-1 表示不限制 # # 注意: gui.yml 的 info.lore 默认会显示目标的坐标,而命令不像右键那样需要 # 贴身,若不限距离,任何玩家都能随时查到全服任意玩家的坐标。 max-distance: -1 # 查看冷却(毫秒) - 防止频繁右键/命令刷屏打开面板 cooldown: 1000 # 被查看时是否提示对方 (开启后对方会知道有人在看他) notify-target: false ``` ### 打开面板时执行命令(config.yml) 右键与命令两条路径共用同一份列表,每条命令三个字段: ```yaml settings: open-commands: enabled: false # 默认延迟(tick) - 列表里没单独写 delay-ticks 的条目用这个值,最小 1 default-delay-ticks: 1 list: - executor: console command: "tell %viewer% 你正在查看 %target% 的信息面板" # 以查看者身份执行,等同于他自己敲这条命令 #- executor: viewer # command: "me 看了一眼 %target%" # 单独指定延迟 - 面板打开 2 秒后才执行,不受 default-delay-ticks 影响 #- executor: console # command: "tell %viewer% 这是 2 秒后发的" # delay-ticks: 40 ``` `executor` 三个取值:`console` 控制台执行(权限等同 OP)、`viewer` 以查看者身份执行、`target` 以被查看者身份执行,后两者受其自身权限限制。 两条容错规则不一样,是故意的:`executor` **写错会跳过整条命令**并报出行号,绝不退回 `console`——悄悄按控制台执行等于把一条玩家命令提权成 OP 命令;`delay-ticks` 写坏了只**退回默认值并警告**,填 0 或负数按 1 处理,延迟填错顶多是时机不对。 命令里再开一个 GUI 会覆盖掉本面板,想让玩家先看清面板就把这条的 `delay-ticks` 调大(如 `40` = 2 秒)。 ### 面板与装备槽位(gui.yml) ```yaml gui: # 支持 %target% %viewer% 变量,会随目标玩家变化 title: "&8%target% &7的信息面板" rows: 6 # 1-6 行,对应 9/18/27/36/45/54 格 info: enabled: true slot: 4 material: PLAYER_HEAD # 是否把这个头颅的皮肤换成「被查看玩家」的。非头颅物品自动跳过。 # 唯一需要关掉的场景: 拿一个贴图写死的装饰性头颅当图标 use-target-skin: true name: "&e%target%" lore: - "&7生命: &c%health%&7/&c%max_health%" - "&7等级: &a%level%" - "&7坐标: &f%world% %x%, %y%, %z%" - "&7金钱: &6%money%" - "&7Ping: &f%ping%ms" equipment: helmet: 10 chestplate: 19 leggings: 28 boots: 37 main-hand: 22 off-hand: 24 # 1.8 没有副手概念,该槽位会显示为占位物品 empty-material: LIGHT_GRAY_STAINED_GLASS_PANE empty-name: "&7空" ``` 变量含义:`%target%` 被查看者名字,`%viewer%` 查看者名字,`%health%` / `%max_health%` 当前与最大生命,`%level%` 等级,`%world%` 所在世界,`%x%` `%y%` `%z%` 整数坐标,`%ping%` 延迟(取不到显示 `-1`),`%money%` 金钱(需 Vault + 经济插件,取不到显示 `N/A`)。除 `%viewer%` 外全部以被查看者为对象,PlaceholderAPI 变量同理。 ### 按钮(gui.yml) 槽位冲突时按钮会覆盖装备,建议把按钮放在装备槽位之外: ```yaml buttons: add-friend: slot: 40 material: EMERALD name: "&a添加好友" lore: - "&7点击向 &e%target% &7发送好友请求" action: type: COMMAND console: false # true 则以控制台身份执行 command: "friend add %target%" msg: slot: 42 material: PAPER name: "&d私聊" action: type: MESSAGE message: "&7请在聊天框输入: &f/msg %target% <内容>" close: slot: 49 material: RED_STAINED_GLASS_PANE name: "&c关闭面板" action: type: CLOSE ``` ### 物品名的三种写法 1.13 的扁平化改动重命名了大量物品并去掉了 data 值,插件内置双向映射,新旧写法都认: ```text 现代写法 (1.13+) 老写法 (1.8~1.12) 数字 ID (仅 1.8~1.12) PLAYER_HEAD SKULL_ITEM:3 397:3 LIGHT_BLUE_STAINED_GLASS_PANE STAINED_GLASS_PANE:3 160:3 RED_STAINED_GLASS_PANE STAINED_GLASS_PANE:14 - ``` 也就是说在 1.8 服务端写 `PLAYER_HEAD` 能用,在 1.21 服务端写 `SKULL_ITEM:3` 也能用。1.13 起数字 ID 被从 API 里彻底移除,届时写 `397:3` 会回退成 `STONE`,所以建议用名字写法,升级服务端后配置不用改。物品名写错时控制台警告一次并回退为 `STONE`,不会导致插件报错。 ### CraftEngine 自定义物品(gui.yml) 装了 CraftEngine 就能用 `ce:` 前缀调用它的物品,写法 `ce:命名空间:物品id`,`craftengine:` 是等价的长写法。下面把**原配置**和**CE 展示配置**摆在一起对比 —— 面板结构一模一样,只换了物品名与槽位排布。 **原配置(插件自带的 gui.yml)** —— 全用原版物品,头颅在顶部正中,装备竖排在左侧: ```yaml gui: title: "&8%target% &7的信息面板" rows: 6 info: enabled: true slot: 4 material: PLAYER_HEAD use-target-skin: true name: "&e%target%" lore: - "" - "&7生命: &c%health%&7/&c%max_health%" - "&7等级: &a%level%" - "&7坐标: &f%world% %x%, %y%, %z%" - "&7金钱: &6%money%" - "&7Ping: &f%ping%ms" - "" - "&8左键按钮可执行对应操作" equipment: helmet: 10 chestplate: 19 leggings: 28 boots: 37 main-hand: 22 off-hand: 24 empty-material: LIGHT_GRAY_STAINED_GLASS_PANE empty-name: "&7空" buttons: add-friend: slot: 40 material: EMERALD name: "&a添加好友" lore: - "&7点击向 &e%target% &7发送好友请求" action: type: COMMAND console: false command: "friend add %target%" tpa: slot: 41 material: COMPASS name: "&b请求传送" lore: - "&7点击向 &e%target% &7发送 TPA 请求" action: type: COMMAND console: false command: "tpa %target%" msg: slot: 42 material: PAPER name: "&d私聊" lore: - "&7点击查看私聊提示" action: type: MESSAGE message: "&7请在聊天框输入: &f/msg %target% <内容>" trade: slot: 43 material: GOLD_INGOT name: "&6请求交易" lore: - "&7点击向 &e%target% &7发起交易请求" action: type: COMMAND console: false command: "trade %target%" close: slot: 49 material: RED_STAINED_GLASS_PANE name: "&c关闭面板" lore: - "&7关闭当前信息面板" action: type: CLOSE fill: enabled: true material: LIGHT_BLUE_STAINED_GLASS_PANE name: " " ``` **CE 展示配置** —— 头颅换成 CE 的放大头颅 `gui_head_size_4`,四个功能按钮横排一行,再用三个透明贴图物品当无边框展示位: ```yaml gui: title: "&8%target% &7的信息面板" rows: 6 info: enabled: true slot: 1 material: ce:default:gui_head_size_4 name: "&e%target%" lore: - "" - "&7生命: &c%health%&7/&c%max_health%" - "&7等级: &a%level%" - "&7坐标: &f%world% %x%, %y%, %z%" - "&7金钱: &6%money%" - "&7Ping: &f%ping%ms" equipment: helmet: 27 chestplate: 28 leggings: 29 boots: 30 main-hand: 9 off-hand: 12 empty-material: LIGHT_GRAY_STAINED_GLASS_PANE empty-name: "&7空" buttons: add-friend: slot: 14 material: EMERALD name: "&a添加好友" lore: - "&7点击向 &e%target% &7发送好友请求" action: type: COMMAND console: false command: "friend add %target%" tpa: slot: 15 material: COMPASS name: "&b请求传送" lore: - "&7点击向 &e%target% &7发送 TPA 请求" action: type: COMMAND console: false command: "tpa %target%" msg: slot: 16 material: PAPER name: "&d私聊" lore: - "&7点击查看私聊提示" action: type: MESSAGE message: "&7请在聊天框输入: &f/msg %target% <内容>" trade: slot: 17 material: GOLD_INGOT name: "&6请求交易" lore: - "&7点击向 &e%target% &7发起交易请求" action: type: COMMAND console: false command: "trade %target%" close: slot: 49 material: RED_STAINED_GLASS_PANE name: "&c关闭面板" lore: - "&7关闭当前信息面板" action: type: CLOSE # 透明贴图展示位 - 只显示文字,没有物品边框 info: slot: 2 material: ce:hangzong:air name: "&e%target%" lore: - "" - "&7生命: &c%health%&7/&c%max_health%" - "&7等级: &a%level%" - "&7坐标: &f%world% %x%, %y%, %z%" - "&7金钱: &6%money%" - "&7Ping: &f%ping%ms" info2: slot: 10 material: ce:hangzong:air name: "&e%target%" lore: - "" - "&7生命: &c%health%&7/&c%max_health%" - "&7等级: &a%level%" - "&7坐标: &f%world% %x%, %y%, %z%" - "&7金钱: &6%money%" - "&7Ping: &f%ping%ms" info3: slot: 11 material: ce:hangzong:air name: "&e%target%" lore: - "" - "&7生命: &c%health%&7/&c%max_health%" - "&7等级: &a%level%" - "&7坐标: &f%world% %x%, %y%, %z%" - "&7金钱: &6%money%" - "&7Ping: &f%ping%ms" fill: enabled: true material: LIGHT_BLUE_STAINED_GLASS_PANE name: " " ``` 两份配置的差异只在三处:`info.material` 从 `PLAYER_HEAD` 换成 `ce:default:gui_head_size_4`;装备与按钮的 `slot` 重排;末尾多了三个 `ce:hangzong:air` 展示位。其余字段完全一致 —— 换 CE 物品不需要改插件、不需要改别的配置项,只改 `material` 一行。 > ⚠️ 上面的 `ce:hangzong:air` 是**透明贴图**物品,需要配套的 CraftEngine 资源包才会生效,插件本身不附带。**需要这份透明贴图配置请加交流Q群 361919269 获取。** > > 没装 CraftEngine 或 id 不存在时会回退为 `STONE` 并在控制台说明原因和行号,不影响面板其余部分。 > > CraftEngine 通常比本插件晚启用,所以 `ce:` 物品不做启动预热,首次用到时才解析——启动横幅显示「CraftEngine 未检测到」不一定代表真没装。 [ATTACH]144355[/ATTACH][ATTACH]144356[/ATTACH] `gui_head_size_*` 这类放大头颅可以放心开着 `use-target-skin`:CE 自定义的是**模型**(`minecraft:item_model` 组件),皮肤走的是另一个组件(`minecraft:profile`),两者互不干扰,换皮肤不会把放大模型弄坏。若开着却仍显示查看者自己的头,原因在 CE 那边的物品配置——它的 `client_bound_data.profile` 是发包时才生效的,会盖掉服务端设的皮肤,而其中的 `<arg:player...>` 指向收包的人。把该物品配置里的 `client_bound_data.profile` 那一行删掉即可。 --- ## 📦 安装 1. 把 jar 放进 `plugins` 目录,重启服务端 2. 首次启动会生成 `config.yml`、`messages.yml`、`gui.yml` 3. 按需改完执行 `/hangprofile reload` 前置全部可选:`PlaceholderAPI`(第三方变量)、`Vault` + 经济插件(`%money%`)、`CraftEngine`(`ce:` 自定义物品),都不装也能正常使用。 --- *by hangzong(航总) | Hang 系列插件 | 技术支持V: hang060217 | 交流Q群: 361919269* [/MD]
Q群361919269 禁广 有报错或者问题或有想添加的功能可以跟我说
  • 1786281352609.webp
    1786281352609.webp
    15.1 KB · 查看: 21
  • 1786281364168.webp
    1786281364168.webp
    23.1 KB · 查看: 18
作者
航总
价格
50.00金粒
资源库存数
93
下载
7
查看
144
首次发布
最后更新

评分

0.00 星 0 次评分

航总 的其他资源

最新更新

  1. 1.0.5

    修复 修复头颅皮肤导致的严重卡顿:离线服上每个玩家第一次被查看时整服卡二三十秒、全员「连接超时」掉线,现改为进服时后台提前解析 优化 背景填充开销大幅降低
后退
顶部 底部