
菜单信息页面
使用原生Hytale风格UI、JSON配置、图片、章节和交互按钮创建精美的游戏内指南、教程和信息页面。
📖 MenuInfoPages
MenuInfoPages 是一个适用于 Hytale 服务器的轻量级信息页面和菜单系统。 使用简单的 JSON 文件创建游戏内的指南、规则、教程、帮助页面、服务器信息、公告和交互式菜单。 每个页面都有自己的命令,并且可以包含格式化文本、图片、区块、操作按钮、玩家或控制台命令,以及可选自动打开行为。 无需编写 Java 代码。
✨ 功能特性
✔ 原生 Hytale 风格界面
✔ 简单 JSON 页面配置
✔ 每个页面对应一个玩家命令
✔ 富文本格式
✔ 最多 5 张顶部图片,自动居中并均匀分布
✔ 最多 5 个内容区块,每个区块可含一张可选图片
✔ 最多 5 个底部操作按钮
✔ 本地和远程 PNG 图片
✔ 玩家和控制台命令执行
✔ {player} 和 {uuid} 占位符
✔ 主要、次要和危险按钮样式
✔ 可选的命令延迟和页面关闭行为
✔ 一次性、始终和可关闭的自动打开模式
✔ 本地化 不再显示 选项,支持区域语言回退
✔ 可选的世界和实例过滤
✔ /infopages reload
✔ /infopages newpage <名称> <命令>
✔ 内置示例页面和自动更新的 README 文档
🚀 安装与创建页面
将 MenuInfoPages.jar 放入服务器的 mods 文件夹,并启动服务器一次。
MenuInfoPages 会创建:
mods/MenuInfoPages/
├── pages/
├── images/
├── reload.yml
└── README.txt
mods/MenuInfoPages/pages/ 内的每个 .json 文件都代表一个独立页面。
示例:
{
"command": "rules",
"title": "服务器规则",
"intro": "请在游戏前阅读规则。",
"images": [],
"sections": [],
"buttons": [],
"footer": "玩得开心!"
}
这会创建:
- /rules
- 文件名和命令不必相同。 你也可以直接从服务器创建一个页面:
- /infopages newpage
<名称><命令> - 示例:/infopages newpage rules rules
- 这会创建
rules.json并立即注册/rules。 内置的示例页面可以通过以下命令打开: - /guide
- 生成的
example.json演示了主要配置选项。
重要提示: 示例页面已启用自动打开功能,以便新用户可以立即看到该功能的效果。测试完毕后,在启用另一个页面的自动打开功能之前,将其
autoOpen.enabled值设置为false。 现有的页面 JSON 文件永远不会被自动覆盖,因此你的自定义更改会被保留。
- 生成的
README.txt会在插件更新时自动更新。- 更多配置细节和示例,请参阅 mods/MenuInfoPages/README.txt。
🖼️ 图片与区块
将本地 PNG 图片放入:
- mods/MenuInfoPages/images/ 示例:
mods/MenuInfoPages/images/logo.png
然后仅使用文件名引用它们:
"images": [
"logo.png"
]
你也可以使用直接的 HTTP/HTTPS PNG URL:
"images": [
"https://example.com/banner.png"
]
图片支持:
- 不支持远程 JPG/JPEG 图片。
- 一个页面最多可以显示5 张顶部图片。
- 可见的顶部图片会自动居中并均匀分布在可用空间中。 页面还可以包含最多5 个区块,每个区块包含标题、文本和一张可选图片:
"sections": [
{
"title": "开始",
"text": "前往出生区域开始你的冒险。"
},
{
"title": "经济",
"text": "在游戏中赚取金钱,并在服务器商店中消费。",
"image": "economy.png"
}
]
区块图片:
- 每个区块最多一张可选图片。
- 支持本地 PNG 文件名和远程 PNG URL。
🔘 按钮与命令
每个页面支持最多5 个底部操作按钮。 示例:
{
"text": "出生点",
"command": "spawn",
"runAs": "player",
"close": true,
"delayMs": 250,
"style": "primary"
}
按钮选项:
- 可用样式: primary • secondary • danger
- 命令可以以以下身份运行: player • console 控制台命令可以使用:
- {player} — 玩家名称
- {uuid} — 玩家 UUID 示例:
{
"text": "领取奖励",
"command": "reward give {player}",
"runAs": "console",
"close": true,
"style": "primary"
}
其他行为:
- 命令开头的
/是可选的。 - 按钮可以配置延迟。
- 按钮可以在执行后关闭页面。
- 按钮也可以仅关闭页面而不执行命令。 示例:
{
"text": "关闭",
"close": true,
"style": "secondary"
}
🚪 自动打开页面
当玩家进入配置的世界或实例时,页面可以自动打开。 示例:
"autoOpen": {
"enabled": true,
"mode": "dismissible",
"version": 1,
"worlds": [],
"delayMs": 1500
}
可用模式:
- once • 每个玩家和页面版本只显示一次页面。
- always • 只要满足配置的条件就会打开。
- dismissible • 自动打开并允许玩家选择 不再显示。 语言行为:
- 关闭选项会根据玩家的客户端语言自动本地化。
- 支持区域回退,例如
it-CH → it-IT、de-CH → de-DE和fr-CA → fr-FR。 - 不支持的语言会回退到英语。 页面版本:
- 页面配置中的
version字段是内容版本值。 - 当需要让玩家再次收到更新的
once或dismissible页面时,请增加此值。 世界过滤: worlds设置可以将自动打开功能限制在特定世界或实例中。- 同一个世界只能启用一个自动打开页面。
- 如果两个页面为同一个世界启用了自动打开功能,则两个页面都不会自动打开。
- 如果
worlds为空,则自动打开页面是全局的,因此只能启用一个全局自动打开页面。
🔄 重载页面与图片
编辑页面文件后,使用:
- /infopages reload 大多数配置更改无需重启服务器即可生效:
- 标题和文本
- 区块
- 按钮
- 命令
- 自动打开设置
- 添加或移除的页面 重载安全性:
- JSON 文件在重载前会经过验证。
- 如果检测到无效页面,当前有效配置将继续保留。 图片重载行为由以下文件控制:
- mods/MenuInfoPages/reload.yml 推荐的正式环境设置:
reload-images: false
使用此设置:
- 常规页面配置仍会立即重载。
- 新增或更改的图片将在下次服务器重启后生效。 在积极创建页面时,你还可以选择使用:
reload-images: true
使用实时图片重载:
- 本地和远程 PNG 更改可以通过
/infopages reload应用。 - 实时图片重载是实验性但可用的。
- 实时图片更新后,已连接的玩家可能会暂时看到不正确或缺失的 UI/HUD 纹理。
- 重新连接即可恢复正常的界面。
🔐 管理员命令与权限
/infopages reload
- 无需重启服务器即可重载页面 JSON 文件和配置。
- 权限:newt.infopages.reload
/infopages newpage
<名称><命令> - 创建新的 JSON 页面模板并立即注册其页面命令。
- 权限:newt.infopages.newpage 页面命令:
- 每个配置的页面都会根据其 JSON 文件中的
command字段获得自己的玩家命令。
✅ 兼容性
服务端 • 原生 Hytale 风格 UI • 独立 JSON 页面 • 玩家和控制台命令执行 • 多人游戏就绪 • 无永久 HUD 覆盖
AI 披露
ChatGPT 协助制作了封面图、Logo 图、文档、代码清理建议和一般性审查。
- 所有实现、测试、配置选择、编辑和发布决定均由我手动审查。
⭐ MenuInfoPages Full
对于需要更多功能的服务器,还提供更高级的 MenuInfoPages Full 版本。
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。