
设置管理器库
基于YACL和Mod Menu的简单易配置的配置库,用于创建简单或复杂的配置菜单
一个简单的设置管理器库,它实现了 YACL,以便轻松为 Mod Menu 生成配置界面。
如果你想使用这个模组为你自己的模组生成配置菜单,我建议联系我,因为我可能不会随着模组的更新而保持此页面的更新。
注意:此模组本身不执行任何操作。它是供其他模组使用的库。
特性:
- 简单快速的设置
- 易于实现
- 轻松访问设置
- 内置配置文件生成,用于在客户端重启之间保存设置
- 内置色度管理器,用于跨文件同步色度功能
- 支持几乎所有 YACL 字段
设置:
将模组添加为依赖项:
在 build.gradle 中
repositories {
maven { url = "https://api.modrinth.com/maven" }
maven {
name = "Terraformers"
url = "https://maven.terraformersmc.com/"}
maven {
name 'Xander Maven'
url 'https://maven.isxander.dev/releases'}
}
dependencies {
modImplementation("maven.modrinth:settingsmanagerlib:${project.modmenu_version}")
modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}")
modImplementation "dev.isxander:yet-another-config-lib:${project.yacl_version}"
}
在 gradle.properties 中
settingsmanagerlib_version=最新版本号 (例如 1.0.0+1.21.11)
modmenu_version=最新版本号 (例如 15.0.0)
yacl_version=最新版本号 (例如 3.7.1+1.21.6-fabric)
在 fabric.mod.json 中
"entrypoints": {
"modmenu": [ "com.example.mod.ModMenuAPI" ]
}
然后创建一个新类 ModMenuAPI
public class ModMenuAPI implements ModMenuApi {
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
return parentScreen -> ExampleModClient.settings.getConfig(parentScreen);
}
}
设置模组:
在 ExampleModClient 中
public static Settings settings;
@Override
public void onInitializeClient() {
settings = new Settings().setup("Example Mod", "examplemod");
settings.loadFromFile();
}
添加设置:
注意:支持字符串、布尔值、整数、浮点数、颜色和自定义枚举。
标准字符串/整数/浮点数
在 ExampleModClient 中
@Override
public void onInitializeClient() {
settings.add(String settingId, String page, String group, String/int/float defaultValue, String settingName, String description)
settings.add("guiName", "视觉设置", "覆盖层", "默认 GUI 名称", "GUI 缩放", "当你点击该选项时,此文本将显示为工具提示。");
}
整数/浮点数滑块
在 ExampleModClient 中
@Override
public void onInitializeClient() {
settings.addSlider(String settingId, String page, String group, int/float defaultValue, String settingName, String description, int/float min, int/float max, int/float step)
settings.add("guiScale", "视觉设置", "覆盖层", 1.0f, "GUI 缩放", "当你点击该选项时,此文本将显示为工具提示。", 0.5f, 5.0f, 0.1f);
}
布尔值
在 ExampleModClient 中
@Override
public void onInitializeClient() {
settings.addSlider(String settingId, String page, String group, boolean defaultValue, String settingName, String description, BooleanFormat valueFormat)
settings.add("doRenderGui", "视觉设置", "覆盖层", true, "渲染 GUI", "当你点击该选项时,此文本将显示为工具提示。", BooleanFormat.ONOFF);
}
BooleanFormat - 布尔值的显示格式:
BooleanFormat.ONOFF- "开" 或 "关"BooleanFormat.TRUEFALSE- "真" 或 "假"BooleanFormat.YESNO- "是" 或 "否"BooleanFormat.TICKBOX- 一个可勾选或取消勾选的复选框
颜色
在 ExampleModClient 中
@Override
public void onInitializeClient() {
settings.addColor(String settingId, String page, String group, int defaultValue, String settingName, String description)
settings.addColor("guiBackgroundColor", "视觉设置", "覆盖层", net.minecraft.util.Colors.GRAY, "GUI 背景颜色", "当你点击该选项时,此文本将显示为工具提示。");
}
自定义枚举
文档即将推出。如需了解详情,请联系我。请注意,设置的值会在客户端重启后自动保留,但是,你仍然需要将它们添加到配置菜单中,这可以通过在 onInitializeClient() 中创建配置菜单来完成。
访问值:
获取设置的值:
要获取设置的值,请使用以下方法,其中 typeInstance 是一个与你要获取的设置值类型相同的值。请参考下面的示例进行实现。请注意,settings.get() 的第二个参数无关紧要;只有它的类型需要与返回类型相同。
ExampleModClient.settings.get("settingId", typeInstance);
ExampleModClient.settings.get("doRenderGui", true); //返回布尔值
ExampleModClient.settings.get("guiBackgroundColor", net.minecraft.util.Colors.GRAY); //返回颜色
ExampleModClient.settings.get("guiScale", 1.0f); //返回浮点数
ExampleModClient.settings.get("guiName", "默认 GUI 名称"); //返回字符串
ExampleModClient.settings.get("guiSliderMin", 1); //返回整数
设置值:
默认情况下,设置的值被设置为它的默认值,除非用户更改它。要手动设置设置的值,请使用以下方法。
ExampleModClient.settings.set("settingId", newValue);
ExampleModClient.settings.set("doRenderGui", false); //布尔值示例
页面/分组:
设置按页面和分组进行组织。请参考下图示例。页面是顶部的标签栏,你一次只能打开一个页面。分组是可折叠的设置集合。你可以在每个页面上拥有无限数量的分组和设置。每个设置必须有一个页面,但不要求必须有分组。要创建如下图中所示的没有分组的设置,请将分组设置为 "" 或 "none"。

依赖项:
此模组需要其他多个模组才能正常运行。
- YACL
- Mod Menu
- Fabric API
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。