跳到正文

SettingsManagerLib

作者:wildbeast42

一个简单易用、易于配置的设置库,使用 YACL 和 Mod Menu 创建简单或复杂的设置菜单。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

一个简单的设置管理器前置库,实现了 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=LATEST_VERSION_NUMBER (e.g. 1.0.0+1.21.11)
modmenu_version=LATEST_VERSION_NUMBER (e.g. 15.0.0)
yacl_version=LATEST_VERSION_NUMBER (e.g. 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", "Visual Settings", "Overlay", "Default Gui Name", "Gui Scale", "This text will appear as a tooltip when you click on the option.");
}
整数/浮点数滑块

在 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", "Visual Settings", "Overlay", 1.0f, "Gui Scale", "This text will appear as a tooltip when you click on the option.", 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", "Visual Settings", "Overlay", true, "Render 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", "Visual Settings", "Overlay", net.minecraft.util.Colors.GRAY, "Gui Background Color", "点击此选项时,此文本将作为工具提示显示。");
}
自定义枚举

文档即将推出。详情请联系获取。

设置值会在客户端重启后自动保留。不过,你仍需将设置添加到配置菜单中;可以在 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", "Default Gui Name"); //返回字符串
ExampleModClient.settings.get("guiSliderMin", 1); //返回整数

设置设置项的值:

默认情况下,设置项的值为其默认值,除非用户对其进行更改。若要手动设置某个设置项的值,请使用以下代码。

ExampleModClient.settings.set("settingId", newValue);

ExampleModClient.settings.set("doRenderGui", false); //布尔值示例

页面/分组:

设置按页面和分组进行组织。下方图片展示了一个示例。页面是顶部的栏,每次只能打开一个页面。分组是一组可折叠的设置。每个页面可以包含任意数量的分组和设置。每个设置都必须指定页面,但分组不是必需的。如需创建没有分组的设置(如图所示),请将分组设为 “” 或 “none”。
页面/分组/设置示例

依赖项:

此模组需要其他多个模组才能运行。

  • YACL
  • 模组菜单
  • Fabric API

常见问题

SettingsManagerLib 支持哪些 Minecraft 版本?

SettingsManagerLib 支持 Minecraft Java 版 1.21.3–26.3,共 14 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

SettingsManagerLib 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅客户端。

评论

登录后评论和评分

wildbeast42 的其他作品

查看全部 →