福利·怪物刷新显示 LyMobRespawnTip
LyMobRespawnTip 用于读取 MythicMobs 刷怪点的刷新状态,并通过全息文本、PlaceholderAPI 变量和实时刷新的 GUI 向玩家显示怪物刷新信息。玩家可以按分类浏览刷怪点,在拥有权限且不处于冷却时传送到对应位置。
插件信息
| 项目 | 内容 |
|---|---|
| 插件名称 | LyMobRespawnTip |
| 项目版本 | 1.0.6 |
| Java 版本 | Java 8 |
| 构建 API | Paper 1.16.5 |
| 主要用途 | MythicMobs 刷怪点状态显示、查询与传送 |
| 配置文件 | plugins/LyMobRespawnTip/config.yml |
项目包含旧版数字物品 ID 与新版英文材质名的兼容解析,但项目文件没有给出完整的 Minecraft 实测版本范围。使用非 Paper 1.16.5 环境前,应在测试服务器确认 MythicMobs API、物品材质和 GUI 是否正常。
玩法说明
管理员可以将 MythicMobs 刷怪点分配到不同分类,并为每个刷怪点设置显示模板。玩家执行 /lmrt info <分类> 后,会打开对应分类的刷新信息界面。
界面最多每页显示 45 个刷怪点,并每秒刷新一次物品名称与 Lore。玩家可以查看怪物名称、所在世界、刷新倒计时和上次击杀者,也可以通过底部按钮切换页面。
点击刷怪点物品时,插件会检查传送权限与冷却时间。检查通过后,玩家将被传送到 MythicMobs 刷怪点坐标上方一格。
依赖说明
| 依赖 | 用途 | 是否需要 |
|---|---|---|
| MythicMobs | 读取刷怪点、怪物类型、Warmup、Cooldown 和怪物死亡事件 | 核心功能必需 |
| PlaceholderAPI | 注册 %lmrt_...% 刷怪点变量 | 使用变量时需要 |
| DecentHolograms | 在刷怪点上方创建并更新全息文本 | 使用全息提示时需要 |
plugin.yml 将以上插件声明为软依赖,但 LyMobRespawnTip 的主要业务直接读取 MythicMobs 刷怪点数据。缺少 MythicMobs 时,刷新状态、GUI 数据和传送目标均无法正常建立。
PlaceholderAPI 未启动时不会注册变量。DecentHolograms 未启动时不能使用全息文本功能。
功能概览
刷怪点倒计时
插件支持读取 MythicMobs 刷怪点的两种剩余时间:
| 类型 | 数据来源 | 用途 |
|---|---|---|
Warmup | 刷怪点剩余预热秒数 | 显示怪物下一次生成前的倒计时 |
Cooldown | 刷怪点剩余冷却秒数 | 显示刷怪点冷却状态 |
模板使用的类型必须与 MythicMobs 刷怪点实际配置匹配。剩余时间为 0 时,插件将刷怪点视为已刷新。
全息文本
插件可以通过 DecentHolograms 在刷怪点上方显示实时状态:
- 每秒读取一次刷怪点剩余时间。
- 分别配置倒计时状态和已刷新状态的文本。
- 支持调整全息文本的 Y 轴偏移。
- 支持显示怪物名称、剩余时间和上次击杀者。
- 支持手动指定需要显示的刷怪点。
- 支持自动匹配全部 MythicMobs 刷怪点。
- 自动匹配模式支持按刷怪点 ID 设置黑名单。
- 重载配置时会取消旧更新任务并移除旧全息,然后重新创建。
自动匹配模式启用后,手动配置的刷怪点映射不会生效。
刷怪点信息界面
管理员可以通过配置创建多个 GUI 分类,每个分类包含独立的刷怪点列表。
界面具有以下行为:
- 使用 54 格容器界面。
- 前 45 格显示刷怪点信息。
- 每页最多显示 45 个刷怪点。
- 第 46 格和第 54 格用于上一页、下一页按钮。
- 底部其余位置使用配置物品填充。
- 界面内容每秒实时刷新。
- 支持自定义标题、填充物品和翻页按钮。
- 支持使用旧版数字物品 ID 或英文材质名配置图标。
- 关闭界面后会停止该玩家的刷新任务。
刷怪点传送
玩家点击 GUI 中的刷怪点物品即可尝试传送。
传送功能包括:
- 使用
lmrt.teleport权限控制。 - 支持设置默认传送冷却。
- 支持按照玩家权限覆盖默认冷却。
- 支持自定义无权限、冷却中和传送成功消息。
- 冷却提示可以显示剩余秒数。
- 传送目标为刷怪点方块坐标上方一格。
世界别名
world-alias 可以将实际世界名称转换为更易读的名称。GUI 模板中的 {world} 会优先显示配置的别名;未配置别名时显示原世界名称。
世界别名只用于 GUI 刷怪点信息,不会替换全息文本内容。
上次击杀者
当玩家击杀由已登记 MythicMobs 刷怪点生成的怪物时,插件会记录玩家名称,并更新对应的全息文本和 GUI 信息。
服务器启动或插件重载后,如果暂时没有记录,上次击杀者显示为“无”。该记录保存在运行内存中,不会写入数据库或配置文件。
自动同步 MythicMobs 重载
插件监听 MythicMobs 的重载事件。MythicMobs 完成重载后,LyMobRespawnTip 会重新读取配置并重建刷怪点缓存、全息文本和 GUI 数据。
命令
| 命令 | 使用者 | 条件 | 说明 |
|---|---|---|---|
/lmrt | 管理员 | OP | 显示当前可用的插件命令帮助。 |
/lmrt info <分类> | 玩家 | 分类必须存在 | 打开指定分类的刷怪点信息界面。 |
/lmrt reload | 管理员 | OP | 重新读取配置并重建全息、模板与 GUI 缓存。 |
<分类> 对应配置文件 spawner-info-gui 下的分类 ID。命令支持分类名称 Tab 补全,普通玩家可以补全 info,OP 还可以补全 reload。
权限
| 权限 | 用途 | 默认要求 |
|---|---|---|
lmrt.teleport | 允许点击 GUI 物品传送到刷怪点 | 需要显式授予 |
| 自定义冷却权限 | 覆盖 teleport-cooldown.default 默认冷却 | 由管理员在配置中定义 |
/lmrt reload 没有独立权限节点,代码直接检查命令发送者是否为 OP。打开信息界面本身没有独立权限限制,但点击传送仍需 lmrt.teleport。
配置冷却权限时,配置键中的下划线会被插件转换为点号后再检查。例如配置键 lmrt_vip 对应检查权限 lmrt.vip。
PlaceholderAPI 变量
| 变量 | 返回内容 |
|---|---|
%lmrt_Warmup:<刷怪点ID>% | 指定刷怪点的剩余 Warmup 秒数。 |
%lmrt_Cooldown:<刷怪点ID>% | 指定刷怪点的剩余 Cooldown 秒数。 |
返回规则:
- 剩余时间大于
0时返回整数秒数。 - 剩余时间等于
0时返回papi-relace配置的文本,默认是&a已刷新。 - 找不到对应的 MythicMobs 刷怪点时返回
-1,并在控制台输出错误信息。 - 变量名称中的
Warmup和Cooldown需要保持对应大小写。
模板文本占位符
| 占位符 | 全息模板 | GUI 模板 | 说明 |
|---|---|---|---|
{name} | 支持 | 支持 | MythicMob 显示名称;关闭 use-display-name 后显示“怪物”。 |
{time} | 支持 | 支持 | 剩余刷新秒数,仅在倒计时模板中替换。 |
{last_killer} | 支持 | 支持 | 对应刷怪点记录的上次玩家击杀者。 |
{world} | 不支持 | 支持 | 刷怪点所在世界名称或 world-alias 配置的别名。 |
配置文本支持使用 & 颜色代码。插件加载 GUI 名称、Lore、消息和部分变量返回文本时,会将 & 转换为 Minecraft 颜色符号。
重要配置说明
完整配置位于 plugins/LyMobRespawnTip/config.yml。首页仅列出主要配置分组:
| 配置节点 | 用途 |
|---|---|
papi-relace | 设置变量在剩余时间为 0 时返回的文本。 |
show-tip-spawner | 手动设置刷怪点与全息模板的对应关系。 |
auto-show-tip-spawner | 使用指定模板自动注册全部 MythicMobs 刷怪点。 |
auto-show-tip-blacklist | 排除不需要自动创建全息的刷怪点。 |
use-display-name | 是否读取 MythicMob 的显示名称。 |
holograms-text-template | 定义全息文本、偏移与计时类型。 |
spawner-info-gui | 定义 GUI 分类及分类中的刷怪点。 |
spawner-info-template | 定义 GUI 图标、名称、Lore 与计时类型。 |
world-alias | 定义 GUI 中显示的世界别名。 |
teleport-cooldown | 定义默认冷却和权限冷却。 |
message | 定义传送相关提示。 |
gui | 定义界面标题、填充物品和翻页按钮。 |
全息模板的计时类型实际读取键为 refresh-type,可填写 Warmup 或 Cooldown。项目默认配置示例中使用了 type,但该键不会被全息模板读取;未设置 refresh-type 时会使用默认值 Warmup。GUI 信息模板使用的计时键仍为 type。
yaml
holograms-text-template:
示例模板:
y-offset: 2
refresh-type: 'Warmup'
countdown:
- '&7怪物: &c{name}'
- '&7上次击杀者: &e{last_killer}'
- '&7刷新倒计时: &6{time}秒'
refreshed:
- '&7怪物: &c{name}'
- '&7上次击杀者: &e{last_killer}'
- '&a已刷新'使用限制与注意事项
Warmup与Cooldown配置错误时,插件可能一直把刷怪点判断为已刷新。- 自动全息模板 ID 无效时,插件会回退到
show-tip-spawner手动模式。 - GUI 分类中的模板或刷怪点不存在时,该项会被跳过,并在控制台输出错误。
- 全息手动配置中的模板或刷怪点不存在时,该项不会注册。
- 使用 MythicMob 显示名称时,对应 MythicMob 应配置有效的 DisplayName。
- PlaceholderAPI 变量无法找到刷怪点时会返回
-1,展示变量的其他插件需要自行处理该值。 - 上次击杀者仅记录玩家完成的 MythicMob 击杀,非玩家击杀不会更新。
- Vault 经济封装存在于项目中,但当前刷新显示、GUI 和传送流程没有使用经济功能,因此不需要为这些功能安装 Vault。
- 项目没有 MySQL 存储功能,也不需要安装 LyMySQLCore。