![Codex [配置菜单]](https://cdn8.newbeebox.com/nbbnext/2026/02/27/0105ff43db0adf159832dc1d3447cf9a.png)
Codex [配置菜单]
允许玩家以统一且简单的方式配置模组设置的每玩家配置API
查看大图Codex:一个设置菜单统治所有
厌倦了每个模组都有自己的配置文件、命令和操作方式?我们也是。
Codex 为你的 Hytale 服务器添加了一个干净、原生感的设置界面。玩家输入 /settings 即可打开一个统一菜单,调整所有接入 Codex 的模组中的选项——无需查阅 Wiki、无需手动编辑 JSON、无需记忆指令。
对于模组开发者来说,这更为简单:用 BuilderCodec 定义你的配置字段,用一行代码注册它,剩下的就交给 Codex。它会读取你的数据结构,自动选择合适的 UI 控件(复选框、文本输入框、数字输入框),并为你构建设置页面。无需编写任何 UI 代码。
对于玩家
安装
- 从“文件”标签页下载
Codex.jar。 - 将其放入你服务器目录下的
mods/文件夹。 - 启动(或重启)服务器。
如何使用
打开聊天框并输入以下任一指令:
/settings/codexsettings/codexconfig/config
一个设置窗口会弹出,显示所有已将配置注册到 Codex 的模组。点击任意分类即可打开该模组的设置界面。修改会立即生效——无需重启。
对于模组开发者
将你的模组添加到 Codex 设置菜单大约需要两分钟。
步骤 0 — 将 Codex 添加为依赖项
将此代码添加到你的 Gradle 配置或类似配置中:
repositories {
maven { url "https://www.cursemaven.com" }
}
dependencies {
// Project ID: 1472867
implementation "curse.maven:hyui-1472867:<file-id>"
}file-id 可以在 Curseforge 模组页面查看特定文件时的 URL 中找到:
https://www.curseforge.com/hytale/mods/codex-configs/files/<file-id>步骤 1 — 定义你的配置
创建一个带有 BuilderCodec 的组件类。这是标准的 Hytale 编解码器操作——如果你已经在为数据处理使用 BuilderCodec,那么你已经完成了一半。
public class MyModConfig implements Component<EntityStore> {
public Boolean pvpEnabled;
public Integer renderDistance;
public String motd;
public static final BuilderCodec<MyModConfig> CODEC =
BuilderCodec.builder(MyModConfig.class, MyModConfig::new)
.append(new KeyedCodec<>("PvpEnabled", Codec.BOOLEAN),
(o, v) -> o.pvpEnabled = v, o -> o.pvpEnabled).add()
.append(new KeyedCodec<>("RenderDistance", Codec.INTEGER),
(o, v) -> o.renderDistance = v, o -> o.renderDistance).add()
.append(new KeyedCodec<>("Motd", Codec.STRING),
(o, v) -> o.motd = v, o -> o.motd).add()
.build();
public ComponentType<EntityStore, MyModConfig> getComponentType() {
return <Your Plugin Class>.ct; // 将此作为参数添加到你的插件中
}
}步骤 2 — 注册它
在你的插件的 setup() 方法中:
this.ct =
this.getEntityStoreRegistry().registerComponent(
MyModConfig.class, "MyModConfig", MyModConfig.CODEC);
PlayerSettingsRegistry.get().registerCodec("MyMod", MyModConfig.CODEC, ct);就这样。Codex 会识别你的编解码器,在设置菜单中生成一个 "My Mod" 分类,并为你处理 UI 渲染和数据持久化。
支持的类型
| 字段类型 | 控件 |
|---|---|
| Boolean | 复选框 |
| Integer | 数字输入框 |
| Float | 数字输入框 |
| Double | 数字输入框 |
| String | 文本输入框 |
| 更多类型即将推出! |
步骤 3 — 取回你的数据
完成所有设置后,你现在可以像这样查询玩家的配置组件引用:
MyModConfig data = store.getComponent(ref, MyModConfig.getComponentType());如果用户尚未设置任何内容,这将返回 null;如果用户已经打开过你的配置页面,则会返回包含玩家所做更改的配置数据默认实例。
更进一步
Codex 旨在适应你不断增长的需求:
- 自定义 UI 控件 — 实现
CodecUIProvider<T>并使用GeneratedSettingsRegistry进行注册,以处理新的数据类型。 - 完全自定义页面 — 实现
PlayerSettingsProvider以完全控制你的设置页面布局,同时仍出现在 Codex 菜单中。 - 自定义图标 — 在你的提供者中覆盖
getIconPath()方法,在模组分类名称旁显示一个 100×100 的图标。
如需完整的开发者指南、源代码和示例,请访问 GitHub 仓库。
指令
| 指令 | 别名 | 描述 |
|---|---|---|
/settings |
/codexsettings, /codexconfig, /config |
打开 Codex 设置菜单 |
链接
由 Exotik850 构建。欢迎贡献代码和发起拉取请求!
正在加载版本记录…

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